From 35d29244a4fb27490de5d8fcd4625db8afe32e53 Mon Sep 17 00:00:00 2001 From: John Kalberer Date: Sat, 30 Mar 2024 09:08:18 -0700 Subject: [PATCH] Switched over to typescript --- .babelrc | 16 - .eslintignore | 1 + .eslintrc | 82 +- .flowconfig | 64 - .prettierrc | 4 +- build/Auth.js | 108 - build/Auth.js.flow | 105 - build/CloudSSEManager.js | 92 - build/CloudSSEManager.js.flow | 90 - build/Config.js | 20 - build/Config.js.flow | 13 - build/Headers.js | 15 - build/LoadObject.js | 381 - build/LoadObject.js.flow | 480 - build/StandardHeaders.js | 13 - build/StandardHeaders.js.flow | 8 - build/constants.js | 50 - build/constants.js.flow | 61 - build/dao/AccountDAO.js | 35 - build/dao/AccountDAO.js.flow | 44 - build/dao/AchievementDAO.js | 44 - build/dao/AchievementDAO.js.flow | 62 - build/dao/AvailabilityDAO.js | 35 - build/dao/AvailabilityDAO.js.flow | 24 - build/dao/BaseODataDAO.js | 276 - build/dao/BaseODataDAO.js.flow | 261 - build/dao/BeverageDAO.js | 81 - build/dao/BeverageDAO.js.flow | 109 - build/dao/ClientID.js | 28 - build/dao/ClientID.js.flow | 12 - build/dao/CloudDeviceDAO.js | 108 - build/dao/CloudDeviceDAO.js.flow | 90 - build/dao/DeviceDAO.js | 59 - build/dao/DeviceDAO.js.flow | 104 - build/dao/FlowSensorDAO.js | 40 - build/dao/FlowSensorDAO.js.flow | 44 - build/dao/FriendDAO.js | 69 - build/dao/FriendDAO.js.flow | 63 - build/dao/GlassDAO.js | 35 - build/dao/GlassDAO.js.flow | 26 - build/dao/ItemBeverageDAO.js | 59 - build/dao/KegDAO.js | 82 - build/dao/KegDAO.js.flow | 91 - build/dao/LocationDAO.js | 40 - build/dao/LocationDAO.js.flow | 65 - build/dao/ODataDAO.js | 666 - build/dao/ODataDAO.js.flow | 817 - build/dao/OrganizationDAO.js | 64 - build/dao/OrganizationDAO.js.flow | 78 - build/dao/PaymentsDAO.js | 66 - build/dao/PaymentsDAO.js.flow | 43 - build/dao/PermissionDAO.js | 55 - build/dao/PermissionDAO.js.flow | 71 - build/dao/PourChartDAO.js | 49 - build/dao/PourChartDAO.js.flow | 51 - build/dao/PourDAO.js | 113 - build/dao/PourDAO.js.flow | 115 - build/dao/PriceVariantDAO.js | 40 - build/dao/PriceVariantDAO.js.flow | 35 - build/dao/ProductDAO.js | 74 - build/dao/ProductDAO.js.flow | 78 - build/dao/ProductDeviceDAO.js | 85 - build/dao/ProductDeviceDAO.js.flow | 89 - build/dao/ProductFirmwareDAO.js | 70 - build/dao/ProductFirmwareDAO.js.flow | 89 - build/dao/ReportDAO.js | 46 - build/dao/ReportDAO.js.flow | 56 - build/dao/RestDAO.js | 331 - build/dao/RestDAO.js.flow | 379 - build/dao/ScheduleDAO.js | 43 - build/dao/ScheduleDAO.js.flow | 51 - build/dao/SrmDAO.js | 35 - build/dao/SrmDAO.js.flow | 24 - build/dao/StyleDAO.js | 35 - build/dao/StyleDAO.js.flow | 36 - build/dao/Subscription.js | 52 - build/dao/Subscription.js.flow | 33 - build/dao/TapDAO.js | 79 - build/dao/TapDAO.js.flow | 118 - build/fetch.js | 93 - build/fetch.js.flow | 100 - build/filters.js | 79 - build/filters.js.flow | 100 - build/index.js | 494 - build/index.js.flow | 195 - build/signalr/hubs/Hub.js | 114 - build/signalr/hubs/Hub.js.flow | 110 - build/signalr/hubs/TapHub.js | 45 - build/signalr/hubs/TapHub.js.flow | 36 - build/signalr/index.js | 33 - build/signalr/index.js.flow | 19 - build/signalr/types.js | 1 - build/signalr/types.js.flow | 13 - build/translators/BeverageTranslator.js | 89 - build/translators/BeverageTranslator.js.flow | 55 - build/translators/DefaultTranslator.js | 47 - build/translators/DefaultTranslator.js.flow | 30 - build/translators/DeviceTranslator.js | 61 - build/translators/DeviceTranslator.js.flow | 34 - build/translators/KegTranslator.js | 44 - build/translators/KegTranslator.js.flow | 17 - build/translators/LocationTranslator.js | 90 - build/translators/LocationTranslator.js.flow | 69 - build/translators/PermissionTranslator.js | 74 - .../translators/PermissionTranslator.js.flow | 53 - build/translators/PourTranslator.js | 45 - build/translators/PourTranslator.js.flow | 18 - build/translators/ReportTranslator.js | 85 - build/translators/ReportTranslator.js.flow | 54 - build/translators/ScheduleTranslator.js | 95 - build/translators/ScheduleTranslator.js.flow | 67 - build/translators/TapTranslator.js | 67 - build/translators/TapTranslator.js.flow | 43 - build/types.js | 1 - build/types.js.flow | 97 - flow-typed/odata.js | 84 - package-lock.json | 12850 +++------------- package.json | 59 +- src/Auth.js | 105 - src/CloudSSEManager.js | 90 - src/Config.js | 13 - src/LoadObject.js | 480 - src/StandardHeaders.js | 8 - src/constants.js | 61 - src/dao/AccountDAO.js | 44 - src/dao/AchievementDAO.js | 62 - src/dao/AvailabilityDAO.js | 24 - src/dao/BaseODataDAO.js | 261 - src/dao/BeverageDAO.js | 109 - src/dao/ClientID.js | 12 - src/dao/CloudDeviceDAO.js | 90 - src/dao/DeviceDAO.js | 104 - src/dao/FlowSensorDAO.js | 44 - src/dao/FriendDAO.js | 63 - src/dao/GlassDAO.js | 26 - src/dao/KegDAO.js | 91 - src/dao/LocationDAO.js | 65 - src/dao/ODataDAO.js | 818 - src/dao/OrganizationDAO.js | 78 - src/dao/PaymentsDAO.js | 43 - src/dao/PermissionDAO.js | 71 - src/dao/PourChartDAO.js | 51 - src/dao/PourDAO.js | 115 - src/dao/PriceVariantDAO.js | 35 - src/dao/ProductDAO.js | 78 - src/dao/ProductDeviceDAO.js | 89 - src/dao/ProductFirmwareDAO.js | 89 - src/dao/ReportDAO.js | 56 - src/dao/RestDAO.js | 382 - src/dao/ScheduleDAO.js | 51 - src/dao/SrmDAO.js | 24 - src/dao/StyleDAO.js | 36 - src/dao/Subscription.js | 33 - src/dao/TapDAO.js | 118 - src/fetch.js | 100 - src/filters.js | 100 - src/index.js | 195 - src/signalr/hubs/Hub.js | 110 - src/signalr/hubs/TapHub.js | 36 - src/signalr/index.js | 19 - src/signalr/types.js | 13 - src/translators/BeverageTranslator.js | 55 - src/translators/DefaultTranslator.js | 30 - src/translators/DeviceTranslator.js | 34 - src/translators/KegTranslator.js | 17 - src/translators/LocationTranslator.js | 69 - src/translators/PermissionTranslator.js | 53 - src/translators/PourTranslator.js | 18 - src/translators/ReportTranslator.js | 54 - src/translators/ScheduleTranslator.js | 67 - src/translators/TapTranslator.js | 43 - src/types.js | 97 - 172 files changed, 2056 insertions(+), 26288 deletions(-) delete mode 100644 .babelrc delete mode 100644 .flowconfig delete mode 100644 build/Auth.js delete mode 100644 build/Auth.js.flow delete mode 100644 build/CloudSSEManager.js delete mode 100644 build/CloudSSEManager.js.flow delete mode 100644 build/Config.js delete mode 100644 build/Config.js.flow delete mode 100644 build/Headers.js delete mode 100644 build/LoadObject.js delete mode 100644 build/LoadObject.js.flow delete mode 100644 build/StandardHeaders.js delete mode 100644 build/StandardHeaders.js.flow delete mode 100644 build/constants.js delete mode 100644 build/constants.js.flow delete mode 100644 build/dao/AccountDAO.js delete mode 100644 build/dao/AccountDAO.js.flow delete mode 100644 build/dao/AchievementDAO.js delete mode 100644 build/dao/AchievementDAO.js.flow delete mode 100644 build/dao/AvailabilityDAO.js delete mode 100644 build/dao/AvailabilityDAO.js.flow delete mode 100644 build/dao/BaseODataDAO.js delete mode 100644 build/dao/BaseODataDAO.js.flow delete mode 100644 build/dao/BeverageDAO.js delete mode 100644 build/dao/BeverageDAO.js.flow delete mode 100644 build/dao/ClientID.js delete mode 100644 build/dao/ClientID.js.flow delete mode 100644 build/dao/CloudDeviceDAO.js delete mode 100644 build/dao/CloudDeviceDAO.js.flow delete mode 100644 build/dao/DeviceDAO.js delete mode 100644 build/dao/DeviceDAO.js.flow delete mode 100644 build/dao/FlowSensorDAO.js delete mode 100644 build/dao/FlowSensorDAO.js.flow delete mode 100644 build/dao/FriendDAO.js delete mode 100644 build/dao/FriendDAO.js.flow delete mode 100644 build/dao/GlassDAO.js delete mode 100644 build/dao/GlassDAO.js.flow delete mode 100644 build/dao/ItemBeverageDAO.js delete mode 100644 build/dao/KegDAO.js delete mode 100644 build/dao/KegDAO.js.flow delete mode 100644 build/dao/LocationDAO.js delete mode 100644 build/dao/LocationDAO.js.flow delete mode 100644 build/dao/ODataDAO.js delete mode 100644 build/dao/ODataDAO.js.flow delete mode 100644 build/dao/OrganizationDAO.js delete mode 100644 build/dao/OrganizationDAO.js.flow delete mode 100644 build/dao/PaymentsDAO.js delete mode 100644 build/dao/PaymentsDAO.js.flow delete mode 100644 build/dao/PermissionDAO.js delete mode 100644 build/dao/PermissionDAO.js.flow delete mode 100644 build/dao/PourChartDAO.js delete mode 100644 build/dao/PourChartDAO.js.flow delete mode 100644 build/dao/PourDAO.js delete mode 100644 build/dao/PourDAO.js.flow delete mode 100644 build/dao/PriceVariantDAO.js delete mode 100644 build/dao/PriceVariantDAO.js.flow delete mode 100644 build/dao/ProductDAO.js delete mode 100644 build/dao/ProductDAO.js.flow delete mode 100644 build/dao/ProductDeviceDAO.js delete mode 100644 build/dao/ProductDeviceDAO.js.flow delete mode 100644 build/dao/ProductFirmwareDAO.js delete mode 100644 build/dao/ProductFirmwareDAO.js.flow delete mode 100644 build/dao/ReportDAO.js delete mode 100644 build/dao/ReportDAO.js.flow delete mode 100644 build/dao/RestDAO.js delete mode 100644 build/dao/RestDAO.js.flow delete mode 100644 build/dao/ScheduleDAO.js delete mode 100644 build/dao/ScheduleDAO.js.flow delete mode 100644 build/dao/SrmDAO.js delete mode 100644 build/dao/SrmDAO.js.flow delete mode 100644 build/dao/StyleDAO.js delete mode 100644 build/dao/StyleDAO.js.flow delete mode 100644 build/dao/Subscription.js delete mode 100644 build/dao/Subscription.js.flow delete mode 100644 build/dao/TapDAO.js delete mode 100644 build/dao/TapDAO.js.flow delete mode 100644 build/fetch.js delete mode 100644 build/fetch.js.flow delete mode 100644 build/filters.js delete mode 100644 build/filters.js.flow delete mode 100644 build/index.js delete mode 100644 build/index.js.flow delete mode 100644 build/signalr/hubs/Hub.js delete mode 100644 build/signalr/hubs/Hub.js.flow delete mode 100644 build/signalr/hubs/TapHub.js delete mode 100644 build/signalr/hubs/TapHub.js.flow delete mode 100644 build/signalr/index.js delete mode 100644 build/signalr/index.js.flow delete mode 100644 build/signalr/types.js delete mode 100644 build/signalr/types.js.flow delete mode 100644 build/translators/BeverageTranslator.js delete mode 100644 build/translators/BeverageTranslator.js.flow delete mode 100644 build/translators/DefaultTranslator.js delete mode 100644 build/translators/DefaultTranslator.js.flow delete mode 100644 build/translators/DeviceTranslator.js delete mode 100644 build/translators/DeviceTranslator.js.flow delete mode 100644 build/translators/KegTranslator.js delete mode 100644 build/translators/KegTranslator.js.flow delete mode 100644 build/translators/LocationTranslator.js delete mode 100644 build/translators/LocationTranslator.js.flow delete mode 100644 build/translators/PermissionTranslator.js delete mode 100644 build/translators/PermissionTranslator.js.flow delete mode 100644 build/translators/PourTranslator.js delete mode 100644 build/translators/PourTranslator.js.flow delete mode 100644 build/translators/ReportTranslator.js delete mode 100644 build/translators/ReportTranslator.js.flow delete mode 100644 build/translators/ScheduleTranslator.js delete mode 100644 build/translators/ScheduleTranslator.js.flow delete mode 100644 build/translators/TapTranslator.js delete mode 100644 build/translators/TapTranslator.js.flow delete mode 100644 build/types.js delete mode 100644 build/types.js.flow delete mode 100644 flow-typed/odata.js delete mode 100644 src/Auth.js delete mode 100644 src/CloudSSEManager.js delete mode 100644 src/Config.js delete mode 100644 src/LoadObject.js delete mode 100644 src/StandardHeaders.js delete mode 100644 src/constants.js delete mode 100644 src/dao/AccountDAO.js delete mode 100644 src/dao/AchievementDAO.js delete mode 100644 src/dao/AvailabilityDAO.js delete mode 100644 src/dao/BaseODataDAO.js delete mode 100644 src/dao/BeverageDAO.js delete mode 100644 src/dao/ClientID.js delete mode 100644 src/dao/CloudDeviceDAO.js delete mode 100644 src/dao/DeviceDAO.js delete mode 100644 src/dao/FlowSensorDAO.js delete mode 100644 src/dao/FriendDAO.js delete mode 100644 src/dao/GlassDAO.js delete mode 100644 src/dao/KegDAO.js delete mode 100644 src/dao/LocationDAO.js delete mode 100644 src/dao/ODataDAO.js delete mode 100644 src/dao/OrganizationDAO.js delete mode 100644 src/dao/PaymentsDAO.js delete mode 100644 src/dao/PermissionDAO.js delete mode 100644 src/dao/PourChartDAO.js delete mode 100644 src/dao/PourDAO.js delete mode 100644 src/dao/PriceVariantDAO.js delete mode 100644 src/dao/ProductDAO.js delete mode 100644 src/dao/ProductDeviceDAO.js delete mode 100644 src/dao/ProductFirmwareDAO.js delete mode 100644 src/dao/ReportDAO.js delete mode 100644 src/dao/RestDAO.js delete mode 100644 src/dao/ScheduleDAO.js delete mode 100644 src/dao/SrmDAO.js delete mode 100644 src/dao/StyleDAO.js delete mode 100644 src/dao/Subscription.js delete mode 100644 src/dao/TapDAO.js delete mode 100644 src/fetch.js delete mode 100644 src/filters.js delete mode 100644 src/index.js delete mode 100644 src/signalr/hubs/Hub.js delete mode 100644 src/signalr/hubs/TapHub.js delete mode 100644 src/signalr/index.js delete mode 100644 src/signalr/types.js delete mode 100644 src/translators/BeverageTranslator.js delete mode 100644 src/translators/DefaultTranslator.js delete mode 100644 src/translators/DeviceTranslator.js delete mode 100644 src/translators/KegTranslator.js delete mode 100644 src/translators/LocationTranslator.js delete mode 100644 src/translators/PermissionTranslator.js delete mode 100644 src/translators/PourTranslator.js delete mode 100644 src/translators/ReportTranslator.js delete mode 100644 src/translators/ScheduleTranslator.js delete mode 100644 src/translators/TapTranslator.js delete mode 100644 src/types.js diff --git a/.babelrc b/.babelrc deleted file mode 100644 index ce4cba1..0000000 --- a/.babelrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "presets": [ - [ - "@babel/preset-env", - { - "exclude": [ - "transform-regenerator" - ] - } - ], - "@babel/preset-flow" - ], - "plugins": [ - "@babel/plugin-proposal-class-properties" - ] -} \ No newline at end of file diff --git a/.eslintignore b/.eslintignore index c7ad91e..b60e5b4 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ build/* flow-typed/* +dist/* \ No newline at end of file diff --git a/.eslintrc b/.eslintrc index 3492528..2b3a919 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,53 +1,69 @@ { - "parser": "babel-eslint", + "root": true, + "parserOptions": { + "project": "./tsconfig.json", + }, + "plugins": ["@typescript-eslint", "import", "prettier"], "extends": [ - "airbnb-base", - "plugin:prettier/recommended", - "prettier/flowtype" + "airbnb-typescript/base", + "prettier", + "plugin:@typescript-eslint/recommended", + "plugin:import/typescript", ], - "env": { - "browser": true, - "node": true, - "mocha": true, - "es6": true - }, - "plugins": ["flowtype", "sorting", "prettier"], + "parser": "@typescript-eslint/parser", "rules": { - "arrow-parens": 0, - "arrow-body-style": [2, "as-needed"], - "flowtype/define-flow-type": 1, - "flowtype/require-valid-file-annotation": [2, "always"], - "flowtype/sort-keys": 2, - "flowtype/use-flow-type": 1, - "import/extensions": 0, + "eol-last": 2, "import/first": 0, "import/newline-after-import": 0, - "import/no-absolute-path": 0, "import/no-duplicates": 0, - "import/no-dynamic-require": 0, "import/no-extraneous-dependencies": 0, "import/no-named-as-default": 0, - "import/no-named-as-default-member": 0, - "import/no-unresolved": [2, { "ignore": ["brewskey.js-api"] }], - "import/order": 0, + "import/no-unresolved": 2, "import/prefer-default-export": 0, "newline-per-chained-call": 0, "no-confusing-arrow": 0, - "no-console": 1, + "no-console": 0, "no-duplicate-imports": 0, "no-mixed-operators": 0, "no-underscore-dangle": 0, "no-use-before-define": 0, - "prefer-template": 2, - "class-methods-use-this": 0, - "require-yield": 0, - "sorting/sort-object-props": [ + "class-methods-use-this": "off", + "no-promise-executor-return": "off", + "quotes": [ 2, + "single", + { + "avoidEscape": true, + }, + ], + "semi": 2, + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": [ + "warn", // or "error" { - "ignoreCase": true, - "ignoreMethods": false - } + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_", + }, ], - "space-unary-ops": 0 - } + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": ["parameter", "variable"], + "leadingUnderscore": "forbid", + "filter": { + // keep this one open for destructuring + "regex": "_*", + "match": false, + }, + "format": null, + }, + { + "selector": "parameter", + "leadingUnderscore": "require", + "format": null, + "modifiers": ["unused"], + }, + ], + }, } diff --git a/.flowconfig b/.flowconfig deleted file mode 100644 index 90f1805..0000000 --- a/.flowconfig +++ /dev/null @@ -1,64 +0,0 @@ -[ignore] -.*/build/* - -[include] - -[libs] -flow-typed/ - -[options] -emoji=true - -esproposal.optional_chaining=enable -esproposal.nullish_coalescing=enable - -;exact_by_default=true - -module.file_ext=.js -module.file_ext=.json -module.file_ext=.ios.js - -munge_underscores=true - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FlowFixMeProps -suppress_type=$FlowFixMeState -suppress_type=$FlowFixMeEmpty - -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+ -suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError - -;experimental.well_formed_exports=true -;experimental.types_first=true -;experimental.abstract_locations=true - -esproposal.decorators=ignore -esproposal.export_star_as=enable - -[lints] -sketchy-null-number=warn -sketchy-null-mixed=warn -sketchy-number=warn -untyped-type-import=warn -nonstrict-import=warn -deprecated-type=warn -unsafe-getters-setters=warn -;inexact-spread=warn -unnecessary-invariant=warn -signature-verification-failure=warn -deprecated-utility=error -;unsafe-addition=error - -[strict] -deprecated-type -nonstrict-import -sketchy-null -unclear-type -unsafe-getters-setters -untyped-import -untyped-type-import - -;[version] -;^0.113.0 \ No newline at end of file diff --git a/.prettierrc b/.prettierrc index d830fbf..bbee69b 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,6 +1,6 @@ { + "tabWidth": 2, "semi": true, "singleQuote": true, - "printWidth": 80, "trailingComma": "all" -} +} \ No newline at end of file diff --git a/build/Auth.js b/build/Auth.js deleted file mode 100644 index 90848c6..0000000 --- a/build/Auth.js +++ /dev/null @@ -1,108 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _fetch = _interopRequireDefault(require("./fetch")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var reformatLoginResponse = function reformatLoginResponse(response) { - return _objectSpread(_objectSpread({}, response), {}, { - accessToken: response.access_token, - expiresAt: response['.expires'], - expiresIn: response.expires_in, - issuedAt: response['.issued'], - refreshToken: response.refresh_token, - roles: JSON.parse(response.roles), - tokenType: response.token_type, - userLogins: JSON.parse(response.userLogins) - }); -}; -var Auth = /*#__PURE__*/function () { - function Auth() { - _classCallCheck(this, Auth); - } - _createClass(Auth, [{ - key: "changePassword", - value: function changePassword(changePasswordArgs) { - return (0, _fetch["default"])('api/account/change-password/', { - body: JSON.stringify(_objectSpread(_objectSpread({}, changePasswordArgs), {}, { - confirmPassword: changePasswordArgs.newPassword - })), - headers: [{ - name: 'Content-type', - value: 'application/json' - }], - method: 'POST' - }); - } - }, { - key: "fetchRoles", - value: function fetchRoles() { - return (0, _fetch["default"])('api/v2/roles/'); - } - }, { - key: "login", - value: function login(_ref) { - var password = _ref.password, - userName = _ref.userName; - return (0, _fetch["default"])("token/", { - body: "grant_type=password&userName=".concat(userName, "&password=").concat(password), - headers: [{ - name: 'Content-type', - value: 'application/x-www-form-urlencoded' - }], - method: 'POST' - }).then(reformatLoginResponse); - } - }, { - key: "refreshToken", - value: function refreshToken(_refreshToken) { - return (0, _fetch["default"])("token/", { - body: "grant_type=refresh_token&refresh_token=".concat(_refreshToken), - headers: [{ - name: 'Content-type', - value: 'application/x-www-form-urlencoded' - }], - method: 'POST' - }).then(reformatLoginResponse); - } - }, { - key: "register", - value: function register(registerArgs) { - return (0, _fetch["default"])('api/account/register/', { - body: JSON.stringify(registerArgs), - headers: [{ - name: 'Content-type', - value: 'application/json' - }], - method: 'POST' - }); - } - }, { - key: "resetPassword", - value: function resetPassword(email) { - return (0, _fetch["default"])('api/account/reset-password/', { - body: JSON.stringify({ - email: email - }), - headers: [{ - name: 'Content-type', - value: 'application/json' - }], - method: 'POST' - }); - } - }]); - return Auth; -}(); -var _default = exports["default"] = new Auth(); \ No newline at end of file diff --git a/build/Auth.js.flow b/build/Auth.js.flow deleted file mode 100644 index 7e77747..0000000 --- a/build/Auth.js.flow +++ /dev/null @@ -1,105 +0,0 @@ -// @flow - -import type { EntityID } from './types'; - -import fetch from './fetch'; - -export type UserCredentials = {| - password: string, - userName: string, -|}; - -export type UserRole = 'Administrator' | 'Super Administator'; - -export type AuthResponse = {| - accessToken: string, - email: string, - expiresAt: Date, - expiresIn: number, - id: EntityID, - issuedAt: Date, - phoneNumber: string, - refreshToken: string, - roles: Array, - tokenType: string, - userLogins: Array, - userName: string, -|}; - -export type ChangePasswordArgs = {| - newPassword: string, - oldPassword: string, -|}; - -export type RegisterArgs = {| - email: string, - password: string, - userName: string, -|}; - -const reformatLoginResponse = (response: any): AuthResponse => ({ - ...response, - accessToken: response.access_token, - expiresAt: response['.expires'], - expiresIn: response.expires_in, - issuedAt: response['.issued'], - refreshToken: response.refresh_token, - roles: JSON.parse(response.roles), - tokenType: response.token_type, - userLogins: JSON.parse(response.userLogins), -}); - -class Auth { - changePassword(changePasswordArgs: ChangePasswordArgs): Promise { - return fetch('api/account/change-password/', { - body: JSON.stringify({ - ...changePasswordArgs, - confirmPassword: changePasswordArgs.newPassword, - }), - headers: [{ name: 'Content-type', value: 'application/json' }], - method: 'POST', - }); - } - - fetchRoles(): Promise> { - return fetch('api/v2/roles/'); - } - - login({ password, userName }: UserCredentials): Promise { - return fetch(`token/`, { - body: `grant_type=password&userName=${userName}&password=${password}`, - headers: [ - { name: 'Content-type', value: 'application/x-www-form-urlencoded' }, - ], - method: 'POST', - }).then(reformatLoginResponse); - } - - refreshToken(refreshToken: string): Promise { - return fetch(`token/`, { - body: `grant_type=refresh_token&refresh_token=${refreshToken}`, - headers: [ - { name: 'Content-type', value: 'application/x-www-form-urlencoded' }, - ], - method: 'POST', - }).then(reformatLoginResponse); - } - - register(registerArgs: RegisterArgs): Promise { - return fetch('api/account/register/', { - body: JSON.stringify(registerArgs), - headers: [{ name: 'Content-type', value: 'application/json' }], - method: 'POST', - }); - } - - resetPassword(email: string): Promise { - return fetch('api/account/reset-password/', { - body: JSON.stringify({ email }), - headers: [{ name: 'Content-type', value: 'application/json' }], - method: 'POST', - }); - } -} - -export default new Auth(); diff --git a/build/CloudSSEManager.js b/build/CloudSSEManager.js deleted file mode 100644 index 2262ccf..0000000 --- a/build/CloudSSEManager.js +++ /dev/null @@ -1,92 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _Subscription2 = _interopRequireDefault(require("./dao/Subscription")); -var _nullthrows = _interopRequireDefault(require("nullthrows")); -var _Config = _interopRequireDefault(require("./Config")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var CloudSSEManager = /*#__PURE__*/function (_Subscription) { - _inherits(CloudSSEManager, _Subscription); - function CloudSSEManager() { - _classCallCheck(this, CloudSSEManager); - return _callSuper(this, CloudSSEManager, arguments); - } - _createClass(CloudSSEManager, null, [{ - key: "subscribe", - value: function subscribe(handler, subscribeOptions) { - var onError = subscribeOptions.onError, - onOpen = subscribeOptions.onOpen; - var session = new EventSource(CloudSSEManager._getUrl(subscribeOptions)); - session.addEventListener('message', function (sseEvent) { - try { - var cloudEventStr = sseEvent.data; - var cloudEvent = JSON.parse(cloudEventStr); - var name = cloudEvent.name, - particleId = cloudEvent.coreid, - data = cloudEvent.data, - publishedAt = cloudEvent.published_at; - handler({ - data: data, - name: name, - particleId: particleId, - publishedAt: publishedAt - }); - } catch (error) { - CloudSSEManager.__emitError(error); - if (onError) { - onError(error); - } - } - }); - if (onOpen) { - session.addEventListener('open', onOpen); - } - if (onError) { - session.addEventListener('error', onError); - } - session.addEventListener('error', function (event) { - CloudSSEManager.__emitError(new Error(JSON.stringify(event))); - }); - CloudSSEManager._sessionByHandler.set(handler, session); - } - }, { - key: "unsubscribe", - value: function unsubscribe(handler) { - var session = CloudSSEManager._sessionByHandler.get(handler); - if (!session) { - return; - } - session.close(); - CloudSSEManager._sessionByHandler["delete"](handler); - } - }, { - key: "_getUrl", - value: function _getUrl(_ref) { - var _ref$eventNamePrefix = _ref.eventNamePrefix, - eventNamePrefix = _ref$eventNamePrefix === void 0 ? '' : _ref$eventNamePrefix, - particleId = _ref.particleId; - var devicesUrl = particleId ? "devices/".concat(particleId, "/events/") : 'events/'; - return "".concat((0, _nullthrows["default"])(_Config["default"].host), "/api/v2/").concat(devicesUrl).concat(eventNamePrefix, "/?access_token=").concat((0, _nullthrows["default"])(_Config["default"].token)); - } - }]); - return CloudSSEManager; -}(_Subscription2["default"]); -_defineProperty(CloudSSEManager, "_sessionByHandler", new Map()); -var _default = exports["default"] = CloudSSEManager; \ No newline at end of file diff --git a/build/CloudSSEManager.js.flow b/build/CloudSSEManager.js.flow deleted file mode 100644 index f10e38e..0000000 --- a/build/CloudSSEManager.js.flow +++ /dev/null @@ -1,90 +0,0 @@ -// @flow - -import Subscription from './dao/Subscription'; -import nullthrows from 'nullthrows'; -import Config from './Config'; - -export type SSESubscriptionOptions = {| - eventNamePrefix?: string, - onError?: (event: MessageEvent) => mixed, - onOpen?: (event: MessageEvent) => mixed, - particleId?: string, -|}; - -export type CloudEvent = {| - data: any, - name: string, - particleId: string, - publishedAt: Date, -|}; - -type SSEHandler = (event: CloudEvent) => any; - -class CloudSSEManager extends Subscription { - static _sessionByHandler: Map = new Map(); - - static subscribe( - handler: SSEHandler, - subscribeOptions: SSESubscriptionOptions, - ) { - const { onError, onOpen } = subscribeOptions; - - const session = new EventSource(CloudSSEManager._getUrl(subscribeOptions)); - - session.addEventListener('message', (sseEvent: MessageEvent): void => { - try { - const cloudEventStr: any = sseEvent.data; - const cloudEvent = JSON.parse(cloudEventStr); - - const { - name, - coreid: particleId, - data, - published_at: publishedAt, - } = cloudEvent; - - handler({ data, name, particleId, publishedAt }); - } catch (error) { - CloudSSEManager.__emitError(error); - if (onError) { - onError(error); - } - } - }); - - if (onOpen) { - session.addEventListener('open', onOpen); - } - - if (onError) { - session.addEventListener('error', onError); - } - - session.addEventListener('error', (event: Event) => { - CloudSSEManager.__emitError(new Error(JSON.stringify(event))); - }); - - CloudSSEManager._sessionByHandler.set(handler, session); - } - - static unsubscribe(handler: SSEHandler) { - const session = CloudSSEManager._sessionByHandler.get(handler); - if (!session) { - return; - } - session.close(); - CloudSSEManager._sessionByHandler.delete(handler); - } - - static _getUrl({ eventNamePrefix = '', particleId }: SSESubscriptionOptions) { - const devicesUrl = particleId ? `devices/${particleId}/events/` : 'events/'; - - return `${nullthrows( - Config.host, - )}/api/v2/${devicesUrl}${eventNamePrefix}/?access_token=${nullthrows( - Config.token, - )}`; - } -} - -export default CloudSSEManager; diff --git a/build/Config.js b/build/Config.js deleted file mode 100644 index e3100a2..0000000 --- a/build/Config.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var Config = /*#__PURE__*/_createClass(function Config() { - _classCallCheck(this, Config); -}); -_defineProperty(Config, "host", null); -_defineProperty(Config, "organizationId", null); -_defineProperty(Config, "token", null); -var _default = exports["default"] = Config; \ No newline at end of file diff --git a/build/Config.js.flow b/build/Config.js.flow deleted file mode 100644 index 35dc671..0000000 --- a/build/Config.js.flow +++ /dev/null @@ -1,13 +0,0 @@ -// @flow - -import type { EntityID } from './types'; - -class Config { - static host: ?string = null; - - static organizationId: ?EntityID = null; - - static token: ?string = null; -} - -export default Config; diff --git a/build/Headers.js b/build/Headers.js deleted file mode 100644 index 9e4ab62..0000000 --- a/build/Headers.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; -var HEADERS = [{ - name: 'timezoneOffset', - value: new Date().getTimezoneOffset().toString() -}, { - name: 'Prefer', - value: 'return=representation' -}]; -var _default = HEADERS; -exports.default = _default; \ No newline at end of file diff --git a/build/LoadObject.js b/build/LoadObject.js deleted file mode 100644 index e788a68..0000000 --- a/build/LoadObject.js +++ /dev/null @@ -1,381 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _nullthrows = _interopRequireDefault(require("nullthrows")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /** - * Copyright (c) 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ -/** - * A secret key that is used to prevent direct construction of these objects, - * this is effectively used to ensure that the constructor is private. - */ -var SECRET = "SECRET_".concat(Math.random()); -var VALUES_TO_CACHE = [undefined, null, false, true, 0, '']; -var CACHE = new Map(VALUES_TO_CACHE.map(function (value) { - return [value, new Map([[true, new Map()], [false, new Map()]])]; -})); - -/** - * Immutable Load Object. This is an immutable object that represents a - * particular point in time for a request. Some examples: - * - * Render spinners while loading: - * - * if (loadObject.isLoading()) { - * return ; - * } - * return
...
; - * - * Render errors with an error: - * - * if (loadObject.hasError()) { - * return ; - * } - * return
...
; - * - * Render normally when there's a value: - * - * return
{loadObject.getValue().text}
; - * - */ -var LoadObject = /*#__PURE__*/function () { - /** - * Private construtor, never call this outside of this class. - */ - function LoadObject(secret, operation, value, error, hasValue) { - _classCallCheck(this, LoadObject); - _defineProperty(this, "_operation", void 0); - _defineProperty(this, "_value", void 0); - _defineProperty(this, "_error", void 0); - _defineProperty(this, "_hasValue", void 0); - if (secret !== SECRET) { - throw new Error('Construct LoadObjects using static methods such as ' + 'LoadObject.loading(), LoadObject.empty()'); - } - this._operation = operation; - this._value = value; - this._error = error; - this._hasValue = hasValue; - } - _createClass(LoadObject, [{ - key: "getOperation", - value: - // Convenient getters - - function getOperation() { - return this._operation; - } - }, { - key: "getValue", - value: function getValue() { - return this._value; - } - }, { - key: "getValueEnforcing", - value: function getValueEnforcing() { - if (!this.hasValue()) { - throw new Error('Expected load object to have a value set.'); - } - // We check hasValue and cast rather than checking if value is null so that - // it's possible to have "null" values that are set. - return this._value; - } - }, { - key: "getError", - value: function getError() { - return this._error; - } - }, { - key: "getErrorEnforcing", - value: function getErrorEnforcing() { - if (!this._error) { - throw new Error('Expected load object to have an error set.'); - } - return this._error; - } - }, { - key: "hasOperation", - value: function hasOperation() { - return this._operation !== 'NONE'; - } - }, { - key: "hasValue", - value: function hasValue() { - return this._hasValue; - } - }, { - key: "hasError", - value: function hasError() { - return !!this._error; - } - }, { - key: "isEmpty", - value: function isEmpty() { - return !this.hasValue() && !this.hasOperation() && !this.hasError(); - } - - // Convenient setters - }, { - key: "setOperation", - value: function setOperation(operation) { - if (this._operation === operation) { - return this; - } - return LoadObject._create(operation, this.getValue(), this.getError(), this.hasValue()); - } - }, { - key: "setValue", - value: function setValue(value) { - if (this._value === value && this._hasValue === true) { - return this; - } - return LoadObject._create(this.getOperation(), value, this.getError(), this.hasValue()); - } - }, { - key: "setError", - value: function setError(error) { - if (this._error === error) { - return this; - } - return LoadObject._create(this.getOperation(), this.getValue(), error, this.hasValue()); - } - }, { - key: "removeOperation", - value: function removeOperation() { - if (this._operation === 'NONE') { - return this; - } - return LoadObject._create('NONE', this.getValue(), this.getError(), this.hasValue()); - } - }, { - key: "removeValue", - value: function removeValue() { - if (this._value === undefined && this._hasValue === false) { - return this; - } - return LoadObject._create(this.getOperation(), undefined, this.getError(), false); - } - }, { - key: "removeError", - value: function removeError() { - if (this._error === undefined) { - return this; - } - return LoadObject._create(this.getOperation(), this.getValue(), undefined, this.hasValue()); - } - }, { - key: "map", - value: function map(fn) { - if (!this.hasValue()) { - return this; - } - var output = fn(this.getValueEnforcing()); - var loader = output instanceof LoadObject ? output : this.setValue(output); - return loader; - } - }, { - key: "mapError", - value: function mapError(fn) { - if (!this.hasError()) { - return this; - } - var output = fn(this.getErrorEnforcing()); - var loader = output instanceof LoadObject ? output : this.setValue(output); - return loader; - } - - // some helper methods to check specific operations - }, { - key: "isDone", - value: function isDone() { - return !this.hasOperation(); - } - }, { - key: "isCreating", - value: function isCreating() { - return this.getOperation() === 'CREATING'; - } - }, { - key: "isLoading", - value: function isLoading() { - return this.getOperation() === 'LOADING'; - } - }, { - key: "isUpdating", - value: function isUpdating() { - return this.getOperation() === 'UPDATING'; - } - }, { - key: "isDeleting", - value: function isDeleting() { - return this.getOperation() === 'DELETING'; - } - - // Provide some helpers for mutating the operations - }, { - key: "done", - value: function done() { - return this.removeOperation(); - } - }, { - key: "creating", - value: function creating() { - return this.setOperation('CREATING'); - } - }, { - key: "loading", - value: function loading() { - return this.setOperation('LOADING'); - } - }, { - key: "updating", - value: function updating() { - return this.setOperation('UPDATING'); - } - }, { - key: "deleting", - value: function deleting() { - return this.setOperation('DELETING'); - } - - // Static helpers for creating LoadObjects - }], [{ - key: "_create", - value: function _create(operation, value, error, hasValue) { - var cachedItem = LoadObject._getFromCache(operation, value, error, hasValue); - return cachedItem || new LoadObject(SECRET, operation, value, error, hasValue); - } - }, { - key: "_getFromCache", - value: function _getFromCache(operation, value, error, hasValue) { - if (error !== undefined || !CACHE.has(value)) { - return null; - } - var operationMapByHasValue = (0, _nullthrows["default"])(CACHE.get(value)); - var loaderByOperation = (0, _nullthrows["default"])(operationMapByHasValue.get(hasValue)); - if (!loaderByOperation.has(operation)) { - var object = new LoadObject(SECRET, operation, value, error, hasValue); - loaderByOperation.set(operation, object); - } - return (0, _nullthrows["default"])(loaderByOperation.get(operation)); - } - }, { - key: "empty", - value: function empty() { - return LoadObject._create('NONE', undefined, undefined, false); - } - }, { - key: "creating", - value: function creating() { - return LoadObject._create('CREATING', undefined, undefined, false); - } - }, { - key: "loading", - value: function loading() { - return LoadObject._create('LOADING', undefined, undefined, false); - } - }, { - key: "updating", - value: function updating() { - return LoadObject._create('UPDATING', undefined, undefined, false); - } - }, { - key: "deleting", - value: function deleting() { - return LoadObject._create('DELETING', undefined, undefined, false); - } - }, { - key: "withError", - value: function withError(error) { - return LoadObject._create('NONE', undefined, error, false); - } - }, { - key: "withValue", - value: function withValue(value) { - if (value instanceof LoadObject) { - return value; - } - return LoadObject._create('NONE', value, undefined, true); - } - }, { - key: "merge", - value: function merge(loadObjects) { - var shouldReturnAllValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var values = []; - var error = null; - var operation = 'NONE'; - var hasAllValues = true; - - // eslint-disable-next-line no-restricted-syntax - var _iterator = _createForOfIteratorHelper(loadObjects), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var _loadObject = _step.value; - if (_loadObject.hasOperation()) { - var loadObjectOperation = _loadObject.getOperation(); - if (!shouldReturnAllValues) { - return LoadObject.empty().setOperation(loadObjectOperation); - } - operation = operation || loadObjectOperation; - values.push(_loadObject.getValue()); - } else if (_loadObject.hasError()) { - if (!shouldReturnAllValues) { - return LoadObject.withError(_loadObject.getErrorEnforcing()); - } - values.push(_loadObject.getValue()); - error = error || _loadObject.getErrorEnforcing(); - } else if (_loadObject.isEmpty()) { - values.push(undefined); - hasAllValues = false; - } else if (_loadObject.hasValue()) { - values.push(_loadObject.getValueEnforcing()); - } else { - throw new Error("This shouldn't happen"); - } - } - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - if (!shouldReturnAllValues) { - if (error) { - return LoadObject.withError(error); - } - if (operation !== 'NONE') { - return LoadObject.empty().setOperation(operation); - } - if (!hasAllValues) { - return LoadObject.empty(); - } - } - var output = LoadObject.withValue(values); - if (error) { - output = output.setError(error); - } - return output.setOperation(operation); - } - }]); - return LoadObject; -}(); -var _default = exports["default"] = LoadObject; \ No newline at end of file diff --git a/build/LoadObject.js.flow b/build/LoadObject.js.flow deleted file mode 100644 index 20e0d27..0000000 --- a/build/LoadObject.js.flow +++ /dev/null @@ -1,480 +0,0 @@ -/** - * Copyright (c) 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @flow - */ - -import nullthrows from 'nullthrows'; - -export type LoadObjectOperation = - | 'NONE' - | 'CREATING' - | 'LOADING' - | 'UPDATING' - | 'DELETING'; - -type Unwrap = (loadObject: LoadObject) => T; - -/** - * A secret key that is used to prevent direct construction of these objects, - * this is effectively used to ensure that the constructor is private. - */ -const SECRET = `SECRET_${Math.random()}`; - -const VALUES_TO_CACHE = [undefined, null, false, true, 0, '']; -const CACHE: Map< - any, - Map>>, -> = new Map( - VALUES_TO_CACHE.map((value: any): any => [ - value, - new Map([ - [true, new Map()], - [false, new Map()], - ]), - ]), -); - -/** - * Immutable Load Object. This is an immutable object that represents a - * particular point in time for a request. Some examples: - * - * Render spinners while loading: - * - * if (loadObject.isLoading()) { - * return ; - * } - * return
...
; - * - * Render errors with an error: - * - * if (loadObject.hasError()) { - * return ; - * } - * return
...
; - * - * Render normally when there's a value: - * - * return
{loadObject.getValue().text}
; - * - */ -class LoadObject { - _operation: LoadObjectOperation; - - _value: ?TValue; - - _error: ?Error; - - _hasValue: boolean; - - /** - * Private construtor, never call this outside of this class. - */ - constructor( - secret: string, - operation: LoadObjectOperation, - value: ?TValue, - error: ?Error, - hasValue: boolean, - ) { - if (secret !== SECRET) { - throw new Error( - 'Construct LoadObjects using static methods such as ' + - 'LoadObject.loading(), LoadObject.empty()', - ); - } - this._operation = operation; - this._value = value; - this._error = error; - this._hasValue = hasValue; - } - - static _create( - operation: LoadObjectOperation, - value: ?TValue, - error: ?Error, - hasValue: boolean, - ): LoadObject { - const cachedItem = LoadObject._getFromCache( - operation, - value, - error, - hasValue, - ); - return ( - cachedItem || new LoadObject(SECRET, operation, value, error, hasValue) - ); - } - - static _getFromCache( - operation: LoadObjectOperation, - value: ?TValue, - error: ?Error, - hasValue: boolean, - ): ?LoadObject { - if (error !== undefined || !CACHE.has(value)) { - return null; - } - - const operationMapByHasValue = nullthrows(CACHE.get(value)); - const loaderByOperation = nullthrows(operationMapByHasValue.get(hasValue)); - if (!loaderByOperation.has(operation)) { - const object = new LoadObject(SECRET, operation, value, error, hasValue); - loaderByOperation.set(operation, object); - } - - return nullthrows(loaderByOperation.get(operation)); - } - - // Convenient getters - - getOperation(): LoadObjectOperation { - return this._operation; - } - - getValue(): ?TValue { - return this._value; - } - - getValueEnforcing(): TValue { - if (!this.hasValue()) { - throw new Error('Expected load object to have a value set.'); - } - // We check hasValue and cast rather than checking if value is null so that - // it's possible to have "null" values that are set. - return (this._value: any); - } - - getError(): ?Error { - return this._error; - } - - getErrorEnforcing(): Error { - if (!this._error) { - throw new Error('Expected load object to have an error set.'); - } - return this._error; - } - - hasOperation(): boolean { - return this._operation !== 'NONE'; - } - - hasValue(): boolean { - return this._hasValue; - } - - hasError(): boolean { - return !!this._error; - } - - isEmpty(): boolean { - return !this.hasValue() && !this.hasOperation() && !this.hasError(); - } - - // Convenient setters - - setOperation(operation: LoadObjectOperation): LoadObject { - if (this._operation === operation) { - return this; - } - - return LoadObject._create( - operation, - this.getValue(), - this.getError(), - this.hasValue(), - ); - } - - setValue(value: TValue): LoadObject { - if (this._value === value && this._hasValue === true) { - return this; - } - return LoadObject._create( - this.getOperation(), - value, - this.getError(), - this.hasValue(), - ); - } - - setError(error: Error): LoadObject { - if (this._error === error) { - return this; - } - return LoadObject._create( - this.getOperation(), - this.getValue(), - error, - this.hasValue(), - ); - } - - removeOperation(): LoadObject { - if (this._operation === 'NONE') { - return this; - } - return LoadObject._create( - 'NONE', - this.getValue(), - this.getError(), - this.hasValue(), - ); - } - - removeValue(): LoadObject { - if (this._value === undefined && this._hasValue === false) { - return this; - } - return LoadObject._create( - this.getOperation(), - undefined, - this.getError(), - false, - ); - } - - removeError(): LoadObject { - if (this._error === undefined) { - return this; - } - return LoadObject._create( - this.getOperation(), - this.getValue(), - undefined, - this.hasValue(), - ); - } - - map( - fn: (value: TValue) => TType | LoadObject, - ): LoadObject { - if (!this.hasValue()) { - return (this: any); - } - - const output = fn(this.getValueEnforcing()); - - const loader = - output instanceof LoadObject ? output : this.setValue((output: any)); - - return (loader: any); - } - - mapError( - fn: (value: Error) => Error | LoadObject, - ): LoadObject { - if (!this.hasError()) { - return (this: any); - } - - const output = fn(this.getErrorEnforcing()); - - const loader = - output instanceof LoadObject ? output : this.setValue((output: any)); - - return (loader: any); - } - - // some helper methods to check specific operations - - isDone(): boolean { - return !this.hasOperation(); - } - - isCreating(): boolean { - return this.getOperation() === 'CREATING'; - } - - isLoading(): boolean { - return this.getOperation() === 'LOADING'; - } - - isUpdating(): boolean { - return this.getOperation() === 'UPDATING'; - } - - isDeleting(): boolean { - return this.getOperation() === 'DELETING'; - } - - // Provide some helpers for mutating the operations - - done(): LoadObject { - return this.removeOperation(); - } - - creating(): LoadObject { - return this.setOperation('CREATING'); - } - - loading(): LoadObject { - return this.setOperation('LOADING'); - } - - updating(): LoadObject { - return this.setOperation('UPDATING'); - } - - deleting(): LoadObject { - return this.setOperation('DELETING'); - } - - // Static helpers for creating LoadObjects - - static empty(): LoadObject { - return LoadObject._create('NONE', undefined, undefined, false); - } - - static creating(): LoadObject { - return LoadObject._create('CREATING', undefined, undefined, false); - } - - static loading(): LoadObject { - return LoadObject._create('LOADING', undefined, undefined, false); - } - - static updating(): LoadObject { - return LoadObject._create('UPDATING', undefined, undefined, false); - } - - static deleting(): LoadObject { - return LoadObject._create('DELETING', undefined, undefined, false); - } - - static withError(error: Error): LoadObject { - return LoadObject._create('NONE', undefined, error, false); - } - - static withValue(value: V | LoadObject): LoadObject { - if (value instanceof LoadObject) { - return value; - } - - return LoadObject._create('NONE', value, undefined, true); - } - - static merge< - T1, - T2, - T3, - T4, - T5, - T6, - T7, - T8, - T9, - T: - | [LoadObject, LoadObject] - | [LoadObject, LoadObject, LoadObject] - | [LoadObject, LoadObject, LoadObject, LoadObject] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ], - >( - loadObjects: T, - shouldReturnAllValues: boolean = false, - ): LoadObject<$TupleMap> { - const values = []; - let error = null; - let operation = 'NONE'; - let hasAllValues = true; - - // eslint-disable-next-line no-restricted-syntax - for (const loadObject of loadObjects) { - if (loadObject.hasOperation()) { - const loadObjectOperation = loadObject.getOperation(); - - if (!shouldReturnAllValues) { - return LoadObject.empty().setOperation(loadObjectOperation); - } - operation = operation || loadObjectOperation; - values.push(loadObject.getValue()); - } else if (loadObject.hasError()) { - if (!shouldReturnAllValues) { - return LoadObject.withError(loadObject.getErrorEnforcing()); - } - - values.push(loadObject.getValue()); - error = error || loadObject.getErrorEnforcing(); - } else if (loadObject.isEmpty()) { - values.push(undefined); - hasAllValues = false; - } else if (loadObject.hasValue()) { - values.push(loadObject.getValueEnforcing()); - } else { - throw new Error("This shouldn't happen"); - } - } - - if (!shouldReturnAllValues) { - if (error) { - return LoadObject.withError(error); - } - if (operation !== 'NONE') { - return LoadObject.empty().setOperation(operation); - } - - if (!hasAllValues) { - return LoadObject.empty(); - } - } - - let output = LoadObject.withValue((values: any)); - if (error) { - output = output.setError(error); - } - - return output.setOperation(operation); - } -} - -export default LoadObject; diff --git a/build/StandardHeaders.js b/build/StandardHeaders.js deleted file mode 100644 index 257a92b..0000000 --- a/build/StandardHeaders.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _default = exports["default"] = [{ - name: 'timezoneOffset', - value: new Date().getTimezoneOffset().toString() -}, { - name: 'Prefer', - value: 'return=representation' -}]; \ No newline at end of file diff --git a/build/StandardHeaders.js.flow b/build/StandardHeaders.js.flow deleted file mode 100644 index c3f2655..0000000 --- a/build/StandardHeaders.js.flow +++ /dev/null @@ -1,8 +0,0 @@ -// @flow -export default [ - { - name: 'timezoneOffset', - value: new Date().getTimezoneOffset().toString(), - }, - { name: 'Prefer', value: 'return=representation' }, -]; diff --git a/build/constants.js b/build/constants.js deleted file mode 100644 index 2dac5f5..0000000 --- a/build/constants.js +++ /dev/null @@ -1,50 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.PERMISSIONS_MAP = exports.FILTER_OPERATORS = exports.FILTER_FUNCTION_OPERATORS = exports.DAO_ENTITIES = void 0; -var PERMISSIONS_MAP = exports.PERMISSIONS_MAP = { - Administrator: 4, - BannedFromTap: 1, - Edit: 3, - Read: 2 -}; -var DAO_ENTITIES = exports.DAO_ENTITIES = { - ACCOUNTS: 'accounts', - ACHIEVEMENTS: 'achievements', - BEVERAGE_AVAILABILITIES: 'beverage-availabilities', - BEVERAGE_GLASSES: 'beverage-glasses', - BEVERAGE_SRMS: 'beverage-srms', - BEVERAGE_STYLES: 'beverage-styles', - BEVERAGES: 'beverages', - DEVICES: 'devices', - FLOW_SENSORS: 'flow-sensors', - FRIENDS: 'friends', - KEGS: 'kegs', - LOCATIONS: 'locations', - ORGANIZATIONS: 'organizations', - PERMISSIONS: 'permissions', - POUR_CHART: 'chart', - POURS: 'pours', - PRICE_VARIANTS: 'price-variants', - REPORTS: 'reports', - SCHEDULE_GROUPS: 'schedule-groups', - SCHEDULES: 'schedules', - TAPS: 'taps' -}; -var FILTER_OPERATORS = exports.FILTER_OPERATORS = { - ANY: 'any', - CONTAINS: 'contains', - ENDS_WITH: 'endswith', - EQUALS: 'eq', - GREATER_THAN: 'gt', - GREATER_THAN_OR_EQUAL: 'ge', - LESS_THAN: 'lt', - LESS_THAN_OR_EQUAL: 'le', - NOT_ENDS_WITH: 'not endswith', - NOT_EQUALS: 'ne', - NOT_STARTS_WITH: 'not startswith', - STARTS_WITH: 'startswith' -}; -var FILTER_FUNCTION_OPERATORS = exports.FILTER_FUNCTION_OPERATORS = [FILTER_OPERATORS.CONTAINS, FILTER_OPERATORS.ENDS_WITH, FILTER_OPERATORS.NOT_ENDS_WITH, FILTER_OPERATORS.NOT_STARTS_WITH, FILTER_OPERATORS.STARTS_WITH]; \ No newline at end of file diff --git a/build/constants.js.flow b/build/constants.js.flow deleted file mode 100644 index a6b4957..0000000 --- a/build/constants.js.flow +++ /dev/null @@ -1,61 +0,0 @@ -// @flow - -import type { EntityName } from './types'; -import type { FilterOperator } from './filters'; -import type { PermissionType } from './dao/PermissionDAO'; - -export const PERMISSIONS_MAP: { [key: PermissionType]: number } = { - Administrator: 4, - BannedFromTap: 1, - Edit: 3, - Read: 2, -}; - -export const DAO_ENTITIES: { [key: string]: EntityName } = { - ACCOUNTS: 'accounts', - ACHIEVEMENTS: 'achievements', - BEVERAGE_AVAILABILITIES: 'beverage-availabilities', - BEVERAGE_GLASSES: 'beverage-glasses', - BEVERAGE_SRMS: 'beverage-srms', - BEVERAGE_STYLES: 'beverage-styles', - BEVERAGES: 'beverages', - DEVICES: 'devices', - FLOW_SENSORS: 'flow-sensors', - FRIENDS: 'friends', - KEGS: 'kegs', - LOCATIONS: 'locations', - ORGANIZATIONS: 'organizations', - PERMISSIONS: 'permissions', - POUR_CHART: 'chart', - POURS: 'pours', - PRICE_VARIANTS: 'price-variants', - REPORTS: 'reports', - SCHEDULE_GROUPS: 'schedule-groups', - SCHEDULES: 'schedules', - TAPS: 'taps', -}; - -const FILTER_OPERATORS: { [key: string]: FilterOperator } = { - ANY: 'any', - CONTAINS: 'contains', - ENDS_WITH: 'endswith', - EQUALS: 'eq', - GREATER_THAN: 'gt', - GREATER_THAN_OR_EQUAL: 'ge', - LESS_THAN: 'lt', - LESS_THAN_OR_EQUAL: 'le', - NOT_ENDS_WITH: 'not endswith', - NOT_EQUALS: 'ne', - NOT_STARTS_WITH: 'not startswith', - STARTS_WITH: 'startswith', -}; - -const FILTER_FUNCTION_OPERATORS = [ - FILTER_OPERATORS.CONTAINS, - FILTER_OPERATORS.ENDS_WITH, - FILTER_OPERATORS.NOT_ENDS_WITH, - FILTER_OPERATORS.NOT_STARTS_WITH, - FILTER_OPERATORS.STARTS_WITH, -]; - -export { FILTER_OPERATORS, FILTER_FUNCTION_OPERATORS }; diff --git a/build/dao/AccountDAO.js b/build/dao/AccountDAO.js deleted file mode 100644 index 0282a79..0000000 --- a/build/dao/AccountDAO.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var AccountDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(AccountDAO, _ODataDAO); - function AccountDAO() { - _classCallCheck(this, AccountDAO); - return _callSuper(this, AccountDAO, [{ - entityName: _constants.DAO_ENTITIES.ACCOUNTS, - translator: new _DefaultTranslator["default"]() - }]); - } - return _createClass(AccountDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new AccountDAO(); \ No newline at end of file diff --git a/build/dao/AccountDAO.js.flow b/build/dao/AccountDAO.js.flow deleted file mode 100644 index bb0afe7..0000000 --- a/build/dao/AccountDAO.js.flow +++ /dev/null @@ -1,44 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Account = {| - accessFailedCount: ?number, - banned: ?boolean, - createdDate: Date, - email: ?string, - emailConfirmed: ?boolean, - fullName: ?string, - id: EntityID, - lockoutEnabled: ?boolean, - lockoutEndDateUtc: ?string, - logins: ?Object, - phoneNumber: ?string, - phoneNumberConfirmed: ?boolean, - roles: ?Object, - twoFactorEnabled: ?boolean, - userName: string, -|}; - -export type AccountMutator = {| - email: string, - fullName?: string, - id?: EntityID, - phoneNumber: string, - userName: string, -|}; - -class AccountDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.ACCOUNTS, - translator: new DefaultTranslator(), - }); - } -} - -export default new AccountDAO(); diff --git a/build/dao/AchievementDAO.js b/build/dao/AchievementDAO.js deleted file mode 100644 index 18deae8..0000000 --- a/build/dao/AchievementDAO.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var AchievementDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(AchievementDAO, _ODataDAO); - function AchievementDAO() { - _classCallCheck(this, AchievementDAO); - return _callSuper(this, AchievementDAO, [{ - entityName: _constants.DAO_ENTITIES.ACHIEVEMENTS, - translator: new _DefaultTranslator["default"]() - }]); - } - _createClass(AchievementDAO, [{ - key: "fetchAchievementCounters", - value: function fetchAchievementCounters(userID) { - var queryOptions = { - apply: "filter((owner/id eq '".concat(userID, "'))") + '/groupby((achievementType),aggregate($count as total))' - }; - return this.__fetchCustom(this.__buildHandler(queryOptions), queryOptions); - } - }]); - return AchievementDAO; -}(_ODataDAO2["default"]); -var _default = exports["default"] = new AchievementDAO(); \ No newline at end of file diff --git a/build/dao/AchievementDAO.js.flow b/build/dao/AchievementDAO.js.flow deleted file mode 100644 index 4fc5abf..0000000 --- a/build/dao/AchievementDAO.js.flow +++ /dev/null @@ -1,62 +0,0 @@ -// @flow - -import type LoadObject from '../LoadObject'; -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type AchievementType = - | 'BackOnTheBus' - | 'BeerAficionado' - | 'BeerAuthority' - | 'BeerBeforeNoon' - | 'BeerBuff' - | 'BeerConnoisseur' - | 'DrankAKeg' - | 'DrankFiveKegs' - | 'DrankTenKegs' - | 'Edward40Hands' - | 'FirstPourOfTheDay' - | 'HatTrick' - | 'KingOfTheKeg' - | 'LastPourOfTheKeg' - | 'LastPourOfTheNight' - | 'LightWeight' - | 'PowerHour' - | 'SevenDaysStraight' - | 'Welcome'; - -export type Achievement = {| - achievementType: AchievementType, - createdDate: Date, - id: EntityID, -|}; - -export type AchievementCounter = {| - achievementType: AchievementType, - total: number, -|}; - -class AchievementDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.ACHIEVEMENTS, - translator: new DefaultTranslator(), - }); - } - - fetchAchievementCounters( - userID: EntityID, - ): LoadObject> { - const queryOptions = { - apply: - `filter((owner/id eq '${userID}'))` + - '/groupby((achievementType),aggregate($count as total))', - }; - return this.__fetchCustom(this.__buildHandler(queryOptions), queryOptions); - } -} - -export default new AchievementDAO(); diff --git a/build/dao/AvailabilityDAO.js b/build/dao/AvailabilityDAO.js deleted file mode 100644 index 49ccfdd..0000000 --- a/build/dao/AvailabilityDAO.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var AvailabilityDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(AvailabilityDAO, _ODataDAO); - function AvailabilityDAO() { - _classCallCheck(this, AvailabilityDAO); - return _callSuper(this, AvailabilityDAO, [{ - entityName: _constants.DAO_ENTITIES.BEVERAGE_AVAILABILITIES, - translator: new _DefaultTranslator["default"]() - }]); - } - return _createClass(AvailabilityDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new AvailabilityDAO(); \ No newline at end of file diff --git a/build/dao/AvailabilityDAO.js.flow b/build/dao/AvailabilityDAO.js.flow deleted file mode 100644 index 7ac4a62..0000000 --- a/build/dao/AvailabilityDAO.js.flow +++ /dev/null @@ -1,24 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Availability = {| - description: ?string, - id: EntityID, - name: string, -|}; - -class AvailabilityDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGE_AVAILABILITIES, - translator: new DefaultTranslator(), - }); - } -} - -export default new AvailabilityDAO(); diff --git a/build/dao/BaseODataDAO.js b/build/dao/BaseODataDAO.js deleted file mode 100644 index 044aede..0000000 --- a/build/dao/BaseODataDAO.js +++ /dev/null @@ -1,276 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _odata = _interopRequireDefault(require("odata")); -var _Subscription2 = _interopRequireDefault(require("./Subscription")); -var _constants = require("../constants"); -var _Config = _interopRequireDefault(require("../Config")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } -function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } -var ID_REG_EXP = /\bid\b/; -var parseNavProp = function parseNavProp(_ref) { - var _ref2 = _slicedToArray(_ref, 2), - name = _ref2[0], - navProp = _ref2[1]; - var _ref3 = navProp, - expand = _ref3.expand, - select = _ref3.select; - var delimiter = select && expand ? ';' : ''; - var selectString = select ? "$select=".concat(select.join(',')) : ''; - var expandString = expand ? "".concat(delimiter, "$expand=").concat(Array.from(Object.entries(expand)).map(parseNavProp).join(',')) : ''; - return "".concat(name, "(").concat(selectString).concat(expandString, ")"); -}; -var BaseODataDAO = /*#__PURE__*/function (_Subscription) { - _inherits(BaseODataDAO, _Subscription); - function BaseODataDAO(config) { - var _this; - _classCallCheck(this, BaseODataDAO); - _this = _callSuper(this, BaseODataDAO); - _defineProperty(_assertThisInitialized(_this), "__config", void 0); - // todo figure out if we can remove that completly - _defineProperty(_assertThisInitialized(_this), "__reformatIDValue", function (value) { - return ( - // eslint-disable-next-line no-restricted-globals - isNaN(value) || value === '' ? "'".concat(value, "'") : value - ); - }); - _defineProperty(_assertThisInitialized(_this), "__reformatQueryValue", function (value) { - return typeof value === 'string' && !Date.parse(value) ? "'".concat(encodeURIComponent(value), "'") : value; - }); - _this.__config = config; - return _this; - } - _createClass(BaseODataDAO, [{ - key: "getEntityName", - value: function getEntityName() { - return this.__config.entityName; - } - }, { - key: "getTranslator", - value: function getTranslator() { - return this.__config.translator; - } - }, { - key: "__buildHandler", - value: function __buildHandler() { - var queryOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var shouldSelectExpand = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var handler = (0, _odata["default"])(this.getEntityName()); - return this.__setupHandler(handler, queryOptions, shouldSelectExpand); - } - }, { - key: "__setupHandler", - value: function __setupHandler(handler) { - var queryOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var shouldExpand = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - var apply = queryOptions.apply, - shouldCount = queryOptions.shouldCount, - search = queryOptions.search, - skip = queryOptions.skip, - take = queryOptions.take; - var navProps = this.__config.navigationProperties; - if (!search && shouldExpand && navProps) { - var navPropsString = Array.from(Object.entries(navProps)).map(parseNavProp).join(','); - handler.expand(navPropsString); - } - if (Number.isInteger(skip)) { - handler.skip(skip || 0); - } - if (Number.isInteger(take)) { - handler.top(take || 0); - } - if (shouldCount) { - handler.inlineCount('true'); - } - this._setFilters(handler, queryOptions); - if (queryOptions.orderBy) { - var _queryOptions$orderBy = queryOptions.orderBy[0], - orderBy = _queryOptions$orderBy.column, - direction = _queryOptions$orderBy.direction; - if (direction === 'desc') { - handler.orderByDesc(orderBy); - } else if (orderBy) { - handler.orderBy(orderBy); - } - } - if (search) { - handler.customParam('$search', search); - } - if (apply) { - handler.customParam('$apply', apply); - } - if (_Config["default"].organizationId && !queryOptions.shouldIgnoreOrganizationID) { - handler.customParam('organizationID', _Config["default"].organizationId.toString()); - } - return handler; - } - }, { - key: "_getCacheKey", - value: function _getCacheKey(queryOptions) { - return JSON.stringify(queryOptions || '_'); - } - }, { - key: "_setFilters", - value: function _setFilters(handler) { - var _this2 = this; - var queryOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - if (!queryOptions.filter && (!queryOptions.filters || !queryOptions.filters.length)) { - return handler; - } - if (queryOptions.filters == null) { - return handler.filter(queryOptions.filter); - } - var renderedFilters = queryOptions.filters.map(function (queryFilter) { - var operator = queryFilter.operator, - params = queryFilter.params, - values = queryFilter.values; - var isValidOperator = _constants.FILTER_FUNCTION_OPERATORS.find(function (op) { - return op === operator; - }); - var isAnyOperator = operator === _constants.FILTER_OPERATORS.ANY; - var filters = values.map(function (value) { - return params.map(function (param) { - // Any operator should have the value pre-formatted - if (isAnyOperator) { - return "(".concat(param, "/any(").concat(value, "))"); - } - - // we have to use two reformat functions because of the issue: - // https://github.com/Brewskey/brewskey.admin/issues/371 - // this is not ideal though, because it doesn't resolve - // situations when we get stringified value from front-end - // which is stored as number on the server. - var reformattedValue = ID_REG_EXP.test(param) ? _this2.__reformatIDValue(value) : _this2.__reformatQueryValue(value); - if (isValidOperator) { - return "(".concat(operator, "(").concat(param, ", ").concat(reformattedValue, "))"); - } - return "(".concat(param, " ").concat(operator, " ").concat(reformattedValue, ")"); - }); - }); - return filters.reduce(function (previousFilter, currentFilters) { - return [].concat(_toConsumableArray(previousFilter), _toConsumableArray(currentFilters)); - }).join(' or '); - }).map(function (filter) { - return "(".concat(filter, ")"); - }).join(' and '); - if (queryOptions.filter != null) { - renderedFilters = "".concat(queryOptions.filter, " and ").concat(renderedFilters); - } - return handler.filter(renderedFilters); - } - }, { - key: "__resolveSingle", - value: function __resolveSingle(handler, params) { - var _this3 = this; - var method = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'GET'; - return this.__resolve(handler, params, method).then(function (result) { - return _this3.getTranslator().fromApi(result.data); - }); - } - }, { - key: "__resolveMany", - value: function () { - var _resolveMany = _asyncToGenerator(function* (handler, params) { - var _this4 = this; - var method = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'GET'; - var result = yield this.__resolve(handler, params, method); - return (result.data || []).map(function (item) { - return _this4.getTranslator().fromApi(item); - }); - }); - function __resolveMany(_x, _x2) { - return _resolveMany.apply(this, arguments); - } - return __resolveMany; - }() - }, { - key: "__resolveManyIDs", - value: function () { - var _resolveManyIDs = _asyncToGenerator(function* (handler, params) { - var idSelector = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (item) { - return item.id; - }; - var method = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'GET'; - var result = yield this.__resolve(handler, params, method); - return (result.data || []).map(idSelector); - }); - function __resolveManyIDs(_x3, _x4) { - return _resolveManyIDs.apply(this, arguments); - } - return __resolveManyIDs; - }() - }, { - key: "__resolve", - value: function () { - var _resolve = _asyncToGenerator(function* (handler) { - var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var method = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'GET'; - var request; - switch (method) { - case 'DELETE': - { - request = handler.remove().save(); - break; - } - case 'PATCH': - { - request = handler.patch(params).save(); - break; - } - case 'POST': - { - request = handler.post(params).save(); - break; - } - case 'PUT': - { - request = handler.put(params).save(); - break; - } - default: - { - request = handler.get(); - } - } - return request["catch"](function (error) { - // window.console.error(method || 'get', error, handler, params); - throw error; - }); - }); - function __resolve(_x5) { - return _resolve.apply(this, arguments); - } - return __resolve; - }() - }]); - return BaseODataDAO; -}(_Subscription2["default"]); -var _default = exports["default"] = BaseODataDAO; \ No newline at end of file diff --git a/build/dao/BaseODataDAO.js.flow b/build/dao/BaseODataDAO.js.flow deleted file mode 100644 index e9dda94..0000000 --- a/build/dao/BaseODataDAO.js.flow +++ /dev/null @@ -1,261 +0,0 @@ -// @flow - -import type { OHandler } from 'odata'; -import type { - DAOTranslator, - EntityID, - EntityName, - ODataDAOConfig, - ODataDAOResult, - QueryOptions, - RequestMethod, -} from '../types'; -import type { QueryFilter } from '../filters'; - -import oHandler from 'odata'; -import Subscription from './Subscription'; -import { FILTER_FUNCTION_OPERATORS, FILTER_OPERATORS } from '../constants'; -import Config from '../Config'; - -const ID_REG_EXP = /\bid\b/; - -const parseNavProp = ([name, navProp]: [string, mixed]): string => { - const { expand, select } = (navProp: any); - const delimiter = select && expand ? ';' : ''; - const selectString = select ? `$select=${select.join(',')}` : ''; - - const expandString = expand - ? `${delimiter}$expand=${Array.from(Object.entries(expand)) - .map(parseNavProp) - .join(',')}` - : ''; - - return `${name}(${selectString}${expandString})`; -}; - -class BaseODataDAO extends Subscription { - __config: ODataDAOConfig; - - constructor(config: ODataDAOConfig) { - super(); - this.__config = config; - } - - getEntityName(): EntityName { - return this.__config.entityName; - } - - getTranslator(): DAOTranslator { - return this.__config.translator; - } - - // todo figure out if we can remove that completly - __reformatIDValue = (value: string): string | number => - // eslint-disable-next-line no-restricted-globals - isNaN(value) || value === '' ? `'${value}'` : value; - - __reformatQueryValue = (value: string | number): string | number => - typeof value === 'string' && !Date.parse(value) - ? `'${encodeURIComponent(value)}'` - : value; - - __buildHandler( - queryOptions?: QueryOptions = {}, - shouldSelectExpand: boolean = true, - ): OHandler { - const handler = oHandler(this.getEntityName()); - return this.__setupHandler(handler, queryOptions, shouldSelectExpand); - } - - __setupHandler( - handler: OHandler, - queryOptions?: QueryOptions = {}, - shouldExpand: boolean = true, - ): OHandler { - const { apply, shouldCount, search, skip, take } = queryOptions; - - const navProps = this.__config.navigationProperties; - if (!search && shouldExpand && navProps) { - const navPropsString = Array.from(Object.entries(navProps)) - .map(parseNavProp) - .join(','); - handler.expand(navPropsString); - } - - if (Number.isInteger(skip)) { - handler.skip(skip || 0); - } - - if (Number.isInteger(take)) { - handler.top(take || 0); - } - - if (shouldCount) { - handler.inlineCount('true'); - } - - this._setFilters(handler, queryOptions); - - if (queryOptions.orderBy) { - const { column: orderBy, direction } = queryOptions.orderBy[0]; - - if (direction === 'desc') { - handler.orderByDesc(orderBy); - } else if (orderBy) { - handler.orderBy(orderBy); - } - } - - if (search) { - handler.customParam('$search', search); - } - - if (apply) { - handler.customParam('$apply', apply); - } - - if (Config.organizationId && !queryOptions.shouldIgnoreOrganizationID) { - handler.customParam('organizationID', Config.organizationId.toString()); - } - - return handler; - } - - _getCacheKey(queryOptions?: QueryOptions): string { - return JSON.stringify(queryOptions || '_'); - } - - _setFilters( - handler: OHandler, - queryOptions: QueryOptions = {}, - ): OHandler { - if ( - !queryOptions.filter && - (!queryOptions.filters || !queryOptions.filters.length) - ) { - return handler; - } - - if (queryOptions.filters == null) { - return handler.filter(queryOptions.filter); - } - - let renderedFilters = queryOptions.filters - .map((queryFilter: QueryFilter): string => { - const { operator, params, values } = queryFilter; - const isValidOperator = FILTER_FUNCTION_OPERATORS.find( - (op: string): boolean => op === operator, - ); - const isAnyOperator = operator === FILTER_OPERATORS.ANY; - - const filters = values.map((value: string): Array => - params.map((param: string): string => { - // Any operator should have the value pre-formatted - if (isAnyOperator) { - return `(${param}/any(${value}))`; - } - - // we have to use two reformat functions because of the issue: - // https://github.com/Brewskey/brewskey.admin/issues/371 - // this is not ideal though, because it doesn't resolve - // situations when we get stringified value from front-end - // which is stored as number on the server. - const reformattedValue = ID_REG_EXP.test(param) - ? this.__reformatIDValue(value) - : this.__reformatQueryValue(value); - - if (isValidOperator) { - return `(${operator}(${param}, ${reformattedValue}))`; - } - - return `(${param} ${operator} ${reformattedValue})`; - }), - ); - - return filters - .reduce( - ( - previousFilter: Array, - currentFilters: Array, - ): Array => [...previousFilter, ...currentFilters], - ) - .join(' or '); - }) - .map((filter: string): string => `(${filter})`) - .join(' and '); - - if (queryOptions.filter != null) { - renderedFilters = `${queryOptions.filter} and ${renderedFilters}`; - } - return handler.filter(renderedFilters); - } - - __resolveSingle( - handler: OHandler, - params?: Object, - method?: RequestMethod = 'GET', - ): Promise { - return this.__resolve(handler, params, method).then( - (result: ODataDAOResult): TEntity => - this.getTranslator().fromApi(result.data), - ); - } - - async __resolveMany( - handler: OHandler, - params?: Object, - method?: RequestMethod = 'GET', - ): Promise> { - const result = await this.__resolve(handler, params, method); - return (result.data || []).map((item: Object): TEntity => - this.getTranslator().fromApi(item), - ); - } - - async __resolveManyIDs( - handler: OHandler, - params?: Object, - idSelector?: (item: Object) => EntityID = (item: Object): EntityID => - item.id, - method?: RequestMethod = 'GET', - ): Promise> { - const result = await this.__resolve(handler, params, method); - return (result.data || []).map(idSelector); - } - - async __resolve( - handler: OHandler, - params?: ?Object = null, - method?: RequestMethod = 'GET', - ): Promise { - let request; - switch (method) { - case 'DELETE': { - request = handler.remove().save(); - break; - } - case 'PATCH': { - request = handler.patch(params).save(); - break; - } - case 'POST': { - request = handler.post(params).save(); - break; - } - case 'PUT': { - request = handler.put(params).save(); - break; - } - default: { - request = handler.get(); - } - } - - return (request: any).catch((error) => { - // window.console.error(method || 'get', error, handler, params); - throw error; - }); - } -} - -export default BaseODataDAO; diff --git a/build/dao/BeverageDAO.js b/build/dao/BeverageDAO.js deleted file mode 100644 index 771817c..0000000 --- a/build/dao/BeverageDAO.js +++ /dev/null @@ -1,81 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _BeverageTranslator = _interopRequireDefault(require("../translators/BeverageTranslator")); -var _fetch = _interopRequireDefault(require("../fetch")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var BeverageDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(BeverageDAO, _ODataDAO); - function BeverageDAO() { - _classCallCheck(this, BeverageDAO); - return _callSuper(this, BeverageDAO, [{ - entityName: _constants.DAO_ENTITIES.BEVERAGES, - navigationProperties: { - availability: { - select: ['id', 'name'] - }, - createdBy: { - select: ['id', 'userName'] - }, - glass: { - select: ['id', 'name'] - }, - srm: { - select: ['hex', 'id', 'name'] - }, - style: { - select: ['id', 'name'] - } - }, - translator: new _BeverageTranslator["default"]() - }]); - } - _createClass(BeverageDAO, [{ - key: "search", - value: function search(queryOptions) { - var funcString = "Default.search()"; - var handler = this.__buildHandler(queryOptions, false); - handler.func(funcString); - return this.__fetchCustom(handler, queryOptions, funcString); - } - - // todo move to BeverageImageDAO extends RestDAO ? - }, { - key: "uploadImage", - value: function uploadImage(beverageId, image) { - return (0, _fetch["default"])("api/v2/beverages/".concat(beverageId, "/photo/"), { - body: JSON.stringify({ - photo: image - }), - headers: [{ - name: 'Accept', - value: 'application/json' - }, { - name: 'Content-Type', - value: 'application/json' - }], - method: 'PUT' - }); - } - }]); - return BeverageDAO; -}(_ODataDAO2["default"]); -var _default = exports["default"] = new BeverageDAO(); \ No newline at end of file diff --git a/build/dao/BeverageDAO.js.flow b/build/dao/BeverageDAO.js.flow deleted file mode 100644 index d082862..0000000 --- a/build/dao/BeverageDAO.js.flow +++ /dev/null @@ -1,109 +0,0 @@ -// @flow - -import type { EntityID, QueryOptions, ShortenedEntity } from '../types'; -import type { Srm } from './SrmDAO'; -import type LoadObject from '../LoadObject'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import BeverageTranslator from '../translators/BeverageTranslator'; -import fetch from '../fetch'; - -export type BeverageType = 'Beer' | 'Cider' | 'Coffee' | 'Soda'; - -export type ServingTemperature = - | 'cellar' - | 'cold' - | 'cool' - | 'hot' - | 'very_cold' - | 'warm'; - -export type Beverage = {| - abv: number, - availability: ?ShortenedEntity, - beerVariationId: ?string, - beverageType: BeverageType, - createDate: Date, - createdBy: {| - id: EntityID, - userName: string, - |}, - description: ?string, - externalId: ?string, - foodPairings: ?string, - glass: ?ShortenedEntity, - ibu: number, - id: EntityID, - isDeleted: boolean, - isOrganic: boolean, - labels: {| - icon: string, - large: string, - medium: string, - |}, - name: string, - originalGravity: ?number, - servingTemperature: ?ServingTemperature, - servingTemperatureDisplay: ?string, - srm: ?Srm, - style: ?ShortenedEntity, - updateDate: Date, - year: ?number, -|}; - -export type BeverageMutator = {| - abv: ?number, - availableId: ?EntityID, - beverageType: BeverageType, - description: ?string, - glasswareId: ?EntityID, - ibu: ?number, - id: ?EntityID, - isOrganic: boolean, - name: string, - originalGravity: ?number, - servingTemperature: ?ServingTemperature, - srmId: ?EntityID, - styleId: ?EntityID, - year: ?number, -|}; - -class BeverageDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGES, - navigationProperties: { - availability: { select: ['id', 'name'] }, - createdBy: { select: ['id', 'userName'] }, - glass: { select: ['id', 'name'] }, - srm: { select: ['hex', 'id', 'name'] }, - style: { select: ['id', 'name'] }, - }, - translator: new BeverageTranslator(), - }); - } - - search(queryOptions: QueryOptions): LoadObject>> { - const funcString = `Default.search()`; - - const handler = this.__buildHandler(queryOptions, false); - handler.func(funcString); - - return this.__fetchCustom(handler, queryOptions, funcString); - } - - // todo move to BeverageImageDAO extends RestDAO ? - uploadImage(beverageId: EntityID, image: string): Promise<*> { - return fetch(`api/v2/beverages/${beverageId}/photo/`, { - body: JSON.stringify({ photo: image }), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'PUT', - }); - } -} - -export default new BeverageDAO(); diff --git a/build/dao/ClientID.js b/build/dao/ClientID.js deleted file mode 100644 index 66ed6bc..0000000 --- a/build/dao/ClientID.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var ClientID = /*#__PURE__*/function () { - function ClientID() { - _classCallCheck(this, ClientID); - } - _createClass(ClientID, null, [{ - key: "getClientId", - value: function getClientId() { - ClientID._clientId += 1; - return "CLIENT_ID:".concat(ClientID._clientId.toString()); - } - }]); - return ClientID; -}(); -_defineProperty(ClientID, "_clientId", 0); -var _default = exports["default"] = ClientID; \ No newline at end of file diff --git a/build/dao/ClientID.js.flow b/build/dao/ClientID.js.flow deleted file mode 100644 index 7bd5bcd..0000000 --- a/build/dao/ClientID.js.flow +++ /dev/null @@ -1,12 +0,0 @@ -// @flow - -class ClientID { - static _clientId: number = 0; - - static getClientId(): string { - ClientID._clientId += 1; - return `CLIENT_ID:${ClientID._clientId.toString()}`; - } -} - -export default ClientID; diff --git a/build/dao/CloudDeviceDAO.js b/build/dao/CloudDeviceDAO.js deleted file mode 100644 index 58d6f1b..0000000 --- a/build/dao/CloudDeviceDAO.js +++ /dev/null @@ -1,108 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _RestDAO2 = _interopRequireDefault(require("./RestDAO")); -var _CloudSSEManager = _interopRequireDefault(require("../CloudSSEManager")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var DEVICE_ONLINE_STATUS_EVENT_NAME = 'spark/status'; -var CloudDeviceDAO = /*#__PURE__*/function (_RestDAO) { - _inherits(CloudDeviceDAO, _RestDAO); - function CloudDeviceDAO() { - var _this; - _classCallCheck(this, CloudDeviceDAO); - _this = _callSuper(this, CloudDeviceDAO, [{ - entityName: 'cloud-devices' - }]); - _defineProperty(_assertThisInitialized(_this), "_isOnlineStatusListenerToggled", false); - _defineProperty(_assertThisInitialized(_this), "_onNewCloudSystemEvent", function (cloudEvent) { - var data = cloudEvent.data, - name = cloudEvent.name, - particleId = cloudEvent.particleId; - if (name !== DEVICE_ONLINE_STATUS_EVENT_NAME) { - return; - } - _this.__updateEntityByID(particleId, function (cloudDevice) { - return _objectSpread(_objectSpread({}, cloudDevice), {}, { - connected: data === 'online' - }); - }); - }); - return _this; - } - _createClass(CloudDeviceDAO, [{ - key: "getOne", - value: function getOne(particleId) { - return this.__getOne("api/v2/cloud-devices/".concat(particleId, "/"), particleId, { - reformatError: function reformatError(error) { - return error.error; - } - }); - } - }, { - key: "flash", - value: function flash(particleId, file) { - return this.__fetchOne("api/v2/cloud-devices/".concat(particleId, "/flash/"), { - body: JSON.stringify({ - file: file, - particleId: particleId - }), - headers: [{ - name: 'Accept', - value: 'application/json' - }, { - name: 'Content-Type', - value: 'application/json' - }], - method: 'PUT', - reformatError: function reformatError(error) { - return error.error; - } - }); - } - }, { - key: "startOnlineStatusListener", - value: function startOnlineStatusListener() { - if (this._isOnlineStatusListenerToggled) { - return; - } - _CloudSSEManager["default"].subscribe(this._onNewCloudSystemEvent, { - eventNamePrefix: 'spark' - }); - } - }, { - key: "stopOnlineStatusListener", - value: function stopOnlineStatusListener() { - _CloudSSEManager["default"].unsubscribe(this._onNewCloudSystemEvent); - } - }, { - key: "toggleOnlineStatusListener", - value: function toggleOnlineStatusListener() { - if (!this._isOnlineStatusListenerToggled) { - this.startOnlineStatusListener(); - } else { - this.stopOnlineStatusListener(); - } - } - }]); - return CloudDeviceDAO; -}(_RestDAO2["default"]); -var _default = exports["default"] = new CloudDeviceDAO(); \ No newline at end of file diff --git a/build/dao/CloudDeviceDAO.js.flow b/build/dao/CloudDeviceDAO.js.flow deleted file mode 100644 index a9f6340..0000000 --- a/build/dao/CloudDeviceDAO.js.flow +++ /dev/null @@ -1,90 +0,0 @@ -// @flow - -import type { CloudEvent } from '../CloudSSEManager'; -import type { EntityID } from '../types'; - -import RestDAO from './RestDAO'; -import CloudSSEManager from '../CloudSSEManager'; - -const DEVICE_ONLINE_STATUS_EVENT_NAME = 'spark/status'; - -export type CloudDevice = {| - cellural: ?boolean, - connected: boolean, - current_build_target: ?string, - functions: Array, - id: EntityID, - imei: ?string, - last_app: ?string, - last_heard: ?Date, - last_iccid: ?string, - last_ip_address: ?string, - name: string, - platform_id: number, - product_firmware_version: ?number, - product_id: ?number, - status: string, - variables: Object, -|}; - -class CloudDeviceDAO extends RestDAO { - _isOnlineStatusListenerToggled: boolean = false; - - constructor() { - super({ entityName: 'cloud-devices' }); - } - - getOne(particleId: string) { - return this.__getOne(`api/v2/cloud-devices/${particleId}/`, particleId, { - reformatError: error => error.error, - }); - } - - flash(particleId: string, file: any) { - return this.__fetchOne(`api/v2/cloud-devices/${particleId}/flash/`, { - body: JSON.stringify({ file, particleId }), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'PUT', - reformatError: error => error.error, - }); - } - - startOnlineStatusListener() { - if (this._isOnlineStatusListenerToggled) { - return; - } - - CloudSSEManager.subscribe(this._onNewCloudSystemEvent, { - eventNamePrefix: 'spark', - }); - } - - stopOnlineStatusListener() { - CloudSSEManager.unsubscribe(this._onNewCloudSystemEvent); - } - - toggleOnlineStatusListener() { - if (!this._isOnlineStatusListenerToggled) { - this.startOnlineStatusListener(); - } else { - this.stopOnlineStatusListener(); - } - } - - _onNewCloudSystemEvent = (cloudEvent: CloudEvent) => { - const { data, name, particleId } = cloudEvent; - if (name !== DEVICE_ONLINE_STATUS_EVENT_NAME) { - return; - } - - this.__updateEntityByID(particleId, cloudDevice => ({ - ...cloudDevice, - connected: data === 'online', - })); - }; -} - -export default new CloudDeviceDAO(); diff --git a/build/dao/DeviceDAO.js b/build/dao/DeviceDAO.js deleted file mode 100644 index 3e4654b..0000000 --- a/build/dao/DeviceDAO.js +++ /dev/null @@ -1,59 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DeviceTranslator = _interopRequireDefault(require("../translators/DeviceTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var DeviceDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(DeviceDAO, _ODataDAO); - function DeviceDAO() { - _classCallCheck(this, DeviceDAO); - return _callSuper(this, DeviceDAO, [{ - entityName: _constants.DAO_ENTITIES.DEVICES, - navigationProperties: { - createdBy: { - select: ['id', 'userName'] - }, - lastEditedBy: { - select: ['id', 'userName'] - }, - location: { - select: ['id', 'isDeleted', 'name'] - }, - organization: { - select: ['id', 'isDeleted', 'name'] - } - }, - translator: new _DeviceTranslator["default"]() - }]); - } - _createClass(DeviceDAO, [{ - key: "fetchParticleAttributes", - value: function fetchParticleAttributes(deviceID) { - var funcString = 'Default.particleAttributes()'; - var stringifiedID = deviceID.toString(); - var handler = this.__buildHandler({}, false).find(this.__reformatIDValue(stringifiedID)); - handler.func(funcString); - return this.__fetchCustom(handler, {}, "".concat(funcString).concat(deviceID)); - } - }]); - return DeviceDAO; -}(_ODataDAO2["default"]); -var _default = exports["default"] = new DeviceDAO(); \ No newline at end of file diff --git a/build/dao/DeviceDAO.js.flow b/build/dao/DeviceDAO.js.flow deleted file mode 100644 index a6c0536..0000000 --- a/build/dao/DeviceDAO.js.flow +++ /dev/null @@ -1,104 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type LoadObject from '../LoadObject'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DeviceTranslator from '../translators/DeviceTranslator'; - -export type DeviceStatus = - | 'Active' - | 'Cleaning' - | 'Configure' - | 'Inactive' - | 'Unlocked'; - -export type DeviceType = 'BrewskeyBox' | 'Onsite'; - -export type NFCStatus = 'PhoneOnly' | 'CardOnly' | 'PhoneAndCard' | 'Disabled'; - -export type Device = {| - createdBy: {| id: EntityID, userName: string |}, - deviceStatus: DeviceStatus, - deviceType: DeviceType, - id: EntityID, - isDeleted: boolean, - isScreenDisabled: boolean, - isTotpDisabled: boolean, - lastEdited: Date, - lastEditedBy: { id: EntityID, userName: string }, - ledBrightness: number, - location?: ShortenedEntity, - name: string, - nfcStatus: NFCStatus, - organization: ShortenedEntity, - particleId: string, - secondsToStayOpen: number, - shouldInvertScreen: boolean, - temperature: number, - timeForValveOpen: number, -|}; - -export type DeviceMutator = {| - deviceStatus: DeviceStatus, - deviceType: DeviceType, - id?: EntityID, - isScreenDisabled: boolean, - isTotpDisabled: boolean, - ledBrightness: number, - locationId: ?EntityID, - name: string, - nfcStatus: NFCStatus, - particleId: string, - secondsToStayOpen: number, - shouldInvertScreen: boolean, - timeForValveOpen: number, -|}; - -export type ParticleAttributes = {| - cellular: ?string, - connected: boolean, - currentBuildTarget: ?string, - functions: Array, - id: string, - imei: ?string, - lastApp: ?string, - lastHeard: Date, - lastIccid: ?string, - lastIpAddress: string, - name: string, - platformId: number, - productFirmwareVersion: number, - productId: number, - status: string, -|}; - -class DeviceDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.DEVICES, - navigationProperties: { - createdBy: { select: ['id', 'userName'] }, - lastEditedBy: { select: ['id', 'userName'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - }, - translator: new DeviceTranslator(), - }); - } - - fetchParticleAttributes(deviceID: EntityID): LoadObject { - const funcString = 'Default.particleAttributes()'; - const stringifiedID = deviceID.toString(); - - const handler = this.__buildHandler({}, false).find( - this.__reformatIDValue(stringifiedID), - ); - handler.func(funcString); - - return this.__fetchCustom(handler, {}, `${funcString}${deviceID}`); - } -} - -export default new DeviceDAO(); diff --git a/build/dao/FlowSensorDAO.js b/build/dao/FlowSensorDAO.js deleted file mode 100644 index 218ade1..0000000 --- a/build/dao/FlowSensorDAO.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var FlowSensorDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(FlowSensorDAO, _ODataDAO); - function FlowSensorDAO() { - _classCallCheck(this, FlowSensorDAO); - return _callSuper(this, FlowSensorDAO, [{ - entityName: _constants.DAO_ENTITIES.FLOW_SENSORS, - navigationProperties: { - tap: { - select: ['id', 'isDeleted'] - } - }, - translator: new _DefaultTranslator["default"]() - }]); - } - return _createClass(FlowSensorDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new FlowSensorDAO(); \ No newline at end of file diff --git a/build/dao/FlowSensorDAO.js.flow b/build/dao/FlowSensorDAO.js.flow deleted file mode 100644 index fc8de6d..0000000 --- a/build/dao/FlowSensorDAO.js.flow +++ /dev/null @@ -1,44 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; -import type { ShortenedTap } from './TapDAO'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type FlowSensorType = - | 'Custom' - | 'FT330' - | 'Sea' - | 'SwissFlowSF800' - | 'Titan'; - -export type FlowSensor = {| - flowSensorType: FlowSensorType, - id: EntityID, - isDeleted: boolean, - pulsesPerGallon: number, - tap: ShortenedTap, -|}; - -export type FlowSensorMutator = {| - flowSensorType: FlowSensorType, - id?: EntityID, - pulsesPerGallon: number, - tapId: EntityID, -|}; - -class FlowSensorDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.FLOW_SENSORS, - navigationProperties: { - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new DefaultTranslator(), - }); - } -} - -export default new FlowSensorDAO(); diff --git a/build/dao/FriendDAO.js b/build/dao/FriendDAO.js deleted file mode 100644 index a6ced2c..0000000 --- a/build/dao/FriendDAO.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = exports.FRIEND_STATUSES = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -var _fetch = _interopRequireDefault(require("../fetch")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var FRIEND_STATUSES = exports.FRIEND_STATUSES = { - APPROVED: 'Approved', - AWAITING_APPROVAL: 'AwaitingApproval', - BLOCKED: 'Blocked', - PENDING: 'Pending', - SPAM: 'Spam' -}; -var FriendDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(FriendDAO, _ODataDAO); - function FriendDAO() { - _classCallCheck(this, FriendDAO); - return _callSuper(this, FriendDAO, [{ - entityName: _constants.DAO_ENTITIES.FRIENDS, - navigationProperties: { - friendAccount: { - select: ['id', 'userName'] - }, - owningAccount: { - select: ['id', 'userName'] - } - }, - translator: new _DefaultTranslator["default"]() - }]); - } - _createClass(FriendDAO, [{ - key: "addFriend", - value: function addFriend(userNameOrEmail) { - return (0, _fetch["default"])('api/v2/friends/Default.addByUserName()/', { - body: JSON.stringify({ - userName: userNameOrEmail - }), - headers: [{ - name: 'Accept', - value: 'application/json' - }, { - name: 'Content-Type', - value: 'application/json' - }], - method: 'POST' - }); - } - }]); - return FriendDAO; -}(_ODataDAO2["default"]); -var _default = exports["default"] = new FriendDAO(); \ No newline at end of file diff --git a/build/dao/FriendDAO.js.flow b/build/dao/FriendDAO.js.flow deleted file mode 100644 index 662fbca..0000000 --- a/build/dao/FriendDAO.js.flow +++ /dev/null @@ -1,63 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; -import daoFetch from '../fetch'; - -export type FriendStatus = - | 'Approved' - | 'AwaitingApproval' - | 'Blocked' - | 'Pending' - | 'Spam'; - -export type Friend = {| - createdDate: Date, - friendAccount: {| - id: EntityID, - userName: string, - |}, - friendStatus: FriendStatus, - id: EntityID, - owningAccount: {| - id: EntityID, - userName: string, - |}, -|}; - -export const FRIEND_STATUSES: { [key: string]: FriendStatus } = { - APPROVED: 'Approved', - AWAITING_APPROVAL: 'AwaitingApproval', - BLOCKED: 'Blocked', - PENDING: 'Pending', - SPAM: 'Spam', -}; - -class FriendDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.FRIENDS, - navigationProperties: { - friendAccount: { select: ['id', 'userName'] }, - owningAccount: { select: ['id', 'userName'] }, - }, - translator: new DefaultTranslator(), - }); - } - - addFriend(userNameOrEmail: string): Promise<*> { - return daoFetch('api/v2/friends/Default.addByUserName()/', { - body: JSON.stringify({ userName: userNameOrEmail }), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'POST', - }); - } -} - -export default new FriendDAO(); diff --git a/build/dao/GlassDAO.js b/build/dao/GlassDAO.js deleted file mode 100644 index 22f4f67..0000000 --- a/build/dao/GlassDAO.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var GlassDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(GlassDAO, _ODataDAO); - function GlassDAO() { - _classCallCheck(this, GlassDAO); - return _callSuper(this, GlassDAO, [{ - entityName: _constants.DAO_ENTITIES.BEVERAGE_GLASSES, - translator: new _DefaultTranslator["default"]() - }]); - } - return _createClass(GlassDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new GlassDAO(); \ No newline at end of file diff --git a/build/dao/GlassDAO.js.flow b/build/dao/GlassDAO.js.flow deleted file mode 100644 index db16205..0000000 --- a/build/dao/GlassDAO.js.flow +++ /dev/null @@ -1,26 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Glass = {| - createDate: Date, - description: ?string, - id: EntityID, - name: string, - updateDate: Date, -|}; - -class GlassDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGE_GLASSES, - translator: new DefaultTranslator(), - }); - } -} - -export default new GlassDAO(); diff --git a/build/dao/ItemBeverageDAO.js b/build/dao/ItemBeverageDAO.js deleted file mode 100644 index 6be916c..0000000 --- a/build/dao/ItemBeverageDAO.js +++ /dev/null @@ -1,59 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); - -var _constants = require("../constants"); - -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); - -var _querystring = require("querystring"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var ItemBeverageDAO = -/*#__PURE__*/ -function (_ODataDAO) { - _inherits(ItemBeverageDAO, _ODataDAO); - - function ItemBeverageDAO() { - _classCallCheck(this, ItemBeverageDAO); - - return _possibleConstructorReturn(this, _getPrototypeOf(ItemBeverageDAO).call(this, { - entityName: _constants.DAO_ENTITIES.ITEM_BEVERAGES, - navigationProperties: { - beverage: { - select: ['id', 'isDeleted'] - }, - organization: { - select: ['id', 'isDeleted'] - } - }, - translator: new _DefaultTranslator.default() - })); - } - - return ItemBeverageDAO; -}(_ODataDAO2.default); - -var _default = new ItemBeverageDAO(); - -exports.default = _default; \ No newline at end of file diff --git a/build/dao/KegDAO.js b/build/dao/KegDAO.js deleted file mode 100644 index 2a3e53e..0000000 --- a/build/dao/KegDAO.js +++ /dev/null @@ -1,82 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = exports.MAX_OUNCES_BY_KEG_TYPE = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _KegTranslator = _interopRequireDefault(require("../translators/KegTranslator")); -var _LoadObject = _interopRequireDefault(require("../LoadObject")); -var _constants = require("../constants"); -var _filters = require("../filters"); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var MAX_OUNCES_BY_KEG_TYPE = exports.MAX_OUNCES_BY_KEG_TYPE = { - Cornelius: 640, - FiftyLitre: 1690.7, - HalfBarrel: 1984, - Mini: 169, - QuarterBarrel: 992, - SixthBarrel: 661, - SlimQuarter: 992 -}; -var KegDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(KegDAO, _ODataDAO); - function KegDAO() { - var _this; - _classCallCheck(this, KegDAO); - _this = _callSuper(this, KegDAO, [{ - entityName: _constants.DAO_ENTITIES.KEGS, - navigationProperties: { - beverage: { - select: ['id', 'isDeleted', 'name'] - }, - location: { - select: ['id', 'isDeleted', 'name'] - }, - organization: { - select: ['id', 'isDeleted', 'name'] - }, - tap: { - select: ['id', 'isDeleted'] - } - }, - translator: new _KegTranslator["default"]() - }]); - _defineProperty(_assertThisInitialized(_this), "fetchKegByTapID", function (tapId) { - return _this.fetchMany({ - filters: [(0, _filters.createFilter)('tap/id').equals(tapId)], - orderBy: [{ - column: 'tapDate', - direction: 'desc' - }], - take: 1 - }); - }); - return _this; - } - _createClass(KegDAO, [{ - key: "floatKeg", - value: function floatKeg(tapID) { - var funcString = 'Default.floatKeg()'; - var stringifiedID = tapID.toString(); - var handler = this.__buildHandler({}, false).find(this.__reformatIDValue(stringifiedID)).func(funcString); - return this.__mutateCustom(handler, 'PUT', tapID, null); - } - }]); - return KegDAO; -}(_ODataDAO2["default"]); -var _default = exports["default"] = new KegDAO(); \ No newline at end of file diff --git a/build/dao/KegDAO.js.flow b/build/dao/KegDAO.js.flow deleted file mode 100644 index 2a9d87a..0000000 --- a/build/dao/KegDAO.js.flow +++ /dev/null @@ -1,91 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from './TapDAO'; - -import ODataDAO from './ODataDAO'; -import KegTranslator from '../translators/KegTranslator'; -import LoadObject from '../LoadObject'; -import { DAO_ENTITIES } from '../constants'; -import { createFilter } from '../filters'; - -export type KegType = - | 'Cornelius' - | 'HalfBarrel' - | 'Mini' - | 'QuarterBarrel' - | 'SixthBarrel' - | 'SlimQuarter'; - -export type Keg = {| - beverage: ShortenedEntity, - floatedDate: Date, - id: EntityID, - isDeleted: boolean, - kegType: KegType, - location: ?ShortenedEntity, - maxOunces: number, - organization: ShortenedEntity, - ounces: number, - pulses: number, - tap: ?ShortenedTap, - tapDate: Date, -|}; - -export type KegMutator = {| - beverageId: EntityID, - id?: EntityID, - kegType: KegType, - startingPercentage?: number, - tapId: EntityID, -|}; - -export const MAX_OUNCES_BY_KEG_TYPE: { [KegType]: number } = { - Cornelius: 640, - FiftyLitre: 1690.7, - HalfBarrel: 1984, - Mini: 169, - QuarterBarrel: 992, - SixthBarrel: 661, - SlimQuarter: 992, -}; - -class KegDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.KEGS, - navigationProperties: { - beverage: { select: ['id', 'isDeleted', 'name'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new KegTranslator(), - }); - } - - fetchKegByTapID = (tapId: string): LoadObject>> => - this.fetchMany({ - filters: [createFilter('tap/id').equals(tapId)], - orderBy: [ - { - column: 'tapDate', - direction: 'desc', - }, - ], - take: 1, - }); - - floatKeg(tapID: string): string { - const funcString = 'Default.floatKeg()'; - const stringifiedID = tapID.toString(); - - const handler = this.__buildHandler({}, false) - .find(this.__reformatIDValue(stringifiedID)) - .func(funcString); - - return this.__mutateCustom(handler, 'PUT', tapID, null); - } -} - -export default new KegDAO(); diff --git a/build/dao/LocationDAO.js b/build/dao/LocationDAO.js deleted file mode 100644 index 38d7552..0000000 --- a/build/dao/LocationDAO.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _LocationTranslator = _interopRequireDefault(require("../translators/LocationTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var LocationDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(LocationDAO, _ODataDAO); - function LocationDAO() { - _classCallCheck(this, LocationDAO); - return _callSuper(this, LocationDAO, [{ - entityName: _constants.DAO_ENTITIES.LOCATIONS, - navigationProperties: { - organization: { - select: ['id', 'isDeleted', 'name'] - } - }, - translator: new _LocationTranslator["default"]() - }]); - } - return _createClass(LocationDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new LocationDAO(); \ No newline at end of file diff --git a/build/dao/LocationDAO.js.flow b/build/dao/LocationDAO.js.flow deleted file mode 100644 index c159f9b..0000000 --- a/build/dao/LocationDAO.js.flow +++ /dev/null @@ -1,65 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import LocationTranslator from '../translators/LocationTranslator'; - -export type Coordinates = { - latitude: number, - longitude: number, -}; - -export type Location = {| - city: string, - createdDate: Date, - description: ?string, - geolocation?: {| - coordinates: Coordinates, - geography: {| - coordinateSystemId: number, - wellKnownBinary: ?Object, - wellKnownText: string, - |}, - |}, - id: EntityID, - isDeleted: boolean, - locationType: string, - name: string, - organization: ShortenedEntity, - squareLocationID: string, - state: ?string, - street: string, - suite: string, - timeZone: string, - zipCode: number, -|}; - -export type LocationMutator = {| - city: string, - description: ?string, - id: ?EntityID, - locationType: string, - name: string, - organizationId?: EntityID, - squareLocationID: string, - state: ?string, - street: string, - suite: string, - zipCode: number, -|}; - -class LocationDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.LOCATIONS, - navigationProperties: { - organization: { select: ['id', 'isDeleted', 'name'] }, - }, - translator: new LocationTranslator(), - }); - } -} - -export default new LocationDAO(); diff --git a/build/dao/ODataDAO.js b/build/dao/ODataDAO.js deleted file mode 100644 index b0e05e9..0000000 --- a/build/dao/ODataDAO.js +++ /dev/null @@ -1,666 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _nullthrows = _interopRequireDefault(require("nullthrows")); -var _debounce = _interopRequireDefault(require("debounce")); -var _BaseODataDAO2 = _interopRequireDefault(require("./BaseODataDAO")); -var _LoadObject = _interopRequireDefault(require("../LoadObject")); -var _Subscription = _interopRequireDefault(require("./Subscription")); -var _excluded = ["__custom_key__"], - _excluded2 = ["orderBy", "skip", "take"]; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } -function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var STANDARD_PAGE_SIZE = 40; -var ODataDAO = /*#__PURE__*/function (_BaseODataDAO) { - _inherits(ODataDAO, _BaseODataDAO); - function ODataDAO() { - var _this; - _classCallCheck(this, ODataDAO); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - _this = _callSuper(this, ODataDAO, [].concat(args)); - _defineProperty(_assertThisInitialized(_this), "_countLoaderByQuery", new Map()); - _defineProperty(_assertThisInitialized(_this), "_entityIDsLoaderByQuery", new Map()); - _defineProperty(_assertThisInitialized(_this), "_customLoaderByQuery", new Map()); - _defineProperty(_assertThisInitialized(_this), "_customHandlerByQuery", new Map()); - _defineProperty(_assertThisInitialized(_this), "_entityLoaderByID", new Map()); - // Sets used for tracking current queries - _defineProperty(_assertThisInitialized(_this), "_runFlushCache", null); - _defineProperty(_assertThisInitialized(_this), "_currentCountQueries", new Set()); - _defineProperty(_assertThisInitialized(_this), "_currentEntityQueries", new Set()); - _defineProperty(_assertThisInitialized(_this), "_currentEntityIDsQueries", new Set()); - _defineProperty(_assertThisInitialized(_this), "_currentCustomQueries", new Set()); - return _this; - } - _createClass(ODataDAO, [{ - key: "deleteByID", - value: function deleteByID(id) { - var _this2 = this; - var stringifiedID = id.toString(); - var entity = this._entityLoaderByID.get(stringifiedID) || _LoadObject["default"].empty(); - this._entityLoaderByID.set(stringifiedID, entity.deleting()); - var clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, _LoadObject["default"].empty().deleting()); - this.__emitChanges(); - this.__resolveSingle(this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), /* params */{}, 'DELETE').then(function () { - _this2._entityLoaderByID.set(clientID, _LoadObject["default"].empty()); - _this2._entityLoaderByID.set(id, _LoadObject["default"].empty()); - _this2.__emitChanges(); - _this2._flushQueryCaches(); - _this2.__emitChanges(); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - _this2._updateCacheForError(clientID, error); - }); - return clientID; - } - }, { - key: "count", - value: function count(queryOptions) { - var _this3 = this; - return this.__countCustom(function (countQueryOptions) { - return _this3.__buildHandler(_objectSpread({}, countQueryOptions)); - }, queryOptions); - } - }, { - key: "__countCustom", - value: function __countCustom(getOHandler) { - var queryOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - var baseQueryOptions = this._getCountQueryOptions(queryOptions); - var cacheKey = this._getCacheKey(_objectSpread(_objectSpread({}, baseQueryOptions), {}, { - __custom_key__: key - })); - this._currentCountQueries.add(cacheKey); - if (!this._countLoaderByQuery.has(cacheKey)) { - this._hydrateCount(getOHandler, baseQueryOptions, key); - } - return (0, _nullthrows["default"])(this._countLoaderByQuery.get(cacheKey)); - } - }, { - key: "getEntitiesCache", - value: function getEntitiesCache() { - return Array.from(this._entityLoaderByID.values()); - } - }, { - key: "fetchByID", - value: function fetchByID(id) { - var stringifiedID = id.toString(); - this._currentEntityQueries.add(stringifiedID); - if (!this._entityLoaderByID.has(stringifiedID)) { - this._hydrateSingle(stringifiedID); - } - return (0, _nullthrows["default"])(this._entityLoaderByID.get(stringifiedID)); - } - }, { - key: "fetchByIDs", - value: function fetchByIDs(ids) { - var _this4 = this; - var stringifiedIds = ids.map(String); - var idsToLoad = stringifiedIds.filter(function (id) { - return !_this4._entityLoaderByID.has(id); - }); - if (idsToLoad.length) { - idsToLoad.forEach(function (id) { - _this4._entityLoaderByID.set(id.toString(), _LoadObject["default"].loading()); - }); - - // This URI will look like `pours/Default.GetManyByIDs(ids=['58','59'])/` - var handler = this.__buildHandler(); - handler.customParam('ids', idsToLoad.join(',')); - this.__resolveMany(handler).then(function (results) { - var entitiesByID = new Map(results.map(function (item) { - return [item.id, item]; - })); - idsToLoad.forEach(function (id) { - var entity = entitiesByID.get(id); - if (entity) { - _this4._updateCacheForEntity(entity, false); - } else { - _this4._updateCacheForError(id, new Error("Could not load ".concat(_this4.getEntityName(), " ").concat(id.toString()))); - } - }); - _this4.__emitChanges(); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - stringifiedIds.forEach(function (id) { - return _this4._updateCacheForError(id, error, false); - }); - _this4.__emitChanges(); - }); - } - return new Map(stringifiedIds.map(function (id) { - return [id, (0, _nullthrows["default"])(_this4._entityLoaderByID.get(id))]; - })); - } - }, { - key: "fetchMany", - value: function fetchMany() { - var _this5 = this; - var queryOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var cacheKey = this._getCacheKey(queryOptions); - this._currentEntityIDsQueries.add(cacheKey); - if (!this._entityIDsLoaderByQuery.has(cacheKey)) { - this._hydrateMany(queryOptions); - } - var countQueryKey = this._getCacheKey(_objectSpread(_objectSpread({}, this._getCountQueryOptions(queryOptions)), {}, { - __custom_key__: '' - })); - var loader = this._countLoaderByQuery.get(countQueryKey) || _LoadObject["default"].withValue(-1); - var idsLoader = (0, _nullthrows["default"])(this._entityIDsLoaderByQuery.get(cacheKey)); - var resultMapLoader = idsLoader.map(function (ids) { - return _this5.fetchByIDs(ids); - }); - var resultsLoader = _LoadObject["default"].merge([loader, idsLoader, resultMapLoader]).map(function (_ref) { - var _ref2 = _slicedToArray(_ref, 3), - count = _ref2[0], - ids = _ref2[1], - resultMap = _ref2[2]; - var entities = ids.map(function (id) { - var _resultMap$get; - return (_resultMap$get = resultMap.get(id.toString())) !== null && _resultMap$get !== void 0 ? _resultMap$get : _LoadObject["default"].empty(); - }); - var _queryOptions$take = queryOptions.take, - take = _queryOptions$take === void 0 ? 100 : _queryOptions$take; - var delta = count % take - entities.length; - if (count === -1 || entities.length === take || delta <= 0) { - return entities; - } - var missedLoaders = _toConsumableArray(Array(delta)).map(function () { - return _LoadObject["default"].loading(); - }); - return [].concat(_toConsumableArray(entities), _toConsumableArray(missedLoaders)); - }); - return resultsLoader; - } - }, { - key: "fetchAll", - value: function fetchAll(queryOptions) { - var _this6 = this; - return this.count(queryOptions).map(function (count) { - return _toConsumableArray(Array(Math.ceil(count / STANDARD_PAGE_SIZE))).map(function (_, index) { - var skip = STANDARD_PAGE_SIZE * index; - var loader = _this6.fetchMany(_objectSpread(_objectSpread({}, queryOptions), {}, { - skip: skip, - take: STANDARD_PAGE_SIZE - })); - var itemLoaders = _toConsumableArray(Array(Math.min(STANDARD_PAGE_SIZE, count - skip))); - if (loader.isLoading()) { - return itemLoaders.map(function () { - return _LoadObject["default"].loading(); - }); - } - if (loader.hasError()) { - return itemLoaders.map(function () { - return _LoadObject["default"].withError(loader.getErrorEnforcing()); - }); - } - return loader.getValueEnforcing(); - }).flat(); - }); - } - }, { - key: "fetchSingle", - value: function fetchSingle(queryOptions) { - var combinedQueryOptions = _objectSpread(_objectSpread({ - orderBy: [{ - column: 'id', - direction: 'desc' - }] - }, queryOptions), {}, { - take: 1 - }); - return this.fetchMany(combinedQueryOptions).map(function (items) { - return items[0] || _LoadObject["default"].empty(); - }); - } - }, { - key: "flushCache", - value: function flushCache() { - this._flushQueryCaches(); - this.__emitChanges(); - } - }, { - key: "flushCacheForEntity", - value: function flushCacheForEntity(entityID) { - this._hydrateSingle(entityID.toString()); - this.__emitChanges(); - } - }, { - key: "flushCustomCache", - value: function flushCustomCache() { - this._flushCustomCache(); - } - }, { - key: "flushQueryCaches", - value: function flushQueryCaches() { - this._flushQueryCaches(); - this.__emitChanges(); - } - }, { - key: "patch", - value: function patch(id, mutator) { - var _this7 = this; - var stringifiedID = id.toString(); - var entity = this._entityLoaderByID.get(stringifiedID) || _LoadObject["default"].empty(); - this._entityLoaderByID.set(stringifiedID, entity.updating()); - var clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, entity.updating()); - this.__emitChanges(); - this.__resolveSingle(this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), this.getTranslator().toApi(mutator), 'PATCH').then(function (result) { - _this7._flushQueryCaches(); - _this7._updateCacheForEntity(result, false); - _this7._entityLoaderByID.set(clientID, (0, _nullthrows["default"])(_this7._entityLoaderByID.get(result.id))); - _this7.__emitChanges(); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - _this7._updateCacheForError(clientID, error); - }); - return clientID; - } - }, { - key: "post", - value: function post(mutator) { - var _this8 = this; - var clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, _LoadObject["default"].creating()); - this.__resolveSingle(this.__buildHandler(), this.getTranslator().toApi(mutator), 'POST').then(function (result) { - _this8._flushQueryCaches(); - _this8._updateCacheForEntity(result, false); - // The clientID has a reference to the load object - _this8._entityLoaderByID.set(clientID, (0, _nullthrows["default"])(_this8._entityLoaderByID.get(result.id))); - _this8.__emitChanges(); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - _this8._entityLoaderByID.set(clientID, _LoadObject["default"].withError(error)); - _this8.__emitChanges(); - }); - return clientID; - } - }, { - key: "put", - value: function put(id, mutator) { - var _this9 = this; - var stringifiedID = id.toString(); - var entity = this._entityLoaderByID.get(stringifiedID) || _LoadObject["default"].empty(); - this._entityLoaderByID.set(stringifiedID, entity.updating()); - var clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, entity.updating()); - this.__emitChanges(); - this.__resolveSingle(this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), this.getTranslator().toApi(mutator), 'PUT').then(function (result) { - _this9._flushQueryCaches(); - _this9._updateCacheForEntity(result, false); - // The clientID has a reference to the load object - _this9._entityLoaderByID.set(clientID, (0, _nullthrows["default"])(_this9._entityLoaderByID.get(result.id))); - _this9.__emitChanges(); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - _this9._updateCacheForError(clientID, error); - }); - return clientID; - } - }, { - key: "waitForLoaded", - value: function waitForLoaded(fn, timeout) { - return this.waitForLoadedNullable(fn, timeout).then(function (result) { - return (0, _nullthrows["default"])(result); - }); - } - }, { - key: "waitForLoadedNullable", - value: function waitForLoadedNullable(fn) { - var _this10 = this; - var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10000; - return new Promise(function (resolve, reject) { - setTimeout(function () { - return reject(new Error('Timeout!')); - }, timeout); - var fetchAndResolve = function fetchAndResolve() { - var fnResult = fn(_this10); - - // if (fnResult instanceof Map) { - // const entries = Array.from(fnResult.values()); - // if ( - // entries.some(item => - // item instanceof LoadObject ? item.hasOperation() : false, - // ) - // ) { - // return; - // } - - // resolve( - // new Map( - // Array.from(fnResult.entries()).map(([key, value]) => [ - // key, - // value.getValueEnforcing(), - // ]), - // ), - // ); - // this.unsubscribe(fetchAndResolve); - // return; - // } - - var loader = fnResult instanceof _LoadObject["default"] ? fnResult : _LoadObject["default"].withValue(fnResult); - if (loader.hasOperation()) { - return; - } - var data = loader.getValue(); - if (loader.hasError()) { - reject(loader.getErrorEnforcing()); - return; - } - if (Array.isArray(data)) { - if (data.some(function (item) { - return item instanceof _LoadObject["default"] ? item.hasOperation() : false; - })) { - return; - } - resolve(data.map(function (item) { - return item instanceof _LoadObject["default"] ? item.getValue() : item; - })); - } else { - resolve(data); - } - _this10.unsubscribe(fetchAndResolve); - }; - _this10.subscribe(fetchAndResolve); - fetchAndResolve(); - }); - } - }, { - key: "__mutateCustom", - value: function __mutateCustom(handler, method, id) { - var _this11 = this; - var mutator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - var stringifiedID = null; - if (id) { - stringifiedID = id.toString(); - } - var clientID = this._getClientID(); - var entity = this._entityLoaderByID.get(stringifiedID || clientID) || _LoadObject["default"].empty(); - if (method === 'DELETE') { - this._entityLoaderByID.set(stringifiedID || clientID, entity.deleting()); - } else { - this._entityLoaderByID.set(stringifiedID || clientID, entity.updating()); - } - this.__emitChanges(); - this.__resolve(handler, mutator, method) - // TODO - We need to rethink how the chache should be changed here.. - // I'm not sure what the expected behavior is for this response. Is it - // standardized? - .then(function (result) { - if (stringifiedID) { - // We want whatever uses this store to refetch the entity - _this11._entityLoaderByID["delete"](stringifiedID); - } else { - _this11._updateCacheForEntity(result, false); - _this11._entityLoaderByID.set(clientID, (0, _nullthrows["default"])(_this11._entityLoaderByID.get(result.id))); - } - _this11.__emitChanges(); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - _this11._updateCacheForError(stringifiedID || clientID, error); - }); - return stringifiedID || clientID; - } - }, { - key: "__fetchCustom", - value: function __fetchCustom(handler, queryOptions) { - var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - var cacheKey = this._getCacheKey(_objectSpread(_objectSpread({}, queryOptions), {}, { - __custom_key__: key - })); - this._currentCustomQueries.add(cacheKey); - this._customHandlerByQuery.set(cacheKey, handler); - if (!this._customLoaderByQuery.has(cacheKey)) { - this._hydrateCustom(queryOptions, key); - } - return (0, _nullthrows["default"])(this._customLoaderByQuery.get(cacheKey)); - } - }, { - key: "_getClientID", - value: function _getClientID() { - ODataDAO._clientID += 1; - return "CLIENT_ID:".concat(ODataDAO._clientID); - } - }, { - key: "_flushQueryCaches", - value: function _flushQueryCaches() { - var _this12 = this; - if (this._runFlushCache) { - return; - } - this._currentEntityQueries.clear(); - this._currentCountQueries.clear(); - this._currentCustomQueries.clear(); - this._currentEntityIDsQueries.clear(); - this._setLoadersToUpdating(this._entityIDsLoaderByQuery); - this._setLoadersToUpdating(this._countLoaderByQuery); - this._setLoadersToUpdating(this._customLoaderByQuery); - this._runFlushCache = (0, _debounce["default"])(function () { - Array.from(_this12._currentEntityQueries).filter(function (id) { - return id.toString().indexOf('CLIENT_ID:') !== 0; - }).forEach(function (id) { - return _this12._hydrateSingle(id.toString(), false); - }); - _this12._entityIDsLoaderByQuery = _this12._rebuildMap(_this12._entityIDsLoaderByQuery, _this12._currentEntityIDsQueries, function (queryOptions) { - return _this12._hydrateMany(queryOptions); - }); - _this12._countLoaderByQuery = _this12._rebuildMap(_this12._countLoaderByQuery, _this12._currentCountQueries, function (queryOptions) { - return _this12._hydrateCount(function (countQueryOptions) { - return _this12.__buildHandler(_objectSpread(_objectSpread({}, queryOptions), countQueryOptions)); - }, queryOptions); - }); - _this12._rehydrateCustom(); - _this12._runFlushCache = null; - _this12.__emitChanges(); - }, 10); - this._runFlushCache(); - } - }, { - key: "_flushCustomCache", - value: function _flushCustomCache() { - var _this13 = this; - if (this._runFlushCache) { - return; - } - this._currentCountQueries.clear(); - this._currentCustomQueries.clear(); - this._currentEntityIDsQueries.clear(); - this._setLoadersToUpdating(this._customLoaderByQuery); - this._runFlushCache = (0, _debounce["default"])(function () { - _this13._rehydrateCustom(); - _this13._runFlushCache = null; - _this13.__emitChanges(); - }, 10); - this._runFlushCache(); - } - }, { - key: "_rehydrateCustom", - value: function _rehydrateCustom() { - var _this14 = this; - var toRemove = []; - this._customHandlerByQuery.forEach(function (_, key) { - // Remove any queryies that aren't currently in use - if (!_this14._currentCustomQueries.has(key)) { - toRemove.push(key); - return; - } - var _JSON$parse = JSON.parse(key), - customKey = _JSON$parse.__custom_key__, - queryParams = _objectWithoutProperties(_JSON$parse, _excluded); - _this14._hydrateCustom(queryParams, customKey); - }); - toRemove.forEach(function (key) { - _this14._customLoaderByQuery["delete"](key); - _this14._customHandlerByQuery["delete"](key); - }); - } - }, { - key: "_setLoadersToUpdating", - value: function _setLoadersToUpdating(map) { - map.forEach(function (value, key) { - return map.set(key, value.updating()); - }); - } - }, { - key: "_rebuildMap", - value: function _rebuildMap(map, set, onUpdate) { - var savedItems = Array.from(set).map(function (queryOptionString) { - onUpdate(JSON.parse(queryOptionString.toString())); - var loader = (0, _nullthrows["default"])(map.get(queryOptionString)); - return [queryOptionString, loader]; - }); - return new Map(savedItems); - } - }, { - key: "_hydrateSingle", - value: function _hydrateSingle(stringifiedID) { - var _this15 = this; - var shouldEmitChanges = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - var initialLoader = this._entityLoaderByID.has(stringifiedID) ? (0, _nullthrows["default"])(this._entityLoaderByID.get(stringifiedID)).updating() : _LoadObject["default"].loading(); - this._entityLoaderByID.set(stringifiedID, initialLoader); - this.__emitChanges(); - this.__resolveSingle(this.__buildHandler().find(this.__reformatIDValue(stringifiedID))).then(function (result) { - return _this15._updateCacheForEntity(result, shouldEmitChanges); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - _this15._updateCacheForError(stringifiedID, error); - }); - } - }, { - key: "_hydrateMany", - value: function _hydrateMany(queryOptions) { - var _this16 = this; - var cacheKey = this._getCacheKey(queryOptions); - var initialLoader = this._entityIDsLoaderByQuery.has(cacheKey) ? (0, _nullthrows["default"])(this._entityIDsLoaderByQuery.get(cacheKey)).updating() : _LoadObject["default"].loading(); - this._entityIDsLoaderByQuery.set(cacheKey, initialLoader); - this.__emitChanges(); - var handler = this.__buildHandler(queryOptions, false); - handler = handler.select('id'); - this.__resolveManyIDs(handler).then(function (ids) { - var stringifiedIds = ids.map(String); - _this16._entityIDsLoaderByQuery.set(cacheKey, _LoadObject["default"].withValue(stringifiedIds)); - _this16.__emitChanges(); - _this16.fetchByIDs(stringifiedIds); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - var loader = _this16._entityIDsLoaderByQuery.get(cacheKey); - _this16._entityIDsLoaderByQuery.set(cacheKey, loader ? loader.setError(error) : _LoadObject["default"].withError(error)); - _this16.__emitChanges(); - }); - } - }, { - key: "_hydrateCount", - value: function _hydrateCount(getOHandler, queryOptions) { - var _this17 = this; - var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - var baseQueryOptions = this._getCountQueryOptions(queryOptions); - var cacheKey = this._getCacheKey(_objectSpread(_objectSpread({}, baseQueryOptions), {}, { - __custom_key__: key - })); - var initialLoader = this._countLoaderByQuery.has(cacheKey) ? (0, _nullthrows["default"])(this._countLoaderByQuery.get(cacheKey)).updating() : _LoadObject["default"].loading(); - this._countLoaderByQuery.set(cacheKey, initialLoader); - this.__emitChanges(); - this.__resolve(getOHandler(_objectSpread(_objectSpread({}, baseQueryOptions), {}, { - shouldCount: true, - take: 0 - }))).then(function (result) { - _this17._countLoaderByQuery.set(cacheKey, _LoadObject["default"].withValue(result.inlinecount)); - _this17.__emitChanges(); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - var loader = _this17._countLoaderByQuery.get(cacheKey); - _this17._countLoaderByQuery.set(cacheKey, loader ? loader.setError(error) : _LoadObject["default"].withError(error)); - _this17.__emitChanges(); - }); - } - }, { - key: "_hydrateCustom", - value: function _hydrateCustom(queryOptions) { - var _this18 = this; - var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - var cacheKey = this._getCacheKey(_objectSpread(_objectSpread({}, queryOptions), {}, { - __custom_key__: key - })); - var initialLoader = this._customLoaderByQuery.has(cacheKey) ? (0, _nullthrows["default"])(this._customLoaderByQuery.get(cacheKey)).updating() : _LoadObject["default"].loading(); - this._customLoaderByQuery.set(cacheKey, initialLoader); - this.__emitChanges(); - this.__resolve((0, _nullthrows["default"])(this._customHandlerByQuery.get(cacheKey))).then(function (result) { - _this18._customLoaderByQuery.set(cacheKey, _LoadObject["default"].withValue(result.data)); - _this18.__emitChanges(); - })["catch"](function (error) { - _Subscription["default"].__emitError(error); - _this18._customLoaderByQuery.set(cacheKey, _LoadObject["default"].withError(error)); - _this18.__emitChanges(); - }); - } - }, { - key: "_getCacheKey", - value: function _getCacheKey(queryOptions) { - return JSON.stringify(queryOptions || '_'); - } - }, { - key: "_getCountQueryOptions", - value: function _getCountQueryOptions() { - var queryOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var orderBy = queryOptions.orderBy, - skip = queryOptions.skip, - take = queryOptions.take, - countQueryOptions = _objectWithoutProperties(queryOptions, _excluded2); - return countQueryOptions; - } - }, { - key: "_updateCacheForEntity", - value: function _updateCacheForEntity(entity) { - var shouldEmitChanges = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - this._entityLoaderByID.set(entity.id.toString(), _LoadObject["default"].withValue(entity)); - if (shouldEmitChanges) { - this.__emitChanges(); - } - } - }, { - key: "_updateCacheForError", - value: function _updateCacheForError(id, error) { - var shouldEmitChanges = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - this._entityLoaderByID.set(id.toString(), _LoadObject["default"].withError(error)); - if (shouldEmitChanges) { - this.__emitChanges(); - } - } - }]); - return ODataDAO; -}(_BaseODataDAO2["default"]); -_defineProperty(ODataDAO, "_clientID", 0); -var _default = exports["default"] = ODataDAO; \ No newline at end of file diff --git a/build/dao/ODataDAO.js.flow b/build/dao/ODataDAO.js.flow deleted file mode 100644 index 29dbdf2..0000000 --- a/build/dao/ODataDAO.js.flow +++ /dev/null @@ -1,817 +0,0 @@ -// @flow - -import type { OHandler } from 'odata'; -import type { EntityID, QueryOptions, RequestMethod } from '../index'; - -import nullthrows from 'nullthrows'; -import debounce from 'debounce'; -import BaseODataDAO from './BaseODataDAO'; -import LoadObject from '../LoadObject'; -import Subscription from './Subscription'; - -const STANDARD_PAGE_SIZE = 40; - -type TEntityBase = {| - ...TEntity, - id: EntityID, -|}; - -class ODataDAO extends BaseODataDAO< - TEntityBase, - TEntityMutator, -> { - static _clientID: number = 0; - - _countLoaderByQuery: Map> = new Map(); - - _entityIDsLoaderByQuery: Map>> = new Map(); - - _customLoaderByQuery: Map> = new Map(); - - _customHandlerByQuery: Map> = new Map(); - - _entityLoaderByID: Map< - EntityID, - LoadObject>, - > = new Map(); - - // Sets used for tracking current queries - _runFlushCache = null; - - _currentCountQueries: Set = new Set(); - - _currentEntityQueries: Set = new Set(); - - _currentEntityIDsQueries: Set = new Set(); - - _currentCustomQueries: Set = new Set(); - - deleteByID(id: EntityID): EntityID { - const stringifiedID = id.toString(); - const entity = - this._entityLoaderByID.get(stringifiedID) || LoadObject.empty(); - this._entityLoaderByID.set(stringifiedID, entity.deleting()); - - const clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, LoadObject.empty().deleting()); - - this.__emitChanges(); - - this.__resolveSingle( - this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), - /* params */ {}, - 'DELETE', - ) - .then(() => { - this._entityLoaderByID.set(clientID, LoadObject.empty()); - this._entityLoaderByID.set(id, LoadObject.empty()); - this.__emitChanges(); - this._flushQueryCaches(); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(clientID, error); - }); - - return clientID; - } - - count(queryOptions?: QueryOptions): LoadObject { - return this.__countCustom( - (countQueryOptions: QueryOptions): OHandler> => - this.__buildHandler({ ...countQueryOptions }), - queryOptions, - ); - } - - __countCustom( - getOHandler: (baseQueryOptions: QueryOptions) => OHandler<*>, - queryOptions?: QueryOptions = {}, - key?: string = '', - ): LoadObject { - const baseQueryOptions = this._getCountQueryOptions(queryOptions); - - const cacheKey = this._getCacheKey({ - ...baseQueryOptions, - __custom_key__: key, - }); - - this._currentCountQueries.add(cacheKey); - - if (!this._countLoaderByQuery.has(cacheKey)) { - this._hydrateCount(getOHandler, baseQueryOptions, key); - } - - return nullthrows(this._countLoaderByQuery.get(cacheKey)); - } - - getEntitiesCache(): Array>> { - return Array.from(this._entityLoaderByID.values()); - } - - fetchByID(id: EntityID): LoadObject> { - const stringifiedID = id.toString(); - this._currentEntityQueries.add(stringifiedID); - - if (!this._entityLoaderByID.has(stringifiedID)) { - this._hydrateSingle(stringifiedID); - } - - return nullthrows(this._entityLoaderByID.get(stringifiedID)); - } - - fetchByIDs( - ids: Array, - ): Map>> { - const stringifiedIds = ids.map(String); - const idsToLoad = stringifiedIds.filter( - (id: EntityID): boolean => !this._entityLoaderByID.has(id), - ); - - if (idsToLoad.length) { - idsToLoad.forEach((id: EntityID) => { - this._entityLoaderByID.set(id.toString(), LoadObject.loading()); - }); - - // This URI will look like `pours/Default.GetManyByIDs(ids=['58','59'])/` - const handler = this.__buildHandler(); - handler.customParam('ids', idsToLoad.join(',')); - - this.__resolveMany(handler) - .then((results: Array>) => { - const entitiesByID = new Map( - results.map((item: TEntityBase): [ - EntityID, - TEntityBase, - ] => [item.id, item]), - ); - - idsToLoad.forEach((id: EntityID) => { - const entity = entitiesByID.get(id); - if (entity) { - this._updateCacheForEntity(entity, false); - } else { - this._updateCacheForError( - id, - new Error( - `Could not load ${this.getEntityName()} ${id.toString()}`, - ), - ); - } - }); - - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - stringifiedIds.forEach((id: EntityID): void => - this._updateCacheForError(id, error, false), - ); - - this.__emitChanges(); - }); - } - - return new Map( - stringifiedIds.map((id: string): [ - string, - LoadObject>, - ] => [id, nullthrows(this._entityLoaderByID.get(id))]), - ); - } - - fetchMany( - queryOptions?: QueryOptions = {}, - ): LoadObject>>> { - const cacheKey = this._getCacheKey(queryOptions); - this._currentEntityIDsQueries.add(cacheKey); - - if (!this._entityIDsLoaderByQuery.has(cacheKey)) { - this._hydrateMany(queryOptions); - } - - const countQueryKey = this._getCacheKey({ - ...this._getCountQueryOptions(queryOptions), - __custom_key__: '', - }); - const loader: LoadObject = - this._countLoaderByQuery.get(countQueryKey) || LoadObject.withValue(-1); - - const idsLoader: LoadObject> = nullthrows( - this._entityIDsLoaderByQuery.get(cacheKey), - ); - const resultMapLoader: LoadObject< - Map>>, - > = idsLoader.map((ids) => this.fetchByIDs(ids)); - - const resultsLoader = LoadObject.merge([ - loader, - idsLoader, - resultMapLoader, - ]).map(([count, ids, resultMap]) => { - const entities: Array>> = ids.map( - (id) => resultMap.get(id.toString()) ?? LoadObject.empty(), - ); - - const { take = 100 } = queryOptions; - - const delta = (count % take) - entities.length; - if (count === -1 || entities.length === take || delta <= 0) { - return entities; - } - - const missedLoaders = [...Array(delta)].map(() => - LoadObject.loading>(), - ); - - return [...entities, ...missedLoaders]; - }); - - return resultsLoader; - } - - fetchAll( - queryOptions?: QueryOptions, - ): LoadObject>>> { - return this.count(queryOptions).map((count) => - [...Array(Math.ceil(count / STANDARD_PAGE_SIZE))] - .map((_, index) => { - const skip = STANDARD_PAGE_SIZE * index; - const loader = this.fetchMany({ - ...queryOptions, - skip, - take: STANDARD_PAGE_SIZE, - }); - - const itemLoaders = [ - ...Array(Math.min(STANDARD_PAGE_SIZE, count - skip)), - ]; - - if (loader.isLoading()) { - return itemLoaders.map(() => LoadObject.loading()); - } - - if (loader.hasError()) { - return itemLoaders.map(() => - LoadObject.withError(loader.getErrorEnforcing()), - ); - } - - return loader.getValueEnforcing(); - }) - .flat(), - ); - } - - fetchSingle(queryOptions?: QueryOptions): LoadObject> { - const combinedQueryOptions = { - orderBy: [{ column: 'id', direction: 'desc' }], - ...queryOptions, - take: 1, - }; - - return this.fetchMany(combinedQueryOptions).map( - ( - items: Array>>, - ): LoadObject> => items[0] || LoadObject.empty(), - ); - } - - flushCache() { - this._flushQueryCaches(); - this.__emitChanges(); - } - - flushCacheForEntity(entityID: EntityID) { - this._hydrateSingle(entityID.toString()); - this.__emitChanges(); - } - - flushCustomCache() { - this._flushCustomCache(); - } - - flushQueryCaches() { - this._flushQueryCaches(); - this.__emitChanges(); - } - - patch(id: EntityID, mutator: TEntityMutator): EntityID { - const stringifiedID = id.toString(); - const entity = - this._entityLoaderByID.get(stringifiedID) || LoadObject.empty(); - this._entityLoaderByID.set(stringifiedID, entity.updating()); - - const clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, entity.updating()); - - this.__emitChanges(); - - this.__resolveSingle( - this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), - this.getTranslator().toApi(mutator), - 'PATCH', - ) - .then((result: TEntityBase) => { - this._flushQueryCaches(); - this._updateCacheForEntity(result, false); - this._entityLoaderByID.set( - clientID, - nullthrows(this._entityLoaderByID.get(result.id)), - ); - - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(clientID, error); - }); - - return clientID; - } - - post(mutator: TEntityMutator): EntityID { - const clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, LoadObject.creating()); - this.__resolveSingle( - this.__buildHandler(), - this.getTranslator().toApi(mutator), - 'POST', - ) - .then((result: TEntityBase) => { - this._flushQueryCaches(); - this._updateCacheForEntity(result, false); - // The clientID has a reference to the load object - this._entityLoaderByID.set( - clientID, - nullthrows(this._entityLoaderByID.get(result.id)), - ); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._entityLoaderByID.set(clientID, LoadObject.withError(error)); - this.__emitChanges(); - }); - return clientID; - } - - put(id: EntityID, mutator: TEntityMutator): EntityID { - const stringifiedID = id.toString(); - const entity = - this._entityLoaderByID.get(stringifiedID) || LoadObject.empty(); - this._entityLoaderByID.set(stringifiedID, entity.updating()); - - const clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, entity.updating()); - - this.__emitChanges(); - - this.__resolveSingle( - this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), - this.getTranslator().toApi(mutator), - 'PUT', - ) - .then((result: TEntityBase) => { - this._flushQueryCaches(); - this._updateCacheForEntity(result, false); - // The clientID has a reference to the load object - this._entityLoaderByID.set( - clientID, - nullthrows(this._entityLoaderByID.get(result.id)), - ); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(clientID, error); - }); - - return clientID; - } - - waitForLoaded( - fn: (this) => LoadObject, - timeout?: number, - ): Promise { - return this.waitForLoadedNullable(fn, timeout).then((result) => - nullthrows(result), - ); - } - - waitForLoadedNullable( - fn: (this) => LoadObject, - timeout?: number = 10000, - ): Promise { - return new Promise( - ( - resolve: (response: ?TResponse) => void, - reject: (error: Error) => void, - ) => { - setTimeout((): void => reject(new Error('Timeout!')), timeout); - - const fetchAndResolve = () => { - const fnResult = fn(this); - - // if (fnResult instanceof Map) { - // const entries = Array.from(fnResult.values()); - // if ( - // entries.some(item => - // item instanceof LoadObject ? item.hasOperation() : false, - // ) - // ) { - // return; - // } - - // resolve( - // new Map( - // Array.from(fnResult.entries()).map(([key, value]) => [ - // key, - // value.getValueEnforcing(), - // ]), - // ), - // ); - // this.unsubscribe(fetchAndResolve); - // return; - // } - - const loader: LoadObject = - fnResult instanceof LoadObject - ? fnResult - : LoadObject.withValue(fnResult); - if (loader.hasOperation()) { - return; - } - - const data = loader.getValue(); - if (loader.hasError()) { - reject(loader.getErrorEnforcing()); - return; - } - - if (Array.isArray(data)) { - if ( - data.some((item) => - item instanceof LoadObject ? item.hasOperation() : false, - ) - ) { - return; - } - - resolve( - data.map((item) => - item instanceof LoadObject ? item.getValue() : item, - ), - ); - } else { - resolve(data); - } - - this.unsubscribe(fetchAndResolve); - }; - - this.subscribe(fetchAndResolve); - fetchAndResolve(); - }, - ); - } - - __mutateCustom( - handler: OHandler>, - method: RequestMethod, - id: ?string, - mutator: ?Object = null, - ): string { - let stringifiedID = null; - if (id) { - stringifiedID = id.toString(); - } - - const clientID = this._getClientID(); - - const entity = - this._entityLoaderByID.get(stringifiedID || clientID) || - LoadObject.empty(); - - if (method === 'DELETE') { - this._entityLoaderByID.set(stringifiedID || clientID, entity.deleting()); - } else { - this._entityLoaderByID.set(stringifiedID || clientID, entity.updating()); - } - this.__emitChanges(); - - this.__resolve(handler, mutator, method) - // TODO - We need to rethink how the chache should be changed here.. - // I'm not sure what the expected behavior is for this response. Is it - // standardized? - .then((result: any) => { - if (stringifiedID) { - // We want whatever uses this store to refetch the entity - this._entityLoaderByID.delete(stringifiedID); - } else { - this._updateCacheForEntity(result, false); - this._entityLoaderByID.set( - clientID, - nullthrows(this._entityLoaderByID.get(result.id)), - ); - } - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(stringifiedID || clientID, error); - }); - - return stringifiedID || clientID; - } - - __fetchCustom( - handler: OHandler, - queryOptions?: QueryOptions, - key?: string = '', - ): LoadObject { - const cacheKey = this._getCacheKey({ - ...queryOptions, - __custom_key__: key, - }); - this._currentCustomQueries.add(cacheKey); - this._customHandlerByQuery.set(cacheKey, handler); - - if (!this._customLoaderByQuery.has(cacheKey)) { - this._hydrateCustom(queryOptions, key); - } - - return nullthrows(this._customLoaderByQuery.get(cacheKey)); - } - - _getClientID(): string { - ODataDAO._clientID += 1; - return `CLIENT_ID:${ODataDAO._clientID}`; - } - - _flushQueryCaches() { - if (this._runFlushCache) { - return; - } - - this._currentEntityQueries.clear(); - this._currentCountQueries.clear(); - this._currentCustomQueries.clear(); - this._currentEntityIDsQueries.clear(); - - this._setLoadersToUpdating(this._entityIDsLoaderByQuery); - this._setLoadersToUpdating(this._countLoaderByQuery); - this._setLoadersToUpdating(this._customLoaderByQuery); - - this._runFlushCache = debounce(() => { - Array.from(this._currentEntityQueries) - .filter((id) => id.toString().indexOf('CLIENT_ID:') !== 0) - .forEach((id) => this._hydrateSingle(id, false)); - - this._entityIDsLoaderByQuery = this._rebuildMap( - this._entityIDsLoaderByQuery, - this._currentEntityIDsQueries, - (queryOptions) => this._hydrateMany(queryOptions), - ); - - this._countLoaderByQuery = this._rebuildMap( - this._countLoaderByQuery, - this._currentCountQueries, - (queryOptions) => - this._hydrateCount( - (countQueryOptions) => - this.__buildHandler({ ...queryOptions, ...countQueryOptions }), - queryOptions, - ), - ); - - this._rehydrateCustom(); - - this._runFlushCache = null; - this.__emitChanges(); - }, 10); - - this._runFlushCache(); - } - - _flushCustomCache() { - if (this._runFlushCache) { - return; - } - - this._currentCountQueries.clear(); - this._currentCustomQueries.clear(); - this._currentEntityIDsQueries.clear(); - - this._setLoadersToUpdating(this._customLoaderByQuery); - this._runFlushCache = debounce(() => { - this._rehydrateCustom(); - - this._runFlushCache = null; - this.__emitChanges(); - }, 10); - - this._runFlushCache(); - } - - _rehydrateCustom() { - const toRemove = []; - this._customHandlerByQuery.forEach((_, key) => { - // Remove any queryies that aren't currently in use - if (!this._currentCustomQueries.has(key)) { - toRemove.push(key); - return; - } - - const { __custom_key__: customKey, ...queryParams } = JSON.parse(key); - this._hydrateCustom(queryParams, customKey); - }); - - toRemove.forEach((key) => { - this._customLoaderByQuery.delete(key); - this._customHandlerByQuery.delete(key); - }); - } - - _setLoadersToUpdating(map: Map>) { - map.forEach((value, key) => map.set(key, value.updating())); - } - - _rebuildMap( - map: Map>, - set: Set, - onUpdate: (queryOptions?: QueryOptions) => void, - ): Map> { - const savedItems = Array.from(set).map((queryOptionString) => { - onUpdate(JSON.parse(queryOptionString.toString())); - - const loader = nullthrows(map.get(queryOptionString)); - return [queryOptionString, loader]; - }); - - return new Map(savedItems); - } - - _hydrateSingle( - stringifiedID: string, - shouldEmitChanges: boolean = true, - ): void { - const initialLoader = this._entityLoaderByID.has(stringifiedID) - ? nullthrows(this._entityLoaderByID.get(stringifiedID)).updating() - : LoadObject.loading(); - - this._entityLoaderByID.set(stringifiedID, initialLoader); - this.__emitChanges(); - this.__resolveSingle( - this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), - ) - .then((result: TEntityBase): void => - this._updateCacheForEntity(result, shouldEmitChanges), - ) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(stringifiedID, error); - }); - } - - _hydrateMany(queryOptions?: QueryOptions): void { - const cacheKey = this._getCacheKey(queryOptions); - - const initialLoader = this._entityIDsLoaderByQuery.has(cacheKey) - ? nullthrows(this._entityIDsLoaderByQuery.get(cacheKey)).updating() - : LoadObject.loading(); - - this._entityIDsLoaderByQuery.set(cacheKey, initialLoader); - this.__emitChanges(); - - let handler = this.__buildHandler(queryOptions, false); - handler = handler.select('id'); - - this.__resolveManyIDs(handler) - .then((ids: Array) => { - const stringifiedIds = ids.map(String); - this._entityIDsLoaderByQuery.set( - cacheKey, - LoadObject.withValue(stringifiedIds), - ); - this.__emitChanges(); - this.fetchByIDs(stringifiedIds); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - const loader = this._entityIDsLoaderByQuery.get(cacheKey); - this._entityIDsLoaderByQuery.set( - cacheKey, - loader ? loader.setError(error) : LoadObject.withError(error), - ); - this.__emitChanges(); - }); - } - - _hydrateCount( - getOHandler: (baseQueryOptions: QueryOptions) => OHandler<*>, - queryOptions?: QueryOptions, - key?: string = '', - ): void { - const baseQueryOptions = this._getCountQueryOptions(queryOptions); - - const cacheKey = this._getCacheKey({ - ...baseQueryOptions, - __custom_key__: key, - }); - - const initialLoader = this._countLoaderByQuery.has(cacheKey) - ? nullthrows(this._countLoaderByQuery.get(cacheKey)).updating() - : LoadObject.loading(); - - this._countLoaderByQuery.set(cacheKey, initialLoader); - this.__emitChanges(); - - this.__resolve( - getOHandler({ - ...baseQueryOptions, - shouldCount: true, - take: 0, - }), - ) - .then((result: Object) => { - this._countLoaderByQuery.set( - cacheKey, - LoadObject.withValue(result.inlinecount), - ); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - const loader = this._countLoaderByQuery.get(cacheKey); - this._countLoaderByQuery.set( - cacheKey, - loader ? loader.setError(error) : LoadObject.withError(error), - ); - this.__emitChanges(); - }); - } - - _hydrateCustom(queryOptions?: QueryOptions, key?: string = ''): void { - const cacheKey = this._getCacheKey({ - ...queryOptions, - __custom_key__: key, - }); - const initialLoader = this._customLoaderByQuery.has(cacheKey) - ? nullthrows(this._customLoaderByQuery.get(cacheKey)).updating() - : LoadObject.loading(); - - this._customLoaderByQuery.set(cacheKey, initialLoader); - this.__emitChanges(); - - this.__resolve(nullthrows(this._customHandlerByQuery.get(cacheKey))) - .then((result: Object) => { - this._customLoaderByQuery.set( - cacheKey, - LoadObject.withValue(result.data), - ); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._customLoaderByQuery.set(cacheKey, LoadObject.withError(error)); - this.__emitChanges(); - }); - } - - _getCacheKey(queryOptions?: QueryOptions): string { - return JSON.stringify(queryOptions || '_'); - } - - _getCountQueryOptions(queryOptions?: QueryOptions = {}): QueryOptions { - const { orderBy, skip, take, ...countQueryOptions } = queryOptions; - return (countQueryOptions: any); - } - - _updateCacheForEntity( - entity: TEntityBase, - shouldEmitChanges: boolean = true, - ) { - this._entityLoaderByID.set( - entity.id.toString(), - LoadObject.withValue(entity), - ); - if (shouldEmitChanges) { - this.__emitChanges(); - } - } - - _updateCacheForError( - id: EntityID, - error: Error, - shouldEmitChanges: boolean = true, - ) { - this._entityLoaderByID.set(id.toString(), LoadObject.withError(error)); - if (shouldEmitChanges) { - this.__emitChanges(); - } - } -} - -export default ODataDAO; diff --git a/build/dao/OrganizationDAO.js b/build/dao/OrganizationDAO.js deleted file mode 100644 index 0dccd5a..0000000 --- a/build/dao/OrganizationDAO.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var OrganizationDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(OrganizationDAO, _ODataDAO); - function OrganizationDAO() { - _classCallCheck(this, OrganizationDAO); - return _callSuper(this, OrganizationDAO, [{ - entityName: _constants.DAO_ENTITIES.ORGANIZATIONS, - translator: new _DefaultTranslator["default"]() - }]); - } - _createClass(OrganizationDAO, [{ - key: "fetchWithPayments", - value: function fetchWithPayments(queryOptions) { - var funcString = "Default.withPayments()"; - var handler = this.__buildHandler(queryOptions, false); - handler.func(funcString); - return this.__fetchCustom(handler, queryOptions, funcString); - } - }, { - key: "fetchSquareLocations", - value: function fetchSquareLocations(organizationID, queryOptions) { - var funcString = "Default.fetchSquareLocations()"; - var stringifiedID = organizationID.toString(); - var handler = this.__buildHandler(queryOptions, false).find(this.__reformatIDValue(stringifiedID)); - handler.func(funcString); - return this.__fetchCustom(handler, queryOptions, funcString); - } - }, { - key: "deauthorizeOAuthIntegration", - value: function deauthorizeOAuthIntegration(organizationID) { - var partner = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Square'; - var funcString = 'Default.deauthorizeOAuthIntegration()'; - var stringifiedID = organizationID.toString(); - var handler = this.__buildHandler({}, false).find(this.__reformatIDValue(stringifiedID)).func(funcString); - return this.__mutateCustom(handler, 'POST', stringifiedID, { - partner: partner - }); - } - }]); - return OrganizationDAO; -}(_ODataDAO2["default"]); -var _default = exports["default"] = new OrganizationDAO(); \ No newline at end of file diff --git a/build/dao/OrganizationDAO.js.flow b/build/dao/OrganizationDAO.js.flow deleted file mode 100644 index 6ba4737..0000000 --- a/build/dao/OrganizationDAO.js.flow +++ /dev/null @@ -1,78 +0,0 @@ -// @flow -import type { EntityID, QueryOptions } from '../types'; -import type LoadObject from '../LoadObject'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Organization = {| - canEnablePayments: boolean, - createdDate: Date, - id: EntityID, - isDeleted: boolean, - name: string, -|}; - -export type OrganizationMutator = {| - id?: EntityID, - name: string, -|}; - -export type SquareLocation = {| - locationID: string, - name: string, -|}; - -class OrganizationDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.ORGANIZATIONS, - translator: new DefaultTranslator(), - }); - } - - fetchWithPayments( - queryOptions: QueryOptions, - ): LoadObject>> { - const funcString = `Default.withPayments()`; - - const handler = this.__buildHandler(queryOptions, false); - handler.func(funcString); - - return this.__fetchCustom(handler, queryOptions, funcString); - } - - fetchSquareLocations( - organizationID: EntityID, - queryOptions?: QueryOptions, - ): LoadObject> { - const funcString = `Default.fetchSquareLocations()`; - const stringifiedID = organizationID.toString(); - - const handler = this.__buildHandler(queryOptions, false).find( - this.__reformatIDValue(stringifiedID), - ); - handler.func(funcString); - - return this.__fetchCustom(handler, queryOptions, funcString); - } - - deauthorizeOAuthIntegration( - organizationID: string, - partner: string = 'Square', - ): string { - const funcString = 'Default.deauthorizeOAuthIntegration()'; - const stringifiedID = organizationID.toString(); - - const handler = this.__buildHandler({}, false) - .find(this.__reformatIDValue(stringifiedID)) - .func(funcString); - - return this.__mutateCustom(handler, 'POST', stringifiedID, { - partner, - }); - } -} - -export default new OrganizationDAO(); diff --git a/build/dao/PaymentsDAO.js b/build/dao/PaymentsDAO.js deleted file mode 100644 index 29314dc..0000000 --- a/build/dao/PaymentsDAO.js +++ /dev/null @@ -1,66 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _RestDAO2 = _interopRequireDefault(require("./RestDAO")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var PaymentsDAO = /*#__PURE__*/function (_RestDAO) { - _inherits(PaymentsDAO, _RestDAO); - function PaymentsDAO() { - _classCallCheck(this, PaymentsDAO); - return _callSuper(this, PaymentsDAO, [{ - entityName: 'payments' - }]); - } - _createClass(PaymentsDAO, [{ - key: "get", - value: function get() { - return this.__getOne("api/v2/payments/", 'mine', { - reformatError: function reformatError(error) { - return error.error; - } - }); - } - - // Only FinancialAdministrator can call this - }, { - key: "getOneForAccount", - value: function getOneForAccount(userName) { - return this.__getOne("api/v2/payments/".concat(userName, "/"), userName, { - reformatError: function reformatError(error) { - return error.error; - } - }); - } - }, { - key: "addPaymentMethod", - value: function addPaymentMethod(token) { - return this.__put("api/v2/payments/", 'mine', { - token: token - }); - } - }, { - key: "removePaymentMethod", - value: function removePaymentMethod() { - var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'mine'; - return this.__delete('api/v2/payments/', id); - } - }]); - return PaymentsDAO; -}(_RestDAO2["default"]); -var _default = exports["default"] = new PaymentsDAO(); \ No newline at end of file diff --git a/build/dao/PaymentsDAO.js.flow b/build/dao/PaymentsDAO.js.flow deleted file mode 100644 index 902ef41..0000000 --- a/build/dao/PaymentsDAO.js.flow +++ /dev/null @@ -1,43 +0,0 @@ -// @flow - -import RestDAO from './RestDAO'; - -export type CreditCardDetails = {| - brand: string, - expirationMonth: number, - expirationYear: number, - last4: string, -|}; - -export type CreditCardDetailsMutator = {| - token: string, -|}; - -class PaymentsDAO extends RestDAO { - constructor() { - super({ entityName: 'payments' }); - } - - get() { - return this.__getOne(`api/v2/payments/`, 'mine', { - reformatError: error => error.error, - }); - } - - // Only FinancialAdministrator can call this - getOneForAccount(userName: string) { - return this.__getOne(`api/v2/payments/${userName}/`, userName, { - reformatError: error => error.error, - }); - } - - addPaymentMethod(token: string) { - return this.__put(`api/v2/payments/`, 'mine', { token }); - } - - removePaymentMethod(id: string = 'mine') { - return this.__delete('api/v2/payments/', id); - } -} - -export default new PaymentsDAO(); diff --git a/build/dao/PermissionDAO.js b/build/dao/PermissionDAO.js deleted file mode 100644 index 7214a3d..0000000 --- a/build/dao/PermissionDAO.js +++ /dev/null @@ -1,55 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _PermissionTranslator = _interopRequireDefault(require("../translators/PermissionTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var PermissionDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(PermissionDAO, _ODataDAO); - function PermissionDAO() { - _classCallCheck(this, PermissionDAO); - return _callSuper(this, PermissionDAO, [{ - entityName: _constants.DAO_ENTITIES.PERMISSIONS, - navigationProperties: { - createdBy: { - select: ['id', 'userName'] - }, - device: { - select: ['id', 'isDeleted', 'name'] - }, - forUser: { - select: ['id', 'userName'] - }, - location: { - select: ['id', 'isDeleted', 'name'] - }, - organization: { - select: ['id', 'isDeleted', 'name'] - }, - tap: { - select: ['id', 'isDeleted'] - } - }, - translator: new _PermissionTranslator["default"]() - }]); - } - return _createClass(PermissionDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new PermissionDAO(); \ No newline at end of file diff --git a/build/dao/PermissionDAO.js.flow b/build/dao/PermissionDAO.js.flow deleted file mode 100644 index 0dc70df..0000000 --- a/build/dao/PermissionDAO.js.flow +++ /dev/null @@ -1,71 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from './TapDAO'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import PermissionTranslator from '../translators/PermissionTranslator'; - -export type PermissionEntityType = - | 'devices' - | 'locations' - | 'organizations' - | 'taps'; - -export type PermissionType = - | 'Administrator' - | 'Edit' - | 'Read' - | 'BannedFromTap'; - -export type Permission = {| - createdBy: {| - id: EntityID, - userName: string, - |}, - createdDate: Date, - device: ?ShortenedEntity, - expiresDate: ?Date, - forUser: {| - id: EntityID, - userName: string, - |}, - id: EntityID, - invalid: boolean, - isDeleted: boolean, - location: ?ShortenedEntity, - organization: ?ShortenedEntity, - permissionType: PermissionType, - startDate: ?Date, - tap: ?ShortenedTap, -|}; - -export type PermissionMutator = { - entityId: EntityID, - entityType: PermissionEntityType, - expiresDate: ?Date, - id: ?EntityID, - permissionType: PermissionType, - startDate: ?Date, - userId: EntityID, -}; - -class PermissionDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.PERMISSIONS, - navigationProperties: { - createdBy: { select: ['id', 'userName'] }, - device: { select: ['id', 'isDeleted', 'name'] }, - forUser: { select: ['id', 'userName'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new PermissionTranslator(), - }); - } -} - -export default new PermissionDAO(); diff --git a/build/dao/PourChartDAO.js b/build/dao/PourChartDAO.js deleted file mode 100644 index f5c46b6..0000000 --- a/build/dao/PourChartDAO.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _RestDAO2 = _interopRequireDefault(require("./RestDAO")); -var _qs = _interopRequireDefault(require("qs")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var PourChartDAO = /*#__PURE__*/function (_RestDAO) { - _inherits(PourChartDAO, _RestDAO); - function PourChartDAO() { - var _this; - _classCallCheck(this, PourChartDAO); - _this = _callSuper(this, PourChartDAO, [{ - entityName: _constants.DAO_ENTITIES.POUR_CHART, - translator: new _DefaultTranslator["default"]() - }]); - _defineProperty(_assertThisInitialized(_this), "fetchChartData", function (params) { - var queryString = _qs["default"].stringify(_objectSpread(_objectSpread({}, params), {}, { - ids: params.ids ? params.ids.join(',') : null - }), { - skipNulls: true - }); - return _this.__getOne("api/v2/chart/GetChart/?".concat(queryString), queryString); - }); - return _this; - } - return _createClass(PourChartDAO); -}(_RestDAO2["default"]); -var _default = exports["default"] = new PourChartDAO(); \ No newline at end of file diff --git a/build/dao/PourChartDAO.js.flow b/build/dao/PourChartDAO.js.flow deleted file mode 100644 index 6cae7d4..0000000 --- a/build/dao/PourChartDAO.js.flow +++ /dev/null @@ -1,51 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; -import type LoadObject from '../LoadObject'; - -import RestDAO from './RestDAO'; -import qs from 'qs'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type PourChartByEntity = 'device' | 'location' | 'organization' | 'tap'; - -export type PourChartType = 'daily' | 'hourly' | 'timeline'; - -export type PourChartParams = {| - beginDate?: ?Date, - byEntity: PourChartByEntity, - chartType: PourChartType, - endDate?: ?Date, - ids?: Array, -|}; - -export type PourChartResult = {| - entityResults: Array<{| key: string, name: string |}>, - resultSegments: Array<{| - dataSets: Array<{ key: string, value: number }>, - key: string, - |}>, -|}; - -class PourChartDAO extends RestDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.POUR_CHART, - translator: new DefaultTranslator(), - }); - } - - fetchChartData = (params: PourChartParams): LoadObject => { - const queryString = qs.stringify( - { - ...params, - ids: params.ids ? params.ids.join(',') : null, - }, - { skipNulls: true }, - ); - return this.__getOne(`api/v2/chart/GetChart/?${queryString}`, queryString); - }; -} - -export default new PourChartDAO(); diff --git a/build/dao/PourDAO.js b/build/dao/PourDAO.js deleted file mode 100644 index ac00c74..0000000 --- a/build/dao/PourDAO.js +++ /dev/null @@ -1,113 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _PourTranslator = _interopRequireDefault(require("../translators/PourTranslator")); -var _signalr = _interopRequireDefault(require("../signalr")); -var _debounce = _interopRequireDefault(require("debounce")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var POURS_ACCUMULATE_TIMEOUT = 700; -var PourDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(PourDAO, _ODataDAO); - function PourDAO() { - var _this; - _classCallCheck(this, PourDAO); - _this = _callSuper(this, PourDAO, [{ - entityName: _constants.DAO_ENTITIES.POURS, - navigationProperties: { - beverage: { - select: ['id', 'isDeleted', 'name'] - }, - device: { - select: ['id', 'isDeleted', 'name'] - }, - keg: { - select: ['id'] - }, - location: { - select: ['id', 'isDeleted', 'name'] - }, - organization: { - select: ['id', 'isDeleted', 'name'] - }, - owner: { - select: ['id', 'userName'] - }, - tap: { - select: ['id', 'isDeleted'] - } - }, - translator: new _PourTranslator["default"]() - }]); - _defineProperty(_assertThisInitialized(_this), "isAutoflushToggled", true); - _defineProperty(_assertThisInitialized(_this), "_accumulatedIds", new Set()); - _defineProperty(_assertThisInitialized(_this), "startAutoflush", function () { - if (_this.isAutoflushToggled) { - return; - } - _this.flushQueryCaches(); - _this.isAutoflushToggled = true; - }); - _defineProperty(_assertThisInitialized(_this), "stopAutoflush", function () { - _this.isAutoflushToggled = false; - }); - _defineProperty(_assertThisInitialized(_this), "toggleAutoflush", function () { - if (_this.isAutoflushToggled) { - _this.stopAutoflush(); - } else { - _this.startAutoflush(); - } - }); - _defineProperty(_assertThisInitialized(_this), "_onNewPourDebounced", (0, _debounce["default"])(function () { - _this.fetchByIDs(Array.from(_this._accumulatedIds)); - if (_this.isAutoflushToggled) { - _this._accumulatedIds.forEach(function (id) { - return _this.flushCacheForEntity(id); - }); - _this.flushQueryCaches(); - } - _this._accumulatedIds.clear(); - }, POURS_ACCUMULATE_TIMEOUT)); - _defineProperty(_assertThisInitialized(_this), "_onNewPour", function (pourId) { - _this._accumulatedIds.add(pourId); - _this._onNewPourDebounced(); - }); - _signalr["default"].TapHub.registerListener('newPour', _this._onNewPour); - return _this; - } - _createClass(PourDAO, [{ - key: "getPoursByBeverageIDs", - value: function getPoursByBeverageIDs(beverageIDs, userID) { - var filters = ["beverage/id in (".concat(beverageIDs.join(', '), ")"), userID != null ? "owner/id eq '".concat(userID, "'") : null, "isDeleted eq false"].filter(Boolean); - var queryOptions = { - apply: "filter((".concat(filters.join(') and ('), "))/groupby((beverage/id),aggregate(ounces with sum as total))"), - shouldIgnoreOrganizationID: true - }; - return this.__fetchCustom(this.__buildHandler(queryOptions, false), queryOptions).map(function (results) { - return new Map(results.map(function (item) { - return [item.beverage.id.toString(), item.total]; - })); - }); - } - }]); - return PourDAO; -}(_ODataDAO2["default"]); -var _default = exports["default"] = new PourDAO(); \ No newline at end of file diff --git a/build/dao/PourDAO.js.flow b/build/dao/PourDAO.js.flow deleted file mode 100644 index ffad36a..0000000 --- a/build/dao/PourDAO.js.flow +++ /dev/null @@ -1,115 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from './TapDAO'; -import type LoadObject from '../LoadObject'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import PourTranslator from '../translators/PourTranslator'; -import Signalr from '../signalr'; -import debounce from 'debounce'; - -const POURS_ACCUMULATE_TIMEOUT = 700; - -export type Pour = {| - beverage: ?ShortenedEntity, - id: EntityID, - isDeleted: boolean, - keg: {| id: EntityID |}, - location: ?ShortenedEntity, - organization: ShortenedEntity, - ounces: number, - owner: {| id: EntityID, userName: string |}, - pourDate: string, - pulses: number, - tap: ?ShortenedTap, -|}; - -class PourDAO extends ODataDAO { - isAutoflushToggled: boolean = true; - - _accumulatedIds: Set = new Set(); - - constructor() { - super({ - entityName: DAO_ENTITIES.POURS, - navigationProperties: { - beverage: { select: ['id', 'isDeleted', 'name'] }, - device: { select: ['id', 'isDeleted', 'name'] }, - keg: { select: ['id'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - owner: { select: ['id', 'userName'] }, - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new PourTranslator(), - }); - - Signalr.TapHub.registerListener('newPour', this._onNewPour); - } - - getPoursByBeverageIDs( - beverageIDs: Array, - userID?: EntityID, - ): LoadObject> { - const filters = [ - `beverage/id in (${beverageIDs.join(', ')})`, - userID != null ? `owner/id eq '${userID}'` : null, - `isDeleted eq false`, - ].filter(Boolean); - const queryOptions = { - apply: `filter((${filters.join( - ') and (', - )}))/groupby((beverage/id),aggregate(ounces with sum as total))`, - shouldIgnoreOrganizationID: true, - }; - return this.__fetchCustom( - this.__buildHandler(queryOptions, false), - queryOptions, - ).map( - (results) => - new Map( - results.map((item) => [item.beverage.id.toString(), item.total]), - ), - ); - } - - startAutoflush = () => { - if (this.isAutoflushToggled) { - return; - } - this.flushQueryCaches(); - this.isAutoflushToggled = true; - }; - - stopAutoflush = () => { - this.isAutoflushToggled = false; - }; - - toggleAutoflush = () => { - if (this.isAutoflushToggled) { - this.stopAutoflush(); - } else { - this.startAutoflush(); - } - }; - - _onNewPourDebounced = debounce(() => { - this.fetchByIDs(Array.from(this._accumulatedIds)); - - if (this.isAutoflushToggled) { - this._accumulatedIds.forEach((id) => this.flushCacheForEntity(id)); - this.flushQueryCaches(); - } - - this._accumulatedIds.clear(); - }, POURS_ACCUMULATE_TIMEOUT); - - _onNewPour = (pourId: EntityID) => { - this._accumulatedIds.add(pourId); - this._onNewPourDebounced(); - }; -} - -export default new PourDAO(); diff --git a/build/dao/PriceVariantDAO.js b/build/dao/PriceVariantDAO.js deleted file mode 100644 index 9734b15..0000000 --- a/build/dao/PriceVariantDAO.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var PriceVariantDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(PriceVariantDAO, _ODataDAO); - function PriceVariantDAO() { - _classCallCheck(this, PriceVariantDAO); - return _callSuper(this, PriceVariantDAO, [{ - entityName: _constants.DAO_ENTITIES.PRICE_VARIANTS, - navigationProperties: { - tap: { - select: ['id', 'isDeleted'] - } - }, - translator: new _DefaultTranslator["default"]() - }]); - } - return _createClass(PriceVariantDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new PriceVariantDAO(); \ No newline at end of file diff --git a/build/dao/PriceVariantDAO.js.flow b/build/dao/PriceVariantDAO.js.flow deleted file mode 100644 index 4d391b2..0000000 --- a/build/dao/PriceVariantDAO.js.flow +++ /dev/null @@ -1,35 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type PriceVariant = {| - id: EntityID, - ounces: number, - price: number, - tap: ShortenedEntity, -|}; - -export type PriceVariantMutator = {| - id: ?EntityID, - ounces: number, - price: number, - tapId: EntityID, -|}; - -class PriceVariantDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.PRICE_VARIANTS, - navigationProperties: { - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new DefaultTranslator(), - }); - } -} - -export default new PriceVariantDAO(); diff --git a/build/dao/ProductDAO.js b/build/dao/ProductDAO.js deleted file mode 100644 index bd2252d..0000000 --- a/build/dao/ProductDAO.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = exports.PRODUCT_TYPES = exports.PLATFORM_NAME_BY_ID = void 0; -var _RestDAO2 = _interopRequireDefault(require("./RestDAO")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var PLATFORM_NAME_BY_ID = exports.PLATFORM_NAME_BY_ID = { - '0': 'Core', - '10': 'Electron', - '103': 'Bluz', - '6': 'Photon', - '8': 'P1' -}; -var PRODUCT_TYPES = exports.PRODUCT_TYPES = ['Consumer', 'Hobbyist', 'Industrial']; -var ProductDAO = /*#__PURE__*/function (_RestDAO) { - _inherits(ProductDAO, _RestDAO); - function ProductDAO() { - _classCallCheck(this, ProductDAO); - return _callSuper(this, ProductDAO, [{ - entityName: 'products' - }]); - } - _createClass(ProductDAO, [{ - key: "count", - value: function count() { - return this.__count('api/v2/products/count'); - } - }, { - key: "getMany", - value: function getMany() { - var queryOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var skip = queryOptions.skip, - take = queryOptions.take; - return this.__getMany("api/v2/products/?skip=".concat(skip, "&take=").concat(take)); - } - }, { - key: "getOne", - value: function getOne(idOrSlug) { - return this.__getOne("api/v2/products/".concat(idOrSlug, "/"), idOrSlug); - } - }, { - key: "post", - value: function post(mutator) { - return this.__post('api/v2/products/', mutator); - } - }, { - key: "put", - value: function put(id, mutator) { - return this.__put("api/v2/products/".concat(id, "/"), id, mutator); - } - }, { - key: "delete", - value: function _delete(idOrSlug) { - return this.__delete("api/v2/products/".concat(idOrSlug), idOrSlug); - } - }]); - return ProductDAO; -}(_RestDAO2["default"]); -var _default = exports["default"] = new ProductDAO(); \ No newline at end of file diff --git a/build/dao/ProductDAO.js.flow b/build/dao/ProductDAO.js.flow deleted file mode 100644 index 2219e61..0000000 --- a/build/dao/ProductDAO.js.flow +++ /dev/null @@ -1,78 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import RestDAO from './RestDAO'; - -export type ProductPlatformId = '0' | '6' | '8' | '10' | '103'; - -export type ProductPlatformName = - | 'Bluz' - | 'Core' - | 'Electron' - | 'P1' - | 'Photon'; - -export type ProductType = 'Consumer' | 'Industrial' | 'Hobbyist'; - -export type Product = {| - configId: string, - createdAt: Date, - description: string, - hardwareVersion: string, - id: EntityID, - name: string, - organization: string, - platformId: ProductPlatformId, - slug: string, - type: ProductType, -|}; - -export const PLATFORM_NAME_BY_ID: { - [key: ProductPlatformId]: ProductPlatformName, -} = { - '0': 'Core', - '10': 'Electron', - '103': 'Bluz', - '6': 'Photon', - '8': 'P1', -}; - -export const PRODUCT_TYPES: Array = [ - 'Consumer', - 'Hobbyist', - 'Industrial', -]; - -class ProductDAO extends RestDAO { - constructor() { - super({ entityName: 'products' }); - } - - count() { - return this.__count('api/v2/products/count'); - } - - getMany(queryOptions?: Object = {}) { - const { skip, take } = queryOptions; - return this.__getMany(`api/v2/products/?skip=${skip}&take=${take}`); - } - - getOne(idOrSlug: string) { - return this.__getOne(`api/v2/products/${idOrSlug}/`, idOrSlug); - } - - post(mutator: any) { - return this.__post('api/v2/products/', mutator); - } - - put(id: string, mutator: any) { - return this.__put(`api/v2/products/${id}/`, id, mutator); - } - - delete(idOrSlug: string) { - return this.__delete(`api/v2/products/${idOrSlug}`, idOrSlug); - } -} - -export default new ProductDAO(); diff --git a/build/dao/ProductDeviceDAO.js b/build/dao/ProductDeviceDAO.js deleted file mode 100644 index 146adca..0000000 --- a/build/dao/ProductDeviceDAO.js +++ /dev/null @@ -1,85 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _RestDAO2 = _interopRequireDefault(require("./RestDAO")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var ProductDeviceDAO = /*#__PURE__*/function (_RestDAO) { - _inherits(ProductDeviceDAO, _RestDAO); - function ProductDeviceDAO() { - _classCallCheck(this, ProductDeviceDAO); - return _callSuper(this, ProductDeviceDAO, [{ - entityName: 'product-devices' - }]); - } - _createClass(ProductDeviceDAO, [{ - key: "count", - value: function count(productIdOrSlug) { - return this.__count("api/v2/products/".concat(productIdOrSlug, "/devices/count")); - } - }, { - key: "getMany", - value: function getMany(productIdOrSlug) { - var queryOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var skip = queryOptions.skip, - take = queryOptions.take; - return this.__getMany("api/v2/products/".concat(productIdOrSlug, "/devices/?skip=").concat(skip, "&take=").concat(take)); - } - }, { - key: "getOne", - value: function getOne(productIdOrSlug, particleId) { - return this.__getOne("api/v2/products/".concat(productIdOrSlug, "/devices/").concat(particleId, "/"), particleId); - } - }, { - key: "addToProduct", - value: function addToProduct(productIdOrSlug, payload) { - var file = payload.file, - particleId = payload.particleId; - return this.__fetchOne("api/v2/products/".concat(productIdOrSlug, "/devices/"), { - body: JSON.stringify({ - file: file, - importMethod: file ? 'many' : 'one', - particleId: particleId - }), - headers: [{ - name: 'Accept', - value: 'application/json' - }, { - name: 'Content-Type', - value: 'application/json' - }], - method: 'POST', - reformatError: function reformatError(error) { - return "invalid device ids: ".concat(error.invalidDeviceIds.join(', ')); - } - }); - } - }, { - key: "put", - value: function put(productIdOrSlug, particleId, deviceMutator) { - return this.__put("api/v2/products/".concat(productIdOrSlug, "/devices/").concat(particleId, "/"), particleId, deviceMutator); - } - }, { - key: "delete", - value: function _delete(productIdOrSlug, particleId) { - return this.__delete("api/v2/products/".concat(productIdOrSlug, "/devices/").concat(particleId), particleId); - } - }]); - return ProductDeviceDAO; -}(_RestDAO2["default"]); -var _default = exports["default"] = new ProductDeviceDAO(); \ No newline at end of file diff --git a/build/dao/ProductDeviceDAO.js.flow b/build/dao/ProductDeviceDAO.js.flow deleted file mode 100644 index e2f5257..0000000 --- a/build/dao/ProductDeviceDAO.js.flow +++ /dev/null @@ -1,89 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import RestDAO from './RestDAO'; - -export type ProductDevice = {| - denied: boolean, - desiredFirmwareVersion: ?number, - development: boolean, - functions: Array, - id: EntityID, - lastHeard: Date, - lastIpAddress: string, - name: string, - notes: string, - platformId: string, - productId: string, - quarantined: boolean, - status: string, - variables: ?Object, -|}; - -export type ProductDeviceMutator = {| - denied?: boolean, - desiredFirmwareVersion?: ?number, - development?: boolean, - notes?: ?string, - quarantined?: boolean, -|}; - -class ProductDeviceDAO extends RestDAO { - constructor() { - super({ entityName: 'product-devices' }); - } - - count(productIdOrSlug: string) { - return this.__count(`api/v2/products/${productIdOrSlug}/devices/count`); - } - - getMany(productIdOrSlug: string, queryOptions?: Object = {}) { - const { skip, take } = queryOptions; - return this.__getMany( - `api/v2/products/${productIdOrSlug}/devices/?skip=${skip}&take=${take}`, - ); - } - - getOne(productIdOrSlug: string, particleId: string) { - return this.__getOne( - `api/v2/products/${productIdOrSlug}/devices/${particleId}/`, - particleId, - ); - } - - addToProduct(productIdOrSlug: string, payload: any) { - const { file, particleId } = payload; - return this.__fetchOne(`api/v2/products/${productIdOrSlug}/devices/`, { - body: JSON.stringify({ - file, - importMethod: file ? 'many' : 'one', - particleId, - }), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'POST', - reformatError: error => - `invalid device ids: ${error.invalidDeviceIds.join(', ')}`, - }); - } - - put(productIdOrSlug: string, particleId: string, deviceMutator: any) { - return this.__put( - `api/v2/products/${productIdOrSlug}/devices/${particleId}/`, - particleId, - deviceMutator, - ); - } - - delete(productIdOrSlug: string, particleId: string) { - return this.__delete( - `api/v2/products/${productIdOrSlug}/devices/${particleId}`, - particleId, - ); - } -} - -export default new ProductDeviceDAO(); diff --git a/build/dao/ProductFirmwareDAO.js b/build/dao/ProductFirmwareDAO.js deleted file mode 100644 index db495a8..0000000 --- a/build/dao/ProductFirmwareDAO.js +++ /dev/null @@ -1,70 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _RestDAO2 = _interopRequireDefault(require("./RestDAO")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var ProductFirmwareDAO = /*#__PURE__*/function (_RestDAO) { - _inherits(ProductFirmwareDAO, _RestDAO); - function ProductFirmwareDAO() { - _classCallCheck(this, ProductFirmwareDAO); - return _callSuper(this, ProductFirmwareDAO, [{ - entityName: 'product-firmwares' - }]); - } - _createClass(ProductFirmwareDAO, [{ - key: "count", - value: function count(productIdOrSlug) { - return this.__count("api/v2/products/".concat(productIdOrSlug, "/firmwares/count")); - } - }, { - key: "getOne", - value: function getOne(productIdOrSlug, id) { - return this.__getOne("api/v2/products/".concat(productIdOrSlug, "/firmwares/").concat(id, "/"), id); - } - }, { - key: "getMany", - value: function getMany(productIdOrSlug) { - var queryOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var skip = queryOptions.skip, - take = queryOptions.take; - return this.__getMany("api/v2/products/".concat(productIdOrSlug, "/firmwares/?skip=").concat(skip, "&take=").concat(take)); - } - }, { - key: "post", - value: function post(productIdOrSlug, mutator) { - return this.__post("api/v2/products/".concat(productIdOrSlug, "/firmwares/"), mutator, { - reformatError: function reformatError(error) { - return error.error; - } - }); - } - }, { - key: "updateProductFirmware", - value: function updateProductFirmware(productIdOrSlug, firmwareId, firmwareVersion, mutator) { - return this.__put("api/v2/products/".concat(productIdOrSlug, "/firmwares/").concat(firmwareVersion), firmwareId, mutator); - } - }, { - key: "delete", - value: function _delete(productIdOrSlug, firmwareId, firmwareVersion) { - return this.__delete("api/v2/products/".concat(productIdOrSlug, "/firmwares/").concat(firmwareVersion, "/"), firmwareId); - } - }]); - return ProductFirmwareDAO; -}(_RestDAO2["default"]); -var _default = exports["default"] = new ProductFirmwareDAO(); \ No newline at end of file diff --git a/build/dao/ProductFirmwareDAO.js.flow b/build/dao/ProductFirmwareDAO.js.flow deleted file mode 100644 index 8d04650..0000000 --- a/build/dao/ProductFirmwareDAO.js.flow +++ /dev/null @@ -1,89 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import RestDAO from './RestDAO'; - -export type ProductFirmware = {| - current: boolean, - description?: string, - deviceCount: number, - id: EntityID, - name: string, - productId: string, - size: number, - title: string, - updatedAt: Date, - version: number, -|}; - -export type ProductFirmwareMutator = {| - binary?: Buffer, - description?: string, - isCurrent?: boolean, - title?: string, - version?: string, -|}; - -class ProductFirmwareDAO extends RestDAO< - ProductFirmware, - ProductFirmwareMutator, -> { - constructor() { - super({ entityName: 'product-firmwares' }); - } - - count(productIdOrSlug: string) { - return this.__count(`api/v2/products/${productIdOrSlug}/firmwares/count`); - } - - getOne(productIdOrSlug: string, id: EntityID) { - return this.__getOne( - `api/v2/products/${productIdOrSlug}/firmwares/${id}/`, - id, - ); - } - - getMany(productIdOrSlug: string, queryOptions?: Object = {}) { - const { skip, take } = queryOptions; - return this.__getMany( - `api/v2/products/${productIdOrSlug}/firmwares/?skip=${skip}&take=${take}`, - ); - } - - post(productIdOrSlug: string, mutator: any) { - return this.__post( - `api/v2/products/${productIdOrSlug}/firmwares/`, - mutator, - { - reformatError: error => error.error, - }, - ); - } - - updateProductFirmware( - productIdOrSlug: string, - firmwareId: EntityID, - firmwareVersion: number, - mutator: ProductFirmwareMutator, - ) { - return this.__put( - `api/v2/products/${productIdOrSlug}/firmwares/${firmwareVersion}`, - firmwareId, - mutator, - ); - } - - delete( - productIdOrSlug: string, - firmwareId: EntityID, - firmwareVersion: number, - ) { - return this.__delete( - `api/v2/products/${productIdOrSlug}/firmwares/${firmwareVersion}/`, - firmwareId, - ); - } -} - -export default new ProductFirmwareDAO(); diff --git a/build/dao/ReportDAO.js b/build/dao/ReportDAO.js deleted file mode 100644 index 0ef760d..0000000 --- a/build/dao/ReportDAO.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _ReportTranslator = _interopRequireDefault(require("../translators/ReportTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var ReportDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(ReportDAO, _ODataDAO); - function ReportDAO() { - _classCallCheck(this, ReportDAO); - return _callSuper(this, ReportDAO, [{ - entityName: _constants.DAO_ENTITIES.REPORTS, - navigationProperties: { - devices: { - select: ['id', 'isDeleted', 'name'] - }, - locations: { - select: ['id', 'isDeleted', 'name'] - }, - taps: { - select: ['id', 'isDeleted'] - } - }, - translator: new _ReportTranslator["default"]() - }]); - } - return _createClass(ReportDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new ReportDAO(); \ No newline at end of file diff --git a/build/dao/ReportDAO.js.flow b/build/dao/ReportDAO.js.flow deleted file mode 100644 index 2b65783..0000000 --- a/build/dao/ReportDAO.js.flow +++ /dev/null @@ -1,56 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from './TapDAO'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import ReportTranslator from '../translators/ReportTranslator'; - -export type Report = {| - createdDate: Date, - devices: Array, - id: EntityID, - isDeleted: boolean, - lastEdited: Date, - locations: Array, - name: string, - reportCadence: ReportCadence, - reportCadenceTimeStamp: Date, - sendToEmails: Array, - taps: Array, -|}; - -export type ReportMutator = {| - devices?: Array, - id?: EntityID, - locations?: Array, - name: string, - reportCadence: ReportCadence, - reportCadenceTimeStamp: Date, - sendToEmails: Array<{ email: string }>, - taps?: Array, -|}; - -export type ReportCadence = - | 'OneTime' - | 'Daily' - | 'Weekly' - | 'Biweekly' - | 'Monthly'; - -class ReportDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.REPORTS, - navigationProperties: { - devices: { select: ['id', 'isDeleted', 'name'] }, - locations: { select: ['id', 'isDeleted', 'name'] }, - taps: { select: ['id', 'isDeleted'] }, - }, - translator: new ReportTranslator(), - }); - } -} - -export default new ReportDAO(); diff --git a/build/dao/RestDAO.js b/build/dao/RestDAO.js deleted file mode 100644 index 0af5129..0000000 --- a/build/dao/RestDAO.js +++ /dev/null @@ -1,331 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _nullthrows = _interopRequireDefault(require("nullthrows")); -var _ClientID = _interopRequireDefault(require("./ClientID")); -var _Subscription2 = _interopRequireDefault(require("./Subscription")); -var _LoadObject = _interopRequireDefault(require("../LoadObject")); -var _fetch = _interopRequireDefault(require("../fetch")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var RestDAO = /*#__PURE__*/function (_Subscription) { - _inherits(RestDAO, _Subscription); - function RestDAO(_ref) { - var _this; - var entityName = _ref.entityName; - _classCallCheck(this, RestDAO); - _this = _callSuper(this, RestDAO); - _defineProperty(_assertThisInitialized(_this), "_countLoaderByQuery", new Map()); - _defineProperty(_assertThisInitialized(_this), "_entityLoaderById", new Map()); - _defineProperty(_assertThisInitialized(_this), "_entityIdsLoaderByQuery", new Map()); - _defineProperty(_assertThisInitialized(_this), "_entityName", void 0); - _this._entityName = entityName; - return _this; - } - _createClass(RestDAO, [{ - key: "getEntityName", - value: function getEntityName() { - return this._entityName; - } - }, { - key: "__updateEntityByID", - value: function __updateEntityByID(id, cb) { - var stringifiedId = id.toString(); - var loader = this._entityLoaderById.get(stringifiedId); - if (!loader) { - return; - } - this._entityLoaderById.set(stringifiedId, loader.map(cb)); - this.__emitChanges(); - } - }, { - key: "__count", - value: function __count(path, queryParams) { - var _this2 = this; - var cacheKey = this.__getCacheKey(path, queryParams); - if (!this._countLoaderByQuery.has(cacheKey)) { - this._countLoaderByQuery.set(cacheKey, _LoadObject["default"].loading()); - this.__emitChanges(); - (0, _fetch["default"])(path, _objectSpread({ - method: 'GET' - }, queryParams)).then(function (countResult) { - _this2._countLoaderByQuery.set(cacheKey, _LoadObject["default"].withValue((0, _nullthrows["default"])(countResult))); - _this2.__emitChanges(); - })["catch"](function (error) { - _Subscription2["default"].__emitError(error); - _this2._countLoaderByQuery.set(cacheKey, _LoadObject["default"].withError(error)); - _this2.__emitChanges(); - }); - } - return (0, _nullthrows["default"])(this._countLoaderByQuery.get(cacheKey)); - } - }, { - key: "__getMany", - value: function __getMany(path, queryParams) { - var _this3 = this; - var cacheKey = this.__getCacheKey(path, queryParams); - if (!this._entityIdsLoaderByQuery.has(cacheKey)) { - this._entityIdsLoaderByQuery.set(cacheKey, _LoadObject["default"].loading()); - this.__emitChanges(); - (0, _fetch["default"])(path, _objectSpread({ - method: 'GET' - }, queryParams)).then(function (items) { - var ids = (0, _nullthrows["default"])(items).map(function (_ref2) { - var id = _ref2.id; - return id.toString(); - }); - (0, _nullthrows["default"])(items).forEach(function (item) { - return _this3._entityLoaderById.set(item.id.toString(), _LoadObject["default"].withValue(item)); - }); - _this3._entityIdsLoaderByQuery.set(cacheKey, _LoadObject["default"].withValue(ids)); - _this3.__emitChanges(); - })["catch"](function (error) { - _Subscription2["default"].__emitError(error); - _this3._entityIdsLoaderByQuery.set(cacheKey, _LoadObject["default"].withError(error)); - _this3.__emitChanges(); - }); - } - var result = (0, _nullthrows["default"])(this._entityIdsLoaderByQuery.get(cacheKey)).map(function (ids) { - return ids.map(function (id) { - var loader = (0, _nullthrows["default"])(_this3._entityLoaderById.get(id.toString())); - return loader; - }); - }); - return result; - } - }, { - key: "__getOne", - value: function __getOne(path, id, queryParams) { - var _this4 = this; - var stringifiedId = id.toString(); - if (!this._entityLoaderById.has(stringifiedId)) { - this._entityLoaderById.set(stringifiedId, _LoadObject["default"].loading()); - this.__emitChanges(); - (0, _fetch["default"])(path, _objectSpread({ - headers: [{ - name: 'Accept', - value: 'application/json' - }, { - name: 'Content-Type', - value: 'application/json' - }], - method: 'GET' - }, queryParams)).then(function (result) { - _this4._entityLoaderById.set(stringifiedId, _LoadObject["default"].withValue(result)); - _this4.__emitChanges(); - })["catch"](function (error) { - _Subscription2["default"].__emitError(error); - _this4._entityLoaderById.set(stringifiedId, _LoadObject["default"].withError(error)); - _this4.__emitChanges(); - }); - } - return (0, _nullthrows["default"])(this._entityLoaderById.get(stringifiedId)); - } - }, { - key: "__fetchOne", - value: function __fetchOne(path, queryParams) { - var _this5 = this; - var clientId = _ClientID["default"].getClientId(); - this._entityLoaderById.set(clientId, _LoadObject["default"].loading()); - this.__emitChanges(); - (0, _fetch["default"])(path, _objectSpread({ - method: 'GET' - }, queryParams)).then(function (result) { - _this5._entityLoaderById.set(clientId, _LoadObject["default"].withValue(result)); - _this5.__emitChanges(); - })["catch"](function (error) { - _Subscription2["default"].__emitError(error); - _this5._entityLoaderById.set(clientId, _LoadObject["default"].withError(error)); - _this5.__emitChanges(); - }); - return clientId; - } - }, { - key: "__post", - value: function __post(path, mutator, queryParams) { - var _this6 = this; - var clientId = _ClientID["default"].getClientId(); - this._entityLoaderById.set(clientId, _LoadObject["default"].creating()); - this.__emitChanges(); - (0, _fetch["default"])(path, _objectSpread({ - body: JSON.stringify(mutator), - headers: [{ - name: 'Accept', - value: 'application/json' - }, { - name: 'Content-Type', - value: 'application/json' - }], - method: 'POST' - }, queryParams)).then(function (item) { - _this6._flushQueryCaches(); - _this6._entityLoaderById.set((0, _nullthrows["default"])(item).id, _LoadObject["default"].withValue((0, _nullthrows["default"])(item))); - _this6._entityLoaderById.set(clientId, (0, _nullthrows["default"])(_this6._entityLoaderById.get((0, _nullthrows["default"])(item).id))); - _this6.__emitChanges(); - })["catch"](function (error) { - _Subscription2["default"].__emitError(error); - _this6._entityLoaderById.set(clientId, _LoadObject["default"].withError(error)); - _this6.__emitChanges(); - }); - return clientId; - } - }, { - key: "__put", - value: function __put(path, id, mutator, queryParams) { - var _this7 = this; - var stringifiedID = id.toString(); - var entity = this._entityLoaderById.get(stringifiedID) || _LoadObject["default"].empty(); - this._entityLoaderById.set(stringifiedID, entity.updating()); - var clientId = _ClientID["default"].getClientId(); - this._entityLoaderById.set(clientId, entity.updating()); - this.__emitChanges(); - (0, _fetch["default"])(path, _objectSpread(_objectSpread({ - body: JSON.stringify(mutator), - headers: [{ - name: 'Accept', - value: 'application/json' - }, { - name: 'Content-Type', - value: 'application/json' - }] - }, queryParams), {}, { - method: 'PUT' - })).then(function (item) { - _this7._flushQueryCaches(); - _this7._entityLoaderById.set(stringifiedID, _LoadObject["default"].withValue(item)); - _this7._entityLoaderById.set(clientId, (0, _nullthrows["default"])(_this7._entityLoaderById.get(stringifiedID))); - _this7.__emitChanges(); - })["catch"](function (error) { - _Subscription2["default"].__emitError(error); - _this7._entityLoaderById.set(clientId, _LoadObject["default"].withError(error)); - _this7.__emitChanges(); - }); - return clientId; - } - }, { - key: "__delete", - value: function __delete(path, id, queryParams) { - var _this8 = this; - var clientId = _ClientID["default"].getClientId(); - var stringifiedId = id.toString(); - var entity = this._entityLoaderById.get(stringifiedId) || _LoadObject["default"].empty(); - this._entityLoaderById.set(stringifiedId, entity.deleting()); - this._entityLoaderById.set(clientId, _LoadObject["default"].empty().deleting()); - this.__emitChanges(); - (0, _fetch["default"])(path, _objectSpread({ - method: 'DELETE' - }, queryParams)).then(function () { - _this8._entityLoaderById.set(clientId, _LoadObject["default"].empty()); - _this8._entityLoaderById.set(stringifiedId, _LoadObject["default"].empty()); - _this8._flushQueryCaches(); - _this8.__emitChanges(); - })["catch"](function (error) { - _Subscription2["default"].__emitError(error); - _this8._entityLoaderById.set(clientId, _LoadObject["default"].withError(error)); - _this8.__emitChanges(); - }); - return clientId; - } - }, { - key: "flushCustomCache", - value: function flushCustomCache() {} - }, { - key: "flushCache", - value: function flushCache() { - this._entityLoaderById = new Map(); - this._flushQueryCaches(); - this.__emitChanges(); - } - }, { - key: "flushCacheForEntity", - value: function flushCacheForEntity(entityId) { - this._entityLoaderById["delete"](entityId); - this.__emitChanges(); - } - }, { - key: "flushQueryCaches", - value: function flushQueryCaches() { - this._flushQueryCaches(); - this.__emitChanges(); - } - }, { - key: "waitForLoaded", - value: function waitForLoaded(fn, timeout) { - return this.waitForLoadedNullable(fn, timeout).then(function (result) { - return (0, _nullthrows["default"])(result); - }); - } - }, { - key: "waitForLoadedNullable", - value: function waitForLoadedNullable(fn) { - var _this9 = this; - var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10000; - return new Promise(function (resolve, reject) { - setTimeout(function () { - return reject(new Error('Timeout!')); - }, timeout); - var fetchAndResolve = function fetchAndResolve() { - var loader = fn(_this9); - if (loader.hasOperation()) { - return; - } - loader = loader.map(function (result) { - if (!Array.isArray(result)) { - return result; - } - if (result.some(function (item) { - return item instanceof _LoadObject["default"] ? item.hasOperation() : false; - })) { - return _LoadObject["default"].loading(); - } - return result.map(function (item) { - return item instanceof _LoadObject["default"] ? item.getValue() : item; - }); - }); - if (loader.hasOperation()) { - return; - } - _this9.unsubscribe(fetchAndResolve); - if (loader.hasError()) { - reject(loader.getErrorEnforcing()); - return; - } - resolve(loader.getValue()); - }; - _this9.subscribe(fetchAndResolve); - fetchAndResolve(); - }); - } - }, { - key: "_flushQueryCaches", - value: function _flushQueryCaches() { - this._entityIdsLoaderByQuery = new Map(); - this._countLoaderByQuery = new Map(); - } - }, { - key: "__getCacheKey", - value: function __getCacheKey(path, queryParams) { - return path + JSON.stringify(queryParams || '_'); - } - }]); - return RestDAO; -}(_Subscription2["default"]); -var _default = exports["default"] = RestDAO; \ No newline at end of file diff --git a/build/dao/RestDAO.js.flow b/build/dao/RestDAO.js.flow deleted file mode 100644 index 8484c1d..0000000 --- a/build/dao/RestDAO.js.flow +++ /dev/null @@ -1,379 +0,0 @@ -// @flow - -import type { EntityID, EntityName } from '../index'; - -import nullthrows from 'nullthrows'; -import ClientID from './ClientID'; -import Subscription from './Subscription'; -import LoadObject from '../LoadObject'; -import fetch from '../fetch'; - -class RestDAO extends Subscription { - _countLoaderByQuery: Map> = new Map(); - - _entityLoaderById: Map> = new Map(); - - _entityIdsLoaderByQuery: Map>> = new Map(); - - _entityName: EntityName; - - constructor({ entityName }: { entityName: EntityName }) { - super(); - this._entityName = entityName; - } - - getEntityName(): EntityName { - return this._entityName; - } - - __updateEntityByID(id: EntityID, cb: TEntity => TEntity): void { - const stringifiedId = id.toString(); - const loader = this._entityLoaderById.get(stringifiedId); - if (!loader) { - return; - } - - this._entityLoaderById.set(stringifiedId, loader.map(cb)); - this.__emitChanges(); - } - - __count( - path: string, - queryParams?: TQueryParams, - ): LoadObject { - const cacheKey = this.__getCacheKey(path, queryParams); - - if (!this._countLoaderByQuery.has(cacheKey)) { - this._countLoaderByQuery.set(cacheKey, LoadObject.loading()); - this.__emitChanges(); - - fetch(path, { method: 'GET', ...queryParams }) - .then((countResult: ?number) => { - this._countLoaderByQuery.set( - cacheKey, - LoadObject.withValue(nullthrows(countResult)), - ); - this.__emitChanges(); - }) - .catch(error => { - Subscription.__emitError(error); - this._countLoaderByQuery.set(cacheKey, LoadObject.withError(error)); - this.__emitChanges(); - }); - } - - return nullthrows(this._countLoaderByQuery.get(cacheKey)); - } - - __getMany( - path: string, - queryParams?: TQueryParams, - ): LoadObject>> { - const cacheKey = this.__getCacheKey(path, queryParams); - - if (!this._entityIdsLoaderByQuery.has(cacheKey)) { - this._entityIdsLoaderByQuery.set(cacheKey, LoadObject.loading()); - this.__emitChanges(); - - fetch(path, { method: 'GET', ...queryParams }) - .then(items => { - const ids = nullthrows(items).map(({ id }) => id.toString()); - - nullthrows(items).forEach(item => - this._entityLoaderById.set(item.id.toString(), LoadObject.withValue(item)), - ); - - this._entityIdsLoaderByQuery.set(cacheKey, LoadObject.withValue(ids)); - this.__emitChanges(); - }) - .catch(error => { - Subscription.__emitError(error); - this._entityIdsLoaderByQuery.set( - cacheKey, - LoadObject.withError(error), - ); - this.__emitChanges(); - }); - } - - const result = nullthrows(this._entityIdsLoaderByQuery.get(cacheKey)).map( - ids => - ids.map(id => { - const loader: LoadObject = nullthrows( - this._entityLoaderById.get(id.toString()), - ); - return loader; - }), - ); - - return result; - } - - __getOne( - path: string, - id: EntityID, - queryParams?: TQueryParams, - ): LoadObject { - const stringifiedId = id.toString(); - - if (!this._entityLoaderById.has(stringifiedId)) { - this._entityLoaderById.set(stringifiedId, LoadObject.loading()); - this.__emitChanges(); - - fetch(path, { - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'GET', - ...queryParams, - }) - .then(result => { - this._entityLoaderById.set( - stringifiedId, - LoadObject.withValue(result), - ); - this.__emitChanges(); - }) - .catch(error => { - Subscription.__emitError(error); - this._entityLoaderById.set( - stringifiedId, - LoadObject.withError(error), - ); - this.__emitChanges(); - }); - } - - return nullthrows(this._entityLoaderById.get(stringifiedId)); - } - - __fetchOne( - path: string, - queryParams?: TQueryParams, - ): string { - const clientId = ClientID.getClientId(); - - this._entityLoaderById.set(clientId, LoadObject.loading()); - this.__emitChanges(); - - fetch(path, { method: 'GET', ...queryParams }) - .then(result => { - this._entityLoaderById.set(clientId, LoadObject.withValue(result)); - this.__emitChanges(); - }) - .catch(error => { - Subscription.__emitError(error); - this._entityLoaderById.set(clientId, LoadObject.withError(error)); - this.__emitChanges(); - }); - - return clientId; - } - - __post( - path: string, - mutator: any, - queryParams?: TQueryParams, - ): string { - const clientId = ClientID.getClientId(); - this._entityLoaderById.set(clientId, LoadObject.creating()); - this.__emitChanges(); - - fetch(path, { - body: JSON.stringify(mutator), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'POST', - ...queryParams, - }) - .then(item => { - this._flushQueryCaches(); - this._entityLoaderById.set( - nullthrows(item).id, - LoadObject.withValue(nullthrows(item)), - ); - this._entityLoaderById.set( - clientId, - nullthrows(this._entityLoaderById.get(nullthrows(item).id)), - ); - this.__emitChanges(); - }) - .catch(error => { - Subscription.__emitError(error); - this._entityLoaderById.set(clientId, LoadObject.withError(error)); - this.__emitChanges(); - }); - - return clientId; - } - - __put( - path: string, - id: EntityID, - mutator: TEntityMutator, - queryParams?: TQueryParams, - ) { - const stringifiedID = id.toString(); - const entity = - this._entityLoaderById.get(stringifiedID) || LoadObject.empty(); - this._entityLoaderById.set(stringifiedID, entity.updating()); - - const clientId = ClientID.getClientId(); - this._entityLoaderById.set(clientId, entity.updating()); - - this.__emitChanges(); - - fetch(path, { - body: JSON.stringify(mutator), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - ...queryParams, - method: 'PUT', - }) - .then(item => { - this._flushQueryCaches(); - this._entityLoaderById.set(stringifiedID, LoadObject.withValue(item)); - this._entityLoaderById.set( - clientId, - nullthrows(this._entityLoaderById.get(stringifiedID)), - ); - this.__emitChanges(); - }) - .catch(error => { - Subscription.__emitError(error); - this._entityLoaderById.set(clientId, LoadObject.withError(error)); - this.__emitChanges(); - }); - - return clientId; - } - - __delete( - path: string, - id: EntityID, - queryParams?: TQueryParams, - ) { - const clientId = ClientID.getClientId(); - const stringifiedId = id.toString(); - - const entity = - this._entityLoaderById.get(stringifiedId) || LoadObject.empty(); - this._entityLoaderById.set(stringifiedId, entity.deleting()); - - this._entityLoaderById.set(clientId, LoadObject.empty().deleting()); - this.__emitChanges(); - - fetch(path, { method: 'DELETE', ...queryParams }) - .then(() => { - this._entityLoaderById.set(clientId, LoadObject.empty()); - this._entityLoaderById.set(stringifiedId, LoadObject.empty()); - this._flushQueryCaches(); - this.__emitChanges(); - }) - .catch(error => { - Subscription.__emitError(error); - this._entityLoaderById.set(clientId, LoadObject.withError(error)); - this.__emitChanges(); - }); - - return clientId; - } - - flushCustomCache() {} - - flushCache() { - this._entityLoaderById = new Map(); - this._flushQueryCaches(); - this.__emitChanges(); - } - - flushCacheForEntity(entityId: EntityID) { - this._entityLoaderById.delete(entityId); - this.__emitChanges(); - } - - flushQueryCaches() { - this._flushQueryCaches(); - this.__emitChanges(); - } - - waitForLoaded( - fn: this => LoadObject, - timeout?: number, - ): Promise { - return this.waitForLoadedNullable(fn, timeout).then(result => - nullthrows(result), - ); - } - - waitForLoadedNullable( - fn: this => LoadObject, - timeout?: number = 10000, - ): Promise { - return new Promise( - ( - resolve: (response: ?TResponse) => void, - reject: (error: Error) => void, - ) => { - setTimeout((): void => reject(new Error('Timeout!')), timeout); - - const fetchAndResolve = () => { - let loader = fn(this); - if (loader.hasOperation()) { - return; - } - - loader = loader.map(result => { - if (!Array.isArray(result)) { - return result; - } - - if ( - result.some(item => - item instanceof LoadObject ? item.hasOperation() : false, - ) - ) { - return LoadObject.loading(); - } - - return result.map(item => - item instanceof LoadObject ? item.getValue() : item, - ); - }); - - if (loader.hasOperation()) { - return; - } - - this.unsubscribe(fetchAndResolve); - - if (loader.hasError()) { - reject(loader.getErrorEnforcing()); - return; - } - - resolve(loader.getValue()); - }; - - this.subscribe(fetchAndResolve); - fetchAndResolve(); - }, - ); - } - - _flushQueryCaches() { - this._entityIdsLoaderByQuery = new Map(); - this._countLoaderByQuery = new Map(); - } - - __getCacheKey(path: string, queryParams?: Object): string { - return path + JSON.stringify(queryParams || '_'); - } -} - -export default RestDAO; diff --git a/build/dao/ScheduleDAO.js b/build/dao/ScheduleDAO.js deleted file mode 100644 index 36c0228..0000000 --- a/build/dao/ScheduleDAO.js +++ /dev/null @@ -1,43 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _ScheduleTranslator = _interopRequireDefault(require("../translators/ScheduleTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var ScheduleDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(ScheduleDAO, _ODataDAO); - function ScheduleDAO() { - _classCallCheck(this, ScheduleDAO); - return _callSuper(this, ScheduleDAO, [{ - entityName: _constants.DAO_ENTITIES.SCHEDULES, - navigationProperties: { - accounts: { - select: ['id', 'userName'] - }, - locations: { - select: ['id', 'isDeleted', 'name'] - } - }, - translator: new _ScheduleTranslator["default"]() - }]); - } - return _createClass(ScheduleDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new ScheduleDAO(); \ No newline at end of file diff --git a/build/dao/ScheduleDAO.js.flow b/build/dao/ScheduleDAO.js.flow deleted file mode 100644 index 1b7f887..0000000 --- a/build/dao/ScheduleDAO.js.flow +++ /dev/null @@ -1,51 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import ScheduleTranslator from '../translators/ScheduleTranslator'; - -export type Schedule = {| - accounts: Array<{| - id: EntityID, - userName: string, - |}>, - createdDate: Date, - days: number, - editDate: Date, - endTime: Date, - id: EntityID, - isDeleted: boolean, - location: ?ShortenedEntity, - name: string, - startTime: Date, -|}; - -export type ScheduleMutator = {| - accounts: Array<{| - id: EntityID, - userName: string, - |}>, - days: number, - endTime: Date, - id: ?EntityID, - locationId: ?string, - name: string, - startTime: Date, -|}; - -class ScheduleDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.SCHEDULES, - navigationProperties: { - accounts: { select: ['id', 'userName'] }, - locations: { select: ['id', 'isDeleted', 'name'] }, - }, - translator: new ScheduleTranslator(), - }); - } -} - -export default new ScheduleDAO(); diff --git a/build/dao/SrmDAO.js b/build/dao/SrmDAO.js deleted file mode 100644 index e9ba692..0000000 --- a/build/dao/SrmDAO.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var SrmDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(SrmDAO, _ODataDAO); - function SrmDAO() { - _classCallCheck(this, SrmDAO); - return _callSuper(this, SrmDAO, [{ - entityName: _constants.DAO_ENTITIES.BEVERAGE_SRMS, - translator: new _DefaultTranslator["default"]() - }]); - } - return _createClass(SrmDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new SrmDAO(); \ No newline at end of file diff --git a/build/dao/SrmDAO.js.flow b/build/dao/SrmDAO.js.flow deleted file mode 100644 index 9449f55..0000000 --- a/build/dao/SrmDAO.js.flow +++ /dev/null @@ -1,24 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Srm = {| - hex: string, - id: EntityID, - name: string, -|}; - -class SrmDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGE_SRMS, - translator: new DefaultTranslator(), - }); - } -} - -export default new SrmDAO(); diff --git a/build/dao/StyleDAO.js b/build/dao/StyleDAO.js deleted file mode 100644 index 02a3028..0000000 --- a/build/dao/StyleDAO.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _DefaultTranslator = _interopRequireDefault(require("../translators/DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var StyleDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(StyleDAO, _ODataDAO); - function StyleDAO() { - _classCallCheck(this, StyleDAO); - return _callSuper(this, StyleDAO, [{ - entityName: _constants.DAO_ENTITIES.BEVERAGE_STYLES, - translator: new _DefaultTranslator["default"]() - }]); - } - return _createClass(StyleDAO); -}(_ODataDAO2["default"]); -var _default = exports["default"] = new StyleDAO(); \ No newline at end of file diff --git a/build/dao/StyleDAO.js.flow b/build/dao/StyleDAO.js.flow deleted file mode 100644 index 0d11cb9..0000000 --- a/build/dao/StyleDAO.js.flow +++ /dev/null @@ -1,36 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Style = {| - abvMax: number, - abvMin: number, - createDate: Date, - description: ?string, - fgMax: number, - fgMin: number, - ibuMax: number, - ibuMin: number, - id: EntityID, - name: string, - ogMax: number, - ogMin: number, - srmMax: number, - srmMin: number, - updateDate: Date, -|}; - -class StyleDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGE_STYLES, - translator: new DefaultTranslator(), - }); - } -} - -export default new StyleDAO(); diff --git a/build/dao/Subscription.js b/build/dao/Subscription.js deleted file mode 100644 index f5a5d82..0000000 --- a/build/dao/Subscription.js +++ /dev/null @@ -1,52 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _class; -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var Subscription = /*#__PURE__*/function () { - function Subscription() { - _classCallCheck(this, Subscription); - _defineProperty(this, "_dataSubscriptions", new Set()); - } - _createClass(Subscription, [{ - key: "subscribe", - value: function subscribe(handler) { - this._dataSubscriptions.add(handler); - } - }, { - key: "unsubscribe", - value: function unsubscribe(handler) { - this._dataSubscriptions["delete"](handler); - } - }, { - key: "__emitChanges", - value: function __emitChanges() { - this._dataSubscriptions.forEach(function (handler) { - return handler(); - }); - } - }], [{ - key: "__emitError", - value: function __emitError(error) { - Subscription._errorSubscriptions.forEach(function (handler) { - return handler(error); - }); - } - }]); - return Subscription; -}(); -_class = Subscription; -_defineProperty(Subscription, "_errorSubscriptions", new Set()); -_defineProperty(Subscription, "onError", function (handler) { - _class._errorSubscriptions.add(handler); -}); -var _default = exports["default"] = Subscription; \ No newline at end of file diff --git a/build/dao/Subscription.js.flow b/build/dao/Subscription.js.flow deleted file mode 100644 index 5e58e1f..0000000 --- a/build/dao/Subscription.js.flow +++ /dev/null @@ -1,33 +0,0 @@ -// @flow - -export type ErrorHandler = (error: Error) => void; - -class Subscription { - static _errorSubscriptions: Set = new Set(); - - static onError = (handler: ErrorHandler) => { - Subscription._errorSubscriptions.add(handler); - }; - - static __emitError(error: Error) { - Subscription._errorSubscriptions.forEach((handler: ErrorHandler) => - handler(error), - ); - } - - _dataSubscriptions: Set<() => void> = new Set(); - - subscribe(handler: () => void) { - this._dataSubscriptions.add(handler); - } - - unsubscribe(handler: () => void) { - this._dataSubscriptions.delete(handler); - } - - __emitChanges() { - this._dataSubscriptions.forEach((handler: () => void) => handler()); - } -} - -export default Subscription; diff --git a/build/dao/TapDAO.js b/build/dao/TapDAO.js deleted file mode 100644 index 6a7109f..0000000 --- a/build/dao/TapDAO.js +++ /dev/null @@ -1,79 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _ODataDAO2 = _interopRequireDefault(require("./ODataDAO")); -var _constants = require("../constants"); -var _TapTranslator = _interopRequireDefault(require("../translators/TapTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var TapDAO = /*#__PURE__*/function (_ODataDAO) { - _inherits(TapDAO, _ODataDAO); - function TapDAO() { - _classCallCheck(this, TapDAO); - return _callSuper(this, TapDAO, [{ - entityName: _constants.DAO_ENTITIES.TAPS, - navigationProperties: { - currentKeg: { - expand: { - beverage: { - select: ['id', 'name'] - } - }, - select: ['id', 'kegType', 'maxOunces', 'ounces'] - }, - device: { - select: ['id', 'isDeleted', 'name'] - }, - location: { - select: ['id', 'isDeleted', 'name'] - }, - organization: { - select: ['id', 'isDeleted', 'name'] - } - }, - translator: new _TapTranslator["default"]() - }]); - } - _createClass(TapDAO, [{ - key: "countLeaderboard", - value: function countLeaderboard(tapID, duration, queryOptions) { - var _this = this; - var funcString = "Default.leaderboard(timeSpan=duration'".concat(duration, "')"); - var stringifiedID = tapID.toString(); - return this.__countCustom(function (countQueryOptions) { - var handler = _this.__buildHandler(_objectSpread(_objectSpread({}, queryOptions), countQueryOptions), false).find(_this.__reformatIDValue(stringifiedID)); - handler.func(funcString); - return handler; - }, queryOptions, funcString); - } - }, { - key: "fetchLeaderboard", - value: function fetchLeaderboard(tapID, duration, queryOptions) { - var funcString = "Default.leaderboard(timeSpan=duration'".concat(duration, "')"); - var stringifiedID = tapID.toString(); - var handler = this.__buildHandler(queryOptions, false).find(this.__reformatIDValue(stringifiedID)); - handler.func(funcString); - return this.__fetchCustom(handler, queryOptions, funcString); - } - }]); - return TapDAO; -}(_ODataDAO2["default"]); -var _default = exports["default"] = new TapDAO(); \ No newline at end of file diff --git a/build/dao/TapDAO.js.flow b/build/dao/TapDAO.js.flow deleted file mode 100644 index 3ca17af..0000000 --- a/build/dao/TapDAO.js.flow +++ /dev/null @@ -1,118 +0,0 @@ -// @flow - -import type { OHandler } from 'odata'; -import type LoadObject from '../LoadObject'; -import type { EntityID, QueryOptions, ShortenedEntity } from '../types'; -import type { KegType } from './KegDAO'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import TapTranslator from '../translators/TapTranslator'; - -export type LeaderboardItem = {| - lastPourDate: Date, - totalOunces: number, - totalPours: number, - userID: ?EntityID, - userName: ?string, -|}; - -export type CurrentKeg = {| - beverage: {| id: string, name: string |}, - id: string, - kegType: KegType, - maxOunces: number, - ounces: number, -|}; - -export type Tap = {| - createdDate: Date, - currentKeg: CurrentKeg, - description: ?string, - device: ShortenedEntity, - disableBadges: boolean, - hideLeaderboard: boolean, - hideStats: boolean, - id: EntityID, - isPaymentEnabled: boolean, - location: ?ShortenedEntity, - organization: ShortenedEntity, - requiresPourPrivilege: boolean, - tapNumber: number, -|}; - -export type TapMutator = {| - description: ?string, - deviceId: ?EntityID, - disableBadges: boolean, - hideLeaderboard: boolean, - hideStats: boolean, - id: ?EntityID, - isPaymentEnabled: boolean, - locationId: ?EntityID, - requiresPourPrivilege: boolean, -|}; - -export type ShortenedTap = {| id: EntityID, isDeleted: boolean |}; - -class TapDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.TAPS, - navigationProperties: { - currentKeg: { - expand: { beverage: { select: ['id', 'name'] } }, - select: ['id', 'kegType', 'maxOunces', 'ounces'], - }, - device: { select: ['id', 'isDeleted', 'name'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - }, - translator: new TapTranslator(), - }); - } - - countLeaderboard( - tapID: EntityID, - duration: string, - queryOptions?: QueryOptions, - ): LoadObject { - const funcString = `Default.leaderboard(timeSpan=duration'${duration}')`; - const stringifiedID = tapID.toString(); - - return this.__countCustom( - (countQueryOptions: QueryOptions): OHandler => { - const handler = this.__buildHandler( - { - ...queryOptions, - ...countQueryOptions, - }, - false, - ).find(this.__reformatIDValue(stringifiedID)); - handler.func(funcString); - - return handler; - }, - queryOptions, - funcString, - ); - } - - fetchLeaderboard( - tapID: EntityID, - duration: string, - queryOptions?: QueryOptions, - ): LoadObject> { - const funcString = `Default.leaderboard(timeSpan=duration'${duration}')`; - const stringifiedID = tapID.toString(); - - const handler = this.__buildHandler(queryOptions, false).find( - this.__reformatIDValue(stringifiedID), - ); - handler.func(funcString); - - return this.__fetchCustom(handler, queryOptions, funcString); - } -} - -export default new TapDAO(); diff --git a/build/fetch.js b/build/fetch.js deleted file mode 100644 index 5dc01db..0000000 --- a/build/fetch.js +++ /dev/null @@ -1,93 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _nullthrows = _interopRequireDefault(require("nullthrows")); -var _Config = _interopRequireDefault(require("./Config")); -var _StandardHeaders = _interopRequireDefault(require("./StandardHeaders")); -var _excluded = ["reformatError", "headers"]; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -var parseError = function parseError(error) { - if (error.ModelState) { - var resultErrorMessage = ''; - Array.from(Object.values(error.ModelState)).forEach(function (fieldErrorArray) { - var castedFieldErrorArray = fieldErrorArray; - new Set(castedFieldErrorArray).forEach( - // eslint-disable-next-line no-return-assign - function (fieldError) { - return resultErrorMessage = "".concat(resultErrorMessage, "\n").concat(fieldError); - }); - }); - return resultErrorMessage; - } - if (error.error_description) { - return error.error_description; - } - if (error.Message) { - return error.Message; - } - return "Whoa! Brewskey had an error. We'll try to get it fixed soon."; -}; -var _default = exports["default"] = /*#__PURE__*/function () { - var _ref = _asyncToGenerator(function* (path) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - var reformatError = options.reformatError, - _options$headers = options.headers, - optionsHeaders = _options$headers === void 0 ? [] : _options$headers, - fetchOptions = _objectWithoutProperties(options, _excluded); - if (!_Config["default"].host) { - throw new Error('DAOApi: no host set'); - } - var headers = new Headers(); - if (_Config["default"].token) { - headers.append('Authorization', "Bearer ".concat(_Config["default"].token)); - } - [].concat(_toConsumableArray(_StandardHeaders["default"]), _toConsumableArray(optionsHeaders)).forEach(function (_ref2) { - var name = _ref2.name, - value = _ref2.value; - return headers.append(name, value); - }); - var organizationId = _Config["default"].organizationId; - var pathWithOrganization = path; - if (organizationId) { - pathWithOrganization = "".concat(path).concat(path.includes('?') ? '&' : '?', "organizationID=").concat(organizationId); - } - var response = yield fetch("".concat((0, _nullthrows["default"])(_Config["default"].host), "/").concat(pathWithOrganization), _objectSpread(_objectSpread({}, fetchOptions), {}, { - headers: headers - })); - var responseJson; - try { - responseJson = yield response.json(); - } catch (error) { - responseJson = null; - } - if (!response.ok) { - if (responseJson && reformatError) { - throw new Error(reformatError(responseJson)); - } - throw new Error(responseJson ? parseError(responseJson) : 'Whoops! Error!'); - } - return responseJson; - }); - return function (_x) { - return _ref.apply(this, arguments); - }; -}(); \ No newline at end of file diff --git a/build/fetch.js.flow b/build/fetch.js.flow deleted file mode 100644 index 2cc7018..0000000 --- a/build/fetch.js.flow +++ /dev/null @@ -1,100 +0,0 @@ -// @flow - -import type { RequestMethod } from './types'; - -import nullthrows from 'nullthrows'; -import Config from './Config'; -import StandardHeaders from './StandardHeaders'; - -const parseError = (error: Object): string => { - if (error.ModelState) { - let resultErrorMessage = ''; - Array.from(Object.values(error.ModelState)).forEach( - (fieldErrorArray: any) => { - const castedFieldErrorArray = (fieldErrorArray: Array); - - new Set(castedFieldErrorArray).forEach( - // eslint-disable-next-line no-return-assign - (fieldError: string): string => - (resultErrorMessage = `${resultErrorMessage}\n${fieldError}`), - ); - }, - ); - - return resultErrorMessage; - } - - if (error.error_description) { - return error.error_description; - } - - if (error.Message) { - return error.Message; - } - - return "Whoa! Brewskey had an error. We'll try to get it fixed soon."; -}; - -type FetchOptions = { - body?: any, - headers?: Array<{ name: string, value: string }>, - method?: RequestMethod, - reformatError?: (error: Error) => string, -}; - -export default async ( - path: string, - options?: FetchOptions = {}, -): Promise => { - const { - reformatError, - headers: optionsHeaders = [], - ...fetchOptions - } = options; - - if (!Config.host) { - throw new Error('DAOApi: no host set'); - } - - const headers = new Headers(); - if (Config.token) { - headers.append('Authorization', `Bearer ${Config.token}`); - } - - [...StandardHeaders, ...optionsHeaders].forEach(({ name, value }) => - headers.append(name, value), - ); - - const { organizationId } = Config; - let pathWithOrganization = path; - if (organizationId) { - pathWithOrganization = `${path}${ - path.includes('?') ? '&' : '?' - }organizationID=${organizationId}`; - } - - const response = await fetch( - `${nullthrows(Config.host)}/${pathWithOrganization}`, - { - ...fetchOptions, - headers, - }, - ); - - let responseJson; - try { - responseJson = await response.json(); - } catch (error) { - responseJson = null; - } - - if (!response.ok) { - if (responseJson && reformatError) { - throw new Error(reformatError(responseJson)); - } - - throw new Error(responseJson ? parseError(responseJson) : 'Whoops! Error!'); - } - - return responseJson; -}; diff --git a/build/filters.js b/build/filters.js deleted file mode 100644 index 6e0f4b8..0000000 --- a/build/filters.js +++ /dev/null @@ -1,79 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.doesSatisfyQueryFilters = exports.createFilter = void 0; -var _constants = require("./constants"); -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var FILTERS = { - any: _constants.FILTER_OPERATORS.ANY, - contains: _constants.FILTER_OPERATORS.CONTAINS, - endsWith: _constants.FILTER_OPERATORS.ENDS_WITH, - equals: _constants.FILTER_OPERATORS.EQUALS, - greaterThan: _constants.FILTER_OPERATORS.GREATER_THAN, - greaterThanOrEqual: _constants.FILTER_OPERATORS.GREATER_THAN_OR_EQUAL, - lessThan: _constants.FILTER_OPERATORS.LESS_THAN, - lessThanOrEqual: _constants.FILTER_OPERATORS.LESS_THAN_OR_EQUAL, - notEndsWith: _constants.FILTER_OPERATORS.NOT_ENDS_WITH, - notEquals: _constants.FILTER_OPERATORS.NOT_EQUALS, - notStartsWith: _constants.FILTER_OPERATORS.NOT_STARTS_WITH, - startsWith: _constants.FILTER_OPERATORS.STARTS_WITH -}; -var getIn = function getIn(props, object) { - return props.reduce(function (previousObjectValue, prop) { - return previousObjectValue && previousObjectValue[prop] ? previousObjectValue[prop] : null; - }, object); -}; -var makeFilter = function makeFilter(operator, params) { - return function (values) { - return { - operator: operator, - params: Array.isArray(params) ? params : [params], - values: Array.isArray(values) ? values : [values] - }; - }; -}; -var createFilter = exports.createFilter = function createFilter(params) { - return Object.keys(FILTERS).reduce(function (filters, filter) { - return _objectSpread(_objectSpread({}, filters), {}, _defineProperty({}, filter, makeFilter(FILTERS[filter], params))); - }, {}); -}; - -// todo make unit tests -var doesSatisfyQueryFilters = exports.doesSatisfyQueryFilters = function doesSatisfyQueryFilters(item, queryFilters) { - return queryFilters.every(function (queryFilter) { - var params = queryFilter.params, - values = queryFilter.values, - operator = queryFilter.operator; - return params.some(function (param) { - var itemValue = getIn(param.split('/'), item); - return values.some(function (value) { - switch (operator) { - // todo add other cases - case _constants.FILTER_OPERATORS.CONTAINS: - { - return itemValue.toString().includes(value.toString()); - } - case _constants.FILTER_OPERATORS.EQUALS: - { - return value === itemValue; - } - case _constants.FILTER_OPERATORS.NOT_EQUALS: - { - return value !== itemValue; - } - default: - { - return false; - } - } - }); - }); - }); -}; \ No newline at end of file diff --git a/build/filters.js.flow b/build/filters.js.flow deleted file mode 100644 index 3d10d7b..0000000 --- a/build/filters.js.flow +++ /dev/null @@ -1,100 +0,0 @@ -// @flow - -export type FilterOperator = - | 'any' - | 'contains' - | 'endswith' - | 'eq' - | 'gt' - | 'ge' - | 'lt' - | 'le' - | 'not endswith' - | 'ne' - | 'not startswith' - | 'startswith'; - -export type FilterCreator = (params: any) => QueryFilter; - -export type FilterCreators = { [string]: FilterCreator }; - -export type QueryFilter = { - operator: FilterOperator, - params: Array, - values: Array, -}; - -import { FILTER_OPERATORS } from './constants'; - -const FILTERS: { [string]: FilterOperator } = { - any: FILTER_OPERATORS.ANY, - contains: FILTER_OPERATORS.CONTAINS, - endsWith: FILTER_OPERATORS.ENDS_WITH, - equals: FILTER_OPERATORS.EQUALS, - greaterThan: FILTER_OPERATORS.GREATER_THAN, - greaterThanOrEqual: FILTER_OPERATORS.GREATER_THAN_OR_EQUAL, - lessThan: FILTER_OPERATORS.LESS_THAN, - lessThanOrEqual: FILTER_OPERATORS.LESS_THAN_OR_EQUAL, - notEndsWith: FILTER_OPERATORS.NOT_ENDS_WITH, - notEquals: FILTER_OPERATORS.NOT_EQUALS, - notStartsWith: FILTER_OPERATORS.NOT_STARTS_WITH, - startsWith: FILTER_OPERATORS.STARTS_WITH, -}; - -const getIn = (props: Array, object: Object): any => - props.reduce( - (previousObjectValue: any, prop: string): any => - previousObjectValue && previousObjectValue[prop] - ? previousObjectValue[prop] - : null, - object, - ); - -const makeFilter = ( - operator: FilterOperator, - params: any, -): ((values: any) => QueryFilter) => (values: any): QueryFilter => ({ - operator, - params: Array.isArray(params) ? params : [params], - values: Array.isArray(values) ? values : [values], -}); - -export const createFilter = (params: any): FilterCreators => - Object.keys(FILTERS).reduce( - (filters: FilterCreators, filter: string): FilterCreators => ({ - ...filters, - [filter]: makeFilter(FILTERS[filter], params), - }), - {}, - ); - -// todo make unit tests -export const doesSatisfyQueryFilters = ( - item: Object, - queryFilters: Array, -): boolean => - queryFilters.every((queryFilter: QueryFilter): boolean => { - const { params, values, operator } = queryFilter; - - return params.some((param: string): boolean => { - const itemValue = getIn(param.split('/'), item); - - return values.some((value: any): boolean => { - switch (operator) { - // todo add other cases - case FILTER_OPERATORS.CONTAINS: { - return itemValue.toString().includes(value.toString()); - } - case FILTER_OPERATORS.EQUALS: { - return value === itemValue; - } - case FILTER_OPERATORS.NOT_EQUALS: { - return value !== itemValue; - } - default: { - return false; - } - } - }); - }); - }); diff --git a/build/index.js b/build/index.js deleted file mode 100644 index fbfb8e8..0000000 --- a/build/index.js +++ /dev/null @@ -1,494 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -var _exportNames = { - CADENCE_MAP: true, - LoadObject: true, - RestDAO: true, - ODataDAO: true -}; -Object.defineProperty(exports, "CADENCE_MAP", { - enumerable: true, - get: function get() { - return _ReportTranslator.CADENCE_MAP; - } -}); -Object.defineProperty(exports, "LoadObject", { - enumerable: true, - get: function get() { - return _LoadObject["default"]; - } -}); -Object.defineProperty(exports, "ODataDAO", { - enumerable: true, - get: function get() { - return _ODataDAO["default"]; - } -}); -Object.defineProperty(exports, "RestDAO", { - enumerable: true, - get: function get() { - return _RestDAO["default"]; - } -}); -exports["default"] = void 0; -var _odata = _interopRequireDefault(require("odata")); -var _ReportTranslator = require("./translators/ReportTranslator"); -var _Subscription = _interopRequireDefault(require("./dao/Subscription")); -var _fetch = _interopRequireDefault(require("./fetch")); -var _filters = require("./filters"); -var _StandardHeaders = _interopRequireDefault(require("./StandardHeaders")); -var _Auth = _interopRequireWildcard(require("./Auth")); -Object.keys(_Auth).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _Auth[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _Auth[key]; - } - }); -}); -var _AccountDAO = _interopRequireWildcard(require("./dao/AccountDAO")); -Object.keys(_AccountDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _AccountDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _AccountDAO[key]; - } - }); -}); -var _AchievementDAO = _interopRequireWildcard(require("./dao/AchievementDAO")); -Object.keys(_AchievementDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _AchievementDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _AchievementDAO[key]; - } - }); -}); -var _AvailabilityDAO = _interopRequireWildcard(require("./dao/AvailabilityDAO")); -Object.keys(_AvailabilityDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _AvailabilityDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _AvailabilityDAO[key]; - } - }); -}); -var _BeverageDAO = _interopRequireWildcard(require("./dao/BeverageDAO")); -Object.keys(_BeverageDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _BeverageDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _BeverageDAO[key]; - } - }); -}); -var _CloudDeviceDAO = _interopRequireWildcard(require("./dao/CloudDeviceDAO")); -Object.keys(_CloudDeviceDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _CloudDeviceDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _CloudDeviceDAO[key]; - } - }); -}); -var _DeviceDAO = _interopRequireWildcard(require("./dao/DeviceDAO")); -Object.keys(_DeviceDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _DeviceDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _DeviceDAO[key]; - } - }); -}); -var _FlowSensorDAO = _interopRequireWildcard(require("./dao/FlowSensorDAO")); -Object.keys(_FlowSensorDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _FlowSensorDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _FlowSensorDAO[key]; - } - }); -}); -var _FriendDAO = _interopRequireWildcard(require("./dao/FriendDAO")); -Object.keys(_FriendDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _FriendDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _FriendDAO[key]; - } - }); -}); -var _GlassDAO = _interopRequireWildcard(require("./dao/GlassDAO")); -Object.keys(_GlassDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _GlassDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _GlassDAO[key]; - } - }); -}); -var _KegDAO = _interopRequireWildcard(require("./dao/KegDAO")); -Object.keys(_KegDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _KegDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _KegDAO[key]; - } - }); -}); -var _LocationDAO = _interopRequireWildcard(require("./dao/LocationDAO")); -Object.keys(_LocationDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _LocationDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _LocationDAO[key]; - } - }); -}); -var _OrganizationDAO = _interopRequireWildcard(require("./dao/OrganizationDAO")); -Object.keys(_OrganizationDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _OrganizationDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _OrganizationDAO[key]; - } - }); -}); -var _PaymentsDAO = _interopRequireWildcard(require("./dao/PaymentsDAO")); -Object.keys(_PaymentsDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _PaymentsDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _PaymentsDAO[key]; - } - }); -}); -var _PermissionDAO = _interopRequireWildcard(require("./dao/PermissionDAO")); -Object.keys(_PermissionDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _PermissionDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _PermissionDAO[key]; - } - }); -}); -var _PourChartDAO = _interopRequireWildcard(require("./dao/PourChartDAO")); -Object.keys(_PourChartDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _PourChartDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _PourChartDAO[key]; - } - }); -}); -var _PourDAO = _interopRequireWildcard(require("./dao/PourDAO")); -Object.keys(_PourDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _PourDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _PourDAO[key]; - } - }); -}); -var _PriceVariantDAO = _interopRequireWildcard(require("./dao/PriceVariantDAO")); -Object.keys(_PriceVariantDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _PriceVariantDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _PriceVariantDAO[key]; - } - }); -}); -var _ProductDAO = _interopRequireWildcard(require("./dao/ProductDAO")); -Object.keys(_ProductDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _ProductDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _ProductDAO[key]; - } - }); -}); -var _ProductDeviceDAO = _interopRequireWildcard(require("./dao/ProductDeviceDAO")); -Object.keys(_ProductDeviceDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _ProductDeviceDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _ProductDeviceDAO[key]; - } - }); -}); -var _ProductFirmwareDAO = _interopRequireWildcard(require("./dao/ProductFirmwareDAO")); -Object.keys(_ProductFirmwareDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _ProductFirmwareDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _ProductFirmwareDAO[key]; - } - }); -}); -var _ReportDAO = _interopRequireWildcard(require("./dao/ReportDAO")); -Object.keys(_ReportDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _ReportDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _ReportDAO[key]; - } - }); -}); -var _ScheduleDAO = _interopRequireWildcard(require("./dao/ScheduleDAO")); -Object.keys(_ScheduleDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _ScheduleDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _ScheduleDAO[key]; - } - }); -}); -var _SrmDAO = _interopRequireWildcard(require("./dao/SrmDAO")); -Object.keys(_SrmDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _SrmDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _SrmDAO[key]; - } - }); -}); -var _StyleDAO = _interopRequireWildcard(require("./dao/StyleDAO")); -Object.keys(_StyleDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _StyleDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _StyleDAO[key]; - } - }); -}); -var _TapDAO = _interopRequireWildcard(require("./dao/TapDAO")); -Object.keys(_TapDAO).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _TapDAO[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _TapDAO[key]; - } - }); -}); -var _signalr = _interopRequireDefault(require("./signalr")); -var _Config = _interopRequireDefault(require("./Config")); -var _CloudSSEManager = _interopRequireWildcard(require("./CloudSSEManager")); -Object.keys(_CloudSSEManager).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _CloudSSEManager[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _CloudSSEManager[key]; - } - }); -}); -var _constants = require("./constants"); -Object.keys(_constants).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _constants[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _constants[key]; - } - }); -}); -var _types = require("./types"); -Object.keys(_types).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _types[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _types[key]; - } - }); -}); -var _LoadObject = _interopRequireWildcard(require("./LoadObject")); -Object.keys(_LoadObject).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _LoadObject[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function get() { - return _LoadObject[key]; - } - }); -}); -var _RestDAO = _interopRequireDefault(require("./dao/RestDAO")); -var _ODataDAO = _interopRequireDefault(require("./dao/ODataDAO")); -function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } -function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } -var initialize = function initialize(host) { - _Config["default"].host = host; - (0, _odata["default"])().config({ - endpoint: "".concat(host, "/api/v2/") - }); -}; -var setToken = function setToken(token) { - _Config["default"].token = token; - (0, _odata["default"])().config({ - headers: [].concat(_toConsumableArray(_StandardHeaders["default"]), [{ - name: 'Authorization', - value: "Bearer ".concat(token) - }]) - }); -}; -var DAOArray = [_AccountDAO["default"], _AchievementDAO["default"], _AvailabilityDAO["default"], _BeverageDAO["default"], _CloudDeviceDAO["default"], _DeviceDAO["default"], _FlowSensorDAO["default"], _FriendDAO["default"], _GlassDAO["default"], _KegDAO["default"], _LocationDAO["default"], _OrganizationDAO["default"], _PaymentsDAO["default"], _PermissionDAO["default"], _PourDAO["default"], _PriceVariantDAO["default"], _ProductDAO["default"], _ProductDeviceDAO["default"], _ProductFirmwareDAO["default"], _ReportDAO["default"], _ScheduleDAO["default"], _SrmDAO["default"], _StyleDAO["default"], _TapDAO["default"]]; -var flushCache = function flushCache() { - DAOArray.forEach(function (dao) { - dao.flushCache(); - dao.flushCustomCache(); - }); -}; -var setOrganizationID = function setOrganizationID(organizationID) { - _Config["default"].organizationId = organizationID; - _AccountDAO["default"].flushCache(); - _AchievementDAO["default"].flushCache(); - _BeverageDAO["default"].flushCache(); - _DeviceDAO["default"].flushCache(); - _FriendDAO["default"].flushCache(); - _KegDAO["default"].flushCache(); - _LocationDAO["default"].flushCache(); - _PaymentsDAO["default"].flushCache(); - _PourChartDAO["default"].flushCache(); - _PourDAO["default"].flushCache(); - _PriceVariantDAO["default"].flushCache(); - _ReportDAO["default"].flushCache(); - _ScheduleDAO["default"].flushCache(); - _TapDAO["default"].flushCache(); -}; -/* eslint-disable sorting/sort-object-props */ -var _default = exports["default"] = { - AccountDAO: _AccountDAO["default"], - AchievementDAO: _AchievementDAO["default"], - Auth: _Auth["default"], - AvailabilityDAO: _AvailabilityDAO["default"], - BeverageDAO: _BeverageDAO["default"], - CloudDeviceDAO: _CloudDeviceDAO["default"], - CloudSSEManager: _CloudSSEManager["default"], - DeviceDAO: _DeviceDAO["default"], - FlowSensorDAO: _FlowSensorDAO["default"], - FriendDAO: _FriendDAO["default"], - GlassDAO: _GlassDAO["default"], - KegDAO: _KegDAO["default"], - LocationDAO: _LocationDAO["default"], - OrganizationDAO: _OrganizationDAO["default"], - PaymentsDAO: _PaymentsDAO["default"], - PermissionDAO: _PermissionDAO["default"], - PourChartDAO: _PourChartDAO["default"], - PourDAO: _PourDAO["default"], - PriceVariantDAO: _PriceVariantDAO["default"], - ProductDAO: _ProductDAO["default"], - ProductDeviceDAO: _ProductDeviceDAO["default"], - ProductFirmwareDAO: _ProductFirmwareDAO["default"], - ReportDAO: _ReportDAO["default"], - ScheduleDAO: _ScheduleDAO["default"], - Signalr: _signalr["default"], - SrmDAO: _SrmDAO["default"], - StyleDAO: _StyleDAO["default"], - TapDAO: _TapDAO["default"], - createFilter: _filters.createFilter, - doesSatisfyQueryFilters: _filters.doesSatisfyQueryFilters, - fetch: _fetch["default"], - flushCache: flushCache, - initialize: initialize, - onError: _Subscription["default"].onError, - setOrganizationID: setOrganizationID, - setToken: setToken -}; \ No newline at end of file diff --git a/build/index.js.flow b/build/index.js.flow deleted file mode 100644 index b72af6e..0000000 --- a/build/index.js.flow +++ /dev/null @@ -1,195 +0,0 @@ -// @flow - -import type { EntityID } from './types'; - -import oHandler from 'odata'; -import { CADENCE_MAP } from './translators/ReportTranslator'; -import Subscription from './dao/Subscription'; - -import fetch from './fetch'; -import { createFilter, doesSatisfyQueryFilters } from './filters'; -import StandardHeaders from './StandardHeaders'; - -import Auth from './Auth'; - -import AccountDAO from './dao/AccountDAO'; -import AchievementDAO from './dao/AchievementDAO'; -import AvailabilityDAO from './dao/AvailabilityDAO'; -import BeverageDAO from './dao/BeverageDAO'; -import CloudDeviceDAO from './dao/CloudDeviceDAO'; -import DeviceDAO from './dao/DeviceDAO'; -import FlowSensorDAO from './dao/FlowSensorDAO'; -import FriendDAO from './dao/FriendDAO'; -import GlassDAO from './dao/GlassDAO'; -import KegDAO from './dao/KegDAO'; -import LocationDAO from './dao/LocationDAO'; -import OrganizationDAO from './dao/OrganizationDAO'; -import PaymentsDAO from './dao/PaymentsDAO'; -import PermissionDAO from './dao/PermissionDAO'; -import PourChartDAO from './dao/PourChartDAO'; -import PourDAO from './dao/PourDAO'; -import PriceVariantDAO from './dao/PriceVariantDAO'; -import ProductDAO from './dao/ProductDAO'; -import ProductDeviceDAO from './dao/ProductDeviceDAO'; -import ProductFirmwareDAO from './dao/ProductFirmwareDAO'; -import ReportDAO from './dao/ReportDAO'; -import ScheduleDAO from './dao/ScheduleDAO'; -import SrmDAO from './dao/SrmDAO'; -import StyleDAO from './dao/StyleDAO'; -import TapDAO from './dao/TapDAO'; -import Signalr from './signalr'; -import Config from './Config'; - -import CloudSSEManager from './CloudSSEManager'; - -const initialize = (host: string) => { - Config.host = host; - - oHandler().config({ - endpoint: `${host}/api/v2/`, - }); -}; - -const setToken = (token: string) => { - Config.token = token; - - oHandler().config({ - headers: [ - ...StandardHeaders, - { - name: 'Authorization', - value: `Bearer ${token}`, - }, - ], - }); -}; - -const DAOArray = [ - AccountDAO, - AchievementDAO, - AvailabilityDAO, - BeverageDAO, - CloudDeviceDAO, - DeviceDAO, - FlowSensorDAO, - FriendDAO, - GlassDAO, - KegDAO, - LocationDAO, - OrganizationDAO, - PaymentsDAO, - PermissionDAO, - PourDAO, - PriceVariantDAO, - ProductDAO, - ProductDeviceDAO, - ProductFirmwareDAO, - ReportDAO, - ScheduleDAO, - SrmDAO, - StyleDAO, - TapDAO, -]; - -const flushCache = () => { - DAOArray.forEach((dao: *) => { - dao.flushCache(); - dao.flushCustomCache(); - }); -}; - -const setOrganizationID = (organizationID: ?EntityID) => { - Config.organizationId = organizationID; - - AccountDAO.flushCache(); - AchievementDAO.flushCache(); - BeverageDAO.flushCache(); - DeviceDAO.flushCache(); - FriendDAO.flushCache(); - KegDAO.flushCache(); - LocationDAO.flushCache(); - PaymentsDAO.flushCache(); - PourChartDAO.flushCache(); - PourDAO.flushCache(); - PriceVariantDAO.flushCache(); - ReportDAO.flushCache(); - ScheduleDAO.flushCache(); - TapDAO.flushCache(); -}; - -export * from './Auth'; -export * from './dao/AccountDAO'; -export * from './dao/AchievementDAO'; -export * from './dao/AvailabilityDAO'; -export * from './dao/BeverageDAO'; -export * from './dao/CloudDeviceDAO'; -export * from './dao/DeviceDAO'; -export * from './dao/FlowSensorDAO'; -export * from './dao/FriendDAO'; -export * from './dao/GlassDAO'; -export * from './dao/KegDAO'; -export * from './dao/LocationDAO'; -export * from './dao/OrganizationDAO'; -export * from './dao/PermissionDAO'; -export * from './dao/PaymentsDAO'; -export * from './dao/PourChartDAO'; -export * from './dao/PourDAO'; -export * from './dao/PriceVariantDAO'; -export * from './dao/ProductDAO'; -export * from './dao/ProductDeviceDAO'; -export * from './dao/ProductFirmwareDAO'; -export * from './dao/ReportDAO'; -export * from './dao/ScheduleDAO'; -export * from './dao/SrmDAO'; -export * from './dao/StyleDAO'; -export * from './dao/TapDAO'; - -export * from './constants'; -export * from './types'; -export * from './CloudSSEManager'; -export * from './LoadObject'; -export { default as LoadObject } from './LoadObject'; -export { default as RestDAO } from './dao/RestDAO'; -export { default as ODataDAO } from './dao/ODataDAO'; - -export { CADENCE_MAP }; - -/* eslint-disable sorting/sort-object-props */ -export default { - AccountDAO, - AchievementDAO, - Auth, - AvailabilityDAO, - BeverageDAO, - CloudDeviceDAO, - CloudSSEManager, - DeviceDAO, - FlowSensorDAO, - FriendDAO, - GlassDAO, - KegDAO, - LocationDAO, - OrganizationDAO, - PaymentsDAO, - PermissionDAO, - PourChartDAO, - PourDAO, - PriceVariantDAO, - ProductDAO, - ProductDeviceDAO, - ProductFirmwareDAO, - ReportDAO, - ScheduleDAO, - Signalr, - SrmDAO, - StyleDAO, - TapDAO, - createFilter, - doesSatisfyQueryFilters, - fetch, - flushCache, - initialize, - onError: Subscription.onError, - setOrganizationID, - setToken, -}; diff --git a/build/signalr/hubs/Hub.js b/build/signalr/hubs/Hub.js deleted file mode 100644 index cf9478e..0000000 --- a/build/signalr/hubs/Hub.js +++ /dev/null @@ -1,114 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _reactNativeSignalr = _interopRequireDefault(require("react-native-signalr")); -var _Config = _interopRequireDefault(require("../../Config")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var PING_INTERVAL = 60000; -var Hub = /*#__PURE__*/function () { - function Hub(name) { - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref$logging = _ref.logging, - logging = _ref$logging === void 0 ? false : _ref$logging, - queryParams = _ref.queryParams, - _ref$rootPath = _ref.rootPath, - rootPath = _ref$rootPath === void 0 ? 'https://brewskey.com' : _ref$rootPath, - _ref$shareConnection = _ref.shareConnection, - shareConnection = _ref$shareConnection === void 0 ? true : _ref$shareConnection, - transport = _ref.transport; - _classCallCheck(this, Hub); - _defineProperty(this, "_connection", void 0); - _defineProperty(this, "_connectionPromise", void 0); - _defineProperty(this, "_proxy", void 0); - _defineProperty(this, "_transport", void 0); - this._connection = Hub.getConnection(rootPath, shareConnection); - this._proxy = this._connection.createHubProxy(name); - this._connection.logging = logging; - this._connection.qs = queryParams; - this._transport = transport; - } - _createClass(Hub, [{ - key: "connect", - value: function connect() { - var _connection = this._connection, - _transport = this._transport; - _connection.qs = _objectSpread(_objectSpread({}, _connection.qs || {}), _Config["default"].token != null ? { - access_token: _Config["default"].token - } : {}); - this._connectionPromise = _transport ? _connection.start({ - pingInterval: PING_INTERVAL, - transport: _transport - }) : _connection.start({ - pingInterval: PING_INTERVAL - }); - return this._connectionPromise; - } - }, { - key: "disconnect", - value: function disconnect() { - this._connection.stop(); - } - }, { - key: "serverMethod", - value: function serverMethod(name) { - var _this = this; - return function () { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - return _this._connectionPromise && _this._connectionPromise.then(function () { - var _this$_proxy; - return (_this$_proxy = _this._proxy).invoke.apply(_this$_proxy, [name].concat(args)); - }); - }; - } - }, { - key: "registerListener", - value: function registerListener(name, listener) { - this._proxy.on(name, listener); - } - }, { - key: "unregisterListener", - value: function unregisterListener(name, listener) { - this._proxy.off(name, listener); - } - }, { - key: "registerErrorHandler", - value: function registerErrorHandler(handler) { - this._connection.error(handler); - } - }], [{ - key: "initNewConnection", - value: function initNewConnection(rootPath) { - return rootPath ? _reactNativeSignalr["default"].hubConnection(rootPath) : _reactNativeSignalr["default"].hubConnection(); - } - }, { - key: "getConnection", - value: function getConnection(rootPath, shareConnection) { - if (!shareConnection) { - return Hub.initNewConnection(rootPath); - } - var connection = Hub.CONNECTIONS[rootPath]; - if (!connection) { - connection = Hub.initNewConnection(rootPath); - Hub.CONNECTIONS[rootPath] = connection; - } - return connection; - } - }]); - return Hub; -}(); -_defineProperty(Hub, "CONNECTIONS", {}); -var _default = exports["default"] = Hub; \ No newline at end of file diff --git a/build/signalr/hubs/Hub.js.flow b/build/signalr/hubs/Hub.js.flow deleted file mode 100644 index b8066f7..0000000 --- a/build/signalr/hubs/Hub.js.flow +++ /dev/null @@ -1,110 +0,0 @@ -// @flow - -import signalr from 'react-native-signalr'; -import Config from '../../Config'; - -const PING_INTERVAL = 60000; - -export type Options = { - logging?: boolean, - queryParams?: Object, - rootPath?: string, - shareConnection?: boolean, - transport?: string | Array, -}; - -class Hub { - static CONNECTIONS: Object = {}; - - _connection: Object; - - _connectionPromise: ?Promise; - - _proxy: Object; - - _transport: ?(string | Array); - - static initNewConnection(rootPath: ?string): Object { - return rootPath ? signalr.hubConnection(rootPath) : signalr.hubConnection(); - } - - static getConnection(rootPath: ?string, shareConnection: boolean): Object { - if (!shareConnection) { - return Hub.initNewConnection(rootPath); - } - - let connection = Hub.CONNECTIONS[rootPath]; - - if (!connection) { - connection = Hub.initNewConnection(rootPath); - Hub.CONNECTIONS[rootPath] = connection; - } - - return connection; - } - - constructor( - name: string, - { - logging = false, - queryParams, - // todo fix with Config.host - rootPath = 'https://brewskey.com', - shareConnection = true, - transport, - }: Options = {}, - ) { - this._connection = Hub.getConnection(rootPath, shareConnection); - this._proxy = this._connection.createHubProxy(name); - this._connection.logging = logging; - this._connection.qs = queryParams; - this._transport = transport; - } - - connect(): Promise { - const { _connection, _transport } = this; - _connection.qs = { - ...(_connection.qs || {}), - ...(Config.token != null - ? { - access_token: Config.token, - } - : {}), - }; - - this._connectionPromise = _transport - ? _connection.start({ - pingInterval: PING_INTERVAL, - transport: _transport, - }) - : _connection.start({ pingInterval: PING_INTERVAL }); - - return this._connectionPromise; - } - - disconnect() { - this._connection.stop(); - } - - serverMethod(name: string): Function { - return (...args: Array): ?Promise => - this._connectionPromise && - this._connectionPromise.then((): Promise => - this._proxy.invoke(name, ...args), - ); - } - - registerListener(name: string, listener: Function) { - this._proxy.on(name, listener); - } - - unregisterListener(name: string, listener: Function) { - this._proxy.off(name, listener); - } - - registerErrorHandler(handler: Function) { - this._connection.error(handler); - } -} - -export default Hub; diff --git a/build/signalr/hubs/TapHub.js b/build/signalr/hubs/TapHub.js deleted file mode 100644 index 8589d10..0000000 --- a/build/signalr/hubs/TapHub.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _Hub2 = _interopRequireDefault(require("./Hub")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var TapHub = /*#__PURE__*/function (_Hub) { - _inherits(TapHub, _Hub); - function TapHub(options) { - var _this; - _classCallCheck(this, TapHub); - _this = _callSuper(this, TapHub, ['tapHub', options !== null && options !== void 0 ? options : { - logging: true - }]); - _defineProperty(_assertThisInitialized(_this), "subscribe", _this.serverMethod('subscribe')); - _defineProperty(_assertThisInitialized(_this), "subscribeMany", _this.serverMethod('subscribeMany')); - _defineProperty(_assertThisInitialized(_this), "unsubscribe", _this.serverMethod('unsubscribe')); - _defineProperty(_assertThisInitialized(_this), "unsubscribeMany", _this.serverMethod('unsubscribeMany')); - return _this; - } - _createClass(TapHub, [{ - key: "withOptions", - value: function withOptions(options) { - return new TapHub(options); - } - }]); - return TapHub; -}(_Hub2["default"]); -var _default = exports["default"] = new TapHub(); \ No newline at end of file diff --git a/build/signalr/hubs/TapHub.js.flow b/build/signalr/hubs/TapHub.js.flow deleted file mode 100644 index daf2b36..0000000 --- a/build/signalr/hubs/TapHub.js.flow +++ /dev/null @@ -1,36 +0,0 @@ -// @flow - -import type { Options } from './Hub'; - -import Hub from './Hub'; - -class TapHub extends Hub { - subscribe: (tapId: string) => Promise = this.serverMethod('subscribe'); - - subscribeMany: (tapIds: Array) => Promise = this.serverMethod( - 'subscribeMany', - ); - - unsubscribe: (tapId: string) => Promise = this.serverMethod( - 'unsubscribe', - ); - - unsubscribeMany: (tapIds: Array) => Promise = this.serverMethod( - 'unsubscribeMany', - ); - - constructor(options?: Options) { - super( - 'tapHub', - options ?? { - logging: true, - }, - ); - } - - withOptions(options: Options): TapHub { - return new TapHub(options); - } -} - -export default new TapHub(); diff --git a/build/signalr/index.js b/build/signalr/index.js deleted file mode 100644 index 640bc60..0000000 --- a/build/signalr/index.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _TapHub = _interopRequireDefault(require("./hubs/TapHub")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } -var startAll = /*#__PURE__*/function () { - var _ref = _asyncToGenerator(function* () { - yield _TapHub["default"].connect(); - yield _TapHub["default"].subscribe('*'); - }); - return function startAll() { - return _ref.apply(this, arguments); - }; -}(); -var stopAll = /*#__PURE__*/function () { - var _ref2 = _asyncToGenerator(function* () { - yield _TapHub["default"].unsubscribe('*'); - _TapHub["default"].disconnect(); - }); - return function stopAll() { - return _ref2.apply(this, arguments); - }; -}(); -var _default = exports["default"] = { - startAll: startAll, - stopAll: stopAll, - TapHub: _TapHub["default"] -}; \ No newline at end of file diff --git a/build/signalr/index.js.flow b/build/signalr/index.js.flow deleted file mode 100644 index bd4e14c..0000000 --- a/build/signalr/index.js.flow +++ /dev/null @@ -1,19 +0,0 @@ -// @flow - -import TapHub from './hubs/TapHub'; - -const startAll = async (): Promise => { - await TapHub.connect(); - await TapHub.subscribe('*'); -}; - -const stopAll = async (): Promise => { - await TapHub.unsubscribe('*'); - TapHub.disconnect(); -}; - -export default { - startAll, - stopAll, - TapHub, -}; diff --git a/build/signalr/types.js b/build/signalr/types.js deleted file mode 100644 index 9a390c3..0000000 --- a/build/signalr/types.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; \ No newline at end of file diff --git a/build/signalr/types.js.flow b/build/signalr/types.js.flow deleted file mode 100644 index b0fa1a3..0000000 --- a/build/signalr/types.js.flow +++ /dev/null @@ -1,13 +0,0 @@ -// @flow - -export type SocketPour = { - account: { id: string, name: string }, - id: string, - keg: { id: string }, - location: { id: string }, - ounces: number, - pourDate: Date, - pouredBy: string, - pulses: number, - tap: { id: string }, -}; diff --git a/build/translators/BeverageTranslator.js b/build/translators/BeverageTranslator.js deleted file mode 100644 index 56d598b..0000000 --- a/build/translators/BeverageTranslator.js +++ /dev/null @@ -1,89 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _DefaultTranslator2 = _interopRequireDefault(require("./DefaultTranslator")); -var _excluded = ["isOrganic"]; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var BeverageTranslator = /*#__PURE__*/function (_DefaultTranslator) { - _inherits(BeverageTranslator, _DefaultTranslator); - function BeverageTranslator() { - _classCallCheck(this, BeverageTranslator); - return _callSuper(this, BeverageTranslator, arguments); - } - _createClass(BeverageTranslator, [{ - key: "fromApi", - value: function fromApi(apiValue) { - return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(BeverageTranslator.prototype), "fromApi", this).call(this, apiValue)), {}, { - isOrganic: apiValue.isOrganic === 'Y' - }); - } - }, { - key: "toApi", - value: function toApi(_ref) { - var isOrganic = _ref.isOrganic, - props = _objectWithoutProperties(_ref, _excluded); - return _objectSpread(_objectSpread({}, props), {}, { - isOrganic: isOrganic ? 'Y' : 'N' - }); - } - }, { - key: "toForm", - value: function toForm(_ref2) { - var abv = _ref2.abv, - availability = _ref2.availability, - beverageType = _ref2.beverageType, - description = _ref2.description, - glass = _ref2.glass, - ibu = _ref2.ibu, - id = _ref2.id, - isOrganic = _ref2.isOrganic, - name = _ref2.name, - originalGravity = _ref2.originalGravity, - servingTemperature = _ref2.servingTemperature, - srm = _ref2.srm, - style = _ref2.style, - year = _ref2.year; - return { - abv: abv, - availableId: availability && availability.id, - beverageType: beverageType, - description: description, - glasswareId: glass && glass.id, - ibu: ibu, - id: id, - isOrganic: isOrganic, - name: name, - originalGravity: originalGravity, - servingTemperature: servingTemperature, - srmId: srm && srm.id, - styleId: style && style.id, - year: year - }; - } - }]); - return BeverageTranslator; -}(_DefaultTranslator2["default"]); -var _default = exports["default"] = BeverageTranslator; \ No newline at end of file diff --git a/build/translators/BeverageTranslator.js.flow b/build/translators/BeverageTranslator.js.flow deleted file mode 100644 index 470ce8f..0000000 --- a/build/translators/BeverageTranslator.js.flow +++ /dev/null @@ -1,55 +0,0 @@ -// @flow -import type { Beverage, BeverageMutator } from '../dao/BeverageDAO'; -import DefaultTranslator from './DefaultTranslator'; - -class BeverageTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Beverage { - return (({ - ...super.fromApi(apiValue), - isOrganic: apiValue.isOrganic === 'Y', - }: any): Beverage); - } - - toApi({ isOrganic, ...props }: BeverageMutator): Object { - return { - ...props, - isOrganic: isOrganic ? 'Y' : 'N', - }; - } - - toForm({ - abv, - availability, - beverageType, - description, - glass, - ibu, - id, - isOrganic, - name, - originalGravity, - servingTemperature, - srm, - style, - year, - }: Beverage): BeverageMutator { - return { - abv, - availableId: availability && availability.id, - beverageType, - description, - glasswareId: glass && glass.id, - ibu, - id, - isOrganic, - name, - originalGravity, - servingTemperature, - srmId: srm && srm.id, - styleId: style && style.id, - year, - }; - } -} - -export default BeverageTranslator; diff --git a/build/translators/DefaultTranslator.js b/build/translators/DefaultTranslator.js deleted file mode 100644 index 4628fc8..0000000 --- a/build/translators/DefaultTranslator.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var deepIdCast = function deepIdCast(node) { - Object.keys(node).forEach(function (key) { - if (node[key] === Object(node[key])) { - deepIdCast(node[key]); - } - if (key === 'id') { - // eslint-disable-next-line - node[key] = node[key].toString(); - } - }); - return node; -}; -var DefaultTranslator = /*#__PURE__*/function () { - function DefaultTranslator() { - _classCallCheck(this, DefaultTranslator); - } - _createClass(DefaultTranslator, [{ - key: "fromApi", - value: function fromApi(apiValue) { - return deepIdCast(apiValue); - } - }, { - key: "toApi", - value: function toApi(mutator) { - return mutator; - } - }, { - key: "toForm", - value: function toForm(model) { - return model; - } - }]); - return DefaultTranslator; -}(); -var _default = exports["default"] = DefaultTranslator; \ No newline at end of file diff --git a/build/translators/DefaultTranslator.js.flow b/build/translators/DefaultTranslator.js.flow deleted file mode 100644 index 22f73b3..0000000 --- a/build/translators/DefaultTranslator.js.flow +++ /dev/null @@ -1,30 +0,0 @@ -// @flow - -const deepIdCast = (node: any): any => { - Object.keys(node).forEach((key: string) => { - if (node[key] === Object(node[key])) { - deepIdCast(node[key]); - } - if (key === 'id') { - // eslint-disable-next-line - node[key] = node[key].toString(); - } - }); - return node; -}; - -class DefaultTranslator { - fromApi(apiValue: Object): TEntity { - return deepIdCast(apiValue); - } - - toApi(mutator: TEntityMutator): Object { - return ((mutator: any): Object); - } - - toForm(model: TEntity): TEntityMutator { - return ((model: any): TEntityMutator); - } -} - -export default DefaultTranslator; diff --git a/build/translators/DeviceTranslator.js b/build/translators/DeviceTranslator.js deleted file mode 100644 index b200e45..0000000 --- a/build/translators/DeviceTranslator.js +++ /dev/null @@ -1,61 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _DefaultTranslator2 = _interopRequireDefault(require("./DefaultTranslator")); -var _excluded = ["createdBy", "isDeleted", "lastEdited", "lastEditedBy", "location", "organization", "temperature"]; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var DeviceTranslator = /*#__PURE__*/function (_DefaultTranslator) { - _inherits(DeviceTranslator, _DefaultTranslator); - function DeviceTranslator() { - _classCallCheck(this, DeviceTranslator); - return _callSuper(this, DeviceTranslator, arguments); - } - _createClass(DeviceTranslator, [{ - key: "fromApi", - value: function fromApi(apiValue) { - return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(DeviceTranslator.prototype), "fromApi", this).call(this, apiValue)), {}, { - location: apiValue.location && apiValue.location.isDeleted ? null : apiValue.location - }); - } - }, { - key: "toForm", - value: function toForm(_ref) { - var _ = _ref.createdBy, - _1 = _ref.isDeleted, - _2 = _ref.lastEdited, - _3 = _ref.lastEditedBy, - location = _ref.location, - _4 = _ref.organization, - _5 = _ref.temperature, - otherProps = _objectWithoutProperties(_ref, _excluded); - return _objectSpread(_objectSpread({}, otherProps), {}, { - locationId: location && location.id - }); - } - }]); - return DeviceTranslator; -}(_DefaultTranslator2["default"]); -var _default = exports["default"] = DeviceTranslator; \ No newline at end of file diff --git a/build/translators/DeviceTranslator.js.flow b/build/translators/DeviceTranslator.js.flow deleted file mode 100644 index 85a59db..0000000 --- a/build/translators/DeviceTranslator.js.flow +++ /dev/null @@ -1,34 +0,0 @@ -// @flow -import type { Device, DeviceMutator } from '../dao/DeviceDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -class DeviceTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Device { - return (({ - ...super.fromApi(apiValue), - location: - apiValue.location && apiValue.location.isDeleted - ? null - : apiValue.location, - }: any): Device); - } - - toForm({ - createdBy: _, - isDeleted: _1, - lastEdited: _2, - lastEditedBy: _3, - location, - organization: _4, - temperature: _5, - ...otherProps - }: Device): DeviceMutator { - return { - ...otherProps, - locationId: location && location.id, - }; - } -} - -export default DeviceTranslator; diff --git a/build/translators/KegTranslator.js b/build/translators/KegTranslator.js deleted file mode 100644 index f7f6d89..0000000 --- a/build/translators/KegTranslator.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _DefaultTranslator2 = _interopRequireDefault(require("./DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var KegTranslator = /*#__PURE__*/function (_DefaultTranslator) { - _inherits(KegTranslator, _DefaultTranslator); - function KegTranslator() { - _classCallCheck(this, KegTranslator); - return _callSuper(this, KegTranslator, arguments); - } - _createClass(KegTranslator, [{ - key: "fromApi", - value: function fromApi(apiValue) { - return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(KegTranslator.prototype), "fromApi", this).call(this, apiValue)), {}, { - location: apiValue.location.isDeleted ? null : apiValue.location, - tap: apiValue.tap.isDeleted ? null : apiValue.tap - }); - } - }]); - return KegTranslator; -}(_DefaultTranslator2["default"]); -var _default = exports["default"] = KegTranslator; \ No newline at end of file diff --git a/build/translators/KegTranslator.js.flow b/build/translators/KegTranslator.js.flow deleted file mode 100644 index 935d947..0000000 --- a/build/translators/KegTranslator.js.flow +++ /dev/null @@ -1,17 +0,0 @@ -// @flow - -import type { Keg, KegMutator } from '../dao/KegDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -class KegTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Keg { - return (({ - ...super.fromApi(apiValue), - location: apiValue.location.isDeleted ? null : apiValue.location, - tap: apiValue.tap.isDeleted ? null : apiValue.tap, - }: any): Keg); - } -} - -export default KegTranslator; diff --git a/build/translators/LocationTranslator.js b/build/translators/LocationTranslator.js deleted file mode 100644 index 404d56b..0000000 --- a/build/translators/LocationTranslator.js +++ /dev/null @@ -1,90 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _DefaultTranslator2 = _interopRequireDefault(require("./DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var FLOAT_REGEXP = /[+-]?([0-9]*[.])?[0-9]+/g; -var parseLocationCoordinates = function parseLocationCoordinates(wellKnownText) { - var matchedLatLongStringArray = wellKnownText.match(FLOAT_REGEXP); - if (!matchedLatLongStringArray) { - return { - latitude: 0, - longitude: 0 - }; - } - var latLongNumberArray = matchedLatLongStringArray.map(function (coordinateString) { - return parseFloat(coordinateString); - }); - return { - latitude: latLongNumberArray[1], - longitude: latLongNumberArray[0] - }; -}; -var LocationTranslator = /*#__PURE__*/function (_DefaultTranslator) { - _inherits(LocationTranslator, _DefaultTranslator); - function LocationTranslator() { - _classCallCheck(this, LocationTranslator); - return _callSuper(this, LocationTranslator, arguments); - } - _createClass(LocationTranslator, [{ - key: "fromApi", - value: function fromApi(apiValue) { - return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(LocationTranslator.prototype), "fromApi", this).call(this, apiValue)), {}, { - geolocation: apiValue.geolocation && _objectSpread(_objectSpread({}, apiValue.geolocation), {}, { - coordinates: parseLocationCoordinates(apiValue.geolocation.geography.wellKnownText) - }) - }); - } - }, { - key: "toForm", - value: function toForm(_ref) { - var city = _ref.city, - description = _ref.description, - id = _ref.id, - locationType = _ref.locationType, - name = _ref.name, - organization = _ref.organization, - squareLocationID = _ref.squareLocationID, - state = _ref.state, - street = _ref.street, - suite = _ref.suite, - zipCode = _ref.zipCode; - return { - city: city, - description: description, - id: id, - locationType: locationType, - name: name, - organizationId: organization && organization.id, - squareLocationID: squareLocationID, - state: state, - street: street, - suite: suite, - zipCode: zipCode - }; - } - }]); - return LocationTranslator; -}(_DefaultTranslator2["default"]); -var _default = exports["default"] = LocationTranslator; \ No newline at end of file diff --git a/build/translators/LocationTranslator.js.flow b/build/translators/LocationTranslator.js.flow deleted file mode 100644 index ca1c7c2..0000000 --- a/build/translators/LocationTranslator.js.flow +++ /dev/null @@ -1,69 +0,0 @@ -// @flow -import type { - Coordinates, - Location, - LocationMutator, -} from '../dao/LocationDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -const FLOAT_REGEXP = /[+-]?([0-9]*[.])?[0-9]+/g; - -const parseLocationCoordinates = (wellKnownText: string): Coordinates => { - const matchedLatLongStringArray = wellKnownText.match(FLOAT_REGEXP); - if (!matchedLatLongStringArray) { - return { latitude: 0, longitude: 0 }; - } - const latLongNumberArray = matchedLatLongStringArray.map( - (coordinateString: string): number => parseFloat(coordinateString), - ); - - return { - latitude: latLongNumberArray[1], - longitude: latLongNumberArray[0], - }; -}; - -class LocationTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Location { - return (({ - ...super.fromApi(apiValue), - geolocation: apiValue.geolocation && { - ...apiValue.geolocation, - coordinates: parseLocationCoordinates( - apiValue.geolocation.geography.wellKnownText, - ), - }, - }: any): Location); - } - - toForm({ - city, - description, - id, - locationType, - name, - organization, - squareLocationID, - state, - street, - suite, - zipCode, - }: Location): LocationMutator { - return { - city, - description, - id, - locationType, - name, - organizationId: organization && organization.id, - squareLocationID, - state, - street, - suite, - zipCode, - }; - } -} - -export default LocationTranslator; diff --git a/build/translators/PermissionTranslator.js b/build/translators/PermissionTranslator.js deleted file mode 100644 index 5fff28e..0000000 --- a/build/translators/PermissionTranslator.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _DefaultTranslator2 = _interopRequireDefault(require("./DefaultTranslator")); -var _excluded = ["entityId", "entityType"]; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var PERMISSION_ENTITY_KEYS = ['device', 'location', 'organization', 'tap']; - -// todo make DAO_ENTITIES and permissionType singular, it will allow -// simplify and reduce many annoying transformations. -// and we won't need to write shitty methods like this. :/ -var getPermissionEntityTypeFromModel = function getPermissionEntityTypeFromModel(model -// eslint-disable-next-line prefer-template -) { - return "".concat((Object.entries(model).find(function (entry) { - var key = entry[0]; - var value = entry[1]; - return PERMISSION_ENTITY_KEYS.includes(key) && !!value; - }) || {})[0], "s"); -}; -var PermissionTranslator = /*#__PURE__*/function (_DefaultTranslator) { - _inherits(PermissionTranslator, _DefaultTranslator); - function PermissionTranslator() { - _classCallCheck(this, PermissionTranslator); - return _callSuper(this, PermissionTranslator, arguments); - } - _createClass(PermissionTranslator, [{ - key: "toApi", - value: function toApi(_ref) { - var entityId = _ref.entityId, - entityType = _ref.entityType, - props = _objectWithoutProperties(_ref, _excluded); - return _objectSpread(_objectSpread({}, props), {}, { - deviceId: entityType === 'devices' ? entityId : null, - locationId: entityType === 'locations' ? entityId : null, - organizationId: entityType === 'organizations' ? entityId : null, - tapId: entityType === 'taps' ? entityId : null - }); - } - }, { - key: "toForm", - value: function toForm(model) { - var permissionEntityType = getPermissionEntityTypeFromModel(model); - return _objectSpread(_objectSpread({}, model), {}, { - entityId: model[permissionEntityType.slice(0, -1)], - entityType: permissionEntityType, - userId: model.forUser.id - }); - } - }]); - return PermissionTranslator; -}(_DefaultTranslator2["default"]); -var _default = exports["default"] = PermissionTranslator; \ No newline at end of file diff --git a/build/translators/PermissionTranslator.js.flow b/build/translators/PermissionTranslator.js.flow deleted file mode 100644 index c5954c9..0000000 --- a/build/translators/PermissionTranslator.js.flow +++ /dev/null @@ -1,53 +0,0 @@ -// @flow -import type { - Permission, - PermissionMutator, - PermissionEntityType, -} from '../dao/PermissionDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -const PERMISSION_ENTITY_KEYS = ['device', 'location', 'organization', 'tap']; - -// todo make DAO_ENTITIES and permissionType singular, it will allow -// simplify and reduce many annoying transformations. -// and we won't need to write shitty methods like this. :/ -const getPermissionEntityTypeFromModel = ( - model: Permission, - // eslint-disable-next-line prefer-template -): PermissionEntityType => - (`${ - (Object.entries(model).find((entry: [string, mixed]): boolean => { - const key = entry[0]; - const value = entry[1]; - return PERMISSION_ENTITY_KEYS.includes(key) && !!value; - }) || {})[0] - }s`: any); - -class PermissionTranslator extends DefaultTranslator< - Permission, - PermissionMutator, -> { - toApi({ entityId, entityType, ...props }: PermissionMutator): Object { - return { - ...props, - deviceId: entityType === 'devices' ? entityId : null, - locationId: entityType === 'locations' ? entityId : null, - organizationId: entityType === 'organizations' ? entityId : null, - tapId: entityType === 'taps' ? entityId : null, - }; - } - - toForm(model: Permission): PermissionMutator { - const permissionEntityType = getPermissionEntityTypeFromModel(model); - - return { - ...model, - entityId: model[permissionEntityType.slice(0, -1)], - entityType: permissionEntityType, - userId: model.forUser.id, - }; - } -} - -export default PermissionTranslator; diff --git a/build/translators/PourTranslator.js b/build/translators/PourTranslator.js deleted file mode 100644 index 8c1e4f9..0000000 --- a/build/translators/PourTranslator.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _DefaultTranslator2 = _interopRequireDefault(require("./DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var PourTranslator = /*#__PURE__*/function (_DefaultTranslator) { - _inherits(PourTranslator, _DefaultTranslator); - function PourTranslator() { - _classCallCheck(this, PourTranslator); - return _callSuper(this, PourTranslator, arguments); - } - _createClass(PourTranslator, [{ - key: "fromApi", - value: function fromApi(apiValue) { - return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(PourTranslator.prototype), "fromApi", this).call(this, apiValue)), {}, { - beverage: apiValue.beverage.isDeleted ? null : apiValue.beverage, - location: apiValue.location.isDeleted ? null : apiValue.location, - tap: apiValue.tap.isDeleted ? null : apiValue.tap - }); - } - }]); - return PourTranslator; -}(_DefaultTranslator2["default"]); -var _default = exports["default"] = PourTranslator; \ No newline at end of file diff --git a/build/translators/PourTranslator.js.flow b/build/translators/PourTranslator.js.flow deleted file mode 100644 index a1ba121..0000000 --- a/build/translators/PourTranslator.js.flow +++ /dev/null @@ -1,18 +0,0 @@ -// @flow - -import type { Pour } from '../index'; - -import DefaultTranslator from './DefaultTranslator'; - -class PourTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Pour { - return (({ - ...super.fromApi(apiValue), - beverage: apiValue.beverage.isDeleted ? null : apiValue.beverage, - location: apiValue.location.isDeleted ? null : apiValue.location, - tap: apiValue.tap.isDeleted ? null : apiValue.tap, - }: any): Pour); - } -} - -export default PourTranslator; diff --git a/build/translators/ReportTranslator.js b/build/translators/ReportTranslator.js deleted file mode 100644 index 34a6be1..0000000 --- a/build/translators/ReportTranslator.js +++ /dev/null @@ -1,85 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = exports.CADENCE_MAP = void 0; -var _DefaultTranslator2 = _interopRequireDefault(require("./DefaultTranslator")); -var _excluded = ["devices", "locations", "sendToEmails", "taps"]; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var CADENCE_MAP = exports.CADENCE_MAP = { - Biweekly: 3, - Daily: 1, - Monthly: 4, - OneTime: 0, - Weekly: 2 -}; - -// todo clean the translator when we will be merging loadObject to master -var ReportTranslator = /*#__PURE__*/function (_DefaultTranslator) { - _inherits(ReportTranslator, _DefaultTranslator); - function ReportTranslator() { - _classCallCheck(this, ReportTranslator); - return _callSuper(this, ReportTranslator, arguments); - } - _createClass(ReportTranslator, [{ - key: "toApi", - value: function toApi(_ref) { - var devices = _ref.devices, - locations = _ref.locations, - sendToEmails = _ref.sendToEmails, - taps = _ref.taps, - props = _objectWithoutProperties(_ref, _excluded); - return _objectSpread(_objectSpread({}, props), {}, { - deviceIds: devices ? devices.map(function (_ref2) { - var id = _ref2.id; - return id; - }) : [], - locationIds: locations ? locations.map(function (_ref3) { - var id = _ref3.id; - return id; - }) : [], - sendToEmails: sendToEmails.map(function (_ref4) { - var email = _ref4.email; - return email; - }), - tapIds: taps ? taps.map(function (_ref5) { - var id = _ref5.id; - return id; - }) : [] - }); - } - }, { - key: "toForm", - value: function toForm(report) { - return _objectSpread(_objectSpread({}, report), {}, { - reportCadence: CADENCE_MAP[report.reportCadence], - sendToEmails: report.sendToEmails.map(function (email) { - return { - email: email - }; - }) - }); - } - }]); - return ReportTranslator; -}(_DefaultTranslator2["default"]); -var _default = exports["default"] = ReportTranslator; \ No newline at end of file diff --git a/build/translators/ReportTranslator.js.flow b/build/translators/ReportTranslator.js.flow deleted file mode 100644 index ee14711..0000000 --- a/build/translators/ReportTranslator.js.flow +++ /dev/null @@ -1,54 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from '../dao/TapDAO'; -import type { Report, ReportMutator } from '../dao/ReportDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -export const CADENCE_MAP = { - Biweekly: 3, - Daily: 1, - Monthly: 4, - OneTime: 0, - Weekly: 2, -}; - -// todo clean the translator when we will be merging loadObject to master -class ReportTranslator extends DefaultTranslator { - toApi({ - devices, - locations, - sendToEmails, - taps, - ...props - }: ReportMutator): Object { - return { - ...props, - deviceIds: devices - ? devices.map(({ id }: ShortenedEntity): EntityID => id) - : [], - locationIds: locations - ? locations.map(({ id }: ShortenedEntity): EntityID => id) - : [], - sendToEmails: sendToEmails.map( - ({ email }: { email: string }): string => email, - ), - tapIds: taps ? taps.map(({ id }: ShortenedTap): EntityID => id) : [], - }; - } - - toForm(report: Report): Object { - return { - ...report, - reportCadence: CADENCE_MAP[report.reportCadence], - sendToEmails: report.sendToEmails.map( - (email: string): Object => ({ - email, - }), - ), - }; - } -} - -export default ReportTranslator; diff --git a/build/translators/ScheduleTranslator.js b/build/translators/ScheduleTranslator.js deleted file mode 100644 index ac94c03..0000000 --- a/build/translators/ScheduleTranslator.js +++ /dev/null @@ -1,95 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _DefaultTranslator2 = _interopRequireDefault(require("./DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var SCHEDULE_DAY_BIT_MAP = { - All: 127, - Friday: 16, - Monday: 1, - None: 0, - Saturday: 32, - Sunday: 64, - Thursday: 8, - Tuesday: 2, - Wednesday: 4, - WeekDays: 31 -}; -var getCombinedFlag = function getCombinedFlag(days) { - return days.reduce(function (total, day) { - return total | SCHEDULE_DAY_BIT_MAP[day]; - }, - // eslint-disable-line - 0); -}; - -// todo clean translator when we will implement schedules in mobile app -var SchedulesTranslator = /*#__PURE__*/function (_DefaultTranslator) { - _inherits(SchedulesTranslator, _DefaultTranslator); - function SchedulesTranslator() { - _classCallCheck(this, SchedulesTranslator); - return _callSuper(this, SchedulesTranslator, arguments); - } - _createClass(SchedulesTranslator, [{ - key: "fromApi", - value: function fromApi(apiValue) { - return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(SchedulesTranslator.prototype), "fromApi", this).call(this, apiValue)), {}, { - days: getCombinedFlag(apiValue.days.split(', ')), - location: apiValue.location.isDeleted ? null : apiValue.location - }); - } - }, { - key: "toApi", - value: function toApi(mutator) { - return _objectSpread(_objectSpread({}, mutator), {}, { - accountIds: mutator.accounts && mutator.accounts.map(function (_ref) { - var id = _ref.id; - return id; - }) - }); - } - }, { - key: "toForm", - value: function toForm(_ref2) { - var accounts = _ref2.accounts, - days = _ref2.days, - endTime = _ref2.endTime, - id = _ref2.id, - location = _ref2.location, - name = _ref2.name, - startTime = _ref2.startTime; - return { - accounts: accounts, - days: days, - endTime: endTime, - id: id, - locationId: location ? location.id.toString() : null, - name: name, - startTime: startTime - }; - } - }]); - return SchedulesTranslator; -}(_DefaultTranslator2["default"]); -var _default = exports["default"] = SchedulesTranslator; \ No newline at end of file diff --git a/build/translators/ScheduleTranslator.js.flow b/build/translators/ScheduleTranslator.js.flow deleted file mode 100644 index 9366e7f..0000000 --- a/build/translators/ScheduleTranslator.js.flow +++ /dev/null @@ -1,67 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; -import type { Schedule, ScheduleMutator } from '../dao/ScheduleDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -const SCHEDULE_DAY_BIT_MAP = { - All: 127, - Friday: 16, - Monday: 1, - None: 0, - Saturday: 32, - Sunday: 64, - Thursday: 8, - Tuesday: 2, - Wednesday: 4, - WeekDays: 31, -}; - -const getCombinedFlag = (days: Array): number => - days.reduce( - (total: number, day: string): number => total | SCHEDULE_DAY_BIT_MAP[day], // eslint-disable-line - 0, - ); - -// todo clean translator when we will implement schedules in mobile app -class SchedulesTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Schedule { - return { - ...super.fromApi(apiValue), - days: getCombinedFlag(apiValue.days.split(', ')), - location: apiValue.location.isDeleted ? null : apiValue.location, - }; - } - - toApi(mutator: ScheduleMutator): Object { - return { - ...mutator, - accountIds: - mutator.accounts && - mutator.accounts.map(({ id }: { id: EntityID }): EntityID => id), - }; - } - - toForm({ - accounts, - days, - endTime, - id, - location, - name, - startTime, - }: Schedule): ScheduleMutator { - return { - accounts, - days, - endTime, - id, - locationId: location ? location.id.toString() : null, - name, - startTime, - }; - } -} - -export default SchedulesTranslator; diff --git a/build/translators/TapTranslator.js b/build/translators/TapTranslator.js deleted file mode 100644 index 4422939..0000000 --- a/build/translators/TapTranslator.js +++ /dev/null @@ -1,67 +0,0 @@ -"use strict"; - -function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _DefaultTranslator2 = _interopRequireDefault(require("./DefaultTranslator")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } -function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get.bind(); } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var TapsTranslator = /*#__PURE__*/function (_DefaultTranslator) { - _inherits(TapsTranslator, _DefaultTranslator); - function TapsTranslator() { - _classCallCheck(this, TapsTranslator); - return _callSuper(this, TapsTranslator, arguments); - } - _createClass(TapsTranslator, [{ - key: "fromApi", - value: function fromApi(apiValue) { - return _objectSpread(_objectSpread({}, _get(_getPrototypeOf(TapsTranslator.prototype), "fromApi", this).call(this, apiValue)), {}, { - location: apiValue.location && apiValue.location.isDeleted ? null : apiValue.location - }); - } - }, { - key: "toForm", - value: function toForm(_ref) { - var description = _ref.description, - device = _ref.device, - disableBadges = _ref.disableBadges, - hideLeaderboard = _ref.hideLeaderboard, - hideStats = _ref.hideStats, - id = _ref.id, - isPaymentEnabled = _ref.isPaymentEnabled, - location = _ref.location, - requiresPourPrivilege = _ref.requiresPourPrivilege; - return { - description: description, - deviceId: device && device.id, - disableBadges: disableBadges, - hideLeaderboard: hideLeaderboard, - hideStats: hideStats, - id: id, - isPaymentEnabled: isPaymentEnabled, - locationId: location && location.id, - requiresPourPrivilege: requiresPourPrivilege - }; - } - }]); - return TapsTranslator; -}(_DefaultTranslator2["default"]); -var _default = exports["default"] = TapsTranslator; \ No newline at end of file diff --git a/build/translators/TapTranslator.js.flow b/build/translators/TapTranslator.js.flow deleted file mode 100644 index d920100..0000000 --- a/build/translators/TapTranslator.js.flow +++ /dev/null @@ -1,43 +0,0 @@ -// @flow - -import type { Tap, TapMutator } from '../dao/TapDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -class TapsTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Tap { - return (({ - ...super.fromApi(apiValue), - location: - apiValue.location && apiValue.location.isDeleted - ? null - : apiValue.location, - }: any): Tap); - } - - toForm({ - description, - device, - disableBadges, - hideLeaderboard, - hideStats, - id, - isPaymentEnabled, - location, - requiresPourPrivilege, - }: Tap): TapMutator { - return { - description, - deviceId: device && device.id, - disableBadges, - hideLeaderboard, - hideStats, - id, - isPaymentEnabled, - locationId: location && location.id, - requiresPourPrivilege, - }; - } -} - -export default TapsTranslator; diff --git a/build/types.js b/build/types.js deleted file mode 100644 index 9a390c3..0000000 --- a/build/types.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; \ No newline at end of file diff --git a/build/types.js.flow b/build/types.js.flow deleted file mode 100644 index 8ec2aa6..0000000 --- a/build/types.js.flow +++ /dev/null @@ -1,97 +0,0 @@ -// @flow - -import type { QueryFilter } from './filters'; -import type ODataDAO from './dao/ODataDAO'; -import type RestDAO from './dao/RestDAO'; - -export type DAO = - | ODataDAO - | RestDAO; - -export type EntityName = - | 'accounts' - | 'achievements' - | 'beverage-availabilities' - | 'beverage-glasses' - | 'beverage-srms' - | 'beverage-styles' - | 'beverages' - | 'chart' - | 'cloud-device-pings' - | 'cloud-devices' - | 'devices' - | 'flow-sensors' - | 'friends' - | 'kegs' - | 'locations' - | 'organizations' - | 'payments' - | 'permissions' - | 'pours' - | 'price-variants' - | 'product-devices' - | 'product-firmwares' - | 'products' - | 'reports' - | 'schedule-groups' - | 'schedules' - | 'taps'; - -export type ShortenedEntity = { - id: EntityID, - isDeleted: boolean, - name: string, -}; - -export type EntityID = string | number; - -export type Header = { - name: string, - value: string, -}; - -export type Headers = Array
; - -export type ODataDAOResult = { - data: any, - inlinecount?: number, -}; - -export type QueryOrderBy = { - column: string, - direction: 'asc' | 'desc', -}; - -export type QueryOptions = { - apply?: string, - filter?: string, - filters?: Array, - orderBy?: Array, - search?: string, - shouldCount?: boolean, - shouldIgnoreOrganizationID?: true, - shouldRefresh?: boolean, - skip?: number, - take?: number, -}; - -export type ODataNavigationProperties = { - [key: string]: { - expand?: ODataNavigationProperties, - select?: Array, - }, -}; - -export type RequestMethod = 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT'; - -export type ODataDAOConfig = {| - entityName: EntityName, - navigationProperties?: ODataNavigationProperties, - translator: DAOTranslator, -|}; - -export type DAOTranslator = { - +fromApi: (apiValue: Object) => TEntity, - +toApi: (model: TEntityMutator) => Object, - +toForm: (model: TEntity) => TEntityMutator, -}; diff --git a/flow-typed/odata.js b/flow-typed/odata.js deleted file mode 100644 index c0a0462..0000000 --- a/flow-typed/odata.js +++ /dev/null @@ -1,84 +0,0 @@ -declare module 'odata' { - declare type Header = { - name: string, - value: string, - }; - declare type Options = { - endpoint?: string, - json?: boolean, - version?: number, - strictMode?: boolean, - start?: () => any, - ready?: () => any, - error?: () => any, - headers?: Header[], - username?: string, - password?: string, - isAsync?: boolean, - }; - - declare export type OHandler = { - inlinecount: number, - data: TEntity | Array, - oConfig: Options, - - customParam(name: string, value: string): void, - - config(options?: Options): OHandler, - progress(callback: () => any): OHandler, - - get(callback?: (data: TEntity) => void): Promise, - save(callback?: (data: TEntity) => void): Promise, - // save(callback ?: (data : TEntity) => void) : Q.Promise>, - - post(params: any): OHandler, - patch(params: any): OHandler, - put(params: any): OHandler, - remove(params?: any): OHandler, - - routes(path: string, callback?: (data: TEntity) => void): OHandler, - route(path: string, callback?: (data: TEntity) => void): OHandler, - triggerRoute(hash: string): OHandler, - beforeRouting(callback: (routeParams: any) => boolean): OHandler, - - isEndpoint(): boolean, - loading(startFn: () => any | boolean, endFn: () => any): OHandler, - - find(selector: string | number): OHandler, - - func(funcString: string): OHandler, - - top(quantity: number): OHandler, - take(quantity: number): OHandler, - skip(quantity: number): OHandler, - first(): OHandler, - - include(column: string, data: string): OHandler, - exclude(column: string, data: string): OHandler, - filterByList(column: string, data: string): OHandler, - - filter(filter: string): OHandler, - where(filter: string): OHandler, - any(filter: string, resource: string): OHandler, - search(columns: string[], term: string): OHandler, - - orderBy(column: string, direction?: boolean): OHandler, - orderByDesc(column: string): OHandler, - select(selectStr: string): OHandler, - - count(): OHandler, - inlineCount(paramName?: string): OHandler, - - batch(resource: string): OHandler, - expand(resource: string): OHandler, - getRef(resource: string, id?: string | number): OHandler, - ref(resource: string, id: string | number): OHandler, - removeRef(resource: string, id: string | number): OHandler, - deleteRef( - resource: string, - id: string | number, - ): OHandler, - } - - declare export default (args?: Options | string) => OHandler; -} diff --git a/package-lock.json b/package-lock.json index 991e0eb..3f7eabf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,2271 +17,2230 @@ "react-native-signalr": "github:Brewskey/react-native-signalr" }, "devDependencies": { - "@babel/cli": "^7.1.5", - "@babel/core": "^7.1.5", - "@babel/plugin-proposal-class-properties": "^7.1.0", - "@babel/plugin-transform-runtime": "^7.9.0", - "@babel/preset-env": "^7.1.5", - "@babel/preset-flow": "^7.0.0", - "@babel/register": "^7.0.0", - "ava": "^0.25.0", - "babel-eslint": "^10.0.1", - "eslint": "^5.9.0", - "eslint-config-airbnb-base": "^13.1.0", - "eslint-config-prettier": "^3.3.0", - "eslint-plugin-flowtype": "^3.2.0", - "eslint-plugin-import": "^2.14.0", - "eslint-plugin-prettier": "^3.0.0", - "eslint-plugin-sorting": "^0.3.0", - "flow-copy-source": "^2.0.2", - "form-data": "^2.3.3", - "husky": "^1.2.0", - "lint-staged": "^8.0.4", - "minimist": "^1.2.6", - "node-fetch": "^2.6.7", - "prettier": "^2.0.5" + "@types/odata": "^1.0.3", + "@types/qs": "^6.9.14", + "@typescript-eslint/eslint-plugin": "^7.4.0", + "@typescript-eslint/parser": "^7.4.0", + "eslint": "^8.2.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^18.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-prettier": "^5.1.3", + "prettier": "3.2.5" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/@ava/babel-plugin-throws-helper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@ava/babel-plugin-throws-helper/-/babel-plugin-throws-helper-2.0.0.tgz", - "integrity": "sha512-pX8AjCJPlthNUGcvD4g/sgjIaZgOUN0CIBf5IOoLA5YROxuoHOXGvDiJeNZpEUeh62WWen6XfNTHh8Hmp/Oulw==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@ava/babel-preset-stage-4": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@ava/babel-preset-stage-4/-/babel-preset-stage-4-1.1.0.tgz", - "integrity": "sha512-oWqTnIGXW3k72UFidXzW0ONlO7hnO9x02S/QReJ7NBGeiBH9cUHY9+EfV6C8PXC6YJH++WrliEq03wMSJGNZFg==", + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", "dev": true, - "dependencies": { - "babel-plugin-check-es2015-constants": "^6.8.0", - "babel-plugin-syntax-trailing-function-commas": "^6.20.0", - "babel-plugin-transform-async-to-generator": "^6.16.0", - "babel-plugin-transform-es2015-destructuring": "^6.19.0", - "babel-plugin-transform-es2015-function-name": "^6.9.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.18.0", - "babel-plugin-transform-es2015-parameters": "^6.21.0", - "babel-plugin-transform-es2015-spread": "^6.8.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.8.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.11.0", - "babel-plugin-transform-exponentiation-operator": "^6.8.0", - "package-hash": "^1.2.0" - }, "engines": { - "node": ">=4" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@ava/babel-preset-stage-4/node_modules/md5-hex": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha512-lJEPhRxivsaliY4C6REebtP1Lo8yoQsq2bLVP8mJ6Vvzwu3fXQShzHcWnAqdDm1Y42jhZFg0XRpnrKfZ5mYP6w==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { - "md5-o-matic": "^0.1.1" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@ava/babel-preset-stage-4/node_modules/package-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-1.2.0.tgz", - "integrity": "sha512-W5ILqaI3G6bXDuYb7TrQ95TFHfFdjiunpp61PAXj7z32TgJ5NIBaoqZVI6AXUQy/qcqPoFnz0hAZY9KyKd4xNA==", + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, - "dependencies": { - "md5-hex": "^1.3.0" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@ava/babel-preset-transform-test-files": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@ava/babel-preset-transform-test-files/-/babel-preset-transform-test-files-3.0.0.tgz", - "integrity": "sha512-GjO+HUIBzHuVjNAbsWtFzDPblvMAaYa7JYUy9qZeD6VCJlwfH3AdJArb3mAevZ+hUcgNTNimtwY1jGByAXl5ag==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@ava/babel-plugin-throws-helper": "^2.0.0", - "babel-plugin-espower": "^2.3.2" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@ava/write-file-atomic": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ava/write-file-atomic/-/write-file-atomic-2.2.0.tgz", - "integrity": "sha512-BTNB3nGbEfJT+69wuqXFr/bQH7Vr7ihx2xGOMNqPgDGhwspoZhiWumDDZNjBy7AScmqS5CELIOGtPVXESyrnDA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "node": ">=10.10.0" } }, - "node_modules/@babel/cli": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.23.4.tgz", - "integrity": "sha512-j3luA9xGKCXVyCa5R7lJvOMM+Kc2JEnAEIgz2ggtjQ/j5YUVgfsg/WsG95bbsgq7YLHuiCOzMnoSasuY16qiCw==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "commander": "^4.0.1", - "convert-source-map": "^2.0.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.2.0", - "make-dir": "^2.1.0", - "slash": "^2.0.0" - }, - "bin": { - "babel": "bin/babel.js", - "babel-external-helpers": "bin/babel-external-helpers.js" - }, "engines": { - "node": ">=6.9.0" + "node": ">=12.22" }, - "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", - "chokidar": "^3.4.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=6.9.0" + "node": ">= 8" } }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">= 8" } }, - "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">= 8" } }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, "engines": { - "node": ">=6.9.0" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/odata": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/odata/-/odata-1.0.3.tgz", + "integrity": "sha512-7KsE3x3lwXLElBksjYTSm4i6LTXLuwO0CCm0EfhMedj5kVh27PCfhlBVZaWNx0BmFGEZaWygZFoCbx2YpPnuyg==", + "deprecated": "This is a stub types definition. odata provides its own type definitions, so you do not need this installed.", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "odata": "*" } }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "node_modules/@types/qs": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.4.0.tgz", + "integrity": "sha512-yHMQ/oFaM7HZdVrVm/M2WHaNPgyuJH4WelkSVEWSSsir34kxW2kDJCxlXRhhGWEsMN0WAW/vLpKfKVcm8k+MPw==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/type-utils": "7.4.0", + "@typescript-eslint/utils": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", - "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", + "node_modules/@typescript-eslint/parser": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.4.0.tgz", + "integrity": "sha512-ZvKHxHLusweEUVwrGRXXUVzFgnWhigo4JurEj0dGF1tbcGh6buL+ejDdjxOQxv6ytcY1uhun1p2sm8iWStlgLQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/typescript-estree": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.4.0.tgz", + "integrity": "sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || >=20.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", - "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "node_modules/@typescript-eslint/type-utils": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.4.0.tgz", + "integrity": "sha512-247ETeHgr9WTRMqHbbQdzwzhuyaJ8dPTuyuUEMANqzMRB1rj/9qFIuIXK7l0FX9i9FXbHeBQl/4uz6mYuCE7Aw==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@typescript-eslint/typescript-estree": "7.4.0", + "@typescript-eslint/utils": "7.4.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@typescript-eslint/types": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.4.0.tgz", + "integrity": "sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==", "dev": true, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "node": "^18.18.0 || >=20.0.0" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.4.0.tgz", + "integrity": "sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/visitor-keys": "7.4.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.0" + "node": "^18.18.0 || >=20.0.0" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" + "balanced-match": "^1.0.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=16 || 14 >=14.17" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=10" } }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "node_modules/@typescript-eslint/utils": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.4.0.tgz", + "integrity": "sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "7.4.0", + "@typescript-eslint/types": "7.4.0", + "@typescript-eslint/typescript-estree": "7.4.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "eslint": "^8.56.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "lru-cache": "^6.0.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.4.0.tgz", + "integrity": "sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@typescript-eslint/types": "7.4.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=6.9.0" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">=6.9.0" + "node": ">=0.4.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@babel/helpers": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "node_modules/array-flatten": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", + "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==" + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "node_modules/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==", "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, "engines": { - "node": ">=6.0.0" + "node": ">=8" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.13.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "engines": { - "node": ">=6.9.0" + "dependencies": { + "fill-range": "^7.0.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=8" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=6" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "ms": "2.1.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 0.4" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz", - "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "path-type": "^4.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "esutils": "^2.0.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 0.4" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "hasown": "^2.0.0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/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==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/eslint-config-airbnb-typescript": { + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-18.0.0.tgz", + "integrity": "sha512-oc+Lxzgzsu8FQyFVa4QFaVKiitTYiiW3frB9KYW5OWdPrqFc7FzxgB20hP4cHMlr+MBzGcLl3jnCOVOydL9mIg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "eslint-config-airbnb-base": "^15.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@typescript-eslint/eslint-plugin": "^7.0.0", + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "bin": { + "eslint-config-prettier": "bin/cli.js" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": ">=7.0.0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "ms": "^2.1.1" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "debug": "^3.2.7" }, "engines": { - "node": ">=6.9.0" + "node": ">=4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "ms": "^2.1.1" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "node_modules/eslint-plugin-import": { + "version": "2.25.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz", + "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.0", + "has": "^1.0.3", + "is-core-module": "^2.7.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=4" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", - "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "ms": "2.0.0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "esutils": "^2.0.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=0.10.0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" }, "engines": { - "node": ">=6.9.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "node_modules/eslint/node_modules/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==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "color-name": "~1.1.4" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=7.0.0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "node_modules/eslint/node_modules/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==", + "dev": true + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 8" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "node_modules/eslint/node_modules/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==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=10.13.0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz", - "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==", + "node_modules/eslint/node_modules/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==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-flow": "^7.23.3" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "node_modules/eslint/node_modules/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==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "isexe": "^2.0.0" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "node-which": "bin/node-which" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 8" } }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=6.9.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=0.10" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=4.0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=4.0" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=0.10.0" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "node_modules/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==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8.6.0" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "node_modules/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==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "reusify": "^1.0.4" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "node_modules/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==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=8" } }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "node_modules/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==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "glob": "^7.1.3" }, - "engines": { - "node": ">=6.9.0" + "bin": { + "rimraf": "bin.js" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/flow-bin": { + "version": "0.126.1", + "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.126.1.tgz", + "integrity": "sha512-RI05x7rVzruRVJQN3M4vLEjZMwUHJKhGz9FmL8HN7WiSo66/131EyJS6Vo8PkKyM2pgT9GRWfGP/tXlqS54XUg==", + "bin": { + "flow": "cli.js" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">=0.10.0" } }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "is-callable": "^1.1.3" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "*" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 6" } }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz", - "integrity": "sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==", + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", - "semver": "^6.3.1" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=8" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "define-properties": "^1.1.3" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", - "dev": true, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" + "get-intrinsic": "^1.1.3" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 0.4.0" } }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "get-intrinsic": "^1.2.2" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", - "dev": true, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 0.4" } }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.8.tgz", - "integrity": "sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.7", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 4" } }, - "node_modules/@babel/preset-flow": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz", - "integrity": "sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==", + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-flow-strip-types": "^7.23.3" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=6" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + "engines": { + "node": ">=0.8.19" } }, - "node_modules/@babel/register": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz", - "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.6", - "source-map-support": "^0.5.16" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/@babel/runtime": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz", - "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==", + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.14.0" + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" } }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" + "has-bigints": "^1.0.1" }, - "engines": { - "node": ">=6.9.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@concordance/react": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@concordance/react/-/react-1.0.0.tgz", - "integrity": "sha512-htrsRaQX8Iixlsek8zQU7tE8wcsTQJ5UhZkSPEA8slCDAisKpC/2VgU/ucPn32M5/LjGGXRaUEKvEw1Wiuu4zQ==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "dependencies": { - "arrify": "^1.0.1" - }, "engines": { - "node": ">=4.5" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "hasown": "^2.0.0" }, - "engines": { - "node": ">=6.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", - "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@ladjs/time-require": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@ladjs/time-require/-/time-require-0.1.4.tgz", - "integrity": "sha512-weIbJqTMfQ4r1YX85u54DKfjLZs2jwn1XZ6tIOP/pFgMwhIN5BAtaCp/1wn9DzyLsDR9tW0R2NIePcVJ45ivQQ==", + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, - "dependencies": { - "chalk": "^0.4.0", - "date-time": "^0.1.1", - "pretty-ms": "^0.2.1", - "text-table": "^0.2.0" - }, "engines": { - "node": ">= 0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@ladjs/time-require/node_modules/ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha512-3iF4FIKdxaVYT3JqQuY3Wat/T2t7TRbbQ94Fu50ZUCbLy4TFbTzr90NOHQodQkNqmeEGCw8WbeP78WNi6SKYUA==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { - "node": ">=0.8.0" + "node": ">=0.12.0" } }, - "node_modules/@ladjs/time-require/node_modules/chalk": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "integrity": "sha512-sQfYDlfv2DGVtjdoQqxS0cEZDroyG8h6TamA6rvxwlrU5BaSLDx9xhatBYl2pxZ7gmpNaPFVwBtdGdu5rQ+tYQ==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { - "ansi-styles": "~1.0.0", - "has-color": "~0.1.0", - "strip-ansi": "~0.1.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.8.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@ladjs/time-require/node_modules/parse-ms": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-0.1.2.tgz", - "integrity": "sha512-VwMglE9412ifMHcRFEVJePEpreQh90wjIiOdP0UQQGKV4l+QprdKI+p5noXTkmGjznBMb40s+VymcclATAVvYA==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/@ladjs/time-require/node_modules/pretty-ms": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-0.2.2.tgz", - "integrity": "sha512-ah/vWDJAT0arxQwVcSGp6etaLTZr4IsrXTy/khfjimzdYgSxYWzTMByrtpJUWinAnVY8szDg+qQhsE5MUMz3lQ==", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { - "parse-ms": "^0.1.0" - }, - "bin": { - "pretty-ms": "cli.js" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@ladjs/time-require/node_modules/strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha512-behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, - "bin": { - "strip-ansi": "cli.js" + "dependencies": { + "call-bind": "^1.0.2" }, - "engines": { - "node": ">=0.8.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents.3", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", - "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", - "dev": true, - "optional": true - }, - "node_modules/@samverschueren/stream-to-observable": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", - "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "dependencies": { - "any-observable": "^0.3.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "rxjs": { - "optional": true - }, - "zen-observable": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=0.4.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "call-bind": "^1.0.2" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ansi-align": { + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA==", - "dev": true, - "dependencies": { - "string-width": "^2.0.0" + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jquery": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz", + "integrity": "sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q==" + }, + "node_modules/jquery-deferred": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/jquery-deferred/-/jquery-deferred-0.3.1.tgz", + "integrity": "sha512-YTzoTYR/yrjmNh6B6exK7lC1jlDazEzt9ZlZvdRscv+I1AJqN1SmU3ZAn4iMGiVhwAavCrbijDVyTc0lmr9ZCA==", + "engines": { + "node": ">=0.4.0" } }, - "node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/ansi-regex": { + "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "json-buffer": "3.0.1" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "node_modules/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==", "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/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==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=10" } }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, - "node_modules/arr-exclude": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/arr-exclude/-/arr-exclude-1.0.0.tgz", - "integrity": "sha512-TiXbMMkPQNfoHcVi6jeU6IejGAFlcn0hYgVVe7tCiqL/ZtxbNkhDSMarUQjg/PAe9NQNvRd6YCVNutzo3Fxdug==", + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.6" } }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=0.10.0" + "node": "*" } }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/ms-signalr-client": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/ms-signalr-client/-/ms-signalr-client-2.2.7.tgz", + "integrity": "sha512-2OkiVp3KbBjngXAGd+ab/8Hl4OyexoU1pNcEqmWhjFQfzD/1C1Xv1SkMBUg+9iujAngNarEWcQnwrYD71qBVFQ==", + "deprecated": "Please use the official signalr package", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "jquery": "^2.2.0" } }, - "node_modules/array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/array-flatten": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", - "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==" - }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -2290,47 +2249,29 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "dev": true, "dependencies": { - "array-uniq": "^1.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -2339,9232 +2280,467 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "node_modules/odata": { + "version": "0.3.0", + "resolved": "git+ssh://git@github.com/Brewskey/o.js.git#30d7c125c0c209ec59c39c1da402c1fc2029047d", + "license": "MIT", + "dependencies": { + "q": "*", + "xhr2": "*" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8.0" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "node_modules/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==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" + "p-limit": "^3.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/arrify": { + "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "node_modules/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==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/async-each": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "bin": { - "atob": "bin/atob.js" - }, "engines": { - "node": ">= 4.5.0" + "node": ">=8" } }, - "node_modules/auto-bind": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-1.2.1.tgz", - "integrity": "sha512-/W9yj1yKmBLwpexwAujeD9YHwYmRuWFGV8HWE7smQab797VeHa4/cnE2NFeDhA+E+5e/OGBI8763EhLjfZ/MXA==", + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/ava": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/ava/-/ava-0.25.0.tgz", - "integrity": "sha512-4lGNJCf6xL8SvsKVEKxEE46se7JAUIAZoKHw9itTQuwcsydhpAMkBs5gOOiWiwt0JKNIuXWc2/r4r8ZdcNrBEw==", - "dev": true, - "dependencies": { - "@ava/babel-preset-stage-4": "^1.1.0", - "@ava/babel-preset-transform-test-files": "^3.0.0", - "@ava/write-file-atomic": "^2.2.0", - "@concordance/react": "^1.0.0", - "@ladjs/time-require": "^0.1.4", - "ansi-escapes": "^3.0.0", - "ansi-styles": "^3.1.0", - "arr-flatten": "^1.0.1", - "array-union": "^1.0.1", - "array-uniq": "^1.0.2", - "arrify": "^1.0.0", - "auto-bind": "^1.1.0", - "ava-init": "^0.2.0", - "babel-core": "^6.17.0", - "babel-generator": "^6.26.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "bluebird": "^3.0.0", - "caching-transform": "^1.0.0", - "chalk": "^2.0.1", - "chokidar": "^1.4.2", - "clean-stack": "^1.1.1", - "clean-yaml-object": "^0.1.0", - "cli-cursor": "^2.1.0", - "cli-spinners": "^1.0.0", - "cli-truncate": "^1.0.0", - "co-with-promise": "^4.6.0", - "code-excerpt": "^2.1.1", - "common-path-prefix": "^1.0.0", - "concordance": "^3.0.0", - "convert-source-map": "^1.5.1", - "core-assert": "^0.2.0", - "currently-unhandled": "^0.4.1", - "debug": "^3.0.1", - "dot-prop": "^4.1.0", - "empower-core": "^0.6.1", - "equal-length": "^1.0.0", - "figures": "^2.0.0", - "find-cache-dir": "^1.0.0", - "fn-name": "^2.0.0", - "get-port": "^3.0.0", - "globby": "^6.0.0", - "has-flag": "^2.0.0", - "hullabaloo-config-manager": "^1.1.0", - "ignore-by-default": "^1.0.0", - "import-local": "^0.1.1", - "indent-string": "^3.0.0", - "is-ci": "^1.0.7", - "is-generator-fn": "^1.0.0", - "is-obj": "^1.0.0", - "is-observable": "^1.0.0", - "is-promise": "^2.1.0", - "last-line-stream": "^1.0.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.debounce": "^4.0.3", - "lodash.difference": "^4.3.0", - "lodash.flatten": "^4.2.0", - "loud-rejection": "^1.2.0", - "make-dir": "^1.0.0", - "matcher": "^1.0.0", - "md5-hex": "^2.0.0", - "meow": "^3.7.0", - "ms": "^2.0.0", - "multimatch": "^2.1.0", - "observable-to-promise": "^0.5.0", - "option-chain": "^1.0.0", - "package-hash": "^2.0.0", - "pkg-conf": "^2.0.0", - "plur": "^2.0.0", - "pretty-ms": "^3.0.0", - "require-precompiled": "^0.1.0", - "resolve-cwd": "^2.0.0", - "safe-buffer": "^5.1.1", - "semver": "^5.4.1", - "slash": "^1.0.0", - "source-map-support": "^0.5.0", - "stack-utils": "^1.0.1", - "strip-ansi": "^4.0.0", - "strip-bom-buf": "^1.0.0", - "supertap": "^1.0.0", - "supports-color": "^5.0.0", - "trim-off-newlines": "^1.0.1", - "unique-temp-dir": "^1.0.0", - "update-notifier": "^2.3.0" - }, - "bin": { - "ava": "cli.js" - }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/ava-init": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ava-init/-/ava-init-0.2.1.tgz", - "integrity": "sha512-lXwK5LM+2g1euDRqW1mcSX/tqzY1QU7EjKpqayFPPtNRmbSYZ8RzPO5tqluTToijmtjp2M+pNpVdbcHssC4glg==", + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, - "dependencies": { - "arr-exclude": "^1.0.0", - "execa": "^0.7.0", - "has-yarn": "^1.0.0", - "read-pkg-up": "^2.0.0", - "write-pkg": "^3.1.0" + "bin": { + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=4" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/ava/node_modules/anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "dependencies": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "node_modules/ava/node_modules/anymatch/node_modules/micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", - "dev": true, - "dependencies": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ava/node_modules/arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "node_modules/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==", "dev": true, "dependencies": { - "arr-flatten": "^1.0.1" + "fast-diff": "^1.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, - "node_modules/ava/node_modules/array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/ava/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "engines": { - "node": ">=0.10.0" + "node": ">=0.6.0", + "teleport": ">=0.2.0" } }, - "node_modules/ava/node_modules/braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", - "dev": true, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dependencies": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ava/node_modules/chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, - "dependencies": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "node": ">=0.6" }, - "optionalDependencies": { - "fsevents": "^1.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ava/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/ava/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react-native-signalr": { + "version": "1.0.6", + "resolved": "git+ssh://git@github.com/Brewskey/react-native-signalr.git#704d08c759280c6966be895b52e0753187480574", + "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "jquery-deferred": "^0.3.1", + "ms-signalr-client": "^2.2.7" } }, - "node_modules/ava/node_modules/expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", "dev": true, "dependencies": { - "is-posix-bracket": "^0.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ava/node_modules/extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-extglob": "^1.0.0" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=0.10.0" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ava/node_modules/find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==", + "node_modules/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==", "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - }, "engines": { "node": ">=4" } }, - "node_modules/ava/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, "engines": { - "node": ">=4" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/ava/node_modules/glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "is-glob": "^2.0.0" + "queue-microtask": "^1.2.2" } }, - "node_modules/ava/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "node_modules/safe-array-concat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", "dev": true, "dependencies": { - "binary-extensions": "^1.0.0" + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ava/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "node_modules/safe-regex-test": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", + "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "is-regex": "^1.1.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ava/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", "dependencies": { - "is-extglob": "^1.0.0" + "define-data-property": "^1.1.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/ava/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" } }, - "node_modules/ava/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ava/node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/ava/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { - "remove-trailing-separator": "^1.0.1" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ava/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { - "p-try": "^1.0.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ava/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ava/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" } }, - "node_modules/ava/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/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==", "dev": true, "engines": { - "node": ">=4" - } - }, - "node_modules/ava/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ava/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/ava/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/ava/node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", - "dev": true - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "node_modules/babel-core/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/babel-core/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-core/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-core/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/babel-core/node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "eslint": ">= 4.12.1" - } - }, - "node_modules/babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "dev": true, - "dependencies": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "node_modules/babel-generator/node_modules/jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q==", - "dev": true, - "dependencies": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==", - "dev": true, - "dependencies": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg==", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-espower": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-espower/-/babel-plugin-espower-2.4.0.tgz", - "integrity": "sha512-/+SRpy7pKgTI28oEHfn1wkuM5QFAdRq8WNsOOih1dVrdV6A/WbNbRZyl0eX5eyDgtb0lOE27PeDFuCX2j8OxVg==", - "dev": true, - "dependencies": { - "babel-generator": "^6.1.0", - "babylon": "^6.1.0", - "call-matcher": "^1.0.0", - "core-js": "^2.0.0", - "espower-location-detector": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.1.1" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", - "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.4", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", - "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", - "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw==", - "dev": true - }, - "node_modules/babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ==", - "dev": true - }, - "node_modules/babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w==", - "dev": true - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ==", - "dev": true - }, - "node_modules/babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw==", - "dev": true, - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "dependencies": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==", - "dev": true, - "dependencies": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ==", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ==", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ==", - "dev": true, - "dependencies": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", - "dev": true, - "dependencies": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "node_modules/babel-register/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "dependencies": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buf-compare": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz", - "integrity": "sha512-Bvx4xH00qweepGc43xFvMs5BKASXTbHaHm6+kDYIK9p/4iFwjATQkmPKHQSgJZzKbAymhztRbXUf1Nqhzl73/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caching-transform": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-1.0.1.tgz", - "integrity": "sha512-TYu6IoS+HzPivTKBDbGbkdNE7V3GP9ETNuO1L901jhtIdmMmE4S5SXxXvIMPt4+poeqSGY47NQz1GFh3toDHqw==", - "dev": true, - "dependencies": { - "md5-hex": "^1.2.0", - "mkdirp": "^0.5.1", - "write-file-atomic": "^1.1.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caching-transform/node_modules/md5-hex": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.3.0.tgz", - "integrity": "sha512-lJEPhRxivsaliY4C6REebtP1Lo8yoQsq2bLVP8mJ6Vvzwu3fXQShzHcWnAqdDm1Y42jhZFg0XRpnrKfZ5mYP6w==", - "dev": true, - "dependencies": { - "md5-o-matic": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-matcher": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/call-matcher/-/call-matcher-1.1.0.tgz", - "integrity": "sha512-IoQLeNwwf9KTNbtSA7aEBb1yfDbdnzwjCetjkC8io5oGeOmK2CBNdg0xr+tadRYKO0p7uQyZzvon0kXlZbvGrw==", - "dev": true, - "dependencies": { - "core-js": "^2.0.0", - "deep-equal": "^1.0.0", - "espurify": "^1.6.0", - "estraverse": "^4.0.0" - } - }, - "node_modules/call-signature": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz", - "integrity": "sha512-qvYvkAVcoae0obt8OsZn0VEBHeEpvYIZDy1gGYtZDJG0fHawew+Mi0dBjieFz8F8dzQ2Kr19+nsDm+T5XFVs+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", - "dev": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-callsite/node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", - "dev": true, - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==", - "dev": true, - "dependencies": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001576", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz", - "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/capture-stack-trace": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz", - "integrity": "sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/clean-stack": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz", - "integrity": "sha512-4CCmhqt4yqbQQI9REDKCf+N6U3SToC5o7PoKCq4veHvr30TJ2Vmz1mYYF23VC0E7Z13tf4CXh9jXY0VC+Jtdng==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/clean-yaml-object": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz", - "integrity": "sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-truncate": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-1.1.0.tgz", - "integrity": "sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA==", - "dev": true, - "dependencies": { - "slice-ansi": "^1.0.0", - "string-width": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/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==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/cliui/node_modules/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==", - "dev": true - }, - "node_modules/cliui/node_modules/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/co-with-promise": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co-with-promise/-/co-with-promise-4.6.0.tgz", - "integrity": "sha512-WVBNmNJDqfiLcCt25n4ruZxESZdcCOT686aZ+D3p+PnJqdRysi+qVfH051dNOmI/hQJUUwFMDj3aCAMGLo8tQA==", - "dev": true, - "dependencies": { - "pinkie-promise": "^1.0.0" - }, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.10.0" - } - }, - "node_modules/code-excerpt": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-2.1.1.tgz", - "integrity": "sha512-tJLhH3EpFm/1x7heIW0hemXJTUU5EWl2V0EIX558jp05Mt1U6DVryCgkp3l37cxqs+DNbNgxG43SkwJXpQ14Jw==", - "dev": true, - "dependencies": { - "convert-to-spaces": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-path-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-1.0.0.tgz", - "integrity": "sha512-StWMCZw9nTO+RnxMCcapnQQqeZpaDvCD9+0Rrl8ZphFKWcJPyUGiEl64WoAkA+WJIxwKYzxldhYHU+EW1fQ2mQ==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", - "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concordance": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/concordance/-/concordance-3.0.0.tgz", - "integrity": "sha512-CZBzJ3/l5QJjlZM20WY7+5GP5pMTw+1UEbThcpMw8/rojsi5sBCiD8ZbBLtD+jYpRGAkwuKuqk108c154V9eyQ==", - "dev": true, - "dependencies": { - "date-time": "^2.1.0", - "esutils": "^2.0.2", - "fast-diff": "^1.1.1", - "function-name-support": "^0.2.0", - "js-string-escape": "^1.0.1", - "lodash.clonedeep": "^4.5.0", - "lodash.flattendeep": "^4.4.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "semver": "^5.3.0", - "well-known-symbols": "^1.0.0" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/concordance/node_modules/date-time": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-time/-/date-time-2.1.0.tgz", - "integrity": "sha512-/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==", - "dev": true, - "dependencies": { - "time-zone": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/concordance/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/configstore": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.5.tgz", - "integrity": "sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==", - "dev": true, - "dependencies": { - "dot-prop": "^4.2.1", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/configstore/node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/configstore/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/configstore/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/convert-to-spaces": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz", - "integrity": "sha512-cj09EBuObp9gZNQCzc7hByQyrs6jVGE+o9kSJmeUoj+GiPiJvi5LYqEH/Hmme4+MTLHM+Ejtq+FChpjjEnsPdQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-assert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz", - "integrity": "sha512-IG97qShIP+nrJCXMCgkNZgH7jZQ4n8RpPyPeXX++T6avR/KhLhgLiHKoEn5Rc1KjfycSfA9DMa6m+4C4eguHhw==", - "dev": true, - "dependencies": { - "buf-compare": "^1.0.0", - "is-error": "^2.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", - "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", - "dev": true, - "dependencies": { - "browserslist": "^4.22.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cosmiconfig/node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", - "dev": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw==", - "dev": true, - "dependencies": { - "capture-stack-trace": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", - "dev": true, - "dependencies": { - "array-find-index": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/date-fns": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", - "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", - "dev": true - }, - "node_modules/date-time": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/date-time/-/date-time-0.1.1.tgz", - "integrity": "sha512-p4psdkgdNA6x0600SKbfWiOomNb33ADBMRHf49GMhYVgJsPefZlMSLXXVWWUpbqSxB3DL5/cxKa6a8i3XPK5Xg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-equal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", - "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", - "dev": true, - "dependencies": { - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.5.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A==", - "dev": true, - "dependencies": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/del/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dot-prop": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", - "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", - "dev": true, - "dependencies": { - "is-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.630", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.630.tgz", - "integrity": "sha512-osHqhtjojpCsACVnuD11xO5g9xaCyw7Qqn/C2KParkMv42i8jrJJgx3g7mkHfpxwhy9MnOJr8+pKOdZ7qzgizg==", - "dev": true - }, - "node_modules/elegant-spinner": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", - "integrity": "sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dev": true - }, - "node_modules/empower-core": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/empower-core/-/empower-core-0.6.2.tgz", - "integrity": "sha512-w9QJ4ROqcjJHWNw+TvpKVeLQV1GQtoFO6aqKoj5IlHi0qxG1Y2157Kg6+5ujs5Bxzm8AgOiOvBCRbNkt6RPe9Q==", - "dev": true, - "dependencies": { - "call-signature": "0.0.2", - "core-js": "^2.0.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/equal-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/equal-length/-/equal-length-1.0.1.tgz", - "integrity": "sha512-TK2m7MvWPt/v3dan0BCNp99pytIE5UGrUj7F0KZirNX8xz8fDFUAZfgm8uB5FuQq9u0sMeDocYBfEhsd1nwGoA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^6.14.0 || ^8.10.0 || >=9.10.0" - } - }, - "node_modules/eslint-config-airbnb-base": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz", - "integrity": "sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w==", - "dev": true, - "dependencies": { - "confusing-browser-globals": "^1.0.5", - "object.assign": "^4.1.0", - "object.entries": "^1.1.0" - }, - "engines": { - "node": ">= 4" - }, - "peerDependencies": { - "eslint": "^4.19.1 || ^5.3.0", - "eslint-plugin-import": "^2.17.2" - } - }, - "node_modules/eslint-config-prettier": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-3.6.0.tgz", - "integrity": "sha512-ixJ4U3uTLXwJts4rmSVW/lMXjlGwCijhBJHk8iVqKKSifeI0qgFEfWl8L63isfc8Od7EiBALF6BX3jKLluf/jQ==", - "dev": true, - "dependencies": { - "get-stdin": "^6.0.0" - }, - "bin": { - "eslint-config-prettier-check": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=3.14.1" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-flowtype": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz", - "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": ">=5.0.0" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - }, - "peerDependencies": { - "eslint": ">=5.0.0", - "prettier": ">=1.13.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-sorting": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sorting/-/eslint-plugin-sorting-0.3.0.tgz", - "integrity": "sha512-pav1UgLu8MFMn4Ri3Omqxu1L+gBepk7xGkgZlKKnRymvadG7gu+zw7MR/zZVrvDG2azNl8kVELHdC7UfbnP9ug==", - "dev": true - }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/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==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/espower-location-detector": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/espower-location-detector/-/espower-location-detector-1.0.0.tgz", - "integrity": "sha512-Y/3H6ytYwqC3YcOc0gOU22Lp3eI5GAFGOymTdzFyfaiglKgtsw2dePOgXY3yrV+QcLPMPiVYwBU9RKaDoh2bbQ==", - "dev": true, - "dependencies": { - "is-url": "^1.2.1", - "path-is-absolute": "^1.0.0", - "source-map": "^0.5.0", - "xtend": "^4.0.0" - } - }, - "node_modules/espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", - "dev": true, - "dependencies": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/espurify": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", - "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", - "dev": true, - "dependencies": { - "core-js": "^2.0.0" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", - "dev": true, - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/execa/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/execa/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", - "dev": true, - "dependencies": { - "fill-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-range/node_modules/fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "dependencies": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-range/node_modules/is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-range/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/expand-range/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-range/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dev": true - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "node_modules/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==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "dev": true, - "dependencies": { - "flat-cache": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/flow-bin": { - "version": "0.126.1", - "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.126.1.tgz", - "integrity": "sha512-RI05x7rVzruRVJQN3M4vLEjZMwUHJKhGz9FmL8HN7WiSo66/131EyJS6Vo8PkKyM2pgT9GRWfGP/tXlqS54XUg==", - "bin": { - "flow": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flow-copy-source": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/flow-copy-source/-/flow-copy-source-2.0.9.tgz", - "integrity": "sha512-7zX/oHSIHe8YRGiA9QIcC4SW6KF667ikdmiDfbST15up1Ona8dn7Xy0PmSrfw6ceBWDww8sRKlCLKsztStpYkQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.0.0", - "fs-extra": "^8.1.0", - "glob": "^7.0.0", - "kefir": "^3.7.3", - "yargs": "^15.0.1" - }, - "bin": { - "flow-copy-source": "bin/flow-copy-source.js" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/fn-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", - "integrity": "sha512-oIDB1rXf3BUnn00bh2jVM0byuqr94rBh6g7ZfdKcbmp1we2GQtPzKdloyvBXHs+q3fvxB8EqX5ecFba3RwCSjA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function-name-support": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/function-name-support/-/function-name-support-0.2.0.tgz", - "integrity": "sha512-iEnUcRLfgHmAI58eRSDWl9xxor5/pVSIezxPwV6Jh6kxTn2uRDMgh2BfNsczLdYEmCZB4N3UZnq77TqW0jcVTw==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/g-status": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/g-status/-/g-status-2.0.2.tgz", - "integrity": "sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "matcher": "^1.0.0", - "simple-git": "^1.85.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/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==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", - "dev": true, - "dependencies": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-base/node_modules/glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", - "dev": true, - "dependencies": { - "is-glob": "^2.0.0" - } - }, - "node_modules/glob-base/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-base/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", - "dev": true, - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/globby/node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg==", - "dev": true, - "dependencies": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-color": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "integrity": "sha512-kaNz5OTAYYmt646Hkqw50/qyxP2vFnTVu5AQ1Zmk22Kk5+4Qx6BpO8+u7IKsML5fOsFk0ZT0AcCJNYwcvaLBvw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-1.0.0.tgz", - "integrity": "sha512-UAI4b48aqrdez88CwMfC9s+gcJ25O1qg0/hS5eKOsIF5tOw2EYcgGsryYF6TEI5G8SeCYzFBt5Z04D/BDABYSQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/hullabaloo-config-manager": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/hullabaloo-config-manager/-/hullabaloo-config-manager-1.1.1.tgz", - "integrity": "sha512-ztKnkZV0TmxnumCDHHgLGNiDnotu4EHCp9YMkznWuo4uTtCyJ+cu+RNcxUeXYKTllpvLFWnbfWry09yzszgg+A==", - "dev": true, - "dependencies": { - "dot-prop": "^4.1.0", - "es6-error": "^4.0.2", - "graceful-fs": "^4.1.11", - "indent-string": "^3.1.0", - "json5": "^0.5.1", - "lodash.clonedeep": "^4.5.0", - "lodash.clonedeepwith": "^4.5.0", - "lodash.isequal": "^4.5.0", - "lodash.merge": "^4.6.0", - "md5-hex": "^2.0.0", - "package-hash": "^2.0.0", - "pkg-dir": "^2.0.0", - "resolve-from": "^3.0.0", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hullabaloo-config-manager/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hullabaloo-config-manager/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/hullabaloo-config-manager/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hullabaloo-config-manager/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hullabaloo-config-manager/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hullabaloo-config-manager/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/hullabaloo-config-manager/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/husky": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-1.3.1.tgz", - "integrity": "sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "cosmiconfig": "^5.0.7", - "execa": "^1.0.0", - "find-up": "^3.0.0", - "get-stdin": "^6.0.0", - "is-ci": "^2.0.0", - "pkg-dir": "^3.0.0", - "please-upgrade-node": "^3.1.1", - "read-pkg": "^4.0.1", - "run-node": "^1.0.0", - "slash": "^2.0.0" - }, - "bin": { - "husky-upgrade": "lib/upgrader/bin.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/husky/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/husky/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/husky/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/husky/node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/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==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", - "integrity": "sha512-SRad1ui9CbQ2qYd4nYb4TfeK4VpvmVpSFEJJBlNM3OCnZ9QWkz5sb/iLXENfueBTCxsCR6xAZzDHPUtTDAi+Dw==", - "dev": true, - "dependencies": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha512-BYqTHXTGUIvg7t1r4sJNKcbDZkL92nkXA8YtRpbjFHRHGDL/NtUeiBJMeE60kIFN/Mg8ESaWQvftaYMGJzQZCQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/irregular-plurals": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-1.4.0.tgz", - "integrity": "sha512-kniTIJmaZYiwa17eTtWIfm0K342seyugl6vuC8DiiyiRAJWAVlLkqGCI0Im0neo0TkXw+pRcKaBPRdcKHnQJ6Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "dependencies": { - "ci-info": "^1.5.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", - "dev": true, - "dependencies": { - "is-primitive": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-error": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.2.tgz", - "integrity": "sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==", - "dev": true - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/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": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-generator-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", - "integrity": "sha512-95jJZX6O/gdekidH2usRBr9WdRw4LU56CttPstXFxvG0r3QUE9eaIdz2p2Y7zrm6jxz7SjByAo1AtzwGlRvfOg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw==", - "dev": true, - "dependencies": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, - "dependencies": { - "symbol-observable": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "node_modules/is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jquery": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz", - "integrity": "sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q==" - }, - "node_modules/jquery-deferred": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/jquery-deferred/-/jquery-deferred-0.3.1.tgz", - "integrity": "sha512-YTzoTYR/yrjmNh6B6exK7lC1jlDazEzt9ZlZvdRscv+I1AJqN1SmU3ZAn4iMGiVhwAavCrbijDVyTc0lmr9ZCA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/js-string-escape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/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": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kefir": { - "version": "3.8.8", - "resolved": "https://registry.npmjs.org/kefir/-/kefir-3.8.8.tgz", - "integrity": "sha512-xWga7QCZsR2Wjy2vNL3Kq/irT+IwxwItEWycRRlT5yhqHZK2fmEhziP+LzcJBWSTAMranGKtGTQ6lFpyJS3+jA==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/last-line-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/last-line-stream/-/last-line-stream-1.0.0.tgz", - "integrity": "sha512-A9su/wrZOLGwo27plXO4hCBttJx9JvALtnmq4UFe9KCAFHuk1rZFuVv+4AXlBAnb/ex7IKf81Tfo32hXDhQuxg==", - "dev": true, - "dependencies": { - "through2": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha512-Be1YRHWWlZaSsrz2U+VInk+tO0EwLIyV+23RhWLINJYwg/UIikxjlj3MhH37/6/EDCAusjajvMkMMUXRaMWl/w==", - "dev": true, - "dependencies": { - "package-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lint-staged": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-8.2.1.tgz", - "integrity": "sha512-n0tDGR/rTCgQNwXnUf/eWIpPNddGWxC32ANTNYsj2k02iZb7Cz5ox2tytwBu+2r0zDXMEMKw7Y9OD/qsav561A==", - "dev": true, - "dependencies": { - "chalk": "^2.3.1", - "commander": "^2.14.1", - "cosmiconfig": "^5.2.0", - "debug": "^3.1.0", - "dedent": "^0.7.0", - "del": "^3.0.0", - "execa": "^1.0.0", - "g-status": "^2.0.2", - "is-glob": "^4.0.0", - "is-windows": "^1.0.2", - "listr": "^0.14.2", - "listr-update-renderer": "^0.5.0", - "lodash": "^4.17.11", - "log-symbols": "^2.2.0", - "micromatch": "^3.1.8", - "npm-which": "^3.0.1", - "p-map": "^1.1.1", - "path-is-inside": "^1.0.2", - "pify": "^3.0.0", - "please-upgrade-node": "^3.0.2", - "staged-git-files": "1.1.2", - "string-argv": "^0.0.2", - "stringify-object": "^3.2.2", - "yup": "^0.27.0" - }, - "bin": { - "lint-staged": "index.js" - } - }, - "node_modules/lint-staged/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/lint-staged/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/lint-staged/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lint-staged/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lint-staged/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", - "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", - "dev": true, - "dependencies": { - "@samverschueren/stream-to-observable": "^0.3.0", - "is-observable": "^1.1.0", - "is-promise": "^2.1.0", - "is-stream": "^1.1.0", - "listr-silent-renderer": "^1.1.1", - "listr-update-renderer": "^0.5.0", - "listr-verbose-renderer": "^0.5.0", - "p-map": "^2.0.0", - "rxjs": "^6.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/listr-silent-renderer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", - "integrity": "sha512-L26cIFm7/oZeSNVhWB6faeorXhMg4HNlb/dS/7jHhr708jxlXrtrBWo4YUxZQkc6dGoxEAe6J/D3juTRBUzjtA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr-update-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", - "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "cli-truncate": "^0.2.1", - "elegant-spinner": "^1.0.1", - "figures": "^1.7.0", - "indent-string": "^3.0.0", - "log-symbols": "^1.0.2", - "log-update": "^2.3.0", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "listr": "^0.14.2" - } - }, - "node_modules/listr-update-renderer/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/cli-truncate": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", - "integrity": "sha512-f4r4yJnbT++qUPI9NR4XLDLq41gQ+uqnPItWG0F5ZkehuNiTTa3EY0S4AqTSUOeJ7/zU41oWPQSNkW5BqPL9bg==", - "dev": true, - "dependencies": { - "slice-ansi": "0.0.4", - "string-width": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha512-mmPrW0Fh2fxOzdBbFv4g1m6pR72haFLPJ2G5SJEELf1y+iaQrDG6cWCPjy54RHYbZAt7X+ls690Kw62AdWXBzQ==", - "dev": true, - "dependencies": { - "chalk": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/slice-ansi": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", - "integrity": "sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/listr-update-renderer/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/listr-verbose-renderer": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", - "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "cli-cursor": "^2.1.0", - "date-fns": "^1.27.2", - "figures": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/listr/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "dev": true - }, - "node_modules/lodash.clonedeepwith": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", - "integrity": "sha512-QRBRSxhbtsX1nc0baxSkkK5WlVTTm/s48DSukcGcWZwIyI8Zz+lB+kFiELJXtzfH4Aj6kMWQ1VWW4U5uUDgZMA==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "dev": true - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-update": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", - "integrity": "sha512-vlP11XfFGyeNQlmEn9tJ66rEW1coA/79m5z6BCkudjbAGE83uhAcGYrBFwfs3AdLiLzGRusRPAbSPK9xZteCmg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.0.0", - "cli-cursor": "^2.0.0", - "wrap-ansi": "^3.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==", - "dev": true, - "dependencies": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matcher": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz", - "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, - "node_modules/md5-hex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz", - "integrity": "sha512-0HLfzJTZ7707VBNM1ydr5sTb+IZLhmU4u2TVA+Eenfn/Ed42/gn10smbAPiuEm/jNgjvWKUiMNihqJQ6flus9w==", - "dev": true, - "dependencies": { - "md5-o-matic": "^0.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/md5-o-matic": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha512-QBJSFpsedXUl/Lgs4ySdB2XCzUEcJ3ujpbagdZCkRaYIaC0kFnID8jhc84KEiVv6dNFtIrmW7bqow0lDxgJi6A==", - "dev": true - }, - "node_modules/meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", - "dev": true, - "dependencies": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/meow/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/ms-signalr-client": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/ms-signalr-client/-/ms-signalr-client-2.2.7.tgz", - "integrity": "sha512-2OkiVp3KbBjngXAGd+ab/8Hl4OyexoU1pNcEqmWhjFQfzD/1C1Xv1SkMBUg+9iujAngNarEWcQnwrYD71qBVFQ==", - "deprecated": "Please use the official signalr package", - "dependencies": { - "jquery": "^2.2.0" - } - }, - "node_modules/multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha512-0mzK8ymiWdehTBiJh0vClAzGyQbdtyWqzSVx//EK4N/D+599RFlGfTAsKw2zMSABtDG9C6Ul2+t8f2Lbdjf5mA==", - "dev": true, - "dependencies": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", - "dev": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-path": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", - "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", - "dev": true, - "dependencies": { - "which": "^1.2.10" - }, - "bin": { - "npm-path": "bin/npm-path" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", - "integrity": "sha512-CM8vMpeFQ7MAPin0U3wzDhSGV0hMHNwHU0wjo402IVizPDrs45jSfSuoC+wThevY88LQti8VvaAnqYAeVy3I1A==", - "dev": true, - "dependencies": { - "commander": "^2.9.0", - "npm-path": "^2.0.2", - "which": "^1.2.10" - }, - "bin": { - "npm-which": "bin/npm-which.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/npm-which/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/nullthrows": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==" - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", - "dev": true, - "dependencies": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.omit/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/observable-to-promise": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/observable-to-promise/-/observable-to-promise-0.5.0.tgz", - "integrity": "sha512-B3ZhUUBClpKKhfU7Y6gbmlG5o1HhinxcvH+KyFTSdKPw4xzvShYwqrze0b1hqGXInJrtqz8K11y9v8CMEWJzWQ==", - "dev": true, - "dependencies": { - "is-observable": "^0.2.0", - "symbol-observable": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/observable-to-promise/node_modules/is-observable": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", - "integrity": "sha512-4JymFIKLU+QyN0J+Q1YMWGXGF/FbL/RPkr5R9UlTdvWmSYRQPeoub00WZ4EiWOEVxWz/djoPxNFF+iuBSJzYCw==", - "dev": true, - "dependencies": { - "symbol-observable": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/observable-to-promise/node_modules/is-observable/node_modules/symbol-observable": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", - "integrity": "sha512-6WFhZ1sqIAG3g55T6RJcOYldJmFrdsnM7adeuFUp1aJwo9EWwMFC0zYHNGGyDvJU/aqPzkQyIsMdNek1u9oRzQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/odata": { - "version": "0.3.0", - "resolved": "git+ssh://git@github.com/Brewskey/o.js.git#30d7c125c0c209ec59c39c1da402c1fc2029047d", - "license": "MIT", - "dependencies": { - "q": "*", - "xhr2": "*" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/option-chain": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/option-chain/-/option-chain-1.0.0.tgz", - "integrity": "sha512-IUhG7PlO/bKThfrJE5MhhUPfVpRlbKVx42VM1oG3UWeaVvjcf0/52VKp6uQEgvr5/ThLMPWkGwPE0PJ1DSDc0A==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/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==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-2.0.0.tgz", - "integrity": "sha512-DH4/1cxLWA2wrv2uDwd8G41S0GXOnFG9vRqx4B7iAWeT19mEA9R3EUXZtZ/I87boGH9DNl8fMUV82dvsR3ckeA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "lodash.flattendeep": "^4.4.0", - "md5-hex": "^2.0.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha512-q/R5GrMek0vzgoomq6rm9OX+3PQve8sLwTirmK30YB3Cu0Bbt9OX9M/SIUnroN5BGJkzwGsFwDaRGD9EwBOlCA==", - "dev": true, - "dependencies": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", - "dev": true, - "dependencies": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-glob/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-glob/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-ms": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz", - "integrity": "sha512-LpH1Cf5EYuVjkBvCDBYvkUPh+iv2bk3FHflxHkpCYT0/FZ1d3N3uJaLiHr4yGuMcFUhv6eAivitTvWZI4B/chg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-type/node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-type/node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", - "integrity": "sha512-VFVaU1ysKakao68ktZm76PIdOhvEfoNNRaGkyLln9Os7r0/MCxqHjHyBM7dT3pgTiBybqiPtpqKfpENwdBp50Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", - "integrity": "sha512-5mvtVNse2Ml9zpFKkWBpGsTPwm3DKhs+c95prO/F6E7d6DN0FPqxs6LONpLNpyD7Iheb7QN4BbUoKJgo+DnkQA==", - "dev": true, - "dependencies": { - "pinkie": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/plur": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/plur/-/plur-2.1.2.tgz", - "integrity": "sha512-WhcHk576xg9y/iv6RWOuroZgsqvCbJN+XGvAypCJwLAYs2iWDp5LUmvaCdV6JR2O0SMBf8l6p7A94AyLCFVMlQ==", - "dev": true, - "dependencies": { - "irregular-plurals": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pretty-ms": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-3.2.0.tgz", - "integrity": "sha512-ZypexbfVUGTFxb0v+m1bUyy92DHe5SyYlnyY0msyms5zd3RwyvNgyxZZsXXgoyzlxjx5MiqtXUdhUfvQbe0A2Q==", - "dev": true, - "dependencies": { - "parse-ms": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/property-expr": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-1.5.1.tgz", - "integrity": "sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g==", - "dev": true - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/randomatic/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/react-native-signalr": { - "version": "1.0.6", - "resolved": "git+ssh://git@github.com/Brewskey/react-native-signalr.git#704d08c759280c6966be895b52e0753187480574", - "license": "MIT", - "dependencies": { - "jquery-deferred": "^0.3.1", - "ms-signalr-client": "^2.2.7" - } - }, - "node_modules/read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha512-+UBirHHDm5J+3WDmLBZYSklRYg82nMlz+enn+GMZ22nSR2f4bzxmhso6rzQW/3mT2PVzpzDTiYIZahk8UmZ44w==", - "dev": true, - "dependencies": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", - "dev": true, - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", - "dev": true, - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==", - "dev": true, - "dependencies": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/redent/node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "dependencies": { - "is-equal-shallow": "^0.1.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true, - "engines": { - "node": ">=6.5.0" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", - "dev": true, - "dependencies": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==", - "dev": true, - "dependencies": { - "rc": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", - "dev": true, - "dependencies": { - "is-finite": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dev": true - }, - "node_modules/require-precompiled": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/require-precompiled/-/require-precompiled-0.1.0.tgz", - "integrity": "sha512-UWQr7MdatK8cF0JXrrqVPal2sUdhpCj8f4sC7VMDONA/+WSVv5ElRku3qDEZ+FIqoN91zhhfB+t1P3+qQNaYGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz", - "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", - "dev": true, - "bin": { - "run-node": "run-node" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", - "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true - }, - "node_modules/semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw==", - "dev": true, - "dependencies": { - "semver": "^5.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/serialize-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", - "dependencies": { - "define-data-property": "^1.1.1", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-git": { - "version": "1.132.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz", - "integrity": "sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==", - "dev": true, - "dependencies": { - "debug": "^4.0.1" - } - }, - "node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/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==", - "dev": true - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", - "dev": true - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.5.tgz", - "integrity": "sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/staged-git-files": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.2.tgz", - "integrity": "sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA==", - "dev": true, - "bin": { - "sgf": "bin/cli.js" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/string-argv": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz", - "integrity": "sha512-p6/Mqq0utTQWUeGMi/m0uBtlLZEwXSY3+mXzeRRqw7fz5ezUb28Wr0R99NlfbWaMmL/jCyT9be4jpn7Yz8IO8w==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-bom-buf": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", - "integrity": "sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ==", - "dev": true, - "dependencies": { - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==", - "dev": true, - "dependencies": { - "get-stdin": "^4.0.1" - }, - "bin": { - "strip-indent": "cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-indent/node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supertap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supertap/-/supertap-1.0.0.tgz", - "integrity": "sha512-HZJ3geIMPgVwKk2VsmO5YHqnnJYl6bV5A9JW2uzqV43WmpgliNEYbuvukfor7URpaqpxuw3CfZ3ONdVbZjCgIA==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "indent-string": "^3.2.0", - "js-yaml": "^3.10.0", - "serialize-error": "^2.1.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-color/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/synchronous-promise": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz", - "integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==", - "dev": true - }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/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==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==", - "dev": true, - "dependencies": { - "execa": "^0.7.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/time-zone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz", - "integrity": "sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-regex-range/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", - "dev": true - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trim-off-newlines": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.3.tgz", - "integrity": "sha512-kh6Tu6GbeSNMGfrrZh6Bb/4ZEHV1QlB4xNDBeog8Y9/QwFlKTRyWvY3Fs9tRDAMZliVUwieMgEdIeL/FtqjkJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/uid2": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", - "integrity": "sha512-5gSP1liv10Gjp8cMEnFd6shzkL/D6W1uhXSFNCxDC+YI8+L8wkCYCbJ7n77Ezb4wE/xzMogecE+DtamEe9PZjg==", - "dev": true - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-temp-dir/-/unique-temp-dir-1.0.0.tgz", - "integrity": "sha512-tE68ki2FndoVdPioyiz8mYaJeX3xU/9lk4dml7KlLKEkWLtDGAYeg5LGjE2dMkzB8d6R3HbcKTn/I14nukP2dw==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1", - "os-tmpdir": "^1.0.1", - "uid2": "0.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "dev": true, - "dependencies": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==", - "dev": true, - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/well-known-symbols": { + "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-1.0.0.tgz", - "integrity": "sha512-j4WJWeWqF8GH71YTpndVlnuko0N5mVy+1A+VdwRkGbGIaV4I/3p+HDeHuIFuPyyF/BYvB1RSpHGi/yT//1sewg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, "engines": { "node": ">= 0.4" }, @@ -11572,324 +2748,274 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", "dev": true, "dependencies": { - "string-width": "^2.1.1" + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=4" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, - "node_modules/wrap-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", - "integrity": "sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==", + "node_modules/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==", "dev": true, "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">=4" + "node": ">=8.0" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, "engines": { - "node": ">=4" + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" } }, - "node_modules/write-file-atomic": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", - "integrity": "sha512-SdrHoC/yVBPpV0Xq/mUZQIpW2sWXAShb/V4pomcJXh92RuaO+f3UTWItiR3Px+pLnV2PvC2/bfn5cwr5X6Vfxw==", + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "slide": "^1.1.5" + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "node_modules/write-json-file": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-json-file/-/write-json-file-2.3.0.tgz", - "integrity": "sha512-84+F0igFp2dPD6UpAQjOUX3CdKUOqUzn6oE9sDBNzUXINR5VceJ1rauZltqQB/bcYsx3EpKys4C7/PivKUAiWQ==", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "pify": "^3.0.0", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.0.0" + "minimist": "^1.2.0" }, - "engines": { - "node": ">=4" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/write-json-file/node_modules/detect-indent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", - "integrity": "sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==", - "dev": true, - "engines": { - "node": ">=4" - } + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true }, - "node_modules/write-json-file/node_modules/make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { - "pify": "^3.0.0" + "prelude-ls": "^1.2.1" }, "engines": { - "node": ">=4" + "node": ">= 0.8.0" } }, - "node_modules/write-json-file/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { - "node": ">=4" - } - }, - "node_modules/write-json-file/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/write-pkg": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-3.2.0.tgz", - "integrity": "sha512-tX2ifZ0YqEFOF1wjRW2Pk93NLsj02+n1UP5RvO6rCs0K6R2g1padvf006cY74PQJKMGS2r42NK7FD0dG6Y6paw==", + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", "dev": true, "dependencies": { - "sort-keys": "^2.0.0", - "write-json-file": "^2.2.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" }, "engines": { - "node": ">=4" - } - }, - "node_modules/xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/xhr2": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz", - "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" + "node": ">= 0.4" } }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.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": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", "dev": true, "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" }, "engines": { - "node": ">=6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yargs-parser/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/typescript": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", + "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=8" + "node": ">=14.17" } }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yargs/node_modules/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==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "punycode": "^2.1.0" } }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/yargs/node_modules/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==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, + "node_modules/xhr2": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz", + "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==", "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, - "node_modules/yup": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.27.0.tgz", - "integrity": "sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ==", + "node_modules/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==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "fn-name": "~2.0.1", - "lodash": "^4.17.11", - "property-expr": "^1.5.0", - "synchronous-promise": "^2.0.6", - "toposort": "^2.0.2" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } } } diff --git a/package.json b/package.json index cd45ced..1567f80 100644 --- a/package.json +++ b/package.json @@ -1,67 +1,40 @@ { "name": "brewskey.js-api", - "version": "0.2.0-SNAPSHOT", - "main": "./build/index.js", + "version": "2.0.0", + "main": "./dist/index.js", "repository": "https://github.com/Brewskey/brewskey.js-api.git", "author": "Brewskey", "files": [ - "build/" + "dist/" ], "scripts": { - "build": "babel src -d build --copy-files", - "build:all": "yarn build && yarn build:flow", - "build:flow": "flow-copy-source -v src build", - "flow": "flow", + "build": "tsc", "lint": "eslint src/ --fix --max-warnings 0", - "start": "babel ./src --out-dir ./build --watch --copy-files", "test": "ava", "test:watch": "ava --watch", "test:api": "babel-node ./test/index.js" }, "devDependencies": { - "@babel/cli": "^7.1.5", - "@babel/core": "^7.1.5", - "@babel/plugin-proposal-class-properties": "^7.1.0", - "@babel/plugin-transform-runtime": "^7.9.0", - "@babel/preset-env": "^7.1.5", - "@babel/preset-flow": "^7.0.0", - "@babel/register": "^7.0.0", - "ava": "^0.25.0", - "babel-eslint": "^10.0.1", - "eslint": "^5.9.0", - "eslint-config-airbnb-base": "^13.1.0", - "eslint-config-prettier": "^3.3.0", - "eslint-plugin-flowtype": "^3.2.0", - "eslint-plugin-import": "^2.14.0", - "eslint-plugin-prettier": "^3.0.0", - "eslint-plugin-sorting": "^0.3.0", - "flow-copy-source": "^2.0.2", - "form-data": "^2.3.3", - "husky": "^1.2.0", - "lint-staged": "^8.0.4", - "minimist": "^1.2.6", - "node-fetch": "^2.6.7", - "prettier": "^2.0.5" + "@types/odata": "^1.0.3", + "@types/qs": "^6.9.14", + "@typescript-eslint/eslint-plugin": "^7.4.0", + "@typescript-eslint/parser": "^7.4.0", + "eslint": "^8.2.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^18.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-prettier": "^5.1.3", + "prettier": "3.2.5" }, "dependencies": { "array-flatten": "^3.0.0", "debounce": "^1.2.0", - "flow-bin": "^0.126.1", "nullthrows": "^1.1.0", "odata": "github:Brewskey/o.js", "qs": "^6.10.3", "react-native-signalr": "github:Brewskey/react-native-signalr" }, - "ava": { - "verbose": true, - "babel": "inherit", - "files": [ - "test/*.test.js" - ], - "require": [ - "babel-register" - ] - }, "husky": { "hooks": { "pre-commit": "lint-staged" @@ -74,4 +47,4 @@ "git add" ] } -} +} \ No newline at end of file diff --git a/src/Auth.js b/src/Auth.js deleted file mode 100644 index 7e77747..0000000 --- a/src/Auth.js +++ /dev/null @@ -1,105 +0,0 @@ -// @flow - -import type { EntityID } from './types'; - -import fetch from './fetch'; - -export type UserCredentials = {| - password: string, - userName: string, -|}; - -export type UserRole = 'Administrator' | 'Super Administator'; - -export type AuthResponse = {| - accessToken: string, - email: string, - expiresAt: Date, - expiresIn: number, - id: EntityID, - issuedAt: Date, - phoneNumber: string, - refreshToken: string, - roles: Array, - tokenType: string, - userLogins: Array, - userName: string, -|}; - -export type ChangePasswordArgs = {| - newPassword: string, - oldPassword: string, -|}; - -export type RegisterArgs = {| - email: string, - password: string, - userName: string, -|}; - -const reformatLoginResponse = (response: any): AuthResponse => ({ - ...response, - accessToken: response.access_token, - expiresAt: response['.expires'], - expiresIn: response.expires_in, - issuedAt: response['.issued'], - refreshToken: response.refresh_token, - roles: JSON.parse(response.roles), - tokenType: response.token_type, - userLogins: JSON.parse(response.userLogins), -}); - -class Auth { - changePassword(changePasswordArgs: ChangePasswordArgs): Promise { - return fetch('api/account/change-password/', { - body: JSON.stringify({ - ...changePasswordArgs, - confirmPassword: changePasswordArgs.newPassword, - }), - headers: [{ name: 'Content-type', value: 'application/json' }], - method: 'POST', - }); - } - - fetchRoles(): Promise> { - return fetch('api/v2/roles/'); - } - - login({ password, userName }: UserCredentials): Promise { - return fetch(`token/`, { - body: `grant_type=password&userName=${userName}&password=${password}`, - headers: [ - { name: 'Content-type', value: 'application/x-www-form-urlencoded' }, - ], - method: 'POST', - }).then(reformatLoginResponse); - } - - refreshToken(refreshToken: string): Promise { - return fetch(`token/`, { - body: `grant_type=refresh_token&refresh_token=${refreshToken}`, - headers: [ - { name: 'Content-type', value: 'application/x-www-form-urlencoded' }, - ], - method: 'POST', - }).then(reformatLoginResponse); - } - - register(registerArgs: RegisterArgs): Promise { - return fetch('api/account/register/', { - body: JSON.stringify(registerArgs), - headers: [{ name: 'Content-type', value: 'application/json' }], - method: 'POST', - }); - } - - resetPassword(email: string): Promise { - return fetch('api/account/reset-password/', { - body: JSON.stringify({ email }), - headers: [{ name: 'Content-type', value: 'application/json' }], - method: 'POST', - }); - } -} - -export default new Auth(); diff --git a/src/CloudSSEManager.js b/src/CloudSSEManager.js deleted file mode 100644 index f10e38e..0000000 --- a/src/CloudSSEManager.js +++ /dev/null @@ -1,90 +0,0 @@ -// @flow - -import Subscription from './dao/Subscription'; -import nullthrows from 'nullthrows'; -import Config from './Config'; - -export type SSESubscriptionOptions = {| - eventNamePrefix?: string, - onError?: (event: MessageEvent) => mixed, - onOpen?: (event: MessageEvent) => mixed, - particleId?: string, -|}; - -export type CloudEvent = {| - data: any, - name: string, - particleId: string, - publishedAt: Date, -|}; - -type SSEHandler = (event: CloudEvent) => any; - -class CloudSSEManager extends Subscription { - static _sessionByHandler: Map = new Map(); - - static subscribe( - handler: SSEHandler, - subscribeOptions: SSESubscriptionOptions, - ) { - const { onError, onOpen } = subscribeOptions; - - const session = new EventSource(CloudSSEManager._getUrl(subscribeOptions)); - - session.addEventListener('message', (sseEvent: MessageEvent): void => { - try { - const cloudEventStr: any = sseEvent.data; - const cloudEvent = JSON.parse(cloudEventStr); - - const { - name, - coreid: particleId, - data, - published_at: publishedAt, - } = cloudEvent; - - handler({ data, name, particleId, publishedAt }); - } catch (error) { - CloudSSEManager.__emitError(error); - if (onError) { - onError(error); - } - } - }); - - if (onOpen) { - session.addEventListener('open', onOpen); - } - - if (onError) { - session.addEventListener('error', onError); - } - - session.addEventListener('error', (event: Event) => { - CloudSSEManager.__emitError(new Error(JSON.stringify(event))); - }); - - CloudSSEManager._sessionByHandler.set(handler, session); - } - - static unsubscribe(handler: SSEHandler) { - const session = CloudSSEManager._sessionByHandler.get(handler); - if (!session) { - return; - } - session.close(); - CloudSSEManager._sessionByHandler.delete(handler); - } - - static _getUrl({ eventNamePrefix = '', particleId }: SSESubscriptionOptions) { - const devicesUrl = particleId ? `devices/${particleId}/events/` : 'events/'; - - return `${nullthrows( - Config.host, - )}/api/v2/${devicesUrl}${eventNamePrefix}/?access_token=${nullthrows( - Config.token, - )}`; - } -} - -export default CloudSSEManager; diff --git a/src/Config.js b/src/Config.js deleted file mode 100644 index 35dc671..0000000 --- a/src/Config.js +++ /dev/null @@ -1,13 +0,0 @@ -// @flow - -import type { EntityID } from './types'; - -class Config { - static host: ?string = null; - - static organizationId: ?EntityID = null; - - static token: ?string = null; -} - -export default Config; diff --git a/src/LoadObject.js b/src/LoadObject.js deleted file mode 100644 index 20e0d27..0000000 --- a/src/LoadObject.js +++ /dev/null @@ -1,480 +0,0 @@ -/** - * Copyright (c) 2014-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @flow - */ - -import nullthrows from 'nullthrows'; - -export type LoadObjectOperation = - | 'NONE' - | 'CREATING' - | 'LOADING' - | 'UPDATING' - | 'DELETING'; - -type Unwrap = (loadObject: LoadObject) => T; - -/** - * A secret key that is used to prevent direct construction of these objects, - * this is effectively used to ensure that the constructor is private. - */ -const SECRET = `SECRET_${Math.random()}`; - -const VALUES_TO_CACHE = [undefined, null, false, true, 0, '']; -const CACHE: Map< - any, - Map>>, -> = new Map( - VALUES_TO_CACHE.map((value: any): any => [ - value, - new Map([ - [true, new Map()], - [false, new Map()], - ]), - ]), -); - -/** - * Immutable Load Object. This is an immutable object that represents a - * particular point in time for a request. Some examples: - * - * Render spinners while loading: - * - * if (loadObject.isLoading()) { - * return ; - * } - * return
...
; - * - * Render errors with an error: - * - * if (loadObject.hasError()) { - * return ; - * } - * return
...
; - * - * Render normally when there's a value: - * - * return
{loadObject.getValue().text}
; - * - */ -class LoadObject { - _operation: LoadObjectOperation; - - _value: ?TValue; - - _error: ?Error; - - _hasValue: boolean; - - /** - * Private construtor, never call this outside of this class. - */ - constructor( - secret: string, - operation: LoadObjectOperation, - value: ?TValue, - error: ?Error, - hasValue: boolean, - ) { - if (secret !== SECRET) { - throw new Error( - 'Construct LoadObjects using static methods such as ' + - 'LoadObject.loading(), LoadObject.empty()', - ); - } - this._operation = operation; - this._value = value; - this._error = error; - this._hasValue = hasValue; - } - - static _create( - operation: LoadObjectOperation, - value: ?TValue, - error: ?Error, - hasValue: boolean, - ): LoadObject { - const cachedItem = LoadObject._getFromCache( - operation, - value, - error, - hasValue, - ); - return ( - cachedItem || new LoadObject(SECRET, operation, value, error, hasValue) - ); - } - - static _getFromCache( - operation: LoadObjectOperation, - value: ?TValue, - error: ?Error, - hasValue: boolean, - ): ?LoadObject { - if (error !== undefined || !CACHE.has(value)) { - return null; - } - - const operationMapByHasValue = nullthrows(CACHE.get(value)); - const loaderByOperation = nullthrows(operationMapByHasValue.get(hasValue)); - if (!loaderByOperation.has(operation)) { - const object = new LoadObject(SECRET, operation, value, error, hasValue); - loaderByOperation.set(operation, object); - } - - return nullthrows(loaderByOperation.get(operation)); - } - - // Convenient getters - - getOperation(): LoadObjectOperation { - return this._operation; - } - - getValue(): ?TValue { - return this._value; - } - - getValueEnforcing(): TValue { - if (!this.hasValue()) { - throw new Error('Expected load object to have a value set.'); - } - // We check hasValue and cast rather than checking if value is null so that - // it's possible to have "null" values that are set. - return (this._value: any); - } - - getError(): ?Error { - return this._error; - } - - getErrorEnforcing(): Error { - if (!this._error) { - throw new Error('Expected load object to have an error set.'); - } - return this._error; - } - - hasOperation(): boolean { - return this._operation !== 'NONE'; - } - - hasValue(): boolean { - return this._hasValue; - } - - hasError(): boolean { - return !!this._error; - } - - isEmpty(): boolean { - return !this.hasValue() && !this.hasOperation() && !this.hasError(); - } - - // Convenient setters - - setOperation(operation: LoadObjectOperation): LoadObject { - if (this._operation === operation) { - return this; - } - - return LoadObject._create( - operation, - this.getValue(), - this.getError(), - this.hasValue(), - ); - } - - setValue(value: TValue): LoadObject { - if (this._value === value && this._hasValue === true) { - return this; - } - return LoadObject._create( - this.getOperation(), - value, - this.getError(), - this.hasValue(), - ); - } - - setError(error: Error): LoadObject { - if (this._error === error) { - return this; - } - return LoadObject._create( - this.getOperation(), - this.getValue(), - error, - this.hasValue(), - ); - } - - removeOperation(): LoadObject { - if (this._operation === 'NONE') { - return this; - } - return LoadObject._create( - 'NONE', - this.getValue(), - this.getError(), - this.hasValue(), - ); - } - - removeValue(): LoadObject { - if (this._value === undefined && this._hasValue === false) { - return this; - } - return LoadObject._create( - this.getOperation(), - undefined, - this.getError(), - false, - ); - } - - removeError(): LoadObject { - if (this._error === undefined) { - return this; - } - return LoadObject._create( - this.getOperation(), - this.getValue(), - undefined, - this.hasValue(), - ); - } - - map( - fn: (value: TValue) => TType | LoadObject, - ): LoadObject { - if (!this.hasValue()) { - return (this: any); - } - - const output = fn(this.getValueEnforcing()); - - const loader = - output instanceof LoadObject ? output : this.setValue((output: any)); - - return (loader: any); - } - - mapError( - fn: (value: Error) => Error | LoadObject, - ): LoadObject { - if (!this.hasError()) { - return (this: any); - } - - const output = fn(this.getErrorEnforcing()); - - const loader = - output instanceof LoadObject ? output : this.setValue((output: any)); - - return (loader: any); - } - - // some helper methods to check specific operations - - isDone(): boolean { - return !this.hasOperation(); - } - - isCreating(): boolean { - return this.getOperation() === 'CREATING'; - } - - isLoading(): boolean { - return this.getOperation() === 'LOADING'; - } - - isUpdating(): boolean { - return this.getOperation() === 'UPDATING'; - } - - isDeleting(): boolean { - return this.getOperation() === 'DELETING'; - } - - // Provide some helpers for mutating the operations - - done(): LoadObject { - return this.removeOperation(); - } - - creating(): LoadObject { - return this.setOperation('CREATING'); - } - - loading(): LoadObject { - return this.setOperation('LOADING'); - } - - updating(): LoadObject { - return this.setOperation('UPDATING'); - } - - deleting(): LoadObject { - return this.setOperation('DELETING'); - } - - // Static helpers for creating LoadObjects - - static empty(): LoadObject { - return LoadObject._create('NONE', undefined, undefined, false); - } - - static creating(): LoadObject { - return LoadObject._create('CREATING', undefined, undefined, false); - } - - static loading(): LoadObject { - return LoadObject._create('LOADING', undefined, undefined, false); - } - - static updating(): LoadObject { - return LoadObject._create('UPDATING', undefined, undefined, false); - } - - static deleting(): LoadObject { - return LoadObject._create('DELETING', undefined, undefined, false); - } - - static withError(error: Error): LoadObject { - return LoadObject._create('NONE', undefined, error, false); - } - - static withValue(value: V | LoadObject): LoadObject { - if (value instanceof LoadObject) { - return value; - } - - return LoadObject._create('NONE', value, undefined, true); - } - - static merge< - T1, - T2, - T3, - T4, - T5, - T6, - T7, - T8, - T9, - T: - | [LoadObject, LoadObject] - | [LoadObject, LoadObject, LoadObject] - | [LoadObject, LoadObject, LoadObject, LoadObject] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ] - | [ - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - LoadObject, - ], - >( - loadObjects: T, - shouldReturnAllValues: boolean = false, - ): LoadObject<$TupleMap> { - const values = []; - let error = null; - let operation = 'NONE'; - let hasAllValues = true; - - // eslint-disable-next-line no-restricted-syntax - for (const loadObject of loadObjects) { - if (loadObject.hasOperation()) { - const loadObjectOperation = loadObject.getOperation(); - - if (!shouldReturnAllValues) { - return LoadObject.empty().setOperation(loadObjectOperation); - } - operation = operation || loadObjectOperation; - values.push(loadObject.getValue()); - } else if (loadObject.hasError()) { - if (!shouldReturnAllValues) { - return LoadObject.withError(loadObject.getErrorEnforcing()); - } - - values.push(loadObject.getValue()); - error = error || loadObject.getErrorEnforcing(); - } else if (loadObject.isEmpty()) { - values.push(undefined); - hasAllValues = false; - } else if (loadObject.hasValue()) { - values.push(loadObject.getValueEnforcing()); - } else { - throw new Error("This shouldn't happen"); - } - } - - if (!shouldReturnAllValues) { - if (error) { - return LoadObject.withError(error); - } - if (operation !== 'NONE') { - return LoadObject.empty().setOperation(operation); - } - - if (!hasAllValues) { - return LoadObject.empty(); - } - } - - let output = LoadObject.withValue((values: any)); - if (error) { - output = output.setError(error); - } - - return output.setOperation(operation); - } -} - -export default LoadObject; diff --git a/src/StandardHeaders.js b/src/StandardHeaders.js deleted file mode 100644 index c3f2655..0000000 --- a/src/StandardHeaders.js +++ /dev/null @@ -1,8 +0,0 @@ -// @flow -export default [ - { - name: 'timezoneOffset', - value: new Date().getTimezoneOffset().toString(), - }, - { name: 'Prefer', value: 'return=representation' }, -]; diff --git a/src/constants.js b/src/constants.js deleted file mode 100644 index a6b4957..0000000 --- a/src/constants.js +++ /dev/null @@ -1,61 +0,0 @@ -// @flow - -import type { EntityName } from './types'; -import type { FilterOperator } from './filters'; -import type { PermissionType } from './dao/PermissionDAO'; - -export const PERMISSIONS_MAP: { [key: PermissionType]: number } = { - Administrator: 4, - BannedFromTap: 1, - Edit: 3, - Read: 2, -}; - -export const DAO_ENTITIES: { [key: string]: EntityName } = { - ACCOUNTS: 'accounts', - ACHIEVEMENTS: 'achievements', - BEVERAGE_AVAILABILITIES: 'beverage-availabilities', - BEVERAGE_GLASSES: 'beverage-glasses', - BEVERAGE_SRMS: 'beverage-srms', - BEVERAGE_STYLES: 'beverage-styles', - BEVERAGES: 'beverages', - DEVICES: 'devices', - FLOW_SENSORS: 'flow-sensors', - FRIENDS: 'friends', - KEGS: 'kegs', - LOCATIONS: 'locations', - ORGANIZATIONS: 'organizations', - PERMISSIONS: 'permissions', - POUR_CHART: 'chart', - POURS: 'pours', - PRICE_VARIANTS: 'price-variants', - REPORTS: 'reports', - SCHEDULE_GROUPS: 'schedule-groups', - SCHEDULES: 'schedules', - TAPS: 'taps', -}; - -const FILTER_OPERATORS: { [key: string]: FilterOperator } = { - ANY: 'any', - CONTAINS: 'contains', - ENDS_WITH: 'endswith', - EQUALS: 'eq', - GREATER_THAN: 'gt', - GREATER_THAN_OR_EQUAL: 'ge', - LESS_THAN: 'lt', - LESS_THAN_OR_EQUAL: 'le', - NOT_ENDS_WITH: 'not endswith', - NOT_EQUALS: 'ne', - NOT_STARTS_WITH: 'not startswith', - STARTS_WITH: 'startswith', -}; - -const FILTER_FUNCTION_OPERATORS = [ - FILTER_OPERATORS.CONTAINS, - FILTER_OPERATORS.ENDS_WITH, - FILTER_OPERATORS.NOT_ENDS_WITH, - FILTER_OPERATORS.NOT_STARTS_WITH, - FILTER_OPERATORS.STARTS_WITH, -]; - -export { FILTER_OPERATORS, FILTER_FUNCTION_OPERATORS }; diff --git a/src/dao/AccountDAO.js b/src/dao/AccountDAO.js deleted file mode 100644 index bb0afe7..0000000 --- a/src/dao/AccountDAO.js +++ /dev/null @@ -1,44 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Account = {| - accessFailedCount: ?number, - banned: ?boolean, - createdDate: Date, - email: ?string, - emailConfirmed: ?boolean, - fullName: ?string, - id: EntityID, - lockoutEnabled: ?boolean, - lockoutEndDateUtc: ?string, - logins: ?Object, - phoneNumber: ?string, - phoneNumberConfirmed: ?boolean, - roles: ?Object, - twoFactorEnabled: ?boolean, - userName: string, -|}; - -export type AccountMutator = {| - email: string, - fullName?: string, - id?: EntityID, - phoneNumber: string, - userName: string, -|}; - -class AccountDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.ACCOUNTS, - translator: new DefaultTranslator(), - }); - } -} - -export default new AccountDAO(); diff --git a/src/dao/AchievementDAO.js b/src/dao/AchievementDAO.js deleted file mode 100644 index 4fc5abf..0000000 --- a/src/dao/AchievementDAO.js +++ /dev/null @@ -1,62 +0,0 @@ -// @flow - -import type LoadObject from '../LoadObject'; -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type AchievementType = - | 'BackOnTheBus' - | 'BeerAficionado' - | 'BeerAuthority' - | 'BeerBeforeNoon' - | 'BeerBuff' - | 'BeerConnoisseur' - | 'DrankAKeg' - | 'DrankFiveKegs' - | 'DrankTenKegs' - | 'Edward40Hands' - | 'FirstPourOfTheDay' - | 'HatTrick' - | 'KingOfTheKeg' - | 'LastPourOfTheKeg' - | 'LastPourOfTheNight' - | 'LightWeight' - | 'PowerHour' - | 'SevenDaysStraight' - | 'Welcome'; - -export type Achievement = {| - achievementType: AchievementType, - createdDate: Date, - id: EntityID, -|}; - -export type AchievementCounter = {| - achievementType: AchievementType, - total: number, -|}; - -class AchievementDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.ACHIEVEMENTS, - translator: new DefaultTranslator(), - }); - } - - fetchAchievementCounters( - userID: EntityID, - ): LoadObject> { - const queryOptions = { - apply: - `filter((owner/id eq '${userID}'))` + - '/groupby((achievementType),aggregate($count as total))', - }; - return this.__fetchCustom(this.__buildHandler(queryOptions), queryOptions); - } -} - -export default new AchievementDAO(); diff --git a/src/dao/AvailabilityDAO.js b/src/dao/AvailabilityDAO.js deleted file mode 100644 index 7ac4a62..0000000 --- a/src/dao/AvailabilityDAO.js +++ /dev/null @@ -1,24 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Availability = {| - description: ?string, - id: EntityID, - name: string, -|}; - -class AvailabilityDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGE_AVAILABILITIES, - translator: new DefaultTranslator(), - }); - } -} - -export default new AvailabilityDAO(); diff --git a/src/dao/BaseODataDAO.js b/src/dao/BaseODataDAO.js deleted file mode 100644 index e9dda94..0000000 --- a/src/dao/BaseODataDAO.js +++ /dev/null @@ -1,261 +0,0 @@ -// @flow - -import type { OHandler } from 'odata'; -import type { - DAOTranslator, - EntityID, - EntityName, - ODataDAOConfig, - ODataDAOResult, - QueryOptions, - RequestMethod, -} from '../types'; -import type { QueryFilter } from '../filters'; - -import oHandler from 'odata'; -import Subscription from './Subscription'; -import { FILTER_FUNCTION_OPERATORS, FILTER_OPERATORS } from '../constants'; -import Config from '../Config'; - -const ID_REG_EXP = /\bid\b/; - -const parseNavProp = ([name, navProp]: [string, mixed]): string => { - const { expand, select } = (navProp: any); - const delimiter = select && expand ? ';' : ''; - const selectString = select ? `$select=${select.join(',')}` : ''; - - const expandString = expand - ? `${delimiter}$expand=${Array.from(Object.entries(expand)) - .map(parseNavProp) - .join(',')}` - : ''; - - return `${name}(${selectString}${expandString})`; -}; - -class BaseODataDAO extends Subscription { - __config: ODataDAOConfig; - - constructor(config: ODataDAOConfig) { - super(); - this.__config = config; - } - - getEntityName(): EntityName { - return this.__config.entityName; - } - - getTranslator(): DAOTranslator { - return this.__config.translator; - } - - // todo figure out if we can remove that completly - __reformatIDValue = (value: string): string | number => - // eslint-disable-next-line no-restricted-globals - isNaN(value) || value === '' ? `'${value}'` : value; - - __reformatQueryValue = (value: string | number): string | number => - typeof value === 'string' && !Date.parse(value) - ? `'${encodeURIComponent(value)}'` - : value; - - __buildHandler( - queryOptions?: QueryOptions = {}, - shouldSelectExpand: boolean = true, - ): OHandler { - const handler = oHandler(this.getEntityName()); - return this.__setupHandler(handler, queryOptions, shouldSelectExpand); - } - - __setupHandler( - handler: OHandler, - queryOptions?: QueryOptions = {}, - shouldExpand: boolean = true, - ): OHandler { - const { apply, shouldCount, search, skip, take } = queryOptions; - - const navProps = this.__config.navigationProperties; - if (!search && shouldExpand && navProps) { - const navPropsString = Array.from(Object.entries(navProps)) - .map(parseNavProp) - .join(','); - handler.expand(navPropsString); - } - - if (Number.isInteger(skip)) { - handler.skip(skip || 0); - } - - if (Number.isInteger(take)) { - handler.top(take || 0); - } - - if (shouldCount) { - handler.inlineCount('true'); - } - - this._setFilters(handler, queryOptions); - - if (queryOptions.orderBy) { - const { column: orderBy, direction } = queryOptions.orderBy[0]; - - if (direction === 'desc') { - handler.orderByDesc(orderBy); - } else if (orderBy) { - handler.orderBy(orderBy); - } - } - - if (search) { - handler.customParam('$search', search); - } - - if (apply) { - handler.customParam('$apply', apply); - } - - if (Config.organizationId && !queryOptions.shouldIgnoreOrganizationID) { - handler.customParam('organizationID', Config.organizationId.toString()); - } - - return handler; - } - - _getCacheKey(queryOptions?: QueryOptions): string { - return JSON.stringify(queryOptions || '_'); - } - - _setFilters( - handler: OHandler, - queryOptions: QueryOptions = {}, - ): OHandler { - if ( - !queryOptions.filter && - (!queryOptions.filters || !queryOptions.filters.length) - ) { - return handler; - } - - if (queryOptions.filters == null) { - return handler.filter(queryOptions.filter); - } - - let renderedFilters = queryOptions.filters - .map((queryFilter: QueryFilter): string => { - const { operator, params, values } = queryFilter; - const isValidOperator = FILTER_FUNCTION_OPERATORS.find( - (op: string): boolean => op === operator, - ); - const isAnyOperator = operator === FILTER_OPERATORS.ANY; - - const filters = values.map((value: string): Array => - params.map((param: string): string => { - // Any operator should have the value pre-formatted - if (isAnyOperator) { - return `(${param}/any(${value}))`; - } - - // we have to use two reformat functions because of the issue: - // https://github.com/Brewskey/brewskey.admin/issues/371 - // this is not ideal though, because it doesn't resolve - // situations when we get stringified value from front-end - // which is stored as number on the server. - const reformattedValue = ID_REG_EXP.test(param) - ? this.__reformatIDValue(value) - : this.__reformatQueryValue(value); - - if (isValidOperator) { - return `(${operator}(${param}, ${reformattedValue}))`; - } - - return `(${param} ${operator} ${reformattedValue})`; - }), - ); - - return filters - .reduce( - ( - previousFilter: Array, - currentFilters: Array, - ): Array => [...previousFilter, ...currentFilters], - ) - .join(' or '); - }) - .map((filter: string): string => `(${filter})`) - .join(' and '); - - if (queryOptions.filter != null) { - renderedFilters = `${queryOptions.filter} and ${renderedFilters}`; - } - return handler.filter(renderedFilters); - } - - __resolveSingle( - handler: OHandler, - params?: Object, - method?: RequestMethod = 'GET', - ): Promise { - return this.__resolve(handler, params, method).then( - (result: ODataDAOResult): TEntity => - this.getTranslator().fromApi(result.data), - ); - } - - async __resolveMany( - handler: OHandler, - params?: Object, - method?: RequestMethod = 'GET', - ): Promise> { - const result = await this.__resolve(handler, params, method); - return (result.data || []).map((item: Object): TEntity => - this.getTranslator().fromApi(item), - ); - } - - async __resolveManyIDs( - handler: OHandler, - params?: Object, - idSelector?: (item: Object) => EntityID = (item: Object): EntityID => - item.id, - method?: RequestMethod = 'GET', - ): Promise> { - const result = await this.__resolve(handler, params, method); - return (result.data || []).map(idSelector); - } - - async __resolve( - handler: OHandler, - params?: ?Object = null, - method?: RequestMethod = 'GET', - ): Promise { - let request; - switch (method) { - case 'DELETE': { - request = handler.remove().save(); - break; - } - case 'PATCH': { - request = handler.patch(params).save(); - break; - } - case 'POST': { - request = handler.post(params).save(); - break; - } - case 'PUT': { - request = handler.put(params).save(); - break; - } - default: { - request = handler.get(); - } - } - - return (request: any).catch((error) => { - // window.console.error(method || 'get', error, handler, params); - throw error; - }); - } -} - -export default BaseODataDAO; diff --git a/src/dao/BeverageDAO.js b/src/dao/BeverageDAO.js deleted file mode 100644 index d082862..0000000 --- a/src/dao/BeverageDAO.js +++ /dev/null @@ -1,109 +0,0 @@ -// @flow - -import type { EntityID, QueryOptions, ShortenedEntity } from '../types'; -import type { Srm } from './SrmDAO'; -import type LoadObject from '../LoadObject'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import BeverageTranslator from '../translators/BeverageTranslator'; -import fetch from '../fetch'; - -export type BeverageType = 'Beer' | 'Cider' | 'Coffee' | 'Soda'; - -export type ServingTemperature = - | 'cellar' - | 'cold' - | 'cool' - | 'hot' - | 'very_cold' - | 'warm'; - -export type Beverage = {| - abv: number, - availability: ?ShortenedEntity, - beerVariationId: ?string, - beverageType: BeverageType, - createDate: Date, - createdBy: {| - id: EntityID, - userName: string, - |}, - description: ?string, - externalId: ?string, - foodPairings: ?string, - glass: ?ShortenedEntity, - ibu: number, - id: EntityID, - isDeleted: boolean, - isOrganic: boolean, - labels: {| - icon: string, - large: string, - medium: string, - |}, - name: string, - originalGravity: ?number, - servingTemperature: ?ServingTemperature, - servingTemperatureDisplay: ?string, - srm: ?Srm, - style: ?ShortenedEntity, - updateDate: Date, - year: ?number, -|}; - -export type BeverageMutator = {| - abv: ?number, - availableId: ?EntityID, - beverageType: BeverageType, - description: ?string, - glasswareId: ?EntityID, - ibu: ?number, - id: ?EntityID, - isOrganic: boolean, - name: string, - originalGravity: ?number, - servingTemperature: ?ServingTemperature, - srmId: ?EntityID, - styleId: ?EntityID, - year: ?number, -|}; - -class BeverageDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGES, - navigationProperties: { - availability: { select: ['id', 'name'] }, - createdBy: { select: ['id', 'userName'] }, - glass: { select: ['id', 'name'] }, - srm: { select: ['hex', 'id', 'name'] }, - style: { select: ['id', 'name'] }, - }, - translator: new BeverageTranslator(), - }); - } - - search(queryOptions: QueryOptions): LoadObject>> { - const funcString = `Default.search()`; - - const handler = this.__buildHandler(queryOptions, false); - handler.func(funcString); - - return this.__fetchCustom(handler, queryOptions, funcString); - } - - // todo move to BeverageImageDAO extends RestDAO ? - uploadImage(beverageId: EntityID, image: string): Promise<*> { - return fetch(`api/v2/beverages/${beverageId}/photo/`, { - body: JSON.stringify({ photo: image }), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'PUT', - }); - } -} - -export default new BeverageDAO(); diff --git a/src/dao/ClientID.js b/src/dao/ClientID.js deleted file mode 100644 index 7bd5bcd..0000000 --- a/src/dao/ClientID.js +++ /dev/null @@ -1,12 +0,0 @@ -// @flow - -class ClientID { - static _clientId: number = 0; - - static getClientId(): string { - ClientID._clientId += 1; - return `CLIENT_ID:${ClientID._clientId.toString()}`; - } -} - -export default ClientID; diff --git a/src/dao/CloudDeviceDAO.js b/src/dao/CloudDeviceDAO.js deleted file mode 100644 index a9f6340..0000000 --- a/src/dao/CloudDeviceDAO.js +++ /dev/null @@ -1,90 +0,0 @@ -// @flow - -import type { CloudEvent } from '../CloudSSEManager'; -import type { EntityID } from '../types'; - -import RestDAO from './RestDAO'; -import CloudSSEManager from '../CloudSSEManager'; - -const DEVICE_ONLINE_STATUS_EVENT_NAME = 'spark/status'; - -export type CloudDevice = {| - cellural: ?boolean, - connected: boolean, - current_build_target: ?string, - functions: Array, - id: EntityID, - imei: ?string, - last_app: ?string, - last_heard: ?Date, - last_iccid: ?string, - last_ip_address: ?string, - name: string, - platform_id: number, - product_firmware_version: ?number, - product_id: ?number, - status: string, - variables: Object, -|}; - -class CloudDeviceDAO extends RestDAO { - _isOnlineStatusListenerToggled: boolean = false; - - constructor() { - super({ entityName: 'cloud-devices' }); - } - - getOne(particleId: string) { - return this.__getOne(`api/v2/cloud-devices/${particleId}/`, particleId, { - reformatError: error => error.error, - }); - } - - flash(particleId: string, file: any) { - return this.__fetchOne(`api/v2/cloud-devices/${particleId}/flash/`, { - body: JSON.stringify({ file, particleId }), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'PUT', - reformatError: error => error.error, - }); - } - - startOnlineStatusListener() { - if (this._isOnlineStatusListenerToggled) { - return; - } - - CloudSSEManager.subscribe(this._onNewCloudSystemEvent, { - eventNamePrefix: 'spark', - }); - } - - stopOnlineStatusListener() { - CloudSSEManager.unsubscribe(this._onNewCloudSystemEvent); - } - - toggleOnlineStatusListener() { - if (!this._isOnlineStatusListenerToggled) { - this.startOnlineStatusListener(); - } else { - this.stopOnlineStatusListener(); - } - } - - _onNewCloudSystemEvent = (cloudEvent: CloudEvent) => { - const { data, name, particleId } = cloudEvent; - if (name !== DEVICE_ONLINE_STATUS_EVENT_NAME) { - return; - } - - this.__updateEntityByID(particleId, cloudDevice => ({ - ...cloudDevice, - connected: data === 'online', - })); - }; -} - -export default new CloudDeviceDAO(); diff --git a/src/dao/DeviceDAO.js b/src/dao/DeviceDAO.js deleted file mode 100644 index a6c0536..0000000 --- a/src/dao/DeviceDAO.js +++ /dev/null @@ -1,104 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type LoadObject from '../LoadObject'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DeviceTranslator from '../translators/DeviceTranslator'; - -export type DeviceStatus = - | 'Active' - | 'Cleaning' - | 'Configure' - | 'Inactive' - | 'Unlocked'; - -export type DeviceType = 'BrewskeyBox' | 'Onsite'; - -export type NFCStatus = 'PhoneOnly' | 'CardOnly' | 'PhoneAndCard' | 'Disabled'; - -export type Device = {| - createdBy: {| id: EntityID, userName: string |}, - deviceStatus: DeviceStatus, - deviceType: DeviceType, - id: EntityID, - isDeleted: boolean, - isScreenDisabled: boolean, - isTotpDisabled: boolean, - lastEdited: Date, - lastEditedBy: { id: EntityID, userName: string }, - ledBrightness: number, - location?: ShortenedEntity, - name: string, - nfcStatus: NFCStatus, - organization: ShortenedEntity, - particleId: string, - secondsToStayOpen: number, - shouldInvertScreen: boolean, - temperature: number, - timeForValveOpen: number, -|}; - -export type DeviceMutator = {| - deviceStatus: DeviceStatus, - deviceType: DeviceType, - id?: EntityID, - isScreenDisabled: boolean, - isTotpDisabled: boolean, - ledBrightness: number, - locationId: ?EntityID, - name: string, - nfcStatus: NFCStatus, - particleId: string, - secondsToStayOpen: number, - shouldInvertScreen: boolean, - timeForValveOpen: number, -|}; - -export type ParticleAttributes = {| - cellular: ?string, - connected: boolean, - currentBuildTarget: ?string, - functions: Array, - id: string, - imei: ?string, - lastApp: ?string, - lastHeard: Date, - lastIccid: ?string, - lastIpAddress: string, - name: string, - platformId: number, - productFirmwareVersion: number, - productId: number, - status: string, -|}; - -class DeviceDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.DEVICES, - navigationProperties: { - createdBy: { select: ['id', 'userName'] }, - lastEditedBy: { select: ['id', 'userName'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - }, - translator: new DeviceTranslator(), - }); - } - - fetchParticleAttributes(deviceID: EntityID): LoadObject { - const funcString = 'Default.particleAttributes()'; - const stringifiedID = deviceID.toString(); - - const handler = this.__buildHandler({}, false).find( - this.__reformatIDValue(stringifiedID), - ); - handler.func(funcString); - - return this.__fetchCustom(handler, {}, `${funcString}${deviceID}`); - } -} - -export default new DeviceDAO(); diff --git a/src/dao/FlowSensorDAO.js b/src/dao/FlowSensorDAO.js deleted file mode 100644 index fc8de6d..0000000 --- a/src/dao/FlowSensorDAO.js +++ /dev/null @@ -1,44 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; -import type { ShortenedTap } from './TapDAO'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type FlowSensorType = - | 'Custom' - | 'FT330' - | 'Sea' - | 'SwissFlowSF800' - | 'Titan'; - -export type FlowSensor = {| - flowSensorType: FlowSensorType, - id: EntityID, - isDeleted: boolean, - pulsesPerGallon: number, - tap: ShortenedTap, -|}; - -export type FlowSensorMutator = {| - flowSensorType: FlowSensorType, - id?: EntityID, - pulsesPerGallon: number, - tapId: EntityID, -|}; - -class FlowSensorDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.FLOW_SENSORS, - navigationProperties: { - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new DefaultTranslator(), - }); - } -} - -export default new FlowSensorDAO(); diff --git a/src/dao/FriendDAO.js b/src/dao/FriendDAO.js deleted file mode 100644 index 662fbca..0000000 --- a/src/dao/FriendDAO.js +++ /dev/null @@ -1,63 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; -import daoFetch from '../fetch'; - -export type FriendStatus = - | 'Approved' - | 'AwaitingApproval' - | 'Blocked' - | 'Pending' - | 'Spam'; - -export type Friend = {| - createdDate: Date, - friendAccount: {| - id: EntityID, - userName: string, - |}, - friendStatus: FriendStatus, - id: EntityID, - owningAccount: {| - id: EntityID, - userName: string, - |}, -|}; - -export const FRIEND_STATUSES: { [key: string]: FriendStatus } = { - APPROVED: 'Approved', - AWAITING_APPROVAL: 'AwaitingApproval', - BLOCKED: 'Blocked', - PENDING: 'Pending', - SPAM: 'Spam', -}; - -class FriendDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.FRIENDS, - navigationProperties: { - friendAccount: { select: ['id', 'userName'] }, - owningAccount: { select: ['id', 'userName'] }, - }, - translator: new DefaultTranslator(), - }); - } - - addFriend(userNameOrEmail: string): Promise<*> { - return daoFetch('api/v2/friends/Default.addByUserName()/', { - body: JSON.stringify({ userName: userNameOrEmail }), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'POST', - }); - } -} - -export default new FriendDAO(); diff --git a/src/dao/GlassDAO.js b/src/dao/GlassDAO.js deleted file mode 100644 index db16205..0000000 --- a/src/dao/GlassDAO.js +++ /dev/null @@ -1,26 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Glass = {| - createDate: Date, - description: ?string, - id: EntityID, - name: string, - updateDate: Date, -|}; - -class GlassDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGE_GLASSES, - translator: new DefaultTranslator(), - }); - } -} - -export default new GlassDAO(); diff --git a/src/dao/KegDAO.js b/src/dao/KegDAO.js deleted file mode 100644 index 2a9d87a..0000000 --- a/src/dao/KegDAO.js +++ /dev/null @@ -1,91 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from './TapDAO'; - -import ODataDAO from './ODataDAO'; -import KegTranslator from '../translators/KegTranslator'; -import LoadObject from '../LoadObject'; -import { DAO_ENTITIES } from '../constants'; -import { createFilter } from '../filters'; - -export type KegType = - | 'Cornelius' - | 'HalfBarrel' - | 'Mini' - | 'QuarterBarrel' - | 'SixthBarrel' - | 'SlimQuarter'; - -export type Keg = {| - beverage: ShortenedEntity, - floatedDate: Date, - id: EntityID, - isDeleted: boolean, - kegType: KegType, - location: ?ShortenedEntity, - maxOunces: number, - organization: ShortenedEntity, - ounces: number, - pulses: number, - tap: ?ShortenedTap, - tapDate: Date, -|}; - -export type KegMutator = {| - beverageId: EntityID, - id?: EntityID, - kegType: KegType, - startingPercentage?: number, - tapId: EntityID, -|}; - -export const MAX_OUNCES_BY_KEG_TYPE: { [KegType]: number } = { - Cornelius: 640, - FiftyLitre: 1690.7, - HalfBarrel: 1984, - Mini: 169, - QuarterBarrel: 992, - SixthBarrel: 661, - SlimQuarter: 992, -}; - -class KegDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.KEGS, - navigationProperties: { - beverage: { select: ['id', 'isDeleted', 'name'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new KegTranslator(), - }); - } - - fetchKegByTapID = (tapId: string): LoadObject>> => - this.fetchMany({ - filters: [createFilter('tap/id').equals(tapId)], - orderBy: [ - { - column: 'tapDate', - direction: 'desc', - }, - ], - take: 1, - }); - - floatKeg(tapID: string): string { - const funcString = 'Default.floatKeg()'; - const stringifiedID = tapID.toString(); - - const handler = this.__buildHandler({}, false) - .find(this.__reformatIDValue(stringifiedID)) - .func(funcString); - - return this.__mutateCustom(handler, 'PUT', tapID, null); - } -} - -export default new KegDAO(); diff --git a/src/dao/LocationDAO.js b/src/dao/LocationDAO.js deleted file mode 100644 index c159f9b..0000000 --- a/src/dao/LocationDAO.js +++ /dev/null @@ -1,65 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import LocationTranslator from '../translators/LocationTranslator'; - -export type Coordinates = { - latitude: number, - longitude: number, -}; - -export type Location = {| - city: string, - createdDate: Date, - description: ?string, - geolocation?: {| - coordinates: Coordinates, - geography: {| - coordinateSystemId: number, - wellKnownBinary: ?Object, - wellKnownText: string, - |}, - |}, - id: EntityID, - isDeleted: boolean, - locationType: string, - name: string, - organization: ShortenedEntity, - squareLocationID: string, - state: ?string, - street: string, - suite: string, - timeZone: string, - zipCode: number, -|}; - -export type LocationMutator = {| - city: string, - description: ?string, - id: ?EntityID, - locationType: string, - name: string, - organizationId?: EntityID, - squareLocationID: string, - state: ?string, - street: string, - suite: string, - zipCode: number, -|}; - -class LocationDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.LOCATIONS, - navigationProperties: { - organization: { select: ['id', 'isDeleted', 'name'] }, - }, - translator: new LocationTranslator(), - }); - } -} - -export default new LocationDAO(); diff --git a/src/dao/ODataDAO.js b/src/dao/ODataDAO.js deleted file mode 100644 index 09d8259..0000000 --- a/src/dao/ODataDAO.js +++ /dev/null @@ -1,818 +0,0 @@ -// @flow - -import type { OHandler } from 'odata'; -import type { EntityID, QueryOptions, RequestMethod } from '../index'; - -import nullthrows from 'nullthrows'; -import debounce from 'debounce'; -import BaseODataDAO from './BaseODataDAO'; -import LoadObject from '../LoadObject'; -import Subscription from './Subscription'; - -const STANDARD_PAGE_SIZE = 40; - -type TEntityBase = {| - ...TEntity, - id: EntityID, -|}; - -class ODataDAO extends BaseODataDAO< - TEntityBase, - TEntityMutator, -> { - static _clientID: number = 0; - - _countLoaderByQuery: Map> = new Map(); - - _entityIDsLoaderByQuery: Map>> = new Map(); - - _customLoaderByQuery: Map> = new Map(); - - _customHandlerByQuery: Map> = new Map(); - - _entityLoaderByID: Map>> = - new Map(); - - // Sets used for tracking current queries - _runFlushCache = null; - - _currentCountQueries: Set = new Set(); - - _currentEntityQueries: Set = new Set(); - - _currentEntityIDsQueries: Set = new Set(); - - _currentCustomQueries: Set = new Set(); - - deleteByID(id: EntityID): EntityID { - const stringifiedID = id.toString(); - const entity = - this._entityLoaderByID.get(stringifiedID) || LoadObject.empty(); - this._entityLoaderByID.set(stringifiedID, entity.deleting()); - - const clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, LoadObject.empty().deleting()); - - this.__emitChanges(); - - this.__resolveSingle( - this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), - /* params */ {}, - 'DELETE', - ) - .then(() => { - this._entityLoaderByID.set(clientID, LoadObject.empty()); - this._entityLoaderByID.set(id, LoadObject.empty()); - this.__emitChanges(); - this._flushQueryCaches(); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(clientID, error); - }); - - return clientID; - } - - count(queryOptions?: QueryOptions): LoadObject { - return this.__countCustom( - (countQueryOptions: QueryOptions): OHandler> => - this.__buildHandler({ ...countQueryOptions }), - queryOptions, - ); - } - - __countCustom( - getOHandler: (baseQueryOptions: QueryOptions) => OHandler<*>, - queryOptions?: QueryOptions = {}, - key?: string = '', - ): LoadObject { - const baseQueryOptions = this._getCountQueryOptions(queryOptions); - - const cacheKey = this._getCacheKey({ - ...baseQueryOptions, - __custom_key__: key, - }); - - this._currentCountQueries.add(cacheKey); - - if (!this._countLoaderByQuery.has(cacheKey)) { - this._hydrateCount(getOHandler, baseQueryOptions, key); - } - - return nullthrows(this._countLoaderByQuery.get(cacheKey)); - } - - getEntitiesCache(): Array>> { - return Array.from(this._entityLoaderByID.values()); - } - - fetchByID(id: EntityID): LoadObject> { - const stringifiedID = id.toString(); - this._currentEntityQueries.add(stringifiedID); - - if (!this._entityLoaderByID.has(stringifiedID)) { - this._hydrateSingle(stringifiedID); - } - - return nullthrows(this._entityLoaderByID.get(stringifiedID)); - } - - fetchByIDs( - ids: Array, - ): Map>> { - const stringifiedIds = ids.map(String); - const idsToLoad = stringifiedIds.filter( - (id: EntityID): boolean => !this._entityLoaderByID.has(id), - ); - - if (idsToLoad.length) { - idsToLoad.forEach((id: EntityID) => { - this._entityLoaderByID.set(id.toString(), LoadObject.loading()); - }); - - // This URI will look like `pours/Default.GetManyByIDs(ids=['58','59'])/` - const handler = this.__buildHandler(); - handler.customParam('ids', idsToLoad.join(',')); - - this.__resolveMany(handler) - .then((results: Array>) => { - const entitiesByID = new Map( - results.map( - ( - item: TEntityBase, - ): [EntityID, TEntityBase] => [item.id, item], - ), - ); - - idsToLoad.forEach((id: EntityID) => { - const entity = entitiesByID.get(id); - if (entity) { - this._updateCacheForEntity(entity, false); - } else { - this._updateCacheForError( - id, - new Error( - `Could not load ${this.getEntityName()} ${id.toString()}`, - ), - ); - } - }); - - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - stringifiedIds.forEach((id: EntityID): void => - this._updateCacheForError(id, error, false), - ); - - this.__emitChanges(); - }); - } - - return new Map( - stringifiedIds.map( - (id: string): [string, LoadObject>] => [ - id, - nullthrows(this._entityLoaderByID.get(id)), - ], - ), - ); - } - - fetchMany( - queryOptions?: QueryOptions = {}, - ): LoadObject>>> { - const cacheKey = this._getCacheKey(queryOptions); - this._currentEntityIDsQueries.add(cacheKey); - - if (!this._entityIDsLoaderByQuery.has(cacheKey)) { - this._hydrateMany(queryOptions); - } - - const countQueryKey = this._getCacheKey({ - ...this._getCountQueryOptions(queryOptions), - __custom_key__: '', - }); - const loader: LoadObject = - this._countLoaderByQuery.get(countQueryKey) || LoadObject.withValue(-1); - - const idsLoader: LoadObject> = nullthrows( - this._entityIDsLoaderByQuery.get(cacheKey), - ); - const resultMapLoader: LoadObject< - Map>>, - > = idsLoader.map((ids) => this.fetchByIDs(ids)); - - const resultsLoader = LoadObject.merge([ - loader, - idsLoader, - resultMapLoader, - ]).map(([count, ids, resultMap]) => { - const entities: Array>> = ids.map( - (id) => resultMap.get(id.toString()) ?? LoadObject.empty(), - ); - - const { take = 100 } = queryOptions; - - const delta = (count % take) - entities.length; - if (count === -1 || entities.length === take || delta <= 0) { - return entities; - } - - const missedLoaders = [...Array(delta)].map(() => - LoadObject.loading>(), - ); - - return [...entities, ...missedLoaders]; - }); - - return resultsLoader; - } - - fetchAll( - queryOptions?: QueryOptions, - ): LoadObject>>> { - return this.count(queryOptions).map((count) => - [...Array(Math.ceil(count / STANDARD_PAGE_SIZE))] - .map((_, index) => { - const skip = STANDARD_PAGE_SIZE * index; - const loader = this.fetchMany({ - ...queryOptions, - skip, - take: STANDARD_PAGE_SIZE, - }); - - const itemLoaders = [ - ...Array(Math.min(STANDARD_PAGE_SIZE, count - skip)), - ]; - - if (loader.isLoading()) { - return itemLoaders.map(() => LoadObject.loading()); - } - - if (loader.hasError()) { - return itemLoaders.map(() => - LoadObject.withError(loader.getErrorEnforcing()), - ); - } - - return loader.getValueEnforcing(); - }) - .flat(), - ); - } - - fetchSingle(queryOptions?: QueryOptions): LoadObject> { - const combinedQueryOptions = { - orderBy: [{ column: 'id', direction: 'desc' }], - ...queryOptions, - take: 1, - }; - - return this.fetchMany(combinedQueryOptions).map( - ( - items: Array>>, - ): LoadObject> => items[0] || LoadObject.empty(), - ); - } - - flushCache() { - this._flushQueryCaches(); - this.__emitChanges(); - } - - flushCacheForEntity(entityID: EntityID) { - this._hydrateSingle(entityID.toString()); - this.__emitChanges(); - } - - flushCustomCache() { - this._flushCustomCache(); - } - - flushQueryCaches() { - this._flushQueryCaches(); - this.__emitChanges(); - } - - patch(id: EntityID, mutator: TEntityMutator): EntityID { - const stringifiedID = id.toString(); - const entity = - this._entityLoaderByID.get(stringifiedID) || LoadObject.empty(); - this._entityLoaderByID.set(stringifiedID, entity.updating()); - - const clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, entity.updating()); - - this.__emitChanges(); - - this.__resolveSingle( - this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), - this.getTranslator().toApi(mutator), - 'PATCH', - ) - .then((result: TEntityBase) => { - this._flushQueryCaches(); - this._updateCacheForEntity(result, false); - this._entityLoaderByID.set( - clientID, - nullthrows(this._entityLoaderByID.get(result.id)), - ); - - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(clientID, error); - }); - - return clientID; - } - - post(mutator: TEntityMutator): EntityID { - const clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, LoadObject.creating()); - this.__resolveSingle( - this.__buildHandler(), - this.getTranslator().toApi(mutator), - 'POST', - ) - .then((result: TEntityBase) => { - this._flushQueryCaches(); - this._updateCacheForEntity(result, false); - // The clientID has a reference to the load object - this._entityLoaderByID.set( - clientID, - nullthrows(this._entityLoaderByID.get(result.id)), - ); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._entityLoaderByID.set(clientID, LoadObject.withError(error)); - this.__emitChanges(); - }); - return clientID; - } - - put(id: EntityID, mutator: TEntityMutator): EntityID { - const stringifiedID = id.toString(); - const entity = - this._entityLoaderByID.get(stringifiedID) || LoadObject.empty(); - this._entityLoaderByID.set(stringifiedID, entity.updating()); - - const clientID = this._getClientID(); - this._entityLoaderByID.set(clientID, entity.updating()); - - this.__emitChanges(); - - this.__resolveSingle( - this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), - this.getTranslator().toApi(mutator), - 'PUT', - ) - .then((result: TEntityBase) => { - this._flushQueryCaches(); - this._updateCacheForEntity(result, false); - // The clientID has a reference to the load object - this._entityLoaderByID.set( - clientID, - nullthrows(this._entityLoaderByID.get(result.id)), - ); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(clientID, error); - }); - - return clientID; - } - - waitForLoaded( - fn: (this) => LoadObject, - timeout?: number, - ): Promise { - return this.waitForLoadedNullable(fn, timeout).then((result) => - nullthrows(result), - ); - } - - waitForLoadedNullable( - fn: (this) => LoadObject, - timeout?: number = 10000, - ): Promise { - return new Promise( - ( - resolve: (response: ?TResponse) => void, - reject: (error: Error) => void, - ) => { - setTimeout((): void => reject(new Error('Timeout!')), timeout); - - const fetchAndResolve = () => { - const fnResult = fn(this); - - // if (fnResult instanceof Map) { - // const entries = Array.from(fnResult.values()); - // if ( - // entries.some(item => - // item instanceof LoadObject ? item.hasOperation() : false, - // ) - // ) { - // return; - // } - - // resolve( - // new Map( - // Array.from(fnResult.entries()).map(([key, value]) => [ - // key, - // value.getValueEnforcing(), - // ]), - // ), - // ); - // this.unsubscribe(fetchAndResolve); - // return; - // } - - const loader: LoadObject = - fnResult instanceof LoadObject - ? fnResult - : LoadObject.withValue(fnResult); - if (loader.hasOperation()) { - return; - } - - const data = loader.getValue(); - if (loader.hasError()) { - reject(loader.getErrorEnforcing()); - return; - } - - if (Array.isArray(data)) { - if ( - data.some((item) => - item instanceof LoadObject ? item.hasOperation() : false, - ) - ) { - return; - } - - resolve( - data.map((item) => - item instanceof LoadObject ? item.getValue() : item, - ), - ); - } else { - resolve(data); - } - - this.unsubscribe(fetchAndResolve); - }; - - this.subscribe(fetchAndResolve); - fetchAndResolve(); - }, - ); - } - - __mutateCustom( - handler: OHandler>, - method: RequestMethod, - id: ?string, - mutator: ?Object = null, - ): string { - let stringifiedID = null; - if (id) { - stringifiedID = id.toString(); - } - - const clientID = this._getClientID(); - - const entity = - this._entityLoaderByID.get(stringifiedID || clientID) || - LoadObject.empty(); - - if (method === 'DELETE') { - this._entityLoaderByID.set(stringifiedID || clientID, entity.deleting()); - } else { - this._entityLoaderByID.set(stringifiedID || clientID, entity.updating()); - } - this.__emitChanges(); - - this.__resolve(handler, mutator, method) - // TODO - We need to rethink how the chache should be changed here.. - // I'm not sure what the expected behavior is for this response. Is it - // standardized? - .then((result: any) => { - if (stringifiedID) { - // We want whatever uses this store to refetch the entity - this._entityLoaderByID.delete(stringifiedID); - } else { - this._updateCacheForEntity(result, false); - this._entityLoaderByID.set( - clientID, - nullthrows(this._entityLoaderByID.get(result.id)), - ); - } - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(stringifiedID || clientID, error); - }); - - return stringifiedID || clientID; - } - - __fetchCustom( - handler: OHandler, - queryOptions?: QueryOptions, - key?: string = '', - ): LoadObject { - const cacheKey = this._getCacheKey({ - ...queryOptions, - __custom_key__: key, - }); - this._currentCustomQueries.add(cacheKey); - this._customHandlerByQuery.set(cacheKey, handler); - - if (!this._customLoaderByQuery.has(cacheKey)) { - this._hydrateCustom(queryOptions, key); - } - - return nullthrows(this._customLoaderByQuery.get(cacheKey)); - } - - _getClientID(): string { - ODataDAO._clientID += 1; - return `CLIENT_ID:${ODataDAO._clientID}`; - } - - _flushQueryCaches() { - if (this._runFlushCache) { - return; - } - - this._currentEntityQueries.clear(); - this._currentCountQueries.clear(); - this._currentCustomQueries.clear(); - this._currentEntityIDsQueries.clear(); - - this._setLoadersToUpdating(this._entityIDsLoaderByQuery); - this._setLoadersToUpdating(this._countLoaderByQuery); - this._setLoadersToUpdating(this._customLoaderByQuery); - - this._runFlushCache = debounce(() => { - Array.from(this._currentEntityQueries) - .filter((id) => id.toString().indexOf('CLIENT_ID:') !== 0) - .forEach((id) => this._hydrateSingle(id.toString(), false)); - - this._entityIDsLoaderByQuery = this._rebuildMap( - this._entityIDsLoaderByQuery, - this._currentEntityIDsQueries, - (queryOptions) => this._hydrateMany(queryOptions), - ); - - this._countLoaderByQuery = this._rebuildMap( - this._countLoaderByQuery, - this._currentCountQueries, - (queryOptions) => - this._hydrateCount( - (countQueryOptions) => - this.__buildHandler({ ...queryOptions, ...countQueryOptions }), - queryOptions, - ), - ); - - this._rehydrateCustom(); - - this._runFlushCache = null; - this.__emitChanges(); - }, 10); - - this._runFlushCache(); - } - - _flushCustomCache() { - if (this._runFlushCache) { - return; - } - - this._currentCountQueries.clear(); - this._currentCustomQueries.clear(); - this._currentEntityIDsQueries.clear(); - - this._setLoadersToUpdating(this._customLoaderByQuery); - this._runFlushCache = debounce(() => { - this._rehydrateCustom(); - - this._runFlushCache = null; - this.__emitChanges(); - }, 10); - - this._runFlushCache(); - } - - _rehydrateCustom() { - const toRemove = []; - this._customHandlerByQuery.forEach((_, key) => { - // Remove any queryies that aren't currently in use - if (!this._currentCustomQueries.has(key)) { - toRemove.push(key); - return; - } - - const { __custom_key__: customKey, ...queryParams } = JSON.parse(key); - this._hydrateCustom(queryParams, customKey); - }); - - toRemove.forEach((key) => { - this._customLoaderByQuery.delete(key); - this._customHandlerByQuery.delete(key); - }); - } - - _setLoadersToUpdating(map: Map>) { - map.forEach((value, key) => map.set(key, value.updating())); - } - - _rebuildMap( - map: Map>, - set: Set, - onUpdate: (queryOptions?: QueryOptions) => void, - ): Map> { - const savedItems = Array.from(set).map((queryOptionString) => { - onUpdate(JSON.parse(queryOptionString.toString())); - - const loader = nullthrows(map.get(queryOptionString)); - return [queryOptionString, loader]; - }); - - return new Map(savedItems); - } - - _hydrateSingle( - stringifiedID: string, - shouldEmitChanges: boolean = true, - ): void { - const initialLoader = this._entityLoaderByID.has(stringifiedID) - ? nullthrows(this._entityLoaderByID.get(stringifiedID)).updating() - : LoadObject.loading(); - - this._entityLoaderByID.set(stringifiedID, initialLoader); - this.__emitChanges(); - this.__resolveSingle( - this.__buildHandler().find(this.__reformatIDValue(stringifiedID)), - ) - .then((result: TEntityBase): void => - this._updateCacheForEntity(result, shouldEmitChanges), - ) - .catch((error: Error) => { - Subscription.__emitError(error); - this._updateCacheForError(stringifiedID, error); - }); - } - - _hydrateMany(queryOptions?: QueryOptions): void { - const cacheKey = this._getCacheKey(queryOptions); - - const initialLoader = this._entityIDsLoaderByQuery.has(cacheKey) - ? nullthrows(this._entityIDsLoaderByQuery.get(cacheKey)).updating() - : LoadObject.loading(); - - this._entityIDsLoaderByQuery.set(cacheKey, initialLoader); - this.__emitChanges(); - - let handler = this.__buildHandler(queryOptions, false); - handler = handler.select('id'); - - this.__resolveManyIDs(handler) - .then((ids: Array) => { - const stringifiedIds = ids.map(String); - this._entityIDsLoaderByQuery.set( - cacheKey, - LoadObject.withValue(stringifiedIds), - ); - this.__emitChanges(); - this.fetchByIDs(stringifiedIds); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - const loader = this._entityIDsLoaderByQuery.get(cacheKey); - this._entityIDsLoaderByQuery.set( - cacheKey, - loader ? loader.setError(error) : LoadObject.withError(error), - ); - this.__emitChanges(); - }); - } - - _hydrateCount( - getOHandler: (baseQueryOptions: QueryOptions) => OHandler<*>, - queryOptions?: QueryOptions, - key?: string = '', - ): void { - const baseQueryOptions = this._getCountQueryOptions(queryOptions); - - const cacheKey = this._getCacheKey({ - ...baseQueryOptions, - __custom_key__: key, - }); - - const initialLoader = this._countLoaderByQuery.has(cacheKey) - ? nullthrows(this._countLoaderByQuery.get(cacheKey)).updating() - : LoadObject.loading(); - - this._countLoaderByQuery.set(cacheKey, initialLoader); - this.__emitChanges(); - - this.__resolve( - getOHandler({ - ...baseQueryOptions, - shouldCount: true, - take: 0, - }), - ) - .then((result: Object) => { - this._countLoaderByQuery.set( - cacheKey, - LoadObject.withValue(result.inlinecount), - ); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - const loader = this._countLoaderByQuery.get(cacheKey); - this._countLoaderByQuery.set( - cacheKey, - loader ? loader.setError(error) : LoadObject.withError(error), - ); - this.__emitChanges(); - }); - } - - _hydrateCustom(queryOptions?: QueryOptions, key?: string = ''): void { - const cacheKey = this._getCacheKey({ - ...queryOptions, - __custom_key__: key, - }); - const initialLoader = this._customLoaderByQuery.has(cacheKey) - ? nullthrows(this._customLoaderByQuery.get(cacheKey)).updating() - : LoadObject.loading(); - - this._customLoaderByQuery.set(cacheKey, initialLoader); - this.__emitChanges(); - - this.__resolve(nullthrows(this._customHandlerByQuery.get(cacheKey))) - .then((result: Object) => { - this._customLoaderByQuery.set( - cacheKey, - LoadObject.withValue(result.data), - ); - this.__emitChanges(); - }) - .catch((error: Error) => { - Subscription.__emitError(error); - this._customLoaderByQuery.set(cacheKey, LoadObject.withError(error)); - this.__emitChanges(); - }); - } - - _getCacheKey(queryOptions?: QueryOptions): string { - return JSON.stringify(queryOptions || '_'); - } - - _getCountQueryOptions(queryOptions?: QueryOptions = {}): QueryOptions { - const { orderBy, skip, take, ...countQueryOptions } = queryOptions; - return (countQueryOptions: any); - } - - _updateCacheForEntity( - entity: TEntityBase, - shouldEmitChanges: boolean = true, - ) { - this._entityLoaderByID.set( - entity.id.toString(), - LoadObject.withValue(entity), - ); - if (shouldEmitChanges) { - this.__emitChanges(); - } - } - - _updateCacheForError( - id: EntityID, - error: Error, - shouldEmitChanges: boolean = true, - ) { - this._entityLoaderByID.set(id.toString(), LoadObject.withError(error)); - if (shouldEmitChanges) { - this.__emitChanges(); - } - } -} - -export default ODataDAO; diff --git a/src/dao/OrganizationDAO.js b/src/dao/OrganizationDAO.js deleted file mode 100644 index 6ba4737..0000000 --- a/src/dao/OrganizationDAO.js +++ /dev/null @@ -1,78 +0,0 @@ -// @flow -import type { EntityID, QueryOptions } from '../types'; -import type LoadObject from '../LoadObject'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Organization = {| - canEnablePayments: boolean, - createdDate: Date, - id: EntityID, - isDeleted: boolean, - name: string, -|}; - -export type OrganizationMutator = {| - id?: EntityID, - name: string, -|}; - -export type SquareLocation = {| - locationID: string, - name: string, -|}; - -class OrganizationDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.ORGANIZATIONS, - translator: new DefaultTranslator(), - }); - } - - fetchWithPayments( - queryOptions: QueryOptions, - ): LoadObject>> { - const funcString = `Default.withPayments()`; - - const handler = this.__buildHandler(queryOptions, false); - handler.func(funcString); - - return this.__fetchCustom(handler, queryOptions, funcString); - } - - fetchSquareLocations( - organizationID: EntityID, - queryOptions?: QueryOptions, - ): LoadObject> { - const funcString = `Default.fetchSquareLocations()`; - const stringifiedID = organizationID.toString(); - - const handler = this.__buildHandler(queryOptions, false).find( - this.__reformatIDValue(stringifiedID), - ); - handler.func(funcString); - - return this.__fetchCustom(handler, queryOptions, funcString); - } - - deauthorizeOAuthIntegration( - organizationID: string, - partner: string = 'Square', - ): string { - const funcString = 'Default.deauthorizeOAuthIntegration()'; - const stringifiedID = organizationID.toString(); - - const handler = this.__buildHandler({}, false) - .find(this.__reformatIDValue(stringifiedID)) - .func(funcString); - - return this.__mutateCustom(handler, 'POST', stringifiedID, { - partner, - }); - } -} - -export default new OrganizationDAO(); diff --git a/src/dao/PaymentsDAO.js b/src/dao/PaymentsDAO.js deleted file mode 100644 index 902ef41..0000000 --- a/src/dao/PaymentsDAO.js +++ /dev/null @@ -1,43 +0,0 @@ -// @flow - -import RestDAO from './RestDAO'; - -export type CreditCardDetails = {| - brand: string, - expirationMonth: number, - expirationYear: number, - last4: string, -|}; - -export type CreditCardDetailsMutator = {| - token: string, -|}; - -class PaymentsDAO extends RestDAO { - constructor() { - super({ entityName: 'payments' }); - } - - get() { - return this.__getOne(`api/v2/payments/`, 'mine', { - reformatError: error => error.error, - }); - } - - // Only FinancialAdministrator can call this - getOneForAccount(userName: string) { - return this.__getOne(`api/v2/payments/${userName}/`, userName, { - reformatError: error => error.error, - }); - } - - addPaymentMethod(token: string) { - return this.__put(`api/v2/payments/`, 'mine', { token }); - } - - removePaymentMethod(id: string = 'mine') { - return this.__delete('api/v2/payments/', id); - } -} - -export default new PaymentsDAO(); diff --git a/src/dao/PermissionDAO.js b/src/dao/PermissionDAO.js deleted file mode 100644 index 0dc70df..0000000 --- a/src/dao/PermissionDAO.js +++ /dev/null @@ -1,71 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from './TapDAO'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import PermissionTranslator from '../translators/PermissionTranslator'; - -export type PermissionEntityType = - | 'devices' - | 'locations' - | 'organizations' - | 'taps'; - -export type PermissionType = - | 'Administrator' - | 'Edit' - | 'Read' - | 'BannedFromTap'; - -export type Permission = {| - createdBy: {| - id: EntityID, - userName: string, - |}, - createdDate: Date, - device: ?ShortenedEntity, - expiresDate: ?Date, - forUser: {| - id: EntityID, - userName: string, - |}, - id: EntityID, - invalid: boolean, - isDeleted: boolean, - location: ?ShortenedEntity, - organization: ?ShortenedEntity, - permissionType: PermissionType, - startDate: ?Date, - tap: ?ShortenedTap, -|}; - -export type PermissionMutator = { - entityId: EntityID, - entityType: PermissionEntityType, - expiresDate: ?Date, - id: ?EntityID, - permissionType: PermissionType, - startDate: ?Date, - userId: EntityID, -}; - -class PermissionDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.PERMISSIONS, - navigationProperties: { - createdBy: { select: ['id', 'userName'] }, - device: { select: ['id', 'isDeleted', 'name'] }, - forUser: { select: ['id', 'userName'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new PermissionTranslator(), - }); - } -} - -export default new PermissionDAO(); diff --git a/src/dao/PourChartDAO.js b/src/dao/PourChartDAO.js deleted file mode 100644 index 6cae7d4..0000000 --- a/src/dao/PourChartDAO.js +++ /dev/null @@ -1,51 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; -import type LoadObject from '../LoadObject'; - -import RestDAO from './RestDAO'; -import qs from 'qs'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type PourChartByEntity = 'device' | 'location' | 'organization' | 'tap'; - -export type PourChartType = 'daily' | 'hourly' | 'timeline'; - -export type PourChartParams = {| - beginDate?: ?Date, - byEntity: PourChartByEntity, - chartType: PourChartType, - endDate?: ?Date, - ids?: Array, -|}; - -export type PourChartResult = {| - entityResults: Array<{| key: string, name: string |}>, - resultSegments: Array<{| - dataSets: Array<{ key: string, value: number }>, - key: string, - |}>, -|}; - -class PourChartDAO extends RestDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.POUR_CHART, - translator: new DefaultTranslator(), - }); - } - - fetchChartData = (params: PourChartParams): LoadObject => { - const queryString = qs.stringify( - { - ...params, - ids: params.ids ? params.ids.join(',') : null, - }, - { skipNulls: true }, - ); - return this.__getOne(`api/v2/chart/GetChart/?${queryString}`, queryString); - }; -} - -export default new PourChartDAO(); diff --git a/src/dao/PourDAO.js b/src/dao/PourDAO.js deleted file mode 100644 index ffad36a..0000000 --- a/src/dao/PourDAO.js +++ /dev/null @@ -1,115 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from './TapDAO'; -import type LoadObject from '../LoadObject'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import PourTranslator from '../translators/PourTranslator'; -import Signalr from '../signalr'; -import debounce from 'debounce'; - -const POURS_ACCUMULATE_TIMEOUT = 700; - -export type Pour = {| - beverage: ?ShortenedEntity, - id: EntityID, - isDeleted: boolean, - keg: {| id: EntityID |}, - location: ?ShortenedEntity, - organization: ShortenedEntity, - ounces: number, - owner: {| id: EntityID, userName: string |}, - pourDate: string, - pulses: number, - tap: ?ShortenedTap, -|}; - -class PourDAO extends ODataDAO { - isAutoflushToggled: boolean = true; - - _accumulatedIds: Set = new Set(); - - constructor() { - super({ - entityName: DAO_ENTITIES.POURS, - navigationProperties: { - beverage: { select: ['id', 'isDeleted', 'name'] }, - device: { select: ['id', 'isDeleted', 'name'] }, - keg: { select: ['id'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - owner: { select: ['id', 'userName'] }, - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new PourTranslator(), - }); - - Signalr.TapHub.registerListener('newPour', this._onNewPour); - } - - getPoursByBeverageIDs( - beverageIDs: Array, - userID?: EntityID, - ): LoadObject> { - const filters = [ - `beverage/id in (${beverageIDs.join(', ')})`, - userID != null ? `owner/id eq '${userID}'` : null, - `isDeleted eq false`, - ].filter(Boolean); - const queryOptions = { - apply: `filter((${filters.join( - ') and (', - )}))/groupby((beverage/id),aggregate(ounces with sum as total))`, - shouldIgnoreOrganizationID: true, - }; - return this.__fetchCustom( - this.__buildHandler(queryOptions, false), - queryOptions, - ).map( - (results) => - new Map( - results.map((item) => [item.beverage.id.toString(), item.total]), - ), - ); - } - - startAutoflush = () => { - if (this.isAutoflushToggled) { - return; - } - this.flushQueryCaches(); - this.isAutoflushToggled = true; - }; - - stopAutoflush = () => { - this.isAutoflushToggled = false; - }; - - toggleAutoflush = () => { - if (this.isAutoflushToggled) { - this.stopAutoflush(); - } else { - this.startAutoflush(); - } - }; - - _onNewPourDebounced = debounce(() => { - this.fetchByIDs(Array.from(this._accumulatedIds)); - - if (this.isAutoflushToggled) { - this._accumulatedIds.forEach((id) => this.flushCacheForEntity(id)); - this.flushQueryCaches(); - } - - this._accumulatedIds.clear(); - }, POURS_ACCUMULATE_TIMEOUT); - - _onNewPour = (pourId: EntityID) => { - this._accumulatedIds.add(pourId); - this._onNewPourDebounced(); - }; -} - -export default new PourDAO(); diff --git a/src/dao/PriceVariantDAO.js b/src/dao/PriceVariantDAO.js deleted file mode 100644 index 4d391b2..0000000 --- a/src/dao/PriceVariantDAO.js +++ /dev/null @@ -1,35 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type PriceVariant = {| - id: EntityID, - ounces: number, - price: number, - tap: ShortenedEntity, -|}; - -export type PriceVariantMutator = {| - id: ?EntityID, - ounces: number, - price: number, - tapId: EntityID, -|}; - -class PriceVariantDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.PRICE_VARIANTS, - navigationProperties: { - tap: { select: ['id', 'isDeleted'] }, - }, - translator: new DefaultTranslator(), - }); - } -} - -export default new PriceVariantDAO(); diff --git a/src/dao/ProductDAO.js b/src/dao/ProductDAO.js deleted file mode 100644 index 2219e61..0000000 --- a/src/dao/ProductDAO.js +++ /dev/null @@ -1,78 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import RestDAO from './RestDAO'; - -export type ProductPlatformId = '0' | '6' | '8' | '10' | '103'; - -export type ProductPlatformName = - | 'Bluz' - | 'Core' - | 'Electron' - | 'P1' - | 'Photon'; - -export type ProductType = 'Consumer' | 'Industrial' | 'Hobbyist'; - -export type Product = {| - configId: string, - createdAt: Date, - description: string, - hardwareVersion: string, - id: EntityID, - name: string, - organization: string, - platformId: ProductPlatformId, - slug: string, - type: ProductType, -|}; - -export const PLATFORM_NAME_BY_ID: { - [key: ProductPlatformId]: ProductPlatformName, -} = { - '0': 'Core', - '10': 'Electron', - '103': 'Bluz', - '6': 'Photon', - '8': 'P1', -}; - -export const PRODUCT_TYPES: Array = [ - 'Consumer', - 'Hobbyist', - 'Industrial', -]; - -class ProductDAO extends RestDAO { - constructor() { - super({ entityName: 'products' }); - } - - count() { - return this.__count('api/v2/products/count'); - } - - getMany(queryOptions?: Object = {}) { - const { skip, take } = queryOptions; - return this.__getMany(`api/v2/products/?skip=${skip}&take=${take}`); - } - - getOne(idOrSlug: string) { - return this.__getOne(`api/v2/products/${idOrSlug}/`, idOrSlug); - } - - post(mutator: any) { - return this.__post('api/v2/products/', mutator); - } - - put(id: string, mutator: any) { - return this.__put(`api/v2/products/${id}/`, id, mutator); - } - - delete(idOrSlug: string) { - return this.__delete(`api/v2/products/${idOrSlug}`, idOrSlug); - } -} - -export default new ProductDAO(); diff --git a/src/dao/ProductDeviceDAO.js b/src/dao/ProductDeviceDAO.js deleted file mode 100644 index e2f5257..0000000 --- a/src/dao/ProductDeviceDAO.js +++ /dev/null @@ -1,89 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import RestDAO from './RestDAO'; - -export type ProductDevice = {| - denied: boolean, - desiredFirmwareVersion: ?number, - development: boolean, - functions: Array, - id: EntityID, - lastHeard: Date, - lastIpAddress: string, - name: string, - notes: string, - platformId: string, - productId: string, - quarantined: boolean, - status: string, - variables: ?Object, -|}; - -export type ProductDeviceMutator = {| - denied?: boolean, - desiredFirmwareVersion?: ?number, - development?: boolean, - notes?: ?string, - quarantined?: boolean, -|}; - -class ProductDeviceDAO extends RestDAO { - constructor() { - super({ entityName: 'product-devices' }); - } - - count(productIdOrSlug: string) { - return this.__count(`api/v2/products/${productIdOrSlug}/devices/count`); - } - - getMany(productIdOrSlug: string, queryOptions?: Object = {}) { - const { skip, take } = queryOptions; - return this.__getMany( - `api/v2/products/${productIdOrSlug}/devices/?skip=${skip}&take=${take}`, - ); - } - - getOne(productIdOrSlug: string, particleId: string) { - return this.__getOne( - `api/v2/products/${productIdOrSlug}/devices/${particleId}/`, - particleId, - ); - } - - addToProduct(productIdOrSlug: string, payload: any) { - const { file, particleId } = payload; - return this.__fetchOne(`api/v2/products/${productIdOrSlug}/devices/`, { - body: JSON.stringify({ - file, - importMethod: file ? 'many' : 'one', - particleId, - }), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'POST', - reformatError: error => - `invalid device ids: ${error.invalidDeviceIds.join(', ')}`, - }); - } - - put(productIdOrSlug: string, particleId: string, deviceMutator: any) { - return this.__put( - `api/v2/products/${productIdOrSlug}/devices/${particleId}/`, - particleId, - deviceMutator, - ); - } - - delete(productIdOrSlug: string, particleId: string) { - return this.__delete( - `api/v2/products/${productIdOrSlug}/devices/${particleId}`, - particleId, - ); - } -} - -export default new ProductDeviceDAO(); diff --git a/src/dao/ProductFirmwareDAO.js b/src/dao/ProductFirmwareDAO.js deleted file mode 100644 index 8d04650..0000000 --- a/src/dao/ProductFirmwareDAO.js +++ /dev/null @@ -1,89 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import RestDAO from './RestDAO'; - -export type ProductFirmware = {| - current: boolean, - description?: string, - deviceCount: number, - id: EntityID, - name: string, - productId: string, - size: number, - title: string, - updatedAt: Date, - version: number, -|}; - -export type ProductFirmwareMutator = {| - binary?: Buffer, - description?: string, - isCurrent?: boolean, - title?: string, - version?: string, -|}; - -class ProductFirmwareDAO extends RestDAO< - ProductFirmware, - ProductFirmwareMutator, -> { - constructor() { - super({ entityName: 'product-firmwares' }); - } - - count(productIdOrSlug: string) { - return this.__count(`api/v2/products/${productIdOrSlug}/firmwares/count`); - } - - getOne(productIdOrSlug: string, id: EntityID) { - return this.__getOne( - `api/v2/products/${productIdOrSlug}/firmwares/${id}/`, - id, - ); - } - - getMany(productIdOrSlug: string, queryOptions?: Object = {}) { - const { skip, take } = queryOptions; - return this.__getMany( - `api/v2/products/${productIdOrSlug}/firmwares/?skip=${skip}&take=${take}`, - ); - } - - post(productIdOrSlug: string, mutator: any) { - return this.__post( - `api/v2/products/${productIdOrSlug}/firmwares/`, - mutator, - { - reformatError: error => error.error, - }, - ); - } - - updateProductFirmware( - productIdOrSlug: string, - firmwareId: EntityID, - firmwareVersion: number, - mutator: ProductFirmwareMutator, - ) { - return this.__put( - `api/v2/products/${productIdOrSlug}/firmwares/${firmwareVersion}`, - firmwareId, - mutator, - ); - } - - delete( - productIdOrSlug: string, - firmwareId: EntityID, - firmwareVersion: number, - ) { - return this.__delete( - `api/v2/products/${productIdOrSlug}/firmwares/${firmwareVersion}/`, - firmwareId, - ); - } -} - -export default new ProductFirmwareDAO(); diff --git a/src/dao/ReportDAO.js b/src/dao/ReportDAO.js deleted file mode 100644 index 2b65783..0000000 --- a/src/dao/ReportDAO.js +++ /dev/null @@ -1,56 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from './TapDAO'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import ReportTranslator from '../translators/ReportTranslator'; - -export type Report = {| - createdDate: Date, - devices: Array, - id: EntityID, - isDeleted: boolean, - lastEdited: Date, - locations: Array, - name: string, - reportCadence: ReportCadence, - reportCadenceTimeStamp: Date, - sendToEmails: Array, - taps: Array, -|}; - -export type ReportMutator = {| - devices?: Array, - id?: EntityID, - locations?: Array, - name: string, - reportCadence: ReportCadence, - reportCadenceTimeStamp: Date, - sendToEmails: Array<{ email: string }>, - taps?: Array, -|}; - -export type ReportCadence = - | 'OneTime' - | 'Daily' - | 'Weekly' - | 'Biweekly' - | 'Monthly'; - -class ReportDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.REPORTS, - navigationProperties: { - devices: { select: ['id', 'isDeleted', 'name'] }, - locations: { select: ['id', 'isDeleted', 'name'] }, - taps: { select: ['id', 'isDeleted'] }, - }, - translator: new ReportTranslator(), - }); - } -} - -export default new ReportDAO(); diff --git a/src/dao/RestDAO.js b/src/dao/RestDAO.js deleted file mode 100644 index 5a53d1a..0000000 --- a/src/dao/RestDAO.js +++ /dev/null @@ -1,382 +0,0 @@ -// @flow - -import type { EntityID, EntityName } from '../index'; - -import nullthrows from 'nullthrows'; -import ClientID from './ClientID'; -import Subscription from './Subscription'; -import LoadObject from '../LoadObject'; -import fetch from '../fetch'; - -class RestDAO extends Subscription { - _countLoaderByQuery: Map> = new Map(); - - _entityLoaderById: Map> = new Map(); - - _entityIdsLoaderByQuery: Map>> = new Map(); - - _entityName: EntityName; - - constructor({ entityName }: { entityName: EntityName }) { - super(); - this._entityName = entityName; - } - - getEntityName(): EntityName { - return this._entityName; - } - - __updateEntityByID(id: EntityID, cb: (TEntity) => TEntity): void { - const stringifiedId = id.toString(); - const loader = this._entityLoaderById.get(stringifiedId); - if (!loader) { - return; - } - - this._entityLoaderById.set(stringifiedId, loader.map(cb)); - this.__emitChanges(); - } - - __count( - path: string, - queryParams?: TQueryParams, - ): LoadObject { - const cacheKey = this.__getCacheKey(path, queryParams); - - if (!this._countLoaderByQuery.has(cacheKey)) { - this._countLoaderByQuery.set(cacheKey, LoadObject.loading()); - this.__emitChanges(); - - fetch(path, { method: 'GET', ...queryParams }) - .then((countResult: ?number) => { - this._countLoaderByQuery.set( - cacheKey, - LoadObject.withValue(nullthrows(countResult)), - ); - this.__emitChanges(); - }) - .catch((error) => { - Subscription.__emitError(error); - this._countLoaderByQuery.set(cacheKey, LoadObject.withError(error)); - this.__emitChanges(); - }); - } - - return nullthrows(this._countLoaderByQuery.get(cacheKey)); - } - - __getMany( - path: string, - queryParams?: TQueryParams, - ): LoadObject>> { - const cacheKey = this.__getCacheKey(path, queryParams); - - if (!this._entityIdsLoaderByQuery.has(cacheKey)) { - this._entityIdsLoaderByQuery.set(cacheKey, LoadObject.loading()); - this.__emitChanges(); - - fetch(path, { method: 'GET', ...queryParams }) - .then((items) => { - const ids = nullthrows(items).map(({ id }) => id.toString()); - - nullthrows(items).forEach((item) => - this._entityLoaderById.set( - item.id.toString(), - LoadObject.withValue(item), - ), - ); - - this._entityIdsLoaderByQuery.set(cacheKey, LoadObject.withValue(ids)); - this.__emitChanges(); - }) - .catch((error) => { - Subscription.__emitError(error); - this._entityIdsLoaderByQuery.set( - cacheKey, - LoadObject.withError(error), - ); - this.__emitChanges(); - }); - } - - const result = nullthrows(this._entityIdsLoaderByQuery.get(cacheKey)).map( - (ids) => - ids.map((id) => { - const loader: LoadObject = nullthrows( - this._entityLoaderById.get(id.toString()), - ); - return loader; - }), - ); - - return result; - } - - __getOne( - path: string, - id: EntityID, - queryParams?: TQueryParams, - ): LoadObject { - const stringifiedId = id.toString(); - - if (!this._entityLoaderById.has(stringifiedId)) { - this._entityLoaderById.set(stringifiedId, LoadObject.loading()); - this.__emitChanges(); - - fetch(path, { - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'GET', - ...queryParams, - }) - .then((result) => { - this._entityLoaderById.set( - stringifiedId, - LoadObject.withValue(result), - ); - this.__emitChanges(); - }) - .catch((error) => { - Subscription.__emitError(error); - this._entityLoaderById.set( - stringifiedId, - LoadObject.withError(error), - ); - this.__emitChanges(); - }); - } - - return nullthrows(this._entityLoaderById.get(stringifiedId)); - } - - __fetchOne( - path: string, - queryParams?: TQueryParams, - ): string { - const clientId = ClientID.getClientId(); - - this._entityLoaderById.set(clientId, LoadObject.loading()); - this.__emitChanges(); - - fetch(path, { method: 'GET', ...queryParams }) - .then((result) => { - this._entityLoaderById.set(clientId, LoadObject.withValue(result)); - this.__emitChanges(); - }) - .catch((error) => { - Subscription.__emitError(error); - this._entityLoaderById.set(clientId, LoadObject.withError(error)); - this.__emitChanges(); - }); - - return clientId; - } - - __post( - path: string, - mutator: any, - queryParams?: TQueryParams, - ): string { - const clientId = ClientID.getClientId(); - this._entityLoaderById.set(clientId, LoadObject.creating()); - this.__emitChanges(); - - fetch(path, { - body: JSON.stringify(mutator), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - method: 'POST', - ...queryParams, - }) - .then((item) => { - this._flushQueryCaches(); - this._entityLoaderById.set( - nullthrows(item).id, - LoadObject.withValue(nullthrows(item)), - ); - this._entityLoaderById.set( - clientId, - nullthrows(this._entityLoaderById.get(nullthrows(item).id)), - ); - this.__emitChanges(); - }) - .catch((error) => { - Subscription.__emitError(error); - this._entityLoaderById.set(clientId, LoadObject.withError(error)); - this.__emitChanges(); - }); - - return clientId; - } - - __put( - path: string, - id: EntityID, - mutator: TEntityMutator, - queryParams?: TQueryParams, - ) { - const stringifiedID = id.toString(); - const entity = - this._entityLoaderById.get(stringifiedID) || LoadObject.empty(); - this._entityLoaderById.set(stringifiedID, entity.updating()); - - const clientId = ClientID.getClientId(); - this._entityLoaderById.set(clientId, entity.updating()); - - this.__emitChanges(); - - fetch(path, { - body: JSON.stringify(mutator), - headers: [ - { name: 'Accept', value: 'application/json' }, - { name: 'Content-Type', value: 'application/json' }, - ], - ...queryParams, - method: 'PUT', - }) - .then((item) => { - this._flushQueryCaches(); - this._entityLoaderById.set(stringifiedID, LoadObject.withValue(item)); - this._entityLoaderById.set( - clientId, - nullthrows(this._entityLoaderById.get(stringifiedID)), - ); - this.__emitChanges(); - }) - .catch((error) => { - Subscription.__emitError(error); - this._entityLoaderById.set(clientId, LoadObject.withError(error)); - this.__emitChanges(); - }); - - return clientId; - } - - __delete( - path: string, - id: EntityID, - queryParams?: TQueryParams, - ) { - const clientId = ClientID.getClientId(); - const stringifiedId = id.toString(); - - const entity = - this._entityLoaderById.get(stringifiedId) || LoadObject.empty(); - this._entityLoaderById.set(stringifiedId, entity.deleting()); - - this._entityLoaderById.set(clientId, LoadObject.empty().deleting()); - this.__emitChanges(); - - fetch(path, { method: 'DELETE', ...queryParams }) - .then(() => { - this._entityLoaderById.set(clientId, LoadObject.empty()); - this._entityLoaderById.set(stringifiedId, LoadObject.empty()); - this._flushQueryCaches(); - this.__emitChanges(); - }) - .catch((error) => { - Subscription.__emitError(error); - this._entityLoaderById.set(clientId, LoadObject.withError(error)); - this.__emitChanges(); - }); - - return clientId; - } - - flushCustomCache() {} - - flushCache() { - this._entityLoaderById = new Map(); - this._flushQueryCaches(); - this.__emitChanges(); - } - - flushCacheForEntity(entityId: EntityID) { - this._entityLoaderById.delete(entityId); - this.__emitChanges(); - } - - flushQueryCaches() { - this._flushQueryCaches(); - this.__emitChanges(); - } - - waitForLoaded( - fn: (this) => LoadObject, - timeout?: number, - ): Promise { - return this.waitForLoadedNullable(fn, timeout).then((result) => - nullthrows(result), - ); - } - - waitForLoadedNullable( - fn: (this) => LoadObject, - timeout?: number = 10000, - ): Promise { - return new Promise( - ( - resolve: (response: ?TResponse) => void, - reject: (error: Error) => void, - ) => { - setTimeout((): void => reject(new Error('Timeout!')), timeout); - - const fetchAndResolve = () => { - let loader = fn(this); - if (loader.hasOperation()) { - return; - } - - loader = loader.map((result) => { - if (!Array.isArray(result)) { - return result; - } - - if ( - result.some((item) => - item instanceof LoadObject ? item.hasOperation() : false, - ) - ) { - return LoadObject.loading(); - } - - return result.map((item) => - item instanceof LoadObject ? item.getValue() : item, - ); - }); - - if (loader.hasOperation()) { - return; - } - - this.unsubscribe(fetchAndResolve); - - if (loader.hasError()) { - reject(loader.getErrorEnforcing()); - return; - } - - resolve(loader.getValue()); - }; - - this.subscribe(fetchAndResolve); - fetchAndResolve(); - }, - ); - } - - _flushQueryCaches() { - this._entityIdsLoaderByQuery = new Map(); - this._countLoaderByQuery = new Map(); - } - - __getCacheKey(path: string, queryParams?: Object): string { - return path + JSON.stringify(queryParams || '_'); - } -} - -export default RestDAO; diff --git a/src/dao/ScheduleDAO.js b/src/dao/ScheduleDAO.js deleted file mode 100644 index 1b7f887..0000000 --- a/src/dao/ScheduleDAO.js +++ /dev/null @@ -1,51 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import ScheduleTranslator from '../translators/ScheduleTranslator'; - -export type Schedule = {| - accounts: Array<{| - id: EntityID, - userName: string, - |}>, - createdDate: Date, - days: number, - editDate: Date, - endTime: Date, - id: EntityID, - isDeleted: boolean, - location: ?ShortenedEntity, - name: string, - startTime: Date, -|}; - -export type ScheduleMutator = {| - accounts: Array<{| - id: EntityID, - userName: string, - |}>, - days: number, - endTime: Date, - id: ?EntityID, - locationId: ?string, - name: string, - startTime: Date, -|}; - -class ScheduleDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.SCHEDULES, - navigationProperties: { - accounts: { select: ['id', 'userName'] }, - locations: { select: ['id', 'isDeleted', 'name'] }, - }, - translator: new ScheduleTranslator(), - }); - } -} - -export default new ScheduleDAO(); diff --git a/src/dao/SrmDAO.js b/src/dao/SrmDAO.js deleted file mode 100644 index 9449f55..0000000 --- a/src/dao/SrmDAO.js +++ /dev/null @@ -1,24 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Srm = {| - hex: string, - id: EntityID, - name: string, -|}; - -class SrmDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGE_SRMS, - translator: new DefaultTranslator(), - }); - } -} - -export default new SrmDAO(); diff --git a/src/dao/StyleDAO.js b/src/dao/StyleDAO.js deleted file mode 100644 index 0d11cb9..0000000 --- a/src/dao/StyleDAO.js +++ /dev/null @@ -1,36 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import DefaultTranslator from '../translators/DefaultTranslator'; - -export type Style = {| - abvMax: number, - abvMin: number, - createDate: Date, - description: ?string, - fgMax: number, - fgMin: number, - ibuMax: number, - ibuMin: number, - id: EntityID, - name: string, - ogMax: number, - ogMin: number, - srmMax: number, - srmMin: number, - updateDate: Date, -|}; - -class StyleDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.BEVERAGE_STYLES, - translator: new DefaultTranslator(), - }); - } -} - -export default new StyleDAO(); diff --git a/src/dao/Subscription.js b/src/dao/Subscription.js deleted file mode 100644 index 5e58e1f..0000000 --- a/src/dao/Subscription.js +++ /dev/null @@ -1,33 +0,0 @@ -// @flow - -export type ErrorHandler = (error: Error) => void; - -class Subscription { - static _errorSubscriptions: Set = new Set(); - - static onError = (handler: ErrorHandler) => { - Subscription._errorSubscriptions.add(handler); - }; - - static __emitError(error: Error) { - Subscription._errorSubscriptions.forEach((handler: ErrorHandler) => - handler(error), - ); - } - - _dataSubscriptions: Set<() => void> = new Set(); - - subscribe(handler: () => void) { - this._dataSubscriptions.add(handler); - } - - unsubscribe(handler: () => void) { - this._dataSubscriptions.delete(handler); - } - - __emitChanges() { - this._dataSubscriptions.forEach((handler: () => void) => handler()); - } -} - -export default Subscription; diff --git a/src/dao/TapDAO.js b/src/dao/TapDAO.js deleted file mode 100644 index 3ca17af..0000000 --- a/src/dao/TapDAO.js +++ /dev/null @@ -1,118 +0,0 @@ -// @flow - -import type { OHandler } from 'odata'; -import type LoadObject from '../LoadObject'; -import type { EntityID, QueryOptions, ShortenedEntity } from '../types'; -import type { KegType } from './KegDAO'; - -import ODataDAO from './ODataDAO'; -import { DAO_ENTITIES } from '../constants'; -import TapTranslator from '../translators/TapTranslator'; - -export type LeaderboardItem = {| - lastPourDate: Date, - totalOunces: number, - totalPours: number, - userID: ?EntityID, - userName: ?string, -|}; - -export type CurrentKeg = {| - beverage: {| id: string, name: string |}, - id: string, - kegType: KegType, - maxOunces: number, - ounces: number, -|}; - -export type Tap = {| - createdDate: Date, - currentKeg: CurrentKeg, - description: ?string, - device: ShortenedEntity, - disableBadges: boolean, - hideLeaderboard: boolean, - hideStats: boolean, - id: EntityID, - isPaymentEnabled: boolean, - location: ?ShortenedEntity, - organization: ShortenedEntity, - requiresPourPrivilege: boolean, - tapNumber: number, -|}; - -export type TapMutator = {| - description: ?string, - deviceId: ?EntityID, - disableBadges: boolean, - hideLeaderboard: boolean, - hideStats: boolean, - id: ?EntityID, - isPaymentEnabled: boolean, - locationId: ?EntityID, - requiresPourPrivilege: boolean, -|}; - -export type ShortenedTap = {| id: EntityID, isDeleted: boolean |}; - -class TapDAO extends ODataDAO { - constructor() { - super({ - entityName: DAO_ENTITIES.TAPS, - navigationProperties: { - currentKeg: { - expand: { beverage: { select: ['id', 'name'] } }, - select: ['id', 'kegType', 'maxOunces', 'ounces'], - }, - device: { select: ['id', 'isDeleted', 'name'] }, - location: { select: ['id', 'isDeleted', 'name'] }, - organization: { select: ['id', 'isDeleted', 'name'] }, - }, - translator: new TapTranslator(), - }); - } - - countLeaderboard( - tapID: EntityID, - duration: string, - queryOptions?: QueryOptions, - ): LoadObject { - const funcString = `Default.leaderboard(timeSpan=duration'${duration}')`; - const stringifiedID = tapID.toString(); - - return this.__countCustom( - (countQueryOptions: QueryOptions): OHandler => { - const handler = this.__buildHandler( - { - ...queryOptions, - ...countQueryOptions, - }, - false, - ).find(this.__reformatIDValue(stringifiedID)); - handler.func(funcString); - - return handler; - }, - queryOptions, - funcString, - ); - } - - fetchLeaderboard( - tapID: EntityID, - duration: string, - queryOptions?: QueryOptions, - ): LoadObject> { - const funcString = `Default.leaderboard(timeSpan=duration'${duration}')`; - const stringifiedID = tapID.toString(); - - const handler = this.__buildHandler(queryOptions, false).find( - this.__reformatIDValue(stringifiedID), - ); - handler.func(funcString); - - return this.__fetchCustom(handler, queryOptions, funcString); - } -} - -export default new TapDAO(); diff --git a/src/fetch.js b/src/fetch.js deleted file mode 100644 index 2cc7018..0000000 --- a/src/fetch.js +++ /dev/null @@ -1,100 +0,0 @@ -// @flow - -import type { RequestMethod } from './types'; - -import nullthrows from 'nullthrows'; -import Config from './Config'; -import StandardHeaders from './StandardHeaders'; - -const parseError = (error: Object): string => { - if (error.ModelState) { - let resultErrorMessage = ''; - Array.from(Object.values(error.ModelState)).forEach( - (fieldErrorArray: any) => { - const castedFieldErrorArray = (fieldErrorArray: Array); - - new Set(castedFieldErrorArray).forEach( - // eslint-disable-next-line no-return-assign - (fieldError: string): string => - (resultErrorMessage = `${resultErrorMessage}\n${fieldError}`), - ); - }, - ); - - return resultErrorMessage; - } - - if (error.error_description) { - return error.error_description; - } - - if (error.Message) { - return error.Message; - } - - return "Whoa! Brewskey had an error. We'll try to get it fixed soon."; -}; - -type FetchOptions = { - body?: any, - headers?: Array<{ name: string, value: string }>, - method?: RequestMethod, - reformatError?: (error: Error) => string, -}; - -export default async ( - path: string, - options?: FetchOptions = {}, -): Promise => { - const { - reformatError, - headers: optionsHeaders = [], - ...fetchOptions - } = options; - - if (!Config.host) { - throw new Error('DAOApi: no host set'); - } - - const headers = new Headers(); - if (Config.token) { - headers.append('Authorization', `Bearer ${Config.token}`); - } - - [...StandardHeaders, ...optionsHeaders].forEach(({ name, value }) => - headers.append(name, value), - ); - - const { organizationId } = Config; - let pathWithOrganization = path; - if (organizationId) { - pathWithOrganization = `${path}${ - path.includes('?') ? '&' : '?' - }organizationID=${organizationId}`; - } - - const response = await fetch( - `${nullthrows(Config.host)}/${pathWithOrganization}`, - { - ...fetchOptions, - headers, - }, - ); - - let responseJson; - try { - responseJson = await response.json(); - } catch (error) { - responseJson = null; - } - - if (!response.ok) { - if (responseJson && reformatError) { - throw new Error(reformatError(responseJson)); - } - - throw new Error(responseJson ? parseError(responseJson) : 'Whoops! Error!'); - } - - return responseJson; -}; diff --git a/src/filters.js b/src/filters.js deleted file mode 100644 index 3d10d7b..0000000 --- a/src/filters.js +++ /dev/null @@ -1,100 +0,0 @@ -// @flow - -export type FilterOperator = - | 'any' - | 'contains' - | 'endswith' - | 'eq' - | 'gt' - | 'ge' - | 'lt' - | 'le' - | 'not endswith' - | 'ne' - | 'not startswith' - | 'startswith'; - -export type FilterCreator = (params: any) => QueryFilter; - -export type FilterCreators = { [string]: FilterCreator }; - -export type QueryFilter = { - operator: FilterOperator, - params: Array, - values: Array, -}; - -import { FILTER_OPERATORS } from './constants'; - -const FILTERS: { [string]: FilterOperator } = { - any: FILTER_OPERATORS.ANY, - contains: FILTER_OPERATORS.CONTAINS, - endsWith: FILTER_OPERATORS.ENDS_WITH, - equals: FILTER_OPERATORS.EQUALS, - greaterThan: FILTER_OPERATORS.GREATER_THAN, - greaterThanOrEqual: FILTER_OPERATORS.GREATER_THAN_OR_EQUAL, - lessThan: FILTER_OPERATORS.LESS_THAN, - lessThanOrEqual: FILTER_OPERATORS.LESS_THAN_OR_EQUAL, - notEndsWith: FILTER_OPERATORS.NOT_ENDS_WITH, - notEquals: FILTER_OPERATORS.NOT_EQUALS, - notStartsWith: FILTER_OPERATORS.NOT_STARTS_WITH, - startsWith: FILTER_OPERATORS.STARTS_WITH, -}; - -const getIn = (props: Array, object: Object): any => - props.reduce( - (previousObjectValue: any, prop: string): any => - previousObjectValue && previousObjectValue[prop] - ? previousObjectValue[prop] - : null, - object, - ); - -const makeFilter = ( - operator: FilterOperator, - params: any, -): ((values: any) => QueryFilter) => (values: any): QueryFilter => ({ - operator, - params: Array.isArray(params) ? params : [params], - values: Array.isArray(values) ? values : [values], -}); - -export const createFilter = (params: any): FilterCreators => - Object.keys(FILTERS).reduce( - (filters: FilterCreators, filter: string): FilterCreators => ({ - ...filters, - [filter]: makeFilter(FILTERS[filter], params), - }), - {}, - ); - -// todo make unit tests -export const doesSatisfyQueryFilters = ( - item: Object, - queryFilters: Array, -): boolean => - queryFilters.every((queryFilter: QueryFilter): boolean => { - const { params, values, operator } = queryFilter; - - return params.some((param: string): boolean => { - const itemValue = getIn(param.split('/'), item); - - return values.some((value: any): boolean => { - switch (operator) { - // todo add other cases - case FILTER_OPERATORS.CONTAINS: { - return itemValue.toString().includes(value.toString()); - } - case FILTER_OPERATORS.EQUALS: { - return value === itemValue; - } - case FILTER_OPERATORS.NOT_EQUALS: { - return value !== itemValue; - } - default: { - return false; - } - } - }); - }); - }); diff --git a/src/index.js b/src/index.js deleted file mode 100644 index b72af6e..0000000 --- a/src/index.js +++ /dev/null @@ -1,195 +0,0 @@ -// @flow - -import type { EntityID } from './types'; - -import oHandler from 'odata'; -import { CADENCE_MAP } from './translators/ReportTranslator'; -import Subscription from './dao/Subscription'; - -import fetch from './fetch'; -import { createFilter, doesSatisfyQueryFilters } from './filters'; -import StandardHeaders from './StandardHeaders'; - -import Auth from './Auth'; - -import AccountDAO from './dao/AccountDAO'; -import AchievementDAO from './dao/AchievementDAO'; -import AvailabilityDAO from './dao/AvailabilityDAO'; -import BeverageDAO from './dao/BeverageDAO'; -import CloudDeviceDAO from './dao/CloudDeviceDAO'; -import DeviceDAO from './dao/DeviceDAO'; -import FlowSensorDAO from './dao/FlowSensorDAO'; -import FriendDAO from './dao/FriendDAO'; -import GlassDAO from './dao/GlassDAO'; -import KegDAO from './dao/KegDAO'; -import LocationDAO from './dao/LocationDAO'; -import OrganizationDAO from './dao/OrganizationDAO'; -import PaymentsDAO from './dao/PaymentsDAO'; -import PermissionDAO from './dao/PermissionDAO'; -import PourChartDAO from './dao/PourChartDAO'; -import PourDAO from './dao/PourDAO'; -import PriceVariantDAO from './dao/PriceVariantDAO'; -import ProductDAO from './dao/ProductDAO'; -import ProductDeviceDAO from './dao/ProductDeviceDAO'; -import ProductFirmwareDAO from './dao/ProductFirmwareDAO'; -import ReportDAO from './dao/ReportDAO'; -import ScheduleDAO from './dao/ScheduleDAO'; -import SrmDAO from './dao/SrmDAO'; -import StyleDAO from './dao/StyleDAO'; -import TapDAO from './dao/TapDAO'; -import Signalr from './signalr'; -import Config from './Config'; - -import CloudSSEManager from './CloudSSEManager'; - -const initialize = (host: string) => { - Config.host = host; - - oHandler().config({ - endpoint: `${host}/api/v2/`, - }); -}; - -const setToken = (token: string) => { - Config.token = token; - - oHandler().config({ - headers: [ - ...StandardHeaders, - { - name: 'Authorization', - value: `Bearer ${token}`, - }, - ], - }); -}; - -const DAOArray = [ - AccountDAO, - AchievementDAO, - AvailabilityDAO, - BeverageDAO, - CloudDeviceDAO, - DeviceDAO, - FlowSensorDAO, - FriendDAO, - GlassDAO, - KegDAO, - LocationDAO, - OrganizationDAO, - PaymentsDAO, - PermissionDAO, - PourDAO, - PriceVariantDAO, - ProductDAO, - ProductDeviceDAO, - ProductFirmwareDAO, - ReportDAO, - ScheduleDAO, - SrmDAO, - StyleDAO, - TapDAO, -]; - -const flushCache = () => { - DAOArray.forEach((dao: *) => { - dao.flushCache(); - dao.flushCustomCache(); - }); -}; - -const setOrganizationID = (organizationID: ?EntityID) => { - Config.organizationId = organizationID; - - AccountDAO.flushCache(); - AchievementDAO.flushCache(); - BeverageDAO.flushCache(); - DeviceDAO.flushCache(); - FriendDAO.flushCache(); - KegDAO.flushCache(); - LocationDAO.flushCache(); - PaymentsDAO.flushCache(); - PourChartDAO.flushCache(); - PourDAO.flushCache(); - PriceVariantDAO.flushCache(); - ReportDAO.flushCache(); - ScheduleDAO.flushCache(); - TapDAO.flushCache(); -}; - -export * from './Auth'; -export * from './dao/AccountDAO'; -export * from './dao/AchievementDAO'; -export * from './dao/AvailabilityDAO'; -export * from './dao/BeverageDAO'; -export * from './dao/CloudDeviceDAO'; -export * from './dao/DeviceDAO'; -export * from './dao/FlowSensorDAO'; -export * from './dao/FriendDAO'; -export * from './dao/GlassDAO'; -export * from './dao/KegDAO'; -export * from './dao/LocationDAO'; -export * from './dao/OrganizationDAO'; -export * from './dao/PermissionDAO'; -export * from './dao/PaymentsDAO'; -export * from './dao/PourChartDAO'; -export * from './dao/PourDAO'; -export * from './dao/PriceVariantDAO'; -export * from './dao/ProductDAO'; -export * from './dao/ProductDeviceDAO'; -export * from './dao/ProductFirmwareDAO'; -export * from './dao/ReportDAO'; -export * from './dao/ScheduleDAO'; -export * from './dao/SrmDAO'; -export * from './dao/StyleDAO'; -export * from './dao/TapDAO'; - -export * from './constants'; -export * from './types'; -export * from './CloudSSEManager'; -export * from './LoadObject'; -export { default as LoadObject } from './LoadObject'; -export { default as RestDAO } from './dao/RestDAO'; -export { default as ODataDAO } from './dao/ODataDAO'; - -export { CADENCE_MAP }; - -/* eslint-disable sorting/sort-object-props */ -export default { - AccountDAO, - AchievementDAO, - Auth, - AvailabilityDAO, - BeverageDAO, - CloudDeviceDAO, - CloudSSEManager, - DeviceDAO, - FlowSensorDAO, - FriendDAO, - GlassDAO, - KegDAO, - LocationDAO, - OrganizationDAO, - PaymentsDAO, - PermissionDAO, - PourChartDAO, - PourDAO, - PriceVariantDAO, - ProductDAO, - ProductDeviceDAO, - ProductFirmwareDAO, - ReportDAO, - ScheduleDAO, - Signalr, - SrmDAO, - StyleDAO, - TapDAO, - createFilter, - doesSatisfyQueryFilters, - fetch, - flushCache, - initialize, - onError: Subscription.onError, - setOrganizationID, - setToken, -}; diff --git a/src/signalr/hubs/Hub.js b/src/signalr/hubs/Hub.js deleted file mode 100644 index b8066f7..0000000 --- a/src/signalr/hubs/Hub.js +++ /dev/null @@ -1,110 +0,0 @@ -// @flow - -import signalr from 'react-native-signalr'; -import Config from '../../Config'; - -const PING_INTERVAL = 60000; - -export type Options = { - logging?: boolean, - queryParams?: Object, - rootPath?: string, - shareConnection?: boolean, - transport?: string | Array, -}; - -class Hub { - static CONNECTIONS: Object = {}; - - _connection: Object; - - _connectionPromise: ?Promise; - - _proxy: Object; - - _transport: ?(string | Array); - - static initNewConnection(rootPath: ?string): Object { - return rootPath ? signalr.hubConnection(rootPath) : signalr.hubConnection(); - } - - static getConnection(rootPath: ?string, shareConnection: boolean): Object { - if (!shareConnection) { - return Hub.initNewConnection(rootPath); - } - - let connection = Hub.CONNECTIONS[rootPath]; - - if (!connection) { - connection = Hub.initNewConnection(rootPath); - Hub.CONNECTIONS[rootPath] = connection; - } - - return connection; - } - - constructor( - name: string, - { - logging = false, - queryParams, - // todo fix with Config.host - rootPath = 'https://brewskey.com', - shareConnection = true, - transport, - }: Options = {}, - ) { - this._connection = Hub.getConnection(rootPath, shareConnection); - this._proxy = this._connection.createHubProxy(name); - this._connection.logging = logging; - this._connection.qs = queryParams; - this._transport = transport; - } - - connect(): Promise { - const { _connection, _transport } = this; - _connection.qs = { - ...(_connection.qs || {}), - ...(Config.token != null - ? { - access_token: Config.token, - } - : {}), - }; - - this._connectionPromise = _transport - ? _connection.start({ - pingInterval: PING_INTERVAL, - transport: _transport, - }) - : _connection.start({ pingInterval: PING_INTERVAL }); - - return this._connectionPromise; - } - - disconnect() { - this._connection.stop(); - } - - serverMethod(name: string): Function { - return (...args: Array): ?Promise => - this._connectionPromise && - this._connectionPromise.then((): Promise => - this._proxy.invoke(name, ...args), - ); - } - - registerListener(name: string, listener: Function) { - this._proxy.on(name, listener); - } - - unregisterListener(name: string, listener: Function) { - this._proxy.off(name, listener); - } - - registerErrorHandler(handler: Function) { - this._connection.error(handler); - } -} - -export default Hub; diff --git a/src/signalr/hubs/TapHub.js b/src/signalr/hubs/TapHub.js deleted file mode 100644 index daf2b36..0000000 --- a/src/signalr/hubs/TapHub.js +++ /dev/null @@ -1,36 +0,0 @@ -// @flow - -import type { Options } from './Hub'; - -import Hub from './Hub'; - -class TapHub extends Hub { - subscribe: (tapId: string) => Promise = this.serverMethod('subscribe'); - - subscribeMany: (tapIds: Array) => Promise = this.serverMethod( - 'subscribeMany', - ); - - unsubscribe: (tapId: string) => Promise = this.serverMethod( - 'unsubscribe', - ); - - unsubscribeMany: (tapIds: Array) => Promise = this.serverMethod( - 'unsubscribeMany', - ); - - constructor(options?: Options) { - super( - 'tapHub', - options ?? { - logging: true, - }, - ); - } - - withOptions(options: Options): TapHub { - return new TapHub(options); - } -} - -export default new TapHub(); diff --git a/src/signalr/index.js b/src/signalr/index.js deleted file mode 100644 index bd4e14c..0000000 --- a/src/signalr/index.js +++ /dev/null @@ -1,19 +0,0 @@ -// @flow - -import TapHub from './hubs/TapHub'; - -const startAll = async (): Promise => { - await TapHub.connect(); - await TapHub.subscribe('*'); -}; - -const stopAll = async (): Promise => { - await TapHub.unsubscribe('*'); - TapHub.disconnect(); -}; - -export default { - startAll, - stopAll, - TapHub, -}; diff --git a/src/signalr/types.js b/src/signalr/types.js deleted file mode 100644 index b0fa1a3..0000000 --- a/src/signalr/types.js +++ /dev/null @@ -1,13 +0,0 @@ -// @flow - -export type SocketPour = { - account: { id: string, name: string }, - id: string, - keg: { id: string }, - location: { id: string }, - ounces: number, - pourDate: Date, - pouredBy: string, - pulses: number, - tap: { id: string }, -}; diff --git a/src/translators/BeverageTranslator.js b/src/translators/BeverageTranslator.js deleted file mode 100644 index 470ce8f..0000000 --- a/src/translators/BeverageTranslator.js +++ /dev/null @@ -1,55 +0,0 @@ -// @flow -import type { Beverage, BeverageMutator } from '../dao/BeverageDAO'; -import DefaultTranslator from './DefaultTranslator'; - -class BeverageTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Beverage { - return (({ - ...super.fromApi(apiValue), - isOrganic: apiValue.isOrganic === 'Y', - }: any): Beverage); - } - - toApi({ isOrganic, ...props }: BeverageMutator): Object { - return { - ...props, - isOrganic: isOrganic ? 'Y' : 'N', - }; - } - - toForm({ - abv, - availability, - beverageType, - description, - glass, - ibu, - id, - isOrganic, - name, - originalGravity, - servingTemperature, - srm, - style, - year, - }: Beverage): BeverageMutator { - return { - abv, - availableId: availability && availability.id, - beverageType, - description, - glasswareId: glass && glass.id, - ibu, - id, - isOrganic, - name, - originalGravity, - servingTemperature, - srmId: srm && srm.id, - styleId: style && style.id, - year, - }; - } -} - -export default BeverageTranslator; diff --git a/src/translators/DefaultTranslator.js b/src/translators/DefaultTranslator.js deleted file mode 100644 index 22f73b3..0000000 --- a/src/translators/DefaultTranslator.js +++ /dev/null @@ -1,30 +0,0 @@ -// @flow - -const deepIdCast = (node: any): any => { - Object.keys(node).forEach((key: string) => { - if (node[key] === Object(node[key])) { - deepIdCast(node[key]); - } - if (key === 'id') { - // eslint-disable-next-line - node[key] = node[key].toString(); - } - }); - return node; -}; - -class DefaultTranslator { - fromApi(apiValue: Object): TEntity { - return deepIdCast(apiValue); - } - - toApi(mutator: TEntityMutator): Object { - return ((mutator: any): Object); - } - - toForm(model: TEntity): TEntityMutator { - return ((model: any): TEntityMutator); - } -} - -export default DefaultTranslator; diff --git a/src/translators/DeviceTranslator.js b/src/translators/DeviceTranslator.js deleted file mode 100644 index 85a59db..0000000 --- a/src/translators/DeviceTranslator.js +++ /dev/null @@ -1,34 +0,0 @@ -// @flow -import type { Device, DeviceMutator } from '../dao/DeviceDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -class DeviceTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Device { - return (({ - ...super.fromApi(apiValue), - location: - apiValue.location && apiValue.location.isDeleted - ? null - : apiValue.location, - }: any): Device); - } - - toForm({ - createdBy: _, - isDeleted: _1, - lastEdited: _2, - lastEditedBy: _3, - location, - organization: _4, - temperature: _5, - ...otherProps - }: Device): DeviceMutator { - return { - ...otherProps, - locationId: location && location.id, - }; - } -} - -export default DeviceTranslator; diff --git a/src/translators/KegTranslator.js b/src/translators/KegTranslator.js deleted file mode 100644 index 935d947..0000000 --- a/src/translators/KegTranslator.js +++ /dev/null @@ -1,17 +0,0 @@ -// @flow - -import type { Keg, KegMutator } from '../dao/KegDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -class KegTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Keg { - return (({ - ...super.fromApi(apiValue), - location: apiValue.location.isDeleted ? null : apiValue.location, - tap: apiValue.tap.isDeleted ? null : apiValue.tap, - }: any): Keg); - } -} - -export default KegTranslator; diff --git a/src/translators/LocationTranslator.js b/src/translators/LocationTranslator.js deleted file mode 100644 index ca1c7c2..0000000 --- a/src/translators/LocationTranslator.js +++ /dev/null @@ -1,69 +0,0 @@ -// @flow -import type { - Coordinates, - Location, - LocationMutator, -} from '../dao/LocationDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -const FLOAT_REGEXP = /[+-]?([0-9]*[.])?[0-9]+/g; - -const parseLocationCoordinates = (wellKnownText: string): Coordinates => { - const matchedLatLongStringArray = wellKnownText.match(FLOAT_REGEXP); - if (!matchedLatLongStringArray) { - return { latitude: 0, longitude: 0 }; - } - const latLongNumberArray = matchedLatLongStringArray.map( - (coordinateString: string): number => parseFloat(coordinateString), - ); - - return { - latitude: latLongNumberArray[1], - longitude: latLongNumberArray[0], - }; -}; - -class LocationTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Location { - return (({ - ...super.fromApi(apiValue), - geolocation: apiValue.geolocation && { - ...apiValue.geolocation, - coordinates: parseLocationCoordinates( - apiValue.geolocation.geography.wellKnownText, - ), - }, - }: any): Location); - } - - toForm({ - city, - description, - id, - locationType, - name, - organization, - squareLocationID, - state, - street, - suite, - zipCode, - }: Location): LocationMutator { - return { - city, - description, - id, - locationType, - name, - organizationId: organization && organization.id, - squareLocationID, - state, - street, - suite, - zipCode, - }; - } -} - -export default LocationTranslator; diff --git a/src/translators/PermissionTranslator.js b/src/translators/PermissionTranslator.js deleted file mode 100644 index c5954c9..0000000 --- a/src/translators/PermissionTranslator.js +++ /dev/null @@ -1,53 +0,0 @@ -// @flow -import type { - Permission, - PermissionMutator, - PermissionEntityType, -} from '../dao/PermissionDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -const PERMISSION_ENTITY_KEYS = ['device', 'location', 'organization', 'tap']; - -// todo make DAO_ENTITIES and permissionType singular, it will allow -// simplify and reduce many annoying transformations. -// and we won't need to write shitty methods like this. :/ -const getPermissionEntityTypeFromModel = ( - model: Permission, - // eslint-disable-next-line prefer-template -): PermissionEntityType => - (`${ - (Object.entries(model).find((entry: [string, mixed]): boolean => { - const key = entry[0]; - const value = entry[1]; - return PERMISSION_ENTITY_KEYS.includes(key) && !!value; - }) || {})[0] - }s`: any); - -class PermissionTranslator extends DefaultTranslator< - Permission, - PermissionMutator, -> { - toApi({ entityId, entityType, ...props }: PermissionMutator): Object { - return { - ...props, - deviceId: entityType === 'devices' ? entityId : null, - locationId: entityType === 'locations' ? entityId : null, - organizationId: entityType === 'organizations' ? entityId : null, - tapId: entityType === 'taps' ? entityId : null, - }; - } - - toForm(model: Permission): PermissionMutator { - const permissionEntityType = getPermissionEntityTypeFromModel(model); - - return { - ...model, - entityId: model[permissionEntityType.slice(0, -1)], - entityType: permissionEntityType, - userId: model.forUser.id, - }; - } -} - -export default PermissionTranslator; diff --git a/src/translators/PourTranslator.js b/src/translators/PourTranslator.js deleted file mode 100644 index a1ba121..0000000 --- a/src/translators/PourTranslator.js +++ /dev/null @@ -1,18 +0,0 @@ -// @flow - -import type { Pour } from '../index'; - -import DefaultTranslator from './DefaultTranslator'; - -class PourTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Pour { - return (({ - ...super.fromApi(apiValue), - beverage: apiValue.beverage.isDeleted ? null : apiValue.beverage, - location: apiValue.location.isDeleted ? null : apiValue.location, - tap: apiValue.tap.isDeleted ? null : apiValue.tap, - }: any): Pour); - } -} - -export default PourTranslator; diff --git a/src/translators/ReportTranslator.js b/src/translators/ReportTranslator.js deleted file mode 100644 index ee14711..0000000 --- a/src/translators/ReportTranslator.js +++ /dev/null @@ -1,54 +0,0 @@ -// @flow - -import type { EntityID, ShortenedEntity } from '../types'; -import type { ShortenedTap } from '../dao/TapDAO'; -import type { Report, ReportMutator } from '../dao/ReportDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -export const CADENCE_MAP = { - Biweekly: 3, - Daily: 1, - Monthly: 4, - OneTime: 0, - Weekly: 2, -}; - -// todo clean the translator when we will be merging loadObject to master -class ReportTranslator extends DefaultTranslator { - toApi({ - devices, - locations, - sendToEmails, - taps, - ...props - }: ReportMutator): Object { - return { - ...props, - deviceIds: devices - ? devices.map(({ id }: ShortenedEntity): EntityID => id) - : [], - locationIds: locations - ? locations.map(({ id }: ShortenedEntity): EntityID => id) - : [], - sendToEmails: sendToEmails.map( - ({ email }: { email: string }): string => email, - ), - tapIds: taps ? taps.map(({ id }: ShortenedTap): EntityID => id) : [], - }; - } - - toForm(report: Report): Object { - return { - ...report, - reportCadence: CADENCE_MAP[report.reportCadence], - sendToEmails: report.sendToEmails.map( - (email: string): Object => ({ - email, - }), - ), - }; - } -} - -export default ReportTranslator; diff --git a/src/translators/ScheduleTranslator.js b/src/translators/ScheduleTranslator.js deleted file mode 100644 index 9366e7f..0000000 --- a/src/translators/ScheduleTranslator.js +++ /dev/null @@ -1,67 +0,0 @@ -// @flow - -import type { EntityID } from '../types'; -import type { Schedule, ScheduleMutator } from '../dao/ScheduleDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -const SCHEDULE_DAY_BIT_MAP = { - All: 127, - Friday: 16, - Monday: 1, - None: 0, - Saturday: 32, - Sunday: 64, - Thursday: 8, - Tuesday: 2, - Wednesday: 4, - WeekDays: 31, -}; - -const getCombinedFlag = (days: Array): number => - days.reduce( - (total: number, day: string): number => total | SCHEDULE_DAY_BIT_MAP[day], // eslint-disable-line - 0, - ); - -// todo clean translator when we will implement schedules in mobile app -class SchedulesTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Schedule { - return { - ...super.fromApi(apiValue), - days: getCombinedFlag(apiValue.days.split(', ')), - location: apiValue.location.isDeleted ? null : apiValue.location, - }; - } - - toApi(mutator: ScheduleMutator): Object { - return { - ...mutator, - accountIds: - mutator.accounts && - mutator.accounts.map(({ id }: { id: EntityID }): EntityID => id), - }; - } - - toForm({ - accounts, - days, - endTime, - id, - location, - name, - startTime, - }: Schedule): ScheduleMutator { - return { - accounts, - days, - endTime, - id, - locationId: location ? location.id.toString() : null, - name, - startTime, - }; - } -} - -export default SchedulesTranslator; diff --git a/src/translators/TapTranslator.js b/src/translators/TapTranslator.js deleted file mode 100644 index d920100..0000000 --- a/src/translators/TapTranslator.js +++ /dev/null @@ -1,43 +0,0 @@ -// @flow - -import type { Tap, TapMutator } from '../dao/TapDAO'; - -import DefaultTranslator from './DefaultTranslator'; - -class TapsTranslator extends DefaultTranslator { - fromApi(apiValue: Object): Tap { - return (({ - ...super.fromApi(apiValue), - location: - apiValue.location && apiValue.location.isDeleted - ? null - : apiValue.location, - }: any): Tap); - } - - toForm({ - description, - device, - disableBadges, - hideLeaderboard, - hideStats, - id, - isPaymentEnabled, - location, - requiresPourPrivilege, - }: Tap): TapMutator { - return { - description, - deviceId: device && device.id, - disableBadges, - hideLeaderboard, - hideStats, - id, - isPaymentEnabled, - locationId: location && location.id, - requiresPourPrivilege, - }; - } -} - -export default TapsTranslator; diff --git a/src/types.js b/src/types.js deleted file mode 100644 index 8ec2aa6..0000000 --- a/src/types.js +++ /dev/null @@ -1,97 +0,0 @@ -// @flow - -import type { QueryFilter } from './filters'; -import type ODataDAO from './dao/ODataDAO'; -import type RestDAO from './dao/RestDAO'; - -export type DAO = - | ODataDAO - | RestDAO; - -export type EntityName = - | 'accounts' - | 'achievements' - | 'beverage-availabilities' - | 'beverage-glasses' - | 'beverage-srms' - | 'beverage-styles' - | 'beverages' - | 'chart' - | 'cloud-device-pings' - | 'cloud-devices' - | 'devices' - | 'flow-sensors' - | 'friends' - | 'kegs' - | 'locations' - | 'organizations' - | 'payments' - | 'permissions' - | 'pours' - | 'price-variants' - | 'product-devices' - | 'product-firmwares' - | 'products' - | 'reports' - | 'schedule-groups' - | 'schedules' - | 'taps'; - -export type ShortenedEntity = { - id: EntityID, - isDeleted: boolean, - name: string, -}; - -export type EntityID = string | number; - -export type Header = { - name: string, - value: string, -}; - -export type Headers = Array
; - -export type ODataDAOResult = { - data: any, - inlinecount?: number, -}; - -export type QueryOrderBy = { - column: string, - direction: 'asc' | 'desc', -}; - -export type QueryOptions = { - apply?: string, - filter?: string, - filters?: Array, - orderBy?: Array, - search?: string, - shouldCount?: boolean, - shouldIgnoreOrganizationID?: true, - shouldRefresh?: boolean, - skip?: number, - take?: number, -}; - -export type ODataNavigationProperties = { - [key: string]: { - expand?: ODataNavigationProperties, - select?: Array, - }, -}; - -export type RequestMethod = 'DELETE' | 'GET' | 'PATCH' | 'POST' | 'PUT'; - -export type ODataDAOConfig = {| - entityName: EntityName, - navigationProperties?: ODataNavigationProperties, - translator: DAOTranslator, -|}; - -export type DAOTranslator = { - +fromApi: (apiValue: Object) => TEntity, - +toApi: (model: TEntityMutator) => Object, - +toForm: (model: TEntity) => TEntityMutator, -};