From 0b7deded7394f7951aa114ba7304416e2729e369 Mon Sep 17 00:00:00 2001 From: Client Date: Tue, 4 Aug 2020 20:31:59 +0000 Subject: [PATCH] Releasing v4.29.0 --- .babelrc | 23 +- .eslintrc.yml | 25 +- .mocharc.yml | 6 +- .pubnub.yml | 15 +- CHANGELOG.md | 9 + README.md | 4 +- dist/titanium/pubnub.js | 6489 ++++-- dist/titanium/pubnub.min.js | 3 +- dist/web/pubnub.js | 18230 ++++++++++------ dist/web/pubnub.min.js | 28 +- flow-typed/mocha.js | 9 +- flow-typed/webcrypto.js | 120 + gulpfile.babel.js | 98 +- karma/chrome.config.js | 51 + lib/cbor/common.js | 26 +- lib/cbor/common.js.map | 2 +- lib/core/components/config.js | 139 +- lib/core/components/config.js.map | 2 +- lib/core/components/cryptography/index.js | 129 +- lib/core/components/cryptography/index.js.map | 2 +- lib/core/components/deduping_manager.js | 29 +- lib/core/components/deduping_manager.js.map | 2 +- lib/core/components/endpoint.js | 83 +- lib/core/components/endpoint.js.map | 2 +- lib/core/components/listener_manager.js | 32 +- lib/core/components/listener_manager.js.map | 2 +- lib/core/components/push_payload.js | 159 +- lib/core/components/push_payload.js.map | 2 +- lib/core/components/reconnection_manager.js | 32 +- .../components/reconnection_manager.js.map | 2 +- lib/core/components/subscription_manager.js | 154 +- .../components/subscription_manager.js.map | 2 +- lib/core/components/telemetry_manager.js | 29 +- lib/core/components/telemetry_manager.js.map | 2 +- lib/core/components/token_manager.js | 44 +- lib/core/components/token_manager.js.map | 2 +- lib/core/components/uuid.js | 4 +- lib/core/components/uuid.js.map | 2 +- lib/core/constants/operations.js | 5 + lib/core/constants/operations.js.map | 2 +- lib/core/endpoints/access_manager/audit.js | 4 +- .../endpoints/access_manager/audit.js.map | 2 +- lib/core/endpoints/access_manager/grant.js | 4 +- .../endpoints/access_manager/grant.js.map | 2 +- .../endpoints/access_manager/grant_token.js | 4 +- .../access_manager/grant_token.js.map | 2 +- .../endpoints/actions/add_message_action.js | 4 +- .../actions/add_message_action.js.map | 2 +- .../endpoints/actions/get_message_actions.js | 4 +- .../actions/get_message_actions.js.map | 2 +- .../actions/remove_message_action.js | 4 +- .../actions/remove_message_action.js.map | 2 +- .../endpoints/channel_groups/add_channels.js | 4 +- .../channel_groups/add_channels.js.map | 2 +- .../endpoints/channel_groups/delete_group.js | 4 +- .../channel_groups/delete_group.js.map | 2 +- .../endpoints/channel_groups/list_channels.js | 4 +- .../channel_groups/list_channels.js.map | 2 +- .../endpoints/channel_groups/list_groups.js | 4 +- .../channel_groups/list_groups.js.map | 2 +- .../channel_groups/remove_channels.js | 4 +- .../channel_groups/remove_channels.js.map | 2 +- lib/core/endpoints/fetch_messages.js | 14 +- lib/core/endpoints/fetch_messages.js.map | 2 +- lib/core/endpoints/file_upload/delete_file.js | 59 + .../endpoints/file_upload/delete_file.js.map | 1 + .../endpoints/file_upload/download_file.js | 106 + .../file_upload/download_file.js.map | 1 + .../file_upload/generate_upload_url.js | 62 + .../file_upload/generate_upload_url.js.map | 1 + .../endpoints/file_upload/get_file_url.js | 33 + .../endpoints/file_upload/get_file_url.js.map | 1 + lib/core/endpoints/file_upload/list_files.js | 49 + .../endpoints/file_upload/list_files.js.map | 1 + .../endpoints/file_upload/publish_file.js | 97 + .../endpoints/file_upload/publish_file.js.map | 1 + lib/core/endpoints/file_upload/send_file.js | 234 + .../endpoints/file_upload/send_file.js.map | 1 + lib/core/endpoints/file_upload/types.js | 2 + lib/core/endpoints/file_upload/types.js.map | 1 + lib/core/endpoints/history/delete_messages.js | 4 +- .../endpoints/history/delete_messages.js.map | 2 +- lib/core/endpoints/history/get_history.js | 12 +- lib/core/endpoints/history/get_history.js.map | 2 +- lib/core/endpoints/history/message_counts.js | 16 +- .../endpoints/history/message_counts.js.map | 2 +- lib/core/endpoints/memberships/add_members.js | 4 +- .../endpoints/memberships/add_members.js.map | 2 +- lib/core/endpoints/memberships/get_members.js | 4 +- .../endpoints/memberships/get_members.js.map | 2 +- .../endpoints/memberships/get_memberships.js | 4 +- .../memberships/get_memberships.js.map | 2 +- lib/core/endpoints/memberships/join_spaces.js | 4 +- .../endpoints/memberships/join_spaces.js.map | 2 +- .../endpoints/memberships/leave_spaces.js | 4 +- .../endpoints/memberships/leave_spaces.js.map | 2 +- .../endpoints/memberships/remove_members.js | 4 +- .../memberships/remove_members.js.map | 2 +- .../endpoints/memberships/update_members.js | 4 +- .../memberships/update_members.js.map | 2 +- .../memberships/update_memberships.js | 4 +- .../memberships/update_memberships.js.map | 2 +- lib/core/endpoints/objects/channel/get.js | 6 +- lib/core/endpoints/objects/channel/get.js.map | 2 +- lib/core/endpoints/objects/channel/get_all.js | 18 +- .../endpoints/objects/channel/get_all.js.map | 2 +- lib/core/endpoints/objects/channel/remove.js | 4 +- .../endpoints/objects/channel/remove.js.map | 2 +- lib/core/endpoints/objects/channel/set.js | 6 +- lib/core/endpoints/objects/channel/set.js.map | 2 +- lib/core/endpoints/objects/member/get.js | 18 +- lib/core/endpoints/objects/member/get.js.map | 2 +- lib/core/endpoints/objects/member/set.js | 22 +- lib/core/endpoints/objects/member/set.js.map | 2 +- lib/core/endpoints/objects/membership/get.js | 18 +- .../endpoints/objects/membership/get.js.map | 2 +- lib/core/endpoints/objects/membership/set.js | 22 +- .../endpoints/objects/membership/set.js.map | 2 +- lib/core/endpoints/objects/uuid/get.js | 6 +- lib/core/endpoints/objects/uuid/get.js.map | 2 +- lib/core/endpoints/objects/uuid/get_all.js | 18 +- .../endpoints/objects/uuid/get_all.js.map | 2 +- lib/core/endpoints/objects/uuid/remove.js | 4 +- lib/core/endpoints/objects/uuid/remove.js.map | 2 +- lib/core/endpoints/objects/uuid/set.js | 6 +- lib/core/endpoints/objects/uuid/set.js.map | 2 +- lib/core/endpoints/presence/get_state.js | 4 +- lib/core/endpoints/presence/get_state.js.map | 2 +- lib/core/endpoints/presence/heartbeat.js | 4 +- lib/core/endpoints/presence/heartbeat.js.map | 2 +- lib/core/endpoints/presence/here_now.js | 10 +- lib/core/endpoints/presence/here_now.js.map | 2 +- lib/core/endpoints/presence/leave.js | 4 +- lib/core/endpoints/presence/leave.js.map | 2 +- lib/core/endpoints/presence/set_state.js | 4 +- lib/core/endpoints/presence/set_state.js.map | 2 +- lib/core/endpoints/presence/where_now.js | 4 +- lib/core/endpoints/presence/where_now.js.map | 2 +- lib/core/endpoints/publish.js | 10 +- lib/core/endpoints/publish.js.map | 2 +- lib/core/endpoints/push/add_push_channels.js | 4 +- .../endpoints/push/add_push_channels.js.map | 2 +- lib/core/endpoints/push/list_push_channels.js | 4 +- .../endpoints/push/list_push_channels.js.map | 2 +- lib/core/endpoints/push/remove_device.js | 4 +- lib/core/endpoints/push/remove_device.js.map | 2 +- .../endpoints/push/remove_push_channels.js | 4 +- .../push/remove_push_channels.js.map | 2 +- lib/core/endpoints/signal.js | 4 +- lib/core/endpoints/signal.js.map | 2 +- lib/core/endpoints/spaces/create_space.js | 4 +- lib/core/endpoints/spaces/create_space.js.map | 2 +- lib/core/endpoints/spaces/delete_space.js | 4 +- lib/core/endpoints/spaces/delete_space.js.map | 2 +- lib/core/endpoints/spaces/get_space.js | 4 +- lib/core/endpoints/spaces/get_space.js.map | 2 +- lib/core/endpoints/spaces/get_spaces.js | 4 +- lib/core/endpoints/spaces/get_spaces.js.map | 2 +- lib/core/endpoints/spaces/update_space.js | 4 +- lib/core/endpoints/spaces/update_space.js.map | 2 +- lib/core/endpoints/subscribe.js | 4 +- lib/core/endpoints/subscribe.js.map | 2 +- lib/core/endpoints/time.js | 4 +- lib/core/endpoints/time.js.map | 2 +- lib/core/endpoints/users/create_user.js | 4 +- lib/core/endpoints/users/create_user.js.map | 2 +- lib/core/endpoints/users/delete_user.js | 4 +- lib/core/endpoints/users/delete_user.js.map | 2 +- lib/core/endpoints/users/get_user.js | 4 +- lib/core/endpoints/users/get_user.js.map | 2 +- lib/core/endpoints/users/get_users.js | 4 +- lib/core/endpoints/users/get_users.js.map | 2 +- lib/core/endpoints/users/update_user.js | 4 +- lib/core/endpoints/users/update_user.js.map | 2 +- lib/core/pubnub-common.js | 321 +- lib/core/pubnub-common.js.map | 2 +- lib/crypto/index.js | 2 + lib/crypto/index.js.map | 1 + lib/crypto/modules/node.js | 370 + lib/crypto/modules/node.js.map | 1 + lib/crypto/modules/web.js | 405 + lib/crypto/modules/web.js.map | 1 + lib/db/common.js | 19 +- lib/db/common.js.map | 2 +- lib/file/index.js | 2 + lib/file/index.js.map | 1 + lib/file/modules/node.js | 241 + lib/file/modules/node.js.map | 1 + lib/file/modules/web.js | 219 + lib/file/modules/web.js.map | 1 + lib/nativescript/index.js | 33 +- lib/nativescript/index.js.map | 2 +- lib/networking/index.js | 56 +- lib/networking/index.js.map | 2 +- lib/networking/modules/node.js | 4 +- lib/networking/modules/node.js.map | 2 +- lib/networking/modules/web-node.js | 80 +- lib/networking/modules/web-node.js.map | 2 +- lib/networking/utils.js | 6 +- lib/networking/utils.js.map | 2 +- lib/node/index.js | 40 +- lib/node/index.js.map | 2 +- lib/react_native/index.js | 33 +- lib/react_native/index.js.map | 2 +- lib/titanium/index.js | 33 +- lib/titanium/index.js.map | 2 +- lib/web/index.js | 42 +- lib/web/index.js.map | 2 +- package-lock.json | 706 +- package.json | 21 +- src/core/components/config.js | 26 +- src/core/components/cryptography/index.js | 72 +- src/core/components/endpoint.js | 47 +- src/core/components/listener_manager.js | 7 + src/core/components/subscription_manager.js | 105 +- src/core/constants/operations.js | 7 + src/core/endpoints/endpoint.js | 21 +- src/core/endpoints/fetch_messages.js | 6 + src/core/endpoints/file_upload/delete_file.js | 40 + .../endpoints/file_upload/download_file.js | 52 + .../file_upload/generate_upload_url.js | 42 + .../endpoints/file_upload/get_file_url.js | 30 + src/core/endpoints/file_upload/list_files.js | 32 + .../endpoints/file_upload/publish_file.js | 81 + src/core/endpoints/file_upload/send_file.js | 129 + src/core/endpoints/file_upload/types.js | 94 + src/core/endpoints/history/get_history.js | 4 + src/core/endpoints/objects/channel/get.js | 2 +- src/core/endpoints/objects/channel/get_all.js | 4 +- src/core/endpoints/objects/channel/set.js | 2 +- src/core/endpoints/objects/member/get.js | 2 + src/core/endpoints/objects/member/set.js | 16 +- src/core/endpoints/objects/membership/get.js | 2 + src/core/endpoints/objects/membership/set.js | 17 +- src/core/endpoints/objects/uuid/get.js | 2 +- src/core/endpoints/objects/uuid/get_all.js | 4 +- src/core/endpoints/objects/uuid/set.js | 2 +- src/core/pubnub-common.js | 249 +- src/crypto/index.js | 13 + src/crypto/modules/node.js | 183 + src/crypto/modules/web.js | 120 + src/file/index.js | 26 + src/file/modules/node.js | 133 + src/file/modules/web.js | 114 + src/networking/index.js | 31 +- src/networking/modules/web-node.js | 99 +- src/node/index.js | 12 +- src/web/index.js | 18 +- test/feature/file_upload.node.test.js | 146 + test/feature/file_upload.web.test.js | 164 + test/feature/input.json | 3 + test/integration/components/crypto.test.js | 25 + .../endpoints/fetch_messages.test.js | 270 +- test/integration/endpoints/history.test.js | 4 + webpack.config.common.js | 16 +- 255 files changed, 22190 insertions(+), 10092 deletions(-) create mode 100644 flow-typed/webcrypto.js create mode 100644 karma/chrome.config.js create mode 100644 lib/core/endpoints/file_upload/delete_file.js create mode 100644 lib/core/endpoints/file_upload/delete_file.js.map create mode 100644 lib/core/endpoints/file_upload/download_file.js create mode 100644 lib/core/endpoints/file_upload/download_file.js.map create mode 100644 lib/core/endpoints/file_upload/generate_upload_url.js create mode 100644 lib/core/endpoints/file_upload/generate_upload_url.js.map create mode 100644 lib/core/endpoints/file_upload/get_file_url.js create mode 100644 lib/core/endpoints/file_upload/get_file_url.js.map create mode 100644 lib/core/endpoints/file_upload/list_files.js create mode 100644 lib/core/endpoints/file_upload/list_files.js.map create mode 100644 lib/core/endpoints/file_upload/publish_file.js create mode 100644 lib/core/endpoints/file_upload/publish_file.js.map create mode 100644 lib/core/endpoints/file_upload/send_file.js create mode 100644 lib/core/endpoints/file_upload/send_file.js.map create mode 100644 lib/core/endpoints/file_upload/types.js create mode 100644 lib/core/endpoints/file_upload/types.js.map create mode 100644 lib/crypto/index.js create mode 100644 lib/crypto/index.js.map create mode 100644 lib/crypto/modules/node.js create mode 100644 lib/crypto/modules/node.js.map create mode 100644 lib/crypto/modules/web.js create mode 100644 lib/crypto/modules/web.js.map create mode 100644 lib/file/index.js create mode 100644 lib/file/index.js.map create mode 100644 lib/file/modules/node.js create mode 100644 lib/file/modules/node.js.map create mode 100644 lib/file/modules/web.js create mode 100644 lib/file/modules/web.js.map create mode 100644 src/core/endpoints/file_upload/delete_file.js create mode 100644 src/core/endpoints/file_upload/download_file.js create mode 100644 src/core/endpoints/file_upload/generate_upload_url.js create mode 100644 src/core/endpoints/file_upload/get_file_url.js create mode 100644 src/core/endpoints/file_upload/list_files.js create mode 100644 src/core/endpoints/file_upload/publish_file.js create mode 100644 src/core/endpoints/file_upload/send_file.js create mode 100644 src/core/endpoints/file_upload/types.js create mode 100644 src/crypto/index.js create mode 100644 src/crypto/modules/node.js create mode 100644 src/crypto/modules/web.js create mode 100644 src/file/index.js create mode 100644 src/file/modules/node.js create mode 100644 src/file/modules/web.js create mode 100644 test/feature/file_upload.node.test.js create mode 100644 test/feature/file_upload.web.test.js create mode 100644 test/feature/input.json create mode 100644 test/integration/components/crypto.test.js diff --git a/.babelrc b/.babelrc index 7128f39ab..0d5619ac7 100644 --- a/.babelrc +++ b/.babelrc @@ -1,13 +1,14 @@ { - "presets": ["@babel/preset-env"], - "comments": false, - "plugins": [ - "@babel/plugin-proposal-class-properties", - "@babel/plugin-proposal-optional-chaining", - "@babel/plugin-proposal-nullish-coalescing-operator", - "@babel/plugin-transform-flow-strip-types", - "@babel/plugin-transform-modules-commonjs", - "add-module-exports" - ], - "sourceMaps": true + "presets": ["@babel/preset-env"], + "comments": false, + "plugins": [ + "@babel/plugin-transform-runtime", + "@babel/plugin-proposal-class-properties", + "@babel/plugin-proposal-optional-chaining", + "@babel/plugin-proposal-nullish-coalescing-operator", + "@babel/plugin-transform-flow-strip-types", + "@babel/plugin-transform-modules-commonjs", + "add-module-exports" + ], + "sourceMaps": true } diff --git a/.eslintrc.yml b/.eslintrc.yml index c1bbdd439..1be81f940 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -7,17 +7,24 @@ plugins: - flowtype ignorePatterns: - - "flow-typed/**/*" - - "test/**/*" + - 'flow-typed/**/*' + - 'test/**/*' globals: - "$Shape": readonly - "$Diff": readonly + '$Shape': readonly + '$Diff': readonly + '$ReadOnlyArray': readonly + 'buffer$NonBufferEncoding': readonly + 'File': readonly + 'FileReader': readonly + 'atob': readonly + 'btoa': readonly + 'Blob': readonly overrides: - files: test/**/* - globals: - "expect": readonly + globals: + 'expect': readonly env: mocha: true rules: @@ -43,12 +50,12 @@ rules: class-methods-use-this: 0 no-await-in-loop: 0 no-multi-assign: 0 - arrow-parens: [2, "always"] - operator-linebreak: ["error", "after"] + arrow-parens: [2, 'always'] + operator-linebreak: ['error', 'after'] no-mixed-operators: 0 lines-between-class-members: 0 no-multi-spaces: 0 object-curly-newline: 0 prefer-destructuring: 0 no-restricted-globals: 0 - space-before-function-paren: ["error", "never"] + implicit-arrow-linebreak: off diff --git a/.mocharc.yml b/.mocharc.yml index 70b7173a3..17860eb00 100644 --- a/.mocharc.yml +++ b/.mocharc.yml @@ -1,5 +1,7 @@ spec: test/**/*.test.js require: test/setup.js -exclude: test/dist/*.js +exclude: + - test/dist/*.js + - test/feature/*.js timeout: 5000 -reporter: spec \ No newline at end of file +reporter: spec diff --git a/.pubnub.yml b/.pubnub.yml index 783d6cbb6..9094a7396 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -1,5 +1,18 @@ --- changelog: + - + changes: + - + text: "Allows to upload files to channels, download them with optional encryption support." + type: feature + - + text: "Allows to enable random IVs when encrypting messages." + type: feature + - + text: "Fixes a bug with PAM and Objects v2." + type: bug + date: 2020-08-04 + version: v4.29.0 - changes: - @@ -868,4 +881,4 @@ supported-platforms: - "Ubuntu 14.04 and up" - "Windows 7 and up" version: "Pubnub Javascript for Node" -version: "4.28.4" +version: "4.29.0" diff --git a/CHANGELOG.md b/CHANGELOG.md index bbabf82b3..f51fd0558 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [v4.29.0](https://github.com/pubnub/javascript/releases/tag/v4.29.0) +August-04-2020 + +[Full Changelog](https://github.com/pubnub/javascript/compare/v4.28.4...v4.29.0) + +- 🌟️ Allows to upload files to channels, download them with optional encryption support. +- 🌟️ Allows to enable random IVs when encrypting messages. +- 🐛 Fixes a bug with PAM and Objects v2. + ## [v4.28.4](https://github.com/pubnub/javascript/releases/tag/v4.28.4) July-15-2020 diff --git a/README.md b/README.md index 7de770802..8049c71f9 100644 --- a/README.md +++ b/README.md @@ -22,5 +22,5 @@ please use the [master_3x](https://github.com/pubnub/javascript/tree/master_3x) -* https://cdn.pubnub.com/sdk/javascript/pubnub.4.28.4.min.js -* https://cdn.pubnub.com/sdk/javascript/pubnub.4.28.4.js +* https://cdn.pubnub.com/sdk/javascript/pubnub.4.29.0.min.js +* https://cdn.pubnub.com/sdk/javascript/pubnub.4.29.0.js diff --git a/dist/titanium/pubnub.js b/dist/titanium/pubnub.js index a2b19439d..ad1331c56 100644 --- a/dist/titanium/pubnub.js +++ b/dist/titanium/pubnub.js @@ -1,4 +1,4 @@ -/*! 4.28.4 / Consumer */ +/*! 4.29.0 / Consumer */ exports["PubNub"] = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache @@ -83,11 +83,23 @@ exports["PubNub"] = /******/ /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 9); +/******/ return __webpack_require__(__webpack_require__.s = 23); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ +/***/ (function(module, exports) { + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} + +module.exports = _interopRequireDefault; + +/***/ }), +/* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -124,6 +136,11 @@ var _default = { PNUpdateMembersOperation: 'PNUpdateMembersOperation', PNGetMembershipsOperation: 'PNGetMembershipsOperation', PNUpdateMembershipsOperation: 'PNUpdateMembershipsOperation', + PNListFilesOperation: 'PNListFilesOperation', + PNGenerateUploadUrlOperation: 'PNGenerateUploadUrlOperation', + PNPublishFileOperation: 'PNPublishFileOperation', + PNGetFileUrlOperation: 'PNGetFileUrlOperation', + PNDownloadFileOperation: 'PNDownloadFileOperation', PNGetAllUUIDMetadataOperation: 'PNGetAllUUIDMetadataOperation', PNGetUUIDMetadataOperation: 'PNGetUUIDMetadataOperation', PNSetUUIDMetadataOperation: 'PNSetUUIDMetadataOperation', @@ -154,7 +171,7 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 1 */ +/* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -163,7 +180,7 @@ module.exports = exports.default; module.exports = {}; /***/ }), -/* 2 */ +/* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -237,113 +254,154 @@ module.exports = { }; /***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _uuid = _interopRequireDefault(__webpack_require__(5)); - -var _flow_interfaces = __webpack_require__(1); - -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, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var PRESENCE_TIMEOUT_MINIMUM = 20; -var PRESENCE_TIMEOUT_DEFAULT = 300; - -var _default = function () { - function _default(_ref) { - var setup = _ref.setup, - db = _ref.db; - - _classCallCheck(this, _default); - - _defineProperty(this, "_db", void 0); - - _defineProperty(this, "subscribeKey", void 0); - - _defineProperty(this, "publishKey", void 0); - - _defineProperty(this, "secretKey", void 0); - - _defineProperty(this, "cipherKey", void 0); - - _defineProperty(this, "authKey", void 0); - - _defineProperty(this, "UUID", void 0); - - _defineProperty(this, "proxy", void 0); - - _defineProperty(this, "instanceId", void 0); - - _defineProperty(this, "sdkName", void 0); +/* 4 */ +/***/ (function(module, exports) { + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } - _defineProperty(this, "sdkFamily", void 0); + return obj; +} - _defineProperty(this, "partnerId", void 0); +module.exports = _defineProperty; - _defineProperty(this, "filterExpression", void 0); +/***/ }), +/* 5 */ +/***/ (function(module, exports) { - _defineProperty(this, "suppressLeaveEvents", void 0); +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} - _defineProperty(this, "secure", void 0); +module.exports = _classCallCheck; - _defineProperty(this, "origin", void 0); +/***/ }), +/* 6 */ +/***/ (function(module, exports) { - _defineProperty(this, "logVerbosity", void 0); +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, descriptor.key, descriptor); + } +} - _defineProperty(this, "useInstanceId", void 0); +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} - _defineProperty(this, "useRequestId", void 0); +module.exports = _createClass; - _defineProperty(this, "keepAlive", void 0); +/***/ }), +/* 7 */ +/***/ (function(module, exports) { - _defineProperty(this, "keepAliveSettings", void 0); +function _typeof(obj) { + "@babel/helpers - typeof"; - _defineProperty(this, "autoNetworkDetection", void 0); + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + module.exports = _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + module.exports = _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } - _defineProperty(this, "announceSuccessfulHeartbeats", void 0); + return _typeof(obj); +} - _defineProperty(this, "announceFailedHeartbeats", void 0); +module.exports = _typeof; - _defineProperty(this, "_presenceTimeout", void 0); +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { - _defineProperty(this, "_heartbeatInterval", void 0); +"use strict"; - _defineProperty(this, "_subscribeRequestTimeout", void 0); - _defineProperty(this, "_transactionalRequestTimeout", void 0); +var _interopRequireDefault = __webpack_require__(0); - _defineProperty(this, "_useSendBeacon", void 0); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; - _defineProperty(this, "_PNSDKSuffix", void 0); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); - _defineProperty(this, "requestMessageCountThreshold", void 0); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); - _defineProperty(this, "restore", void 0); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); - _defineProperty(this, "dedupeOnSubscribe", void 0); +var _uuid = _interopRequireDefault(__webpack_require__(15)); - _defineProperty(this, "maximumCacheSize", void 0); +var _flow_interfaces = __webpack_require__(2); - _defineProperty(this, "customEncrypt", void 0); +var PRESENCE_TIMEOUT_MINIMUM = 20; +var PRESENCE_TIMEOUT_DEFAULT = 300; - _defineProperty(this, "customDecrypt", void 0); +var _default = function () { + function _default(_ref) { + var _setup$fileUploadPubl, _setup$useRandomIVs; + var setup = _ref.setup, + db = _ref.db; + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_db", void 0); + (0, _defineProperty2["default"])(this, "subscribeKey", void 0); + (0, _defineProperty2["default"])(this, "publishKey", void 0); + (0, _defineProperty2["default"])(this, "secretKey", void 0); + (0, _defineProperty2["default"])(this, "cipherKey", void 0); + (0, _defineProperty2["default"])(this, "authKey", void 0); + (0, _defineProperty2["default"])(this, "UUID", void 0); + (0, _defineProperty2["default"])(this, "proxy", void 0); + (0, _defineProperty2["default"])(this, "instanceId", void 0); + (0, _defineProperty2["default"])(this, "sdkName", void 0); + (0, _defineProperty2["default"])(this, "sdkFamily", void 0); + (0, _defineProperty2["default"])(this, "partnerId", void 0); + (0, _defineProperty2["default"])(this, "filterExpression", void 0); + (0, _defineProperty2["default"])(this, "suppressLeaveEvents", void 0); + (0, _defineProperty2["default"])(this, "secure", void 0); + (0, _defineProperty2["default"])(this, "origin", void 0); + (0, _defineProperty2["default"])(this, "logVerbosity", void 0); + (0, _defineProperty2["default"])(this, "useInstanceId", void 0); + (0, _defineProperty2["default"])(this, "useRequestId", void 0); + (0, _defineProperty2["default"])(this, "keepAlive", void 0); + (0, _defineProperty2["default"])(this, "keepAliveSettings", void 0); + (0, _defineProperty2["default"])(this, "autoNetworkDetection", void 0); + (0, _defineProperty2["default"])(this, "announceSuccessfulHeartbeats", void 0); + (0, _defineProperty2["default"])(this, "announceFailedHeartbeats", void 0); + (0, _defineProperty2["default"])(this, "_presenceTimeout", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatInterval", void 0); + (0, _defineProperty2["default"])(this, "_subscribeRequestTimeout", void 0); + (0, _defineProperty2["default"])(this, "_transactionalRequestTimeout", void 0); + (0, _defineProperty2["default"])(this, "_useSendBeacon", void 0); + (0, _defineProperty2["default"])(this, "_PNSDKSuffix", void 0); + (0, _defineProperty2["default"])(this, "requestMessageCountThreshold", void 0); + (0, _defineProperty2["default"])(this, "restore", void 0); + (0, _defineProperty2["default"])(this, "dedupeOnSubscribe", void 0); + (0, _defineProperty2["default"])(this, "maximumCacheSize", void 0); + (0, _defineProperty2["default"])(this, "customEncrypt", void 0); + (0, _defineProperty2["default"])(this, "customDecrypt", void 0); + (0, _defineProperty2["default"])(this, "fileUploadPublishRetryLimit", void 0); + (0, _defineProperty2["default"])(this, "useRandomIVs", void 0); this._PNSDKSuffix = {}; this._db = db; this.instanceId = "pn-".concat(_uuid["default"].createUUID()); @@ -367,6 +425,8 @@ var _default = function () { this.maximumCacheSize = setup.maximumCacheSize || 100; this.customEncrypt = setup.customEncrypt; this.customDecrypt = setup.customDecrypt; + this.fileUploadPublishRetryLimit = (_setup$fileUploadPubl = setup.fileUploadPublishRetryLimit) !== null && _setup$fileUploadPubl !== void 0 ? _setup$fileUploadPubl : 5; + this.useRandomIVs = (_setup$useRandomIVs = setup.useRandomIVs) !== null && _setup$useRandomIVs !== void 0 ? _setup$useRandomIVs : false; if (typeof location !== 'undefined' && location.protocol === 'https:') { this.secure = true; @@ -396,7 +456,7 @@ var _default = function () { this.setUUID(this._decideUUID(setup.uuid)); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "getAuthKey", value: function getAuthKey() { return this.authKey; @@ -506,7 +566,7 @@ var _default = function () { }, { key: "getVersion", value: function getVersion() { - return '4.28.4'; + return '4.29.0'; } }, { key: "_addPnsdkSuffix", @@ -536,7 +596,6 @@ var _default = function () { return "pn-".concat(_uuid["default"].createUUID()); } }]); - return _default; }(); @@ -544,7 +603,38 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 4 */ +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayWithHoles = __webpack_require__(70); + +var iterableToArrayLimit = __webpack_require__(71); + +var unsupportedIterableToArray = __webpack_require__(72); + +var nonIterableRest = __webpack_require__(74); + +function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArray; + +/***/ }), +/* 10 */ +/***/ (function(module, exports) { + +function _getPrototypeOf(o) { + module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +module.exports = _getPrototypeOf; + +/***/ }), +/* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -570,20 +660,76 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 5 */ +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +var _typeof = __webpack_require__(7); + +var assertThisInitialized = __webpack_require__(17); + +function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } + + return assertThisInitialized(self); +} + +module.exports = _possibleConstructorReturn; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +var setPrototypeOf = __webpack_require__(14); + +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); +} + +module.exports = _inherits; + +/***/ }), +/* 14 */ +/***/ (function(module, exports) { + +function _setPrototypeOf(o, p) { + module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +module.exports = _setPrototypeOf; + +/***/ }), +/* 15 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _lilUuid = _interopRequireDefault(__webpack_require__(12)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _lilUuid = _interopRequireDefault(__webpack_require__(27)); var _default = { createUUID: function createUUID() { @@ -598,260 +744,598 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 6 */ +/* 16 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports["default"] = void 0; +exports.createValidationError = createValidationError; +exports["default"] = _default; +exports.PubNubError = void 0; -var _config = _interopRequireDefault(__webpack_require__(3)); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -var _hmacSha = _interopRequireDefault(__webpack_require__(13)); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(12)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(10)); -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, descriptor.key, descriptor); } } +var _inherits2 = _interopRequireDefault(__webpack_require__(13)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(37)); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _uuid = _interopRequireDefault(__webpack_require__(15)); -var _default = function () { - function _default(_ref) { - var config = _ref.config; +var _flow_interfaces = __webpack_require__(2); - _classCallCheck(this, _default); +var _utils = _interopRequireDefault(__webpack_require__(3)); - _defineProperty(this, "_config", void 0); +var _config = _interopRequireDefault(__webpack_require__(8)); - _defineProperty(this, "_iv", void 0); +var _operations = _interopRequireDefault(__webpack_require__(1)); - _defineProperty(this, "_allowedKeyEncodings", void 0); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - _defineProperty(this, "_allowedKeyLengths", void 0); +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - _defineProperty(this, "_allowedModes", void 0); +var PubNubError = function (_Error) { + (0, _inherits2["default"])(PubNubError, _Error); - _defineProperty(this, "_defaultOptions", void 0); + function PubNubError(message, status) { + var _this; - this._config = config; - this._iv = '0123456789012345'; - this._allowedKeyEncodings = ['hex', 'utf8', 'base64', 'binary']; - this._allowedKeyLengths = [128, 256]; - this._allowedModes = ['ecb', 'cbc']; - this._defaultOptions = { - encryptKey: true, - keyEncoding: 'utf8', - keyLength: 256, - mode: 'cbc' - }; + (0, _classCallCheck2["default"])(this, PubNubError); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PubNubError).call(this, message)); + _this.name = _this.constructor.name; + _this.status = status; + _this.message = message; + return _this; } - _createClass(_default, [{ - key: "HMACSHA256", - value: function HMACSHA256(data) { - var hash = _hmacSha["default"].HmacSHA256(data, this._config.secretKey); + return PubNubError; +}((0, _wrapNativeSuper2["default"])(Error)); - return hash.toString(_hmacSha["default"].enc.Base64); - } - }, { - key: "SHA256", - value: function SHA256(s) { - return _hmacSha["default"].SHA256(s).toString(_hmacSha["default"].enc.Hex); - } - }, { - key: "_parseOptions", - value: function _parseOptions(incomingOptions) { - var options = incomingOptions || {}; - if (!options.hasOwnProperty('encryptKey')) options.encryptKey = this._defaultOptions.encryptKey; - if (!options.hasOwnProperty('keyEncoding')) options.keyEncoding = this._defaultOptions.keyEncoding; - if (!options.hasOwnProperty('keyLength')) options.keyLength = this._defaultOptions.keyLength; - if (!options.hasOwnProperty('mode')) options.mode = this._defaultOptions.mode; +exports.PubNubError = PubNubError; - if (this._allowedKeyEncodings.indexOf(options.keyEncoding.toLowerCase()) === -1) { - options.keyEncoding = this._defaultOptions.keyEncoding; - } +function createError(errorPayload, type) { + errorPayload.type = type; + errorPayload.error = true; + return errorPayload; +} - if (this._allowedKeyLengths.indexOf(parseInt(options.keyLength, 10)) === -1) { - options.keyLength = this._defaultOptions.keyLength; - } +function createValidationError(message) { + return createError({ + message: message + }, 'validationError'); +} - if (this._allowedModes.indexOf(options.mode.toLowerCase()) === -1) { - options.mode = this._defaultOptions.mode; - } +function decideURL(endpoint, modules, incomingParams) { + if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { + return endpoint.postURL(modules, incomingParams); + } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) { + return endpoint.patchURL(modules, incomingParams); + } else { + return endpoint.getURL(modules, incomingParams); + } +} - return options; - } - }, { - key: "_decodeKey", - value: function _decodeKey(key, options) { - if (options.keyEncoding === 'base64') { - return _hmacSha["default"].enc.Base64.parse(key); - } else if (options.keyEncoding === 'hex') { - return _hmacSha["default"].enc.Hex.parse(key); - } else { - return key; - } - } - }, { - key: "_getPaddedKey", - value: function _getPaddedKey(key, options) { - key = this._decodeKey(key, options); +function getAuthToken(endpoint, modules, incomingParams) { + var token; - if (options.encryptKey) { - return _hmacSha["default"].enc.Utf8.parse(this.SHA256(key).slice(0, 32)); - } else { - return key; - } - } - }, { - key: "_getMode", - value: function _getMode(options) { - if (options.mode === 'ecb') { - return _hmacSha["default"].mode.ECB; - } else { - return _hmacSha["default"].mode.CBC; - } - } - }, { - key: "_getIV", - value: function _getIV(options) { - return options.mode === 'cbc' ? _hmacSha["default"].enc.Utf8.parse(this._iv) : null; - } - }, { - key: "encrypt", - value: function encrypt(data, customCipherKey, options) { - if (this._config.customEncrypt) { - return this._config.customEncrypt(data); - } else { - return this.pnEncrypt(data, customCipherKey, options); - } + if (endpoint.getAuthToken) { + token = endpoint.getAuthToken(modules, incomingParams); + } + + return token; +} + +function generatePNSDK(config) { + if (config.sdkName) { + return config.sdkName; + } + + var base = "PubNub-JS-".concat(config.sdkFamily); + + if (config.partnerId) { + base += "-".concat(config.partnerId); + } + + base += "/".concat(config.getVersion()); + + var pnsdkSuffix = config._getPnsdkSuffix(' '); + + if (pnsdkSuffix.length > 0) { + base += pnsdkSuffix; + } + + return base; +} + +function getHttpMethod(modules, endpoint, incomingParams) { + if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { + return 'POST'; + } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) { + return 'PATCH'; + } else if (endpoint.useDelete && endpoint.useDelete(modules, incomingParams)) { + return 'DELETE'; + } else { + return 'GET'; + } +} + +function signRequest(modules, url, outgoingParams, incomingParams, endpoint) { + var config = modules.config, + crypto = modules.crypto; + var httpMethod = getHttpMethod(modules, endpoint, incomingParams); + outgoingParams.timestamp = Math.floor(new Date().getTime() / 1000); + var signInput = "".concat(httpMethod, "\n").concat(config.publishKey, "\n").concat(url, "\n").concat(_utils["default"].signPamFromParams(outgoingParams), "\n"); + + if (httpMethod === 'POST') { + var payload = endpoint.postPayload(modules, incomingParams); + + if (typeof payload === 'string') { + signInput += payload; + } else { + signInput += JSON.stringify(payload); } - }, { - key: "decrypt", - value: function decrypt(data, customCipherKey, options) { - if (this._config.customDecrypt) { - return this._config.customDecrypt(data); - } else { - return this.pnDecrypt(data, customCipherKey, options); - } + } else if (httpMethod === 'PATCH') { + var _payload = endpoint.patchPayload(modules, incomingParams); + + if (typeof _payload === 'string') { + signInput += _payload; + } else { + signInput += JSON.stringify(_payload); } - }, { - key: "pnEncrypt", - value: function pnEncrypt(data, customCipherKey, options) { - if (!customCipherKey && !this._config.cipherKey) return data; - options = this._parseOptions(options); + } + + var signature = "v2.".concat(crypto.HMACSHA256(signInput)); + signature = signature.replace(/\+/g, '-'); + signature = signature.replace(/\//g, '_'); + signature = signature.replace(/=+$/, ''); + outgoingParams.signature = signature; +} - var iv = this._getIV(options); +function _default(modules, endpoint) { + var networking = modules.networking, + config = modules.config, + telemetryManager = modules.telemetryManager; - var mode = this._getMode(options); + var requestId = _uuid["default"].createUUID(); - var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); + var callback = null; + var promiseComponent = null; + var incomingParams = {}; - var encryptedHexArray = _hmacSha["default"].AES.encrypt(data, cipherKey, { - iv: iv, - mode: mode - }).ciphertext; + if (endpoint.getOperation() === _operations["default"].PNTimeOperation || endpoint.getOperation() === _operations["default"].PNChannelGroupsOperation) { + callback = arguments.length <= 2 ? undefined : arguments[2]; + } else { + incomingParams = arguments.length <= 2 ? undefined : arguments[2]; + callback = arguments.length <= 3 ? undefined : arguments[3]; + } + + if (typeof Promise !== 'undefined' && !callback) { + promiseComponent = _utils["default"].createPromise(); + } + + var validationResult = endpoint.validateParams(modules, incomingParams); - var base64Encrypted = encryptedHexArray.toString(_hmacSha["default"].enc.Base64); - return base64Encrypted || data; + if (validationResult) { + if (callback) { + return callback(createValidationError(validationResult)); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('Validation failed, check status for details', createValidationError(validationResult))); + return promiseComponent.promise; } - }, { - key: "pnDecrypt", - value: function pnDecrypt(data, customCipherKey, options) { - if (!customCipherKey && !this._config.cipherKey) return data; - options = this._parseOptions(options); - var iv = this._getIV(options); + return; + } - var mode = this._getMode(options); + var outgoingParams = endpoint.prepareParams(modules, incomingParams); + var url = decideURL(endpoint, modules, incomingParams); + var callInstance; + var networkingParams = { + url: url, + operation: endpoint.getOperation(), + timeout: endpoint.getRequestTimeout(modules), + headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {}, + ignoreBody: typeof endpoint.ignoreBody === 'function' ? endpoint.ignoreBody(modules) : false, + forceBuffered: typeof endpoint.forceBuffered === 'function' ? endpoint.forceBuffered(modules, incomingParams) : null + }; + outgoingParams.uuid = config.UUID; + outgoingParams.pnsdk = generatePNSDK(config); + var telemetryLatencies = telemetryManager.operationsLatencyForRequest(); - var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); + if (Object.keys(telemetryLatencies).length) { + outgoingParams = _objectSpread({}, outgoingParams, {}, telemetryLatencies); + } - try { - var ciphertext = _hmacSha["default"].enc.Base64.parse(data); + if (config.useInstanceId) { + outgoingParams.instanceid = config.instanceId; + } - var plainJSON = _hmacSha["default"].AES.decrypt({ - ciphertext: ciphertext - }, cipherKey, { - iv: iv, - mode: mode - }).toString(_hmacSha["default"].enc.Utf8); + if (config.useRequestId) { + outgoingParams.requestid = requestId; + } + + if (endpoint.isAuthSupported()) { + var token = getAuthToken(endpoint, modules, incomingParams); + var tokenOrKey = token || config.getAuthKey(); + + if (tokenOrKey) { + outgoingParams.auth = tokenOrKey; + } + } + + if (config.secretKey) { + signRequest(modules, url, outgoingParams, incomingParams, endpoint); + } - var plaintext = JSON.parse(plainJSON); - return plaintext; - } catch (e) { - return null; + var onResponse = function onResponse(status, payload) { + if (status.error) { + if (callback) { + callback(status); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', status)); } + + return; } - }]); - return _default; -}(); + telemetryManager.stopLatencyMeasure(endpoint.getOperation(), requestId); + var responseP = endpoint.handleResponse(modules, payload, incomingParams); -exports["default"] = _default; -module.exports = exports.default; + if (typeof responseP.then !== 'function') { + responseP = Promise.resolve(responseP); + } + + responseP.then(function (result) { + if (callback) { + callback(status, result); + } else if (promiseComponent) { + promiseComponent.fulfill(result); + } + })["catch"](function (e) { + if (callback) { + callback(e, null); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', e)); + } + }); + }; + + telemetryManager.startLatencyMeasure(endpoint.getOperation(), requestId); + + if (getHttpMethod(modules, endpoint, incomingParams) === 'POST') { + var payload = endpoint.postPayload(modules, incomingParams); + callInstance = networking.POST(outgoingParams, payload, networkingParams, onResponse); + } else if (getHttpMethod(modules, endpoint, incomingParams) === 'PATCH') { + var _payload2 = endpoint.patchPayload(modules, incomingParams); + + callInstance = networking.PATCH(outgoingParams, _payload2, networkingParams, onResponse); + } else if (getHttpMethod(modules, endpoint, incomingParams) === 'DELETE') { + callInstance = networking.DELETE(outgoingParams, networkingParams, onResponse); + } else { + callInstance = networking.GET(outgoingParams, networkingParams, onResponse); + } + + if (endpoint.getOperation() === _operations["default"].PNSubscribeOperation) { + return callInstance; + } + + if (promiseComponent) { + return promiseComponent.promise; + } +} /***/ }), -/* 7 */ +/* 17 */ +/***/ (function(module, exports) { + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +module.exports = _assertThisInitialized; + +/***/ }), +/* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _flow_interfaces = __webpack_require__(1); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -var _categories = _interopRequireDefault(__webpack_require__(4)); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _config = _interopRequireDefault(__webpack_require__(8)); -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, descriptor.key, descriptor); } } +var _hmacSha = _interopRequireDefault(__webpack_require__(28)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +function bufferToWordArray(b) { + var wa = []; + var i; -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var _default = function () { - function _default() { - _classCallCheck(this, _default); + for (i = 0; i < b.length; i += 1) { + wa[i / 4 | 0] |= b[i] << 24 - 8 * i; + } - _defineProperty(this, "_listeners", void 0); + return _hmacSha["default"].lib.WordArray.create(wa, b.length); +} - this._listeners = []; +var _default = function () { + function _default(_ref) { + var config = _ref.config; + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_iv", void 0); + (0, _defineProperty2["default"])(this, "_allowedKeyEncodings", void 0); + (0, _defineProperty2["default"])(this, "_allowedKeyLengths", void 0); + (0, _defineProperty2["default"])(this, "_allowedModes", void 0); + (0, _defineProperty2["default"])(this, "_defaultOptions", void 0); + this._config = config; + this._iv = '0123456789012345'; + this._allowedKeyEncodings = ['hex', 'utf8', 'base64', 'binary']; + this._allowedKeyLengths = [128, 256]; + this._allowedModes = ['ecb', 'cbc']; + this._defaultOptions = { + encryptKey: true, + keyEncoding: 'utf8', + keyLength: 256, + mode: 'cbc' + }; } - _createClass(_default, [{ - key: "addListener", - value: function addListener(newListeners) { - this._listeners.push(newListeners); - } - }, { - key: "removeListener", - value: function removeListener(deprecatedListener) { - var newListeners = []; - - this._listeners.forEach(function (listener) { - if (listener !== deprecatedListener) newListeners.push(listener); - }); + (0, _createClass2["default"])(_default, [{ + key: "HMACSHA256", + value: function HMACSHA256(data) { + var hash = _hmacSha["default"].HmacSHA256(data, this._config.secretKey); - this._listeners = newListeners; + return hash.toString(_hmacSha["default"].enc.Base64); } }, { - key: "removeAllListeners", + key: "SHA256", + value: function SHA256(s) { + return _hmacSha["default"].SHA256(s).toString(_hmacSha["default"].enc.Hex); + } + }, { + key: "_parseOptions", + value: function _parseOptions(incomingOptions) { + var options = incomingOptions || {}; + if (!options.hasOwnProperty('encryptKey')) options.encryptKey = this._defaultOptions.encryptKey; + if (!options.hasOwnProperty('keyEncoding')) options.keyEncoding = this._defaultOptions.keyEncoding; + if (!options.hasOwnProperty('keyLength')) options.keyLength = this._defaultOptions.keyLength; + if (!options.hasOwnProperty('mode')) options.mode = this._defaultOptions.mode; + + if (this._allowedKeyEncodings.indexOf(options.keyEncoding.toLowerCase()) === -1) { + options.keyEncoding = this._defaultOptions.keyEncoding; + } + + if (this._allowedKeyLengths.indexOf(parseInt(options.keyLength, 10)) === -1) { + options.keyLength = this._defaultOptions.keyLength; + } + + if (this._allowedModes.indexOf(options.mode.toLowerCase()) === -1) { + options.mode = this._defaultOptions.mode; + } + + return options; + } + }, { + key: "_decodeKey", + value: function _decodeKey(key, options) { + if (options.keyEncoding === 'base64') { + return _hmacSha["default"].enc.Base64.parse(key); + } else if (options.keyEncoding === 'hex') { + return _hmacSha["default"].enc.Hex.parse(key); + } else { + return key; + } + } + }, { + key: "_getPaddedKey", + value: function _getPaddedKey(key, options) { + key = this._decodeKey(key, options); + + if (options.encryptKey) { + return _hmacSha["default"].enc.Utf8.parse(this.SHA256(key).slice(0, 32)); + } else { + return key; + } + } + }, { + key: "_getMode", + value: function _getMode(options) { + if (options.mode === 'ecb') { + return _hmacSha["default"].mode.ECB; + } else { + return _hmacSha["default"].mode.CBC; + } + } + }, { + key: "_getIV", + value: function _getIV(options) { + return options.mode === 'cbc' ? _hmacSha["default"].enc.Utf8.parse(this._iv) : null; + } + }, { + key: "_getRandomIV", + value: function _getRandomIV() { + return _hmacSha["default"].lib.WordArray.random(16); + } + }, { + key: "encrypt", + value: function encrypt(data, customCipherKey, options) { + if (this._config.customEncrypt) { + return this._config.customEncrypt(data); + } else { + return this.pnEncrypt(data, customCipherKey, options); + } + } + }, { + key: "decrypt", + value: function decrypt(data, customCipherKey, options) { + if (this._config.customDecrypt) { + return this._config.customDecrypt(data); + } else { + return this.pnDecrypt(data, customCipherKey, options); + } + } + }, { + key: "pnEncrypt", + value: function pnEncrypt(data, customCipherKey, options) { + if (!customCipherKey && !this._config.cipherKey) return data; + options = this._parseOptions(options); + + var mode = this._getMode(options); + + var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); + + if (this._config.useRandomIVs) { + var waIv = this._getRandomIV(); + + var waPayload = _hmacSha["default"].AES.encrypt(data, cipherKey, { + iv: waIv, + mode: mode + }).ciphertext; + + return waIv.clone().concat(waPayload.clone()).toString(_hmacSha["default"].enc.Base64); + } else { + var iv = this._getIV(options); + + var encryptedHexArray = _hmacSha["default"].AES.encrypt(data, cipherKey, { + iv: iv, + mode: mode + }).ciphertext; + + var base64Encrypted = encryptedHexArray.toString(_hmacSha["default"].enc.Base64); + return base64Encrypted || data; + } + } + }, { + key: "pnDecrypt", + value: function pnDecrypt(data, customCipherKey, options) { + if (!customCipherKey && !this._config.cipherKey) return data; + options = this._parseOptions(options); + + var mode = this._getMode(options); + + var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); + + if (this._config.useRandomIVs) { + var ciphertext = Buffer.from(data, 'base64'); + var iv = bufferToWordArray(ciphertext.slice(0, 16)); + var payload = bufferToWordArray(ciphertext.slice(16)); + + try { + var plainJSON = _hmacSha["default"].AES.decrypt({ + ciphertext: payload + }, cipherKey, { + iv: iv, + mode: mode + }).toString(_hmacSha["default"].enc.Utf8); + + var plaintext = JSON.parse(plainJSON); + return plaintext; + } catch (e) { + return null; + } + } else { + var _iv = this._getIV(options); + + try { + var _ciphertext = _hmacSha["default"].enc.Base64.parse(data); + + var _plainJSON = _hmacSha["default"].AES.decrypt({ + ciphertext: _ciphertext + }, cipherKey, { + iv: _iv, + mode: mode + }).toString(_hmacSha["default"].enc.Utf8); + + var _plaintext = JSON.parse(_plainJSON); + + return _plaintext; + } catch (e) { + return null; + } + } + } + }]); + return _default; +}(); + +exports["default"] = _default; +module.exports = exports.default; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); + +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); + +var _flow_interfaces = __webpack_require__(2); + +var _categories = _interopRequireDefault(__webpack_require__(11)); + +var _default = function () { + function _default() { + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_listeners", void 0); + this._listeners = []; + } + + (0, _createClass2["default"])(_default, [{ + key: "addListener", + value: function addListener(newListeners) { + this._listeners.push(newListeners); + } + }, { + key: "removeListener", + value: function removeListener(deprecatedListener) { + var newListeners = []; + + this._listeners.forEach(function (listener) { + if (listener !== deprecatedListener) newListeners.push(listener); + }); + + this._listeners = newListeners; + } + }, { + key: "removeAllListeners", value: function removeAllListeners() { this._listeners = []; } @@ -890,6 +1374,13 @@ var _default = function () { if (listener.messageAction) listener.messageAction(announce); }); } + }, { + key: "announceFile", + value: function announceFile(announce) { + this._listeners.forEach(function (listener) { + if (listener.file) listener.file(announce); + }); + } }, { key: "announceObjects", value: function announceObjects(announce) { @@ -933,7 +1424,6 @@ var _default = function () { this.announceStatus(networkStatus); } }]); - return _default; }(); @@ -941,12 +1431,14 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 8 */ +/* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -958,11 +1450,9 @@ exports.isAuthSupported = isAuthSupported; exports.handleResponse = handleResponse; exports.validateParams = validateParams; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNTimeOperation; @@ -994,53 +1484,95 @@ function handleResponse(modules, serverResponse) { function validateParams() {} /***/ }), -/* 9 */ +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(65); + + +/***/ }), +/* 22 */ +/***/ (function(module, exports) { + +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); + }); + }; +} + +module.exports = _asyncToGenerator; + +/***/ }), +/* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _cborSync = _interopRequireDefault(__webpack_require__(10)); - -var _pubnubCommon = _interopRequireDefault(__webpack_require__(11)); - -var _networking = _interopRequireDefault(__webpack_require__(79)); - -var _common = _interopRequireDefault(__webpack_require__(80)); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -var _common2 = _interopRequireDefault(__webpack_require__(81)); +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(12)); -var _titanium = __webpack_require__(82); +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(10)); -var _flow_interfaces = __webpack_require__(1); +var _inherits2 = _interopRequireDefault(__webpack_require__(13)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _cborSync = _interopRequireDefault(__webpack_require__(24)); -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); } +var _pubnubCommon = _interopRequireDefault(__webpack_require__(25)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _networking = _interopRequireDefault(__webpack_require__(114)); -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } +var _common = _interopRequireDefault(__webpack_require__(115)); -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +var _common2 = _interopRequireDefault(__webpack_require__(116)); -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +var _titanium = __webpack_require__(117); -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 _flow_interfaces = __webpack_require__(2); var PubNub = function (_PubNubCore) { - _inherits(PubNub, _PubNubCore); + (0, _inherits2["default"])(PubNub, _PubNubCore); function PubNub(setup) { - _classCallCheck(this, PubNub); - + (0, _classCallCheck2["default"])(this, PubNub); setup.db = new _common["default"](); setup.cbor = new _common2["default"](_cborSync["default"].decode, function (base64String) { return new Buffer.from(base64String, 'base64'); @@ -1052,7 +1584,7 @@ var PubNub = function (_PubNubCore) { post: _titanium.post, patch: _titanium.patch }); - return _possibleConstructorReturn(this, _getPrototypeOf(PubNub).call(this, setup)); + return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PubNub).call(this, setup)); } return PubNub; @@ -1062,7 +1594,7 @@ exports["default"] = PubNub; module.exports = exports.default; /***/ }), -/* 10 */ +/* 24 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) { @@ -1696,365 +2228,324 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ }); /***/ }), -/* 11 */ +/* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -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); } +var _interopRequireWildcard = __webpack_require__(26); + +var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _config = _interopRequireDefault(__webpack_require__(3)); - -var _index = _interopRequireDefault(__webpack_require__(6)); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -var _subscription_manager = _interopRequireDefault(__webpack_require__(14)); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -var _telemetry_manager = _interopRequireDefault(__webpack_require__(17)); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -var _push_payload = _interopRequireDefault(__webpack_require__(18)); +var _config = _interopRequireDefault(__webpack_require__(8)); -var _listener_manager = _interopRequireDefault(__webpack_require__(7)); +var _index = _interopRequireDefault(__webpack_require__(18)); -var _token_manager = _interopRequireDefault(__webpack_require__(19)); +var _subscription_manager = _interopRequireDefault(__webpack_require__(29)); -var _endpoint = _interopRequireDefault(__webpack_require__(20)); +var _telemetry_manager = _interopRequireDefault(__webpack_require__(32)); -var _utils = __webpack_require__(2); +var _push_payload = _interopRequireDefault(__webpack_require__(33)); -var addChannelsChannelGroupConfig = _interopRequireWildcard(__webpack_require__(21)); +var _listener_manager = _interopRequireDefault(__webpack_require__(19)); -var removeChannelsChannelGroupConfig = _interopRequireWildcard(__webpack_require__(22)); +var _token_manager = _interopRequireDefault(__webpack_require__(36)); -var deleteChannelGroupConfig = _interopRequireWildcard(__webpack_require__(23)); +var _endpoint = _interopRequireDefault(__webpack_require__(16)); -var listChannelGroupsConfig = _interopRequireWildcard(__webpack_require__(24)); +var _utils = __webpack_require__(3); -var listChannelsInChannelGroupConfig = _interopRequireWildcard(__webpack_require__(25)); +var addChannelsChannelGroupConfig = _interopRequireWildcard(__webpack_require__(41)); -var addPushChannelsConfig = _interopRequireWildcard(__webpack_require__(26)); +var removeChannelsChannelGroupConfig = _interopRequireWildcard(__webpack_require__(42)); -var removePushChannelsConfig = _interopRequireWildcard(__webpack_require__(27)); +var deleteChannelGroupConfig = _interopRequireWildcard(__webpack_require__(43)); -var listPushChannelsConfig = _interopRequireWildcard(__webpack_require__(28)); +var listChannelGroupsConfig = _interopRequireWildcard(__webpack_require__(44)); -var removeDevicePushConfig = _interopRequireWildcard(__webpack_require__(29)); +var listChannelsInChannelGroupConfig = _interopRequireWildcard(__webpack_require__(45)); -var presenceLeaveEndpointConfig = _interopRequireWildcard(__webpack_require__(30)); +var addPushChannelsConfig = _interopRequireWildcard(__webpack_require__(46)); -var presenceWhereNowEndpointConfig = _interopRequireWildcard(__webpack_require__(31)); +var removePushChannelsConfig = _interopRequireWildcard(__webpack_require__(47)); -var presenceHeartbeatEndpointConfig = _interopRequireWildcard(__webpack_require__(32)); +var listPushChannelsConfig = _interopRequireWildcard(__webpack_require__(48)); -var presenceGetStateConfig = _interopRequireWildcard(__webpack_require__(33)); +var removeDevicePushConfig = _interopRequireWildcard(__webpack_require__(49)); -var presenceSetStateConfig = _interopRequireWildcard(__webpack_require__(34)); +var presenceLeaveEndpointConfig = _interopRequireWildcard(__webpack_require__(50)); -var presenceHereNowConfig = _interopRequireWildcard(__webpack_require__(35)); +var presenceWhereNowEndpointConfig = _interopRequireWildcard(__webpack_require__(51)); -var addMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(36)); +var presenceHeartbeatEndpointConfig = _interopRequireWildcard(__webpack_require__(52)); -var removeMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(37)); +var presenceGetStateConfig = _interopRequireWildcard(__webpack_require__(53)); -var getMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(38)); +var presenceSetStateConfig = _interopRequireWildcard(__webpack_require__(54)); -var _get_all = _interopRequireDefault(__webpack_require__(39)); +var presenceHereNowConfig = _interopRequireWildcard(__webpack_require__(55)); -var _get = _interopRequireDefault(__webpack_require__(40)); +var addMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(56)); -var _set = _interopRequireDefault(__webpack_require__(41)); +var removeMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(57)); -var _remove = _interopRequireDefault(__webpack_require__(42)); +var getMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(58)); -var _get_all2 = _interopRequireDefault(__webpack_require__(43)); +var _file = __webpack_require__(59); -var _get2 = _interopRequireDefault(__webpack_require__(44)); +var fileUploadTypes = _interopRequireWildcard(__webpack_require__(60)); -var _set2 = _interopRequireDefault(__webpack_require__(45)); +var _list_files = _interopRequireDefault(__webpack_require__(61)); -var _remove2 = _interopRequireDefault(__webpack_require__(46)); +var _generate_upload_url = _interopRequireDefault(__webpack_require__(62)); -var _get3 = _interopRequireDefault(__webpack_require__(47)); +var _publish_file = _interopRequireDefault(__webpack_require__(63)); -var _set3 = _interopRequireDefault(__webpack_require__(48)); +var _send_file = _interopRequireDefault(__webpack_require__(64)); -var _get4 = _interopRequireDefault(__webpack_require__(49)); +var _get_file_url = _interopRequireDefault(__webpack_require__(66)); -var _set4 = _interopRequireDefault(__webpack_require__(50)); +var _download_file = _interopRequireDefault(__webpack_require__(67)); -var createUserEndpointConfig = _interopRequireWildcard(__webpack_require__(51)); +var _delete_file = _interopRequireDefault(__webpack_require__(68)); -var updateUserEndpointConfig = _interopRequireWildcard(__webpack_require__(52)); +var _get_all = _interopRequireDefault(__webpack_require__(69)); -var deleteUserEndpointConfig = _interopRequireWildcard(__webpack_require__(53)); +var _get = _interopRequireDefault(__webpack_require__(75)); -var getUserEndpointConfig = _interopRequireWildcard(__webpack_require__(54)); +var _set = _interopRequireDefault(__webpack_require__(76)); -var getUsersEndpointConfig = _interopRequireWildcard(__webpack_require__(55)); +var _remove = _interopRequireDefault(__webpack_require__(77)); -var createSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(56)); +var _get_all2 = _interopRequireDefault(__webpack_require__(78)); -var updateSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(57)); +var _get2 = _interopRequireDefault(__webpack_require__(79)); -var deleteSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(58)); +var _set2 = _interopRequireDefault(__webpack_require__(80)); -var getSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(59)); +var _remove2 = _interopRequireDefault(__webpack_require__(81)); -var getSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(60)); +var _get3 = _interopRequireDefault(__webpack_require__(82)); -var getMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(61)); +var _set3 = _interopRequireDefault(__webpack_require__(83)); -var addMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(62)); +var _get4 = _interopRequireDefault(__webpack_require__(84)); -var updateMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(63)); +var _set4 = _interopRequireDefault(__webpack_require__(85)); -var removeMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(64)); +var createUserEndpointConfig = _interopRequireWildcard(__webpack_require__(86)); -var getMembershipsEndpointConfig = _interopRequireWildcard(__webpack_require__(65)); +var updateUserEndpointConfig = _interopRequireWildcard(__webpack_require__(87)); -var updateMembershipsEndpointConfig = _interopRequireWildcard(__webpack_require__(66)); +var deleteUserEndpointConfig = _interopRequireWildcard(__webpack_require__(88)); -var joinSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(67)); +var getUserEndpointConfig = _interopRequireWildcard(__webpack_require__(89)); -var leaveSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(68)); +var getUsersEndpointConfig = _interopRequireWildcard(__webpack_require__(90)); -var auditEndpointConfig = _interopRequireWildcard(__webpack_require__(69)); +var createSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(91)); -var grantEndpointConfig = _interopRequireWildcard(__webpack_require__(70)); +var updateSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(92)); -var grantTokenEndpointConfig = _interopRequireWildcard(__webpack_require__(71)); +var deleteSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(93)); -var publishEndpointConfig = _interopRequireWildcard(__webpack_require__(72)); +var getSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(94)); -var signalEndpointConfig = _interopRequireWildcard(__webpack_require__(73)); +var getSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(95)); -var historyEndpointConfig = _interopRequireWildcard(__webpack_require__(74)); +var getMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(96)); -var deleteMessagesEndpointConfig = _interopRequireWildcard(__webpack_require__(75)); +var addMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(97)); -var messageCountsEndpointConfig = _interopRequireWildcard(__webpack_require__(76)); +var updateMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(98)); -var fetchMessagesEndpointConfig = _interopRequireWildcard(__webpack_require__(77)); +var removeMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(99)); -var timeEndpointConfig = _interopRequireWildcard(__webpack_require__(8)); +var getMembershipsEndpointConfig = _interopRequireWildcard(__webpack_require__(100)); -var subscribeEndpointConfig = _interopRequireWildcard(__webpack_require__(78)); +var updateMembershipsEndpointConfig = _interopRequireWildcard(__webpack_require__(101)); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var joinSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(102)); -var _categories = _interopRequireDefault(__webpack_require__(4)); +var leaveSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(103)); -var _flow_interfaces = __webpack_require__(1); +var auditEndpointConfig = _interopRequireWildcard(__webpack_require__(104)); -var _uuid = _interopRequireDefault(__webpack_require__(5)); +var grantEndpointConfig = _interopRequireWildcard(__webpack_require__(105)); -function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } +var grantTokenEndpointConfig = _interopRequireWildcard(__webpack_require__(106)); -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +var publishEndpointConfig = _interopRequireWildcard(__webpack_require__(107)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var signalEndpointConfig = _interopRequireWildcard(__webpack_require__(108)); -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } +var historyEndpointConfig = _interopRequireWildcard(__webpack_require__(109)); -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +var deleteMessagesEndpointConfig = _interopRequireWildcard(__webpack_require__(110)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var messageCountsEndpointConfig = _interopRequireWildcard(__webpack_require__(111)); -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, descriptor.key, descriptor); } } +var fetchMessagesEndpointConfig = _interopRequireWildcard(__webpack_require__(112)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var timeEndpointConfig = _interopRequireWildcard(__webpack_require__(20)); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var subscribeEndpointConfig = _interopRequireWildcard(__webpack_require__(113)); -var _default = function () { - function _default(setup) { - var _this = this; +var _operations = _interopRequireDefault(__webpack_require__(1)); - _classCallCheck(this, _default); +var _categories = _interopRequireDefault(__webpack_require__(11)); - _defineProperty(this, "_config", void 0); +var _flow_interfaces = __webpack_require__(2); - _defineProperty(this, "_telemetryManager", void 0); +var _uuid = _interopRequireDefault(__webpack_require__(15)); - _defineProperty(this, "_listenerManager", void 0); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - _defineProperty(this, "_tokenManager", void 0); +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - _defineProperty(this, "time", void 0); +var _default = function () { + function _default(setup) { + var _this = this; - _defineProperty(this, "publish", void 0); + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_telemetryManager", void 0); + (0, _defineProperty2["default"])(this, "_listenerManager", void 0); + (0, _defineProperty2["default"])(this, "_tokenManager", void 0); + (0, _defineProperty2["default"])(this, "time", void 0); + (0, _defineProperty2["default"])(this, "publish", void 0); + (0, _defineProperty2["default"])(this, "fire", void 0); + (0, _defineProperty2["default"])(this, "history", void 0); + (0, _defineProperty2["default"])(this, "deleteMessages", void 0); + (0, _defineProperty2["default"])(this, "messageCounts", void 0); + (0, _defineProperty2["default"])(this, "fetchMessages", void 0); + (0, _defineProperty2["default"])(this, "channelGroups", void 0); + (0, _defineProperty2["default"])(this, "push", void 0); + (0, _defineProperty2["default"])(this, "hereNow", void 0); + (0, _defineProperty2["default"])(this, "whereNow", void 0); + (0, _defineProperty2["default"])(this, "getState", void 0); + (0, _defineProperty2["default"])(this, "setState", void 0); + (0, _defineProperty2["default"])(this, "grant", void 0); + (0, _defineProperty2["default"])(this, "grantToken", void 0); + (0, _defineProperty2["default"])(this, "audit", void 0); + (0, _defineProperty2["default"])(this, "subscribe", void 0); + (0, _defineProperty2["default"])(this, "signal", void 0); + (0, _defineProperty2["default"])(this, "presence", void 0); + (0, _defineProperty2["default"])(this, "unsubscribe", void 0); + (0, _defineProperty2["default"])(this, "unsubscribeAll", void 0); + (0, _defineProperty2["default"])(this, "addMessageAction", void 0); + (0, _defineProperty2["default"])(this, "removeMessageAction", void 0); + (0, _defineProperty2["default"])(this, "getMessageActions", void 0); + (0, _defineProperty2["default"])(this, "File", void 0); + (0, _defineProperty2["default"])(this, "encryptFile", void 0); + (0, _defineProperty2["default"])(this, "decryptFile", void 0); + (0, _defineProperty2["default"])(this, "listFiles", void 0); + (0, _defineProperty2["default"])(this, "sendFile", void 0); + (0, _defineProperty2["default"])(this, "downloadFile", void 0); + (0, _defineProperty2["default"])(this, "getFileUrl", void 0); + (0, _defineProperty2["default"])(this, "deleteFile", void 0); + (0, _defineProperty2["default"])(this, "publishFile", void 0); + (0, _defineProperty2["default"])(this, "objects", void 0); + (0, _defineProperty2["default"])(this, "createUser", void 0); + (0, _defineProperty2["default"])(this, "updateUser", void 0); + (0, _defineProperty2["default"])(this, "deleteUser", void 0); + (0, _defineProperty2["default"])(this, "getUser", void 0); + (0, _defineProperty2["default"])(this, "getUsers", void 0); + (0, _defineProperty2["default"])(this, "createSpace", void 0); + (0, _defineProperty2["default"])(this, "updateSpace", void 0); + (0, _defineProperty2["default"])(this, "deleteSpace", void 0); + (0, _defineProperty2["default"])(this, "getSpaces", void 0); + (0, _defineProperty2["default"])(this, "getSpace", void 0); + (0, _defineProperty2["default"])(this, "getMembers", void 0); + (0, _defineProperty2["default"])(this, "addMembers", void 0); + (0, _defineProperty2["default"])(this, "updateMembers", void 0); + (0, _defineProperty2["default"])(this, "removeMembers", void 0); + (0, _defineProperty2["default"])(this, "getMemberships", void 0); + (0, _defineProperty2["default"])(this, "joinSpaces", void 0); + (0, _defineProperty2["default"])(this, "updateMemberships", void 0); + (0, _defineProperty2["default"])(this, "leaveSpaces", void 0); + (0, _defineProperty2["default"])(this, "disconnect", void 0); + (0, _defineProperty2["default"])(this, "reconnect", void 0); + (0, _defineProperty2["default"])(this, "destroy", void 0); + (0, _defineProperty2["default"])(this, "stop", void 0); + (0, _defineProperty2["default"])(this, "getSubscribedChannels", void 0); + (0, _defineProperty2["default"])(this, "getSubscribedChannelGroups", void 0); + (0, _defineProperty2["default"])(this, "addListener", void 0); + (0, _defineProperty2["default"])(this, "removeListener", void 0); + (0, _defineProperty2["default"])(this, "removeAllListeners", void 0); + (0, _defineProperty2["default"])(this, "parseToken", void 0); + (0, _defineProperty2["default"])(this, "setToken", void 0); + (0, _defineProperty2["default"])(this, "setTokens", void 0); + (0, _defineProperty2["default"])(this, "getToken", void 0); + (0, _defineProperty2["default"])(this, "getTokens", void 0); + (0, _defineProperty2["default"])(this, "clearTokens", void 0); + (0, _defineProperty2["default"])(this, "getAuthKey", void 0); + (0, _defineProperty2["default"])(this, "setAuthKey", void 0); + (0, _defineProperty2["default"])(this, "setCipherKey", void 0); + (0, _defineProperty2["default"])(this, "setUUID", void 0); + (0, _defineProperty2["default"])(this, "getUUID", void 0); + (0, _defineProperty2["default"])(this, "getFilterExpression", void 0); + (0, _defineProperty2["default"])(this, "setFilterExpression", void 0); + (0, _defineProperty2["default"])(this, "setHeartbeatInterval", void 0); + (0, _defineProperty2["default"])(this, "setProxy", void 0); + (0, _defineProperty2["default"])(this, "encrypt", void 0); + (0, _defineProperty2["default"])(this, "decrypt", void 0); + var db = setup.db, + networking = setup.networking, + cbor = setup.cbor; + var config = this._config = new _config["default"]({ + setup: setup, + db: db + }); + var crypto = new _index["default"]({ + config: config + }); + var cryptography = setup.cryptography; + networking.init(config); + var tokenManager = this._tokenManager = new _token_manager["default"](config, cbor); + var telemetryManager = this._telemetryManager = new _telemetry_manager["default"]({ + maximumSamplesCount: 60000 + }); + var modules = { + config: config, + networking: networking, + crypto: crypto, + cryptography: cryptography, + tokenManager: tokenManager, + telemetryManager: telemetryManager, + PubNubFile: setup.PubNubFile + }; + this.File = setup.PubNubFile; - _defineProperty(this, "fire", void 0); + this.encryptFile = function (key, file) { + return cryptography.encryptFile(key, file, _this.File); + }; - _defineProperty(this, "history", void 0); + this.decryptFile = function (key, file) { + return cryptography.decryptFile(key, file, _this.File); + }; - _defineProperty(this, "deleteMessages", void 0); + var timeEndpoint = _endpoint["default"].bind(this, modules, timeEndpointConfig); - _defineProperty(this, "messageCounts", void 0); + var leaveEndpoint = _endpoint["default"].bind(this, modules, presenceLeaveEndpointConfig); - _defineProperty(this, "fetchMessages", void 0); + var heartbeatEndpoint = _endpoint["default"].bind(this, modules, presenceHeartbeatEndpointConfig); - _defineProperty(this, "channelGroups", void 0); + var setStateEndpoint = _endpoint["default"].bind(this, modules, presenceSetStateConfig); - _defineProperty(this, "push", void 0); - - _defineProperty(this, "hereNow", void 0); - - _defineProperty(this, "whereNow", void 0); - - _defineProperty(this, "getState", void 0); - - _defineProperty(this, "setState", void 0); - - _defineProperty(this, "grant", void 0); - - _defineProperty(this, "grantToken", void 0); - - _defineProperty(this, "audit", void 0); - - _defineProperty(this, "subscribe", void 0); - - _defineProperty(this, "signal", void 0); - - _defineProperty(this, "presence", void 0); - - _defineProperty(this, "unsubscribe", void 0); - - _defineProperty(this, "unsubscribeAll", void 0); - - _defineProperty(this, "addMessageAction", void 0); - - _defineProperty(this, "removeMessageAction", void 0); - - _defineProperty(this, "getMessageActions", void 0); - - _defineProperty(this, "objects", void 0); - - _defineProperty(this, "createUser", void 0); - - _defineProperty(this, "updateUser", void 0); - - _defineProperty(this, "deleteUser", void 0); - - _defineProperty(this, "getUser", void 0); - - _defineProperty(this, "getUsers", void 0); - - _defineProperty(this, "createSpace", void 0); - - _defineProperty(this, "updateSpace", void 0); - - _defineProperty(this, "deleteSpace", void 0); - - _defineProperty(this, "getSpaces", void 0); - - _defineProperty(this, "getSpace", void 0); - - _defineProperty(this, "getMembers", void 0); - - _defineProperty(this, "addMembers", void 0); - - _defineProperty(this, "updateMembers", void 0); - - _defineProperty(this, "removeMembers", void 0); - - _defineProperty(this, "getMemberships", void 0); - - _defineProperty(this, "joinSpaces", void 0); - - _defineProperty(this, "updateMemberships", void 0); - - _defineProperty(this, "leaveSpaces", void 0); - - _defineProperty(this, "disconnect", void 0); - - _defineProperty(this, "reconnect", void 0); - - _defineProperty(this, "destroy", void 0); - - _defineProperty(this, "stop", void 0); - - _defineProperty(this, "getSubscribedChannels", void 0); - - _defineProperty(this, "getSubscribedChannelGroups", void 0); - - _defineProperty(this, "addListener", void 0); - - _defineProperty(this, "removeListener", void 0); - - _defineProperty(this, "removeAllListeners", void 0); - - _defineProperty(this, "parseToken", void 0); - - _defineProperty(this, "setToken", void 0); - - _defineProperty(this, "setTokens", void 0); - - _defineProperty(this, "getToken", void 0); - - _defineProperty(this, "getTokens", void 0); - - _defineProperty(this, "clearTokens", void 0); - - _defineProperty(this, "getAuthKey", void 0); - - _defineProperty(this, "setAuthKey", void 0); - - _defineProperty(this, "setCipherKey", void 0); - - _defineProperty(this, "setUUID", void 0); - - _defineProperty(this, "getUUID", void 0); - - _defineProperty(this, "getFilterExpression", void 0); - - _defineProperty(this, "setFilterExpression", void 0); - - _defineProperty(this, "setHeartbeatInterval", void 0); - - _defineProperty(this, "setProxy", void 0); - - _defineProperty(this, "encrypt", void 0); - - _defineProperty(this, "decrypt", void 0); - - var db = setup.db, - networking = setup.networking, - cbor = setup.cbor; - var config = this._config = new _config["default"]({ - setup: setup, - db: db - }); - var crypto = new _index["default"]({ - config: config - }); - networking.init(config); - var tokenManager = this._tokenManager = new _token_manager["default"](config, cbor); - var telemetryManager = this._telemetryManager = new _telemetry_manager["default"]({ - maximumSamplesCount: 60000 - }); - var modules = { - config: config, - networking: networking, - crypto: crypto, - tokenManager: tokenManager, - telemetryManager: telemetryManager - }; - - var timeEndpoint = _endpoint["default"].bind(this, modules, timeEndpointConfig); - - var leaveEndpoint = _endpoint["default"].bind(this, modules, presenceLeaveEndpointConfig); - - var heartbeatEndpoint = _endpoint["default"].bind(this, modules, presenceHeartbeatEndpointConfig); - - var setStateEndpoint = _endpoint["default"].bind(this, modules, presenceSetStateConfig); - - var subscribeEndpoint = _endpoint["default"].bind(this, modules, subscribeEndpointConfig); + var subscribeEndpoint = _endpoint["default"].bind(this, modules, subscribeEndpointConfig); var listenerManager = this._listenerManager = new _listener_manager["default"](); var subscriptionManager = new _subscription_manager["default"]({ @@ -2065,7 +2556,10 @@ var _default = function () { subscribeEndpoint: subscribeEndpoint, crypto: modules.crypto, config: modules.config, - listenerManager: listenerManager + listenerManager: listenerManager, + getFileUrl: function getFileUrl(params) { + return (0, _get_file_url["default"])(modules, params); + } }); this.addListener = listenerManager.addListener.bind(listenerManager); this.removeListener = listenerManager.removeListener.bind(listenerManager); @@ -2112,6 +2606,23 @@ var _default = function () { this.addMessageAction = _endpoint["default"].bind(this, modules, addMessageActionEndpointConfig); this.removeMessageAction = _endpoint["default"].bind(this, modules, removeMessageActionEndpointConfig); this.getMessageActions = _endpoint["default"].bind(this, modules, getMessageActionEndpointConfig); + this.listFiles = _endpoint["default"].bind(this, modules, _list_files["default"]); + + var generateUploadUrl = _endpoint["default"].bind(this, modules, _generate_upload_url["default"]); + + this.publishFile = _endpoint["default"].bind(this, modules, _publish_file["default"]); + this.sendFile = (0, _send_file["default"])({ + generateUploadUrl: generateUploadUrl, + publishFile: this.publishFile, + modules: modules + }); + + this.getFileUrl = function (params) { + return (0, _get_file_url["default"])(modules, params); + }; + + this.downloadFile = _endpoint["default"].bind(this, modules, _download_file["default"]); + this.deleteFile = _endpoint["default"].bind(this, modules, _delete_file["default"]); this.objects = { getAllUUIDMetadata: _endpoint["default"].bind(this, modules, _get_all["default"]), getUUIDMetadata: _endpoint["default"].bind(this, modules, _get["default"]), @@ -2214,7 +2725,7 @@ var _default = function () { } } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "getVersion", value: function getVersion() { return this._config.getVersion(); @@ -2253,20 +2764,76 @@ var _default = function () { return _uuid["default"].createUUID(); } }]); - return _default; }(); exports["default"] = _default; +(0, _defineProperty2["default"])(_default, "OPERATIONS", _operations["default"]); +(0, _defineProperty2["default"])(_default, "CATEGORIES", _categories["default"]); +module.exports = exports.default; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { -_defineProperty(_default, "OPERATIONS", _operations["default"]); +var _typeof = __webpack_require__(7); -_defineProperty(_default, "CATEGORIES", _categories["default"]); +function _getRequireWildcardCache() { + if (typeof WeakMap !== "function") return null; + var cache = new WeakMap(); -module.exports = exports.default; + _getRequireWildcardCache = function _getRequireWildcardCache() { + return cache; + }; + + return cache; +} + +function _interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } + + if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { + return { + "default": obj + }; + } + + var cache = _getRequireWildcardCache(); + + if (cache && cache.has(obj)) { + return cache.get(obj); + } + + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + + newObj["default"] = obj; + + if (cache) { + cache.set(obj, newObj); + } + + return newObj; +} + +module.exports = _interopRequireWildcard; /***/ }), -/* 12 */ +/* 27 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! lil-uuid - v0.1 - MIT License - https://github.com/lil-js/uuid */ @@ -2310,7 +2877,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 13 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3217,42 +3784,42 @@ CryptoJS.mode.ECB = function () { module.exports = CryptoJS; /***/ }), -/* 14 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _cryptography = _interopRequireDefault(__webpack_require__(6)); +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); -var _config = _interopRequireDefault(__webpack_require__(3)); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -var _listener_manager = _interopRequireDefault(__webpack_require__(7)); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -var _reconnection_manager = _interopRequireDefault(__webpack_require__(15)); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -var _deduping_manager = _interopRequireDefault(__webpack_require__(16)); +var _cryptography = _interopRequireDefault(__webpack_require__(18)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _config = _interopRequireDefault(__webpack_require__(8)); -var _flow_interfaces = __webpack_require__(1); +var _listener_manager = _interopRequireDefault(__webpack_require__(19)); -var _categories = _interopRequireDefault(__webpack_require__(4)); +var _reconnection_manager = _interopRequireDefault(__webpack_require__(30)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _deduping_manager = _interopRequireDefault(__webpack_require__(31)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _utils = _interopRequireDefault(__webpack_require__(3)); -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, descriptor.key, descriptor); } } +var _flow_interfaces = __webpack_require__(2); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _categories = _interopRequireDefault(__webpack_require__(11)); var _default = function () { function _default(_ref) { @@ -3261,70 +3828,45 @@ var _default = function () { heartbeatEndpoint = _ref.heartbeatEndpoint, setStateEndpoint = _ref.setStateEndpoint, timeEndpoint = _ref.timeEndpoint, + getFileUrl = _ref.getFileUrl, config = _ref.config, crypto = _ref.crypto, listenerManager = _ref.listenerManager; - - _classCallCheck(this, _default); - - _defineProperty(this, "_crypto", void 0); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "_listenerManager", void 0); - - _defineProperty(this, "_reconnectionManager", void 0); - - _defineProperty(this, "_leaveEndpoint", void 0); - - _defineProperty(this, "_heartbeatEndpoint", void 0); - - _defineProperty(this, "_setStateEndpoint", void 0); - - _defineProperty(this, "_subscribeEndpoint", void 0); - - _defineProperty(this, "_channels", void 0); - - _defineProperty(this, "_presenceChannels", void 0); - - _defineProperty(this, "_heartbeatChannels", void 0); - - _defineProperty(this, "_heartbeatChannelGroups", void 0); - - _defineProperty(this, "_channelGroups", void 0); - - _defineProperty(this, "_presenceChannelGroups", void 0); - - _defineProperty(this, "_currentTimetoken", void 0); - - _defineProperty(this, "_lastTimetoken", void 0); - - _defineProperty(this, "_storedTimetoken", void 0); - - _defineProperty(this, "_region", void 0); - - _defineProperty(this, "_subscribeCall", void 0); - - _defineProperty(this, "_heartbeatTimer", void 0); - - _defineProperty(this, "_subscriptionStatusAnnounced", void 0); - - _defineProperty(this, "_autoNetworkDetection", void 0); - - _defineProperty(this, "_isOnline", void 0); - - _defineProperty(this, "_pendingChannelSubscriptions", void 0); - - _defineProperty(this, "_pendingChannelGroupSubscriptions", void 0); - - _defineProperty(this, "_dedupingManager", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_crypto", void 0); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_listenerManager", void 0); + (0, _defineProperty2["default"])(this, "_reconnectionManager", void 0); + (0, _defineProperty2["default"])(this, "_leaveEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_setStateEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_subscribeEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_getFileUrl", void 0); + (0, _defineProperty2["default"])(this, "_channels", void 0); + (0, _defineProperty2["default"])(this, "_presenceChannels", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatChannels", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatChannelGroups", void 0); + (0, _defineProperty2["default"])(this, "_channelGroups", void 0); + (0, _defineProperty2["default"])(this, "_presenceChannelGroups", void 0); + (0, _defineProperty2["default"])(this, "_currentTimetoken", void 0); + (0, _defineProperty2["default"])(this, "_lastTimetoken", void 0); + (0, _defineProperty2["default"])(this, "_storedTimetoken", void 0); + (0, _defineProperty2["default"])(this, "_region", void 0); + (0, _defineProperty2["default"])(this, "_subscribeCall", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatTimer", void 0); + (0, _defineProperty2["default"])(this, "_subscriptionStatusAnnounced", void 0); + (0, _defineProperty2["default"])(this, "_autoNetworkDetection", void 0); + (0, _defineProperty2["default"])(this, "_isOnline", void 0); + (0, _defineProperty2["default"])(this, "_pendingChannelSubscriptions", void 0); + (0, _defineProperty2["default"])(this, "_pendingChannelGroupSubscriptions", void 0); + (0, _defineProperty2["default"])(this, "_dedupingManager", void 0); this._listenerManager = listenerManager; this._config = config; this._leaveEndpoint = leaveEndpoint; this._heartbeatEndpoint = heartbeatEndpoint; this._setStateEndpoint = setStateEndpoint; this._subscribeEndpoint = subscribeEndpoint; + this._getFileUrl = getFileUrl; this._crypto = crypto; this._channels = {}; this._presenceChannels = {}; @@ -3347,7 +3889,7 @@ var _default = function () { }); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "adaptStateChange", value: function adaptStateChange(args, callback) { var _this = this; @@ -3911,28 +4453,56 @@ var _default = function () { _announce3.event = message.payload.event; _this7._listenerManager.announceMessageAction(_announce3); - } else { + } else if (message.messageType === 4) { var _announce4 = {}; - _announce4.channel = null; - _announce4.subscription = null; - _announce4.actualChannel = subscriptionMatch != null ? channel : null; - _announce4.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; _announce4.channel = channel; _announce4.subscription = subscriptionMatch; _announce4.timetoken = publishMetaData.publishTimetoken; _announce4.publisher = message.issuingClientId; + var msgPayload = message.payload; + + if (_this7._config.cipherKey) { + var decryptedPayload = _this7._crypto.decrypt(message.payload); + + if ((0, _typeof2["default"])(decryptedPayload) === 'object' && decryptedPayload !== null) { + msgPayload = decryptedPayload; + } + } + + _announce4.message = msgPayload.message; + _announce4.file = { + id: msgPayload.file.id, + name: msgPayload.file.name, + url: _this7._getFileUrl({ + id: msgPayload.file.id, + name: msgPayload.file.name, + channel: channel + }) + }; + + _this7._listenerManager.announceFile(_announce4); + } else { + var _announce5 = {}; + _announce5.channel = null; + _announce5.subscription = null; + _announce5.actualChannel = subscriptionMatch != null ? channel : null; + _announce5.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; + _announce5.channel = channel; + _announce5.subscription = subscriptionMatch; + _announce5.timetoken = publishMetaData.publishTimetoken; + _announce5.publisher = message.issuingClientId; if (message.userMetadata) { - _announce4.userMetadata = message.userMetadata; + _announce5.userMetadata = message.userMetadata; } if (_this7._config.cipherKey) { - _announce4.message = _this7._crypto.decrypt(message.payload); + _announce5.message = _this7._crypto.decrypt(message.payload); } else { - _announce4.message = message.payload; + _announce5.message = message.payload; } - _this7._listenerManager.announceMessage(_announce4); + _this7._listenerManager.announceMessage(_announce5); } }); this._region = payload.metadata.region; @@ -3951,7 +4521,6 @@ var _default = function () { } } }]); - return _default; }(); @@ -3959,47 +4528,40 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 15 */ +/* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _time = _interopRequireDefault(__webpack_require__(8)); - -var _flow_interfaces = __webpack_require__(1); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -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, descriptor.key, descriptor); } } +var _time = _interopRequireDefault(__webpack_require__(20)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _flow_interfaces = __webpack_require__(2); var _default = function () { function _default(_ref) { var timeEndpoint = _ref.timeEndpoint; - - _classCallCheck(this, _default); - - _defineProperty(this, "_reconnectionCallback", void 0); - - _defineProperty(this, "_timeEndpoint", void 0); - - _defineProperty(this, "_timeTimer", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_reconnectionCallback", void 0); + (0, _defineProperty2["default"])(this, "_timeEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_timeTimer", void 0); this._timeEndpoint = timeEndpoint; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "onReconnection", value: function onReconnection(reconnectionCallback) { this._reconnectionCallback = reconnectionCallback; @@ -4028,7 +4590,6 @@ var _default = function () { }); } }]); - return _default; }(); @@ -4036,30 +4597,28 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 16 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _config = _interopRequireDefault(__webpack_require__(3)); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -var _flow_interfaces = __webpack_require__(1); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _config = _interopRequireDefault(__webpack_require__(8)); -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, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _flow_interfaces = __webpack_require__(2); var hashCode = function hashCode(payload) { var hash = 0; @@ -4077,18 +4636,14 @@ var hashCode = function hashCode(payload) { var _default = function () { function _default(_ref) { var config = _ref.config; - - _classCallCheck(this, _default); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "hashHistory", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "hashHistory", void 0); this.hashHistory = []; this._config = config; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "getKey", value: function getKey(message) { var hashedPayload = hashCode(JSON.stringify(message.payload)).toString(); @@ -4115,7 +4670,6 @@ var _default = function () { this.hashHistory = []; } }]); - return _default; }(); @@ -4123,43 +4677,37 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 17 */ +/* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -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"); } } +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -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, descriptor.key, descriptor); } } +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var _default = function () { function _default(configuration) { - _classCallCheck(this, _default); - - _defineProperty(this, "_maximumSamplesCount", 100); - - _defineProperty(this, "_trackedLatencies", {}); - - _defineProperty(this, "_latencies", {}); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_maximumSamplesCount", 100); + (0, _defineProperty2["default"])(this, "_trackedLatencies", {}); + (0, _defineProperty2["default"])(this, "_latencies", {}); this._maximumSamplesCount = configuration.maximumSamplesCount || this._maximumSamplesCount; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "operationsLatencyForRequest", value: function operationsLatencyForRequest() { var _this = this; @@ -4301,7 +4849,6 @@ var _default = function () { return operation; } }]); - return _default; }(); @@ -4309,49 +4856,43 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 18 */ +/* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.FCMNotificationPayload = exports.MPNSNotificationPayload = exports.APNSNotificationPayload = void 0; -var _flow_interfaces = __webpack_require__(1); - -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 _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(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } +var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(34)); -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(12)); -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } +var _getPrototypeOf5 = _interopRequireDefault(__webpack_require__(10)); -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(17)); -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +var _inherits2 = _interopRequireDefault(__webpack_require__(13)); -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); } +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -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, descriptor.key, descriptor); } } +var _flow_interfaces = __webpack_require__(2); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var BaseNotificationPayload = function () { - _createClass(BaseNotificationPayload, [{ + (0, _createClass2["default"])(BaseNotificationPayload, [{ key: "payload", get: function get() { return this._payload; @@ -4384,20 +4925,13 @@ var BaseNotificationPayload = function () { }]); function BaseNotificationPayload(payload, title, body) { - _classCallCheck(this, BaseNotificationPayload); - - _defineProperty(this, "_subtitle", void 0); - - _defineProperty(this, "_payload", void 0); - - _defineProperty(this, "_badge", void 0); - - _defineProperty(this, "_sound", void 0); - - _defineProperty(this, "_title", void 0); - - _defineProperty(this, "_body", void 0); - + (0, _classCallCheck2["default"])(this, BaseNotificationPayload); + (0, _defineProperty2["default"])(this, "_subtitle", void 0); + (0, _defineProperty2["default"])(this, "_payload", void 0); + (0, _defineProperty2["default"])(this, "_badge", void 0); + (0, _defineProperty2["default"])(this, "_sound", void 0); + (0, _defineProperty2["default"])(this, "_title", void 0); + (0, _defineProperty2["default"])(this, "_body", void 0); this._payload = payload; this._setDefaultPayloadStructure(); @@ -4406,7 +4940,7 @@ var BaseNotificationPayload = function () { this.body = body; } - _createClass(BaseNotificationPayload, [{ + (0, _createClass2["default"])(BaseNotificationPayload, [{ key: "_setDefaultPayloadStructure", value: function _setDefaultPayloadStructure() {} }, { @@ -4415,36 +4949,31 @@ var BaseNotificationPayload = function () { return {}; } }]); - return BaseNotificationPayload; }(); var APNSNotificationPayload = function (_BaseNotificationPayl) { - _inherits(APNSNotificationPayload, _BaseNotificationPayl); + (0, _inherits2["default"])(APNSNotificationPayload, _BaseNotificationPayl); function APNSNotificationPayload() { var _getPrototypeOf2; var _this; - _classCallCheck(this, APNSNotificationPayload); + (0, _classCallCheck2["default"])(this, APNSNotificationPayload); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } - _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(APNSNotificationPayload)).call.apply(_getPrototypeOf2, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this), "_configurations", void 0); - - _defineProperty(_assertThisInitialized(_this), "_apnsPushType", void 0); - - _defineProperty(_assertThisInitialized(_this), "_isSilent", void 0); - + _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf5["default"])(APNSNotificationPayload)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_configurations", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_apnsPushType", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_isSilent", void 0); return _this; } - _createClass(APNSNotificationPayload, [{ + (0, _createClass2["default"])(APNSNotificationPayload, [{ key: "_setDefaultPayloadStructure", value: function _setDefaultPayloadStructure() { this._payload.aps = { @@ -4615,40 +5144,34 @@ var APNSNotificationPayload = function (_BaseNotificationPayl) { this._isSilent = value; } }]); - return APNSNotificationPayload; }(BaseNotificationPayload); exports.APNSNotificationPayload = APNSNotificationPayload; var MPNSNotificationPayload = function (_BaseNotificationPayl2) { - _inherits(MPNSNotificationPayload, _BaseNotificationPayl2); + (0, _inherits2["default"])(MPNSNotificationPayload, _BaseNotificationPayl2); function MPNSNotificationPayload() { var _getPrototypeOf3; var _this4; - _classCallCheck(this, MPNSNotificationPayload); + (0, _classCallCheck2["default"])(this, MPNSNotificationPayload); for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } - _this4 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(MPNSNotificationPayload)).call.apply(_getPrototypeOf3, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this4), "_backContent", void 0); - - _defineProperty(_assertThisInitialized(_this4), "_backTitle", void 0); - - _defineProperty(_assertThisInitialized(_this4), "_count", void 0); - - _defineProperty(_assertThisInitialized(_this4), "_type", void 0); - + _this4 = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf3 = (0, _getPrototypeOf5["default"])(MPNSNotificationPayload)).call.apply(_getPrototypeOf3, [this].concat(args))); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_backContent", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_backTitle", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_count", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_type", void 0); return _this4; } - _createClass(MPNSNotificationPayload, [{ + (0, _createClass2["default"])(MPNSNotificationPayload, [{ key: "toObject", value: function toObject() { return Object.keys(this._payload).length ? _objectSpread({}, this._payload) : null; @@ -4728,38 +5251,33 @@ var MPNSNotificationPayload = function (_BaseNotificationPayl2) { this.count = value; } }]); - return MPNSNotificationPayload; }(BaseNotificationPayload); exports.MPNSNotificationPayload = MPNSNotificationPayload; var FCMNotificationPayload = function (_BaseNotificationPayl3) { - _inherits(FCMNotificationPayload, _BaseNotificationPayl3); + (0, _inherits2["default"])(FCMNotificationPayload, _BaseNotificationPayl3); function FCMNotificationPayload() { var _getPrototypeOf4; var _this5; - _classCallCheck(this, FCMNotificationPayload); + (0, _classCallCheck2["default"])(this, FCMNotificationPayload); for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } - _this5 = _possibleConstructorReturn(this, (_getPrototypeOf4 = _getPrototypeOf(FCMNotificationPayload)).call.apply(_getPrototypeOf4, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this5), "_isSilent", void 0); - - _defineProperty(_assertThisInitialized(_this5), "_icon", void 0); - - _defineProperty(_assertThisInitialized(_this5), "_tag", void 0); - + _this5 = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf4 = (0, _getPrototypeOf5["default"])(FCMNotificationPayload)).call.apply(_getPrototypeOf4, [this].concat(args))); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "_isSilent", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "_icon", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "_tag", void 0); return _this5; } - _createClass(FCMNotificationPayload, [{ + (0, _createClass2["default"])(FCMNotificationPayload, [{ key: "_setDefaultPayloadStructure", value: function _setDefaultPayloadStructure() { this._payload.notification = {}; @@ -4777,8 +5295,7 @@ var FCMNotificationPayload = function (_BaseNotificationPayl3) { var _this$_payload = this._payload, initialNotification = _this$_payload.notification, initialData = _this$_payload.data, - additionalData = _objectWithoutProperties(_this$_payload, ["notification", "data"]); - + additionalData = (0, _objectWithoutProperties2["default"])(_this$_payload, ["notification", "data"]); data = _objectSpread({}, data, {}, additionalData); } @@ -4864,14 +5381,13 @@ var FCMNotificationPayload = function (_BaseNotificationPayl3) { this._isSilent = value; } }]); - return FCMNotificationPayload; }(BaseNotificationPayload); exports.FCMNotificationPayload = FCMNotificationPayload; var NotificationsPayload = function () { - _createClass(NotificationsPayload, [{ + (0, _createClass2["default"])(NotificationsPayload, [{ key: "debugging", set: function set(value) { this._debugging = value; @@ -4922,28 +5438,17 @@ var NotificationsPayload = function () { }]); function NotificationsPayload(title, body) { - _classCallCheck(this, NotificationsPayload); - - _defineProperty(this, "_payload", void 0); - - _defineProperty(this, "_debugging", void 0); - - _defineProperty(this, "_subtitle", void 0); - - _defineProperty(this, "_badge", void 0); - - _defineProperty(this, "_sound", void 0); - - _defineProperty(this, "_title", void 0); - - _defineProperty(this, "_body", void 0); - - _defineProperty(this, "apns", void 0); - - _defineProperty(this, "mpns", void 0); - - _defineProperty(this, "fcm", void 0); - + (0, _classCallCheck2["default"])(this, NotificationsPayload); + (0, _defineProperty2["default"])(this, "_payload", void 0); + (0, _defineProperty2["default"])(this, "_debugging", void 0); + (0, _defineProperty2["default"])(this, "_subtitle", void 0); + (0, _defineProperty2["default"])(this, "_badge", void 0); + (0, _defineProperty2["default"])(this, "_sound", void 0); + (0, _defineProperty2["default"])(this, "_title", void 0); + (0, _defineProperty2["default"])(this, "_body", void 0); + (0, _defineProperty2["default"])(this, "apns", void 0); + (0, _defineProperty2["default"])(this, "mpns", void 0); + (0, _defineProperty2["default"])(this, "fcm", void 0); this._payload = { apns: {}, mpns: {}, @@ -4956,7 +5461,7 @@ var NotificationsPayload = function () { this.fcm = new FCMNotificationPayload(this._payload.fcm, title, body); } - _createClass(NotificationsPayload, [{ + (0, _createClass2["default"])(NotificationsPayload, [{ key: "buildPayload", value: function buildPayload(platforms) { var payload = {}; @@ -4993,7 +5498,6 @@ var NotificationsPayload = function () { return payload; } }]); - return NotificationsPayload; }(); @@ -5001,56 +5505,95 @@ var _default = NotificationsPayload; exports["default"] = _default; /***/ }), -/* 19 */ +/* 34 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; +var objectWithoutPropertiesLoose = __webpack_require__(35); +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = objectWithoutPropertiesLoose(source, excluded); + var key, i; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); -var _config = _interopRequireDefault(__webpack_require__(3)); + 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]; + } + } -var _flow_interfaces = __webpack_require__(1); + return target; +} -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +module.exports = _objectWithoutProperties; -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); } +/***/ }), +/* 35 */ +/***/ (function(module, exports) { -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; -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, descriptor.key, descriptor); } } + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + return target; +} -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +module.exports = _objectWithoutPropertiesLoose; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; -var _default = function () { - function _default(config, cbor) { - _classCallCheck(this, _default); - _defineProperty(this, "_config", void 0); +var _interopRequireDefault = __webpack_require__(0); - _defineProperty(this, "_cbor", void 0); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; - _defineProperty(this, "_userTokens", void 0); +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); - _defineProperty(this, "_spaceTokens", void 0); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); - _defineProperty(this, "_userToken", void 0); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); - _defineProperty(this, "_spaceToken", void 0); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); +var _config = _interopRequireDefault(__webpack_require__(8)); + +var _flow_interfaces = __webpack_require__(2); + +var _default = function () { + function _default(config, cbor) { + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_cbor", void 0); + (0, _defineProperty2["default"])(this, "_userTokens", void 0); + (0, _defineProperty2["default"])(this, "_spaceTokens", void 0); + (0, _defineProperty2["default"])(this, "_userToken", void 0); + (0, _defineProperty2["default"])(this, "_spaceToken", void 0); this._config = config; this._cbor = cbor; this._initializeTokens(); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "_initializeTokens", value: function _initializeTokens() { this._userTokens = {}; @@ -5101,7 +5644,7 @@ var _default = function () { value: function setTokens(tokens) { var _this2 = this; - if (tokens && tokens.length && _typeof(tokens) === 'object') { + if (tokens && tokens.length && (0, _typeof2["default"])(tokens) === 'object') { tokens.forEach(function (token) { _this2.setToken(token); }); @@ -5228,363 +5771,907 @@ var _default = function () { var userResources = userResourcePermissions.length > 0; var spaceResources = spaceResourcePermissions.length > 0; - if (userResources || spaceResources) { - result.resources = {}; + if (userResources || spaceResources) { + result.resources = {}; + + if (userResources) { + result.resources.users = {}; + userResourcePermissions.forEach(function (id) { + result.resources.users[id] = _this4.extractPermissions(parsed.res.usr[id]); + }); + } + + if (spaceResources) { + result.resources.spaces = {}; + spaceResourcePermissions.forEach(function (id) { + result.resources.spaces[id] = _this4.extractPermissions(parsed.res.spc[id]); + }); + } + } + + var userPatterns = userPatternPermissions.length > 0; + var spacePatterns = spacePatternPermissions.length > 0; + + if (userPatterns || spacePatterns) { + result.patterns = {}; + + if (userPatterns) { + result.patterns.users = {}; + userPatternPermissions.forEach(function (id) { + result.patterns.users[id] = _this4.extractPermissions(parsed.pat.usr[id]); + }); + } + + if (spacePatterns) { + result.patterns.spaces = {}; + spacePatternPermissions.forEach(function (id) { + result.patterns.spaces[id] = _this4.extractPermissions(parsed.pat.spc[id]); + }); + } + } + + if (Object.keys(parsed.meta).length > 0) { + result.meta = parsed.meta; + } + + result.signature = parsed.sig; + return result; + } else { + return undefined; + } + } + }, { + key: "clearTokens", + value: function clearTokens() { + this._initializeTokens(); + } + }]); + return _default; +}(); + +exports["default"] = _default; +module.exports = exports.default; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +var getPrototypeOf = __webpack_require__(10); + +var setPrototypeOf = __webpack_require__(14); + +var isNativeFunction = __webpack_require__(38); + +var construct = __webpack_require__(39); + +function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } + + function Wrapper() { + return construct(Class, arguments, getPrototypeOf(this).constructor); + } + + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return setPrototypeOf(Wrapper, Class); + }; + + return _wrapNativeSuper(Class); +} + +module.exports = _wrapNativeSuper; + +/***/ }), +/* 38 */ +/***/ (function(module, exports) { + +function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} + +module.exports = _isNativeFunction; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +var setPrototypeOf = __webpack_require__(14); + +var isNativeReflectConstruct = __webpack_require__(40); + +function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + module.exports = _construct = Reflect.construct; + } else { + module.exports = _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + + return _construct.apply(null, arguments); +} + +module.exports = _construct; + +/***/ }), +/* 40 */ +/***/ (function(module, exports) { + +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } +} + +module.exports = _isNativeReflectConstruct; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function getOperation() { + return _operations["default"].PNAddChannelsToGroupOperation; +} + +function validateParams(modules, incomingParams) { + var channels = incomingParams.channels, + channelGroup = incomingParams.channelGroup; + var config = modules.config; + if (!channelGroup) return 'Missing Channel Group'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function isAuthSupported() { + return true; +} + +function prepareParams(modules, incomingParams) { + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + return { + add: channels.join(',') + }; +} + +function handleResponse() { + return {}; +} + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function getOperation() { + return _operations["default"].PNRemoveChannelsFromGroupOperation; +} + +function validateParams(modules, incomingParams) { + var channels = incomingParams.channels, + channelGroup = incomingParams.channelGroup; + var config = modules.config; + if (!channelGroup) return 'Missing Channel Group'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function isAuthSupported() { + return true; +} + +function prepareParams(modules, incomingParams) { + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + return { + remove: channels.join(',') + }; +} + +function handleResponse() { + return {}; +} + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.isAuthSupported = isAuthSupported; +exports.getRequestTimeout = getRequestTimeout; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function getOperation() { + return _operations["default"].PNRemoveGroupOperation; +} + +function validateParams(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + if (!channelGroup) return 'Missing Channel Group'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup), "/remove"); +} + +function isAuthSupported() { + return true; +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function prepareParams() { + return {}; +} + +function handleResponse() { + return {}; +} + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +function getOperation() { + return _operations["default"].PNChannelGroupsOperation; +} + +function validateParams(modules) { + var config = modules.config; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules) { + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group"); +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function isAuthSupported() { + return true; +} + +function prepareParams() { + return {}; +} + +function handleResponse(modules, serverResponse) { + return { + groups: serverResponse.payload.groups + }; +} + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function getOperation() { + return _operations["default"].PNChannelsForGroupOperation; +} + +function validateParams(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + if (!channelGroup) return 'Missing Channel Group'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function isAuthSupported() { + return true; +} + +function prepareParams() { + return {}; +} + +function handleResponse(modules, serverResponse) { + return { + channels: serverResponse.payload.channels + }; +} + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); - if (userResources) { - result.resources.users = {}; - userResourcePermissions.forEach(function (id) { - result.resources.users[id] = _this4.extractPermissions(parsed.res.usr[id]); - }); - } +var _operations = _interopRequireDefault(__webpack_require__(1)); - if (spaceResources) { - result.resources.spaces = {}; - spaceResourcePermissions.forEach(function (id) { - result.resources.spaces[id] = _this4.extractPermissions(parsed.res.spc[id]); - }); - } - } +function getOperation() { + return _operations["default"].PNPushNotificationEnabledChannelsOperation; +} - var userPatterns = userPatternPermissions.length > 0; - var spacePatterns = spacePatternPermissions.length > 0; +function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + channels = incomingParams.channels, + topic = incomingParams.topic; + var config = modules.config; + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; + if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - if (userPatterns || spacePatterns) { - result.patterns = {}; +function getURL(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; - if (userPatterns) { - result.patterns.users = {}; - userPatternPermissions.forEach(function (id) { - result.patterns.users[id] = _this4.extractPermissions(parsed.pat.usr[id]); - }); - } + if (pushGateway === 'apns2') { + return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); + } - if (spacePatterns) { - result.patterns.spaces = {}; - spacePatternPermissions.forEach(function (id) { - result.patterns.spaces[id] = _this4.extractPermissions(parsed.pat.spc[id]); - }); - } - } + return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); +} - if (Object.keys(parsed.meta).length > 0) { - result.meta = parsed.meta; - } +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} - result.signature = parsed.sig; - return result; - } else { - return undefined; - } - } - }, { - key: "clearTokens", - value: function clearTokens() { - this._initializeTokens(); - } - }]); +function isAuthSupported() { + return true; +} - return _default; -}(); +function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, + _incomingParams$envir = incomingParams.environment, + environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, + topic = incomingParams.topic; + var parameters = { + type: pushGateway, + add: channels.join(',') + }; -exports["default"] = _default; -module.exports = exports.default; + if (pushGateway === 'apns2') { + parameters = Object.assign({}, parameters, { + environment: environment, + topic: topic + }); + delete parameters.type; + } + + return parameters; +} + +function handleResponse() { + return {}; +} /***/ }), -/* 20 */ +/* 47 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports["default"] = _default; +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; -var _uuid = _interopRequireDefault(__webpack_require__(5)); +var _flow_interfaces = __webpack_require__(2); -var _flow_interfaces = __webpack_require__(1); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +function getOperation() { + return _operations["default"].PNPushNotificationEnabledChannelsOperation; +} -var _config = _interopRequireDefault(__webpack_require__(3)); +function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + channels = incomingParams.channels, + topic = incomingParams.topic; + var config = modules.config; + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; + if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} -var _operations = _interopRequireDefault(__webpack_require__(0)); +function getURL(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + if (pushGateway === 'apns2') { + return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); + } -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); +} -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function isAuthSupported() { + return true; +} -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 prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, + _incomingParams$envir = incomingParams.environment, + environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, + topic = incomingParams.topic; + var parameters = { + type: pushGateway, + remove: channels.join(',') + }; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + if (pushGateway === 'apns2') { + parameters = Object.assign({}, parameters, { + environment: environment, + topic: topic + }); + delete parameters.type; + } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + return parameters; +} -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function handleResponse() { + return {}; +} -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); } +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { -function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +"use strict"; -function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } -function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +var _interopRequireDefault = __webpack_require__(0); -function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var _flow_interfaces = __webpack_require__(2); -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +var _operations = _interopRequireDefault(__webpack_require__(1)); -var PubNubError = function (_Error) { - _inherits(PubNubError, _Error); +function getOperation() { + return _operations["default"].PNPushNotificationEnabledChannelsOperation; +} - function PubNubError(message, status) { - var _this; +function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + topic = incomingParams.topic; + var config = modules.config; + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; + if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - _classCallCheck(this, PubNubError); +function getURL(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; - _this = _possibleConstructorReturn(this, _getPrototypeOf(PubNubError).call(this, message)); - _this.name = _this.constructor.name; - _this.status = status; - _this.message = message; - return _this; + if (pushGateway === 'apns2') { + return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); } - return PubNubError; -}(_wrapNativeSuper(Error)); - -function createError(errorPayload, type) { - errorPayload.type = type; - errorPayload.error = true; - return errorPayload; + return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); } -function createValidationError(message) { - return createError({ - message: message - }, 'validationError'); +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); } -function decideURL(endpoint, modules, incomingParams) { - if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { - return endpoint.postURL(modules, incomingParams); - } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) { - return endpoint.patchURL(modules, incomingParams); - } else { - return endpoint.getURL(modules, incomingParams); - } +function isAuthSupported() { + return true; } -function getAuthToken(endpoint, modules, incomingParams) { - var token; +function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$envir = incomingParams.environment, + environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, + topic = incomingParams.topic; + var parameters = { + type: pushGateway + }; - if (endpoint.getAuthToken) { - token = endpoint.getAuthToken(modules, incomingParams); + if (pushGateway === 'apns2') { + parameters = Object.assign({}, parameters, { + environment: environment, + topic: topic + }); + delete parameters.type; } - return token; + return parameters; } -function generatePNSDK(config) { - if (config.sdkName) { - return config.sdkName; - } +function handleResponse(modules, serverResponse) { + return { + channels: serverResponse + }; +} - var base = "PubNub-JS-".concat(config.sdkFamily); +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { - if (config.partnerId) { - base += "-".concat(config.partnerId); - } +"use strict"; - base += "/".concat(config.getVersion()); - var pnsdkSuffix = config._getPnsdkSuffix(' '); +var _interopRequireDefault = __webpack_require__(0); - if (pnsdkSuffix.length > 0) { - base += pnsdkSuffix; - } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; - return base; -} +var _flow_interfaces = __webpack_require__(2); -function getHttpMethod(modules, endpoint, incomingParams) { - if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { - return 'POST'; - } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) { - return 'PATCH'; - } else if (endpoint.useDelete && endpoint.useDelete(modules, incomingParams)) { - return 'DELETE'; - } else { - return 'GET'; - } -} +var _operations = _interopRequireDefault(__webpack_require__(1)); -function signRequest(modules, url, outgoingParams, incomingParams, endpoint) { - var config = modules.config, - crypto = modules.crypto; - var httpMethod = getHttpMethod(modules, endpoint, incomingParams); - outgoingParams.timestamp = Math.floor(new Date().getTime() / 1000); - var signInput = "".concat(httpMethod, "\n").concat(config.publishKey, "\n").concat(url, "\n").concat(_utils["default"].signPamFromParams(outgoingParams), "\n"); +function getOperation() { + return _operations["default"].PNRemoveAllPushNotificationsOperation; +} - if (httpMethod === 'POST') { - var payload = endpoint.postPayload(modules, incomingParams); +function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + topic = incomingParams.topic; + var config = modules.config; + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; + if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - if (typeof payload === 'string') { - signInput += payload; - } else { - signInput += JSON.stringify(payload); - } - } else if (httpMethod === 'PATCH') { - var _payload = endpoint.patchPayload(modules, incomingParams); +function getURL(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; - if (typeof _payload === 'string') { - signInput += _payload; - } else { - signInput += JSON.stringify(_payload); - } + if (pushGateway === 'apns2') { + return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device, "/remove"); } - var signature = "v2.".concat(crypto.HMACSHA256(signInput)); - signature = signature.replace(/\+/g, '-'); - signature = signature.replace(/\//g, '_'); - signature = signature.replace(/=+$/, ''); - outgoingParams.signature = signature; + return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device, "/remove"); } -function _default(modules, endpoint) { - var networking = modules.networking, - config = modules.config, - telemetryManager = modules.telemetryManager; - - var requestId = _uuid["default"].createUUID(); +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} - var callback = null; - var promiseComponent = null; - var incomingParams = {}; +function isAuthSupported() { + return true; +} - if (endpoint.getOperation() === _operations["default"].PNTimeOperation || endpoint.getOperation() === _operations["default"].PNChannelGroupsOperation) { - callback = arguments.length <= 2 ? undefined : arguments[2]; - } else { - incomingParams = arguments.length <= 2 ? undefined : arguments[2]; - callback = arguments.length <= 3 ? undefined : arguments[3]; - } +function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$envir = incomingParams.environment, + environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, + topic = incomingParams.topic; + var parameters = { + type: pushGateway + }; - if (typeof Promise !== 'undefined' && !callback) { - promiseComponent = _utils["default"].createPromise(); + if (pushGateway === 'apns2') { + parameters = Object.assign({}, parameters, { + environment: environment, + topic: topic + }); + delete parameters.type; } - var validationResult = endpoint.validateParams(modules, incomingParams); - - if (validationResult) { - if (callback) { - return callback(createValidationError(validationResult)); - } else if (promiseComponent) { - promiseComponent.reject(new PubNubError('Validation failed, check status for details', createValidationError(validationResult))); - return promiseComponent.promise; - } + return parameters; +} - return; - } +function handleResponse() { + return {}; +} - var outgoingParams = endpoint.prepareParams(modules, incomingParams); - var url = decideURL(endpoint, modules, incomingParams); - var callInstance; - var networkingParams = { - url: url, - operation: endpoint.getOperation(), - timeout: endpoint.getRequestTimeout(modules), - headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {} - }; - outgoingParams.uuid = config.UUID; - outgoingParams.pnsdk = generatePNSDK(config); - var telemetryLatencies = telemetryManager.operationsLatencyForRequest(); +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { - if (Object.keys(telemetryLatencies).length) { - outgoingParams = _objectSpread({}, outgoingParams, {}, telemetryLatencies); - } +"use strict"; - if (config.useInstanceId) { - outgoingParams.instanceid = config.instanceId; - } - if (config.useRequestId) { - outgoingParams.requestid = requestId; - } +var _interopRequireDefault = __webpack_require__(0); - if (endpoint.isAuthSupported()) { - var token = getAuthToken(endpoint, modules, incomingParams); - var tokenOrKey = token || config.getAuthKey(); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; - if (tokenOrKey) { - outgoingParams.auth = tokenOrKey; - } - } +var _flow_interfaces = __webpack_require__(2); - if (config.secretKey) { - signRequest(modules, url, outgoingParams, incomingParams, endpoint); - } +var _operations = _interopRequireDefault(__webpack_require__(1)); - var onResponse = function onResponse(status, payload) { - if (status.error) { - if (callback) { - callback(status); - } else if (promiseComponent) { - promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', status)); - } +var _utils = _interopRequireDefault(__webpack_require__(3)); - return; - } +function getOperation() { + return _operations["default"].PNUnsubscribeOperation; +} - telemetryManager.stopLatencyMeasure(endpoint.getOperation(), requestId); - var parsedPayload = endpoint.handleResponse(modules, payload, incomingParams); +function validateParams(modules) { + var config = modules.config; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - if (callback) { - callback(status, parsedPayload); - } else if (promiseComponent) { - promiseComponent.fulfill(parsedPayload); - } - }; +function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/leave"); +} - telemetryManager.startLatencyMeasure(endpoint.getOperation(), requestId); +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} - if (getHttpMethod(modules, endpoint, incomingParams) === 'POST') { - var payload = endpoint.postPayload(modules, incomingParams); - callInstance = networking.POST(outgoingParams, payload, networkingParams, onResponse); - } else if (getHttpMethod(modules, endpoint, incomingParams) === 'PATCH') { - var _payload2 = endpoint.patchPayload(modules, incomingParams); +function isAuthSupported() { + return true; +} - callInstance = networking.PATCH(outgoingParams, _payload2, networkingParams, onResponse); - } else if (getHttpMethod(modules, endpoint, incomingParams) === 'DELETE') { - callInstance = networking.DELETE(outgoingParams, networkingParams, onResponse); - } else { - callInstance = networking.GET(outgoingParams, networkingParams, onResponse); - } +function prepareParams(modules, incomingParams) { + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; + var params = {}; - if (endpoint.getOperation() === _operations["default"].PNSubscribeOperation) { - return callInstance; + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); } - if (promiseComponent) { - return promiseComponent.promise; - } + return params; } -module.exports = exports.default; +function handleResponse() { + return {}; +} /***/ }), -/* 21 */ +/* 51 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5596,31 +6683,24 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -var _utils = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { - return _operations["default"].PNAddChannelsToGroupOperation; + return _operations["default"].PNWhereNowOperation; } -function validateParams(modules, incomingParams) { - var channels = incomingParams.channels, - channelGroup = incomingParams.channelGroup; +function validateParams(modules) { var config = modules.config; - if (!channelGroup) return 'Missing Channel Group'; - if (!channels || channels.length === 0) return 'Missing Channels'; if (!config.subscribeKey) return 'Missing Subscribe Key'; } function getURL(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); + var _incomingParams$uuid = incomingParams.uuid, + uuid = _incomingParams$uuid === void 0 ? config.UUID : _incomingParams$uuid; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/uuid/").concat(uuid); } function getRequestTimeout(_ref) { @@ -5632,61 +6712,67 @@ function isAuthSupported() { return true; } -function prepareParams(modules, incomingParams) { - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - return { - add: channels.join(',') - }; +function prepareParams() { + return {}; } -function handleResponse() { - return {}; +function handleResponse(modules, serverResponse) { + if (!serverResponse.payload) { + return { + channels: [] + }; + } + + return { + channels: serverResponse.payload.channels + }; } /***/ }), -/* 22 */ +/* 52 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports.getOperation = getOperation; exports.validateParams = validateParams; exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; exports.isAuthSupported = isAuthSupported; +exports.getRequestTimeout = getRequestTimeout; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _utils = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { - return _operations["default"].PNRemoveChannelsFromGroupOperation; + return _operations["default"].PNHeartbeatOperation; } -function validateParams(modules, incomingParams) { - var channels = incomingParams.channels, - channelGroup = incomingParams.channelGroup; +function validateParams(modules) { var config = modules.config; - if (!channelGroup) return 'Missing Channel Group'; - if (!channels || channels.length === 0) return 'Missing Channels'; if (!config.subscribeKey) return 'Missing Subscribe Key'; } function getURL(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/heartbeat"); +} + +function isAuthSupported() { + return true; } function getRequestTimeout(_ref) { @@ -5694,16 +6780,21 @@ function getRequestTimeout(_ref) { return config.getTransactionTimeout(); } -function isAuthSupported() { - return true; -} - function prepareParams(modules, incomingParams) { - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - return { - remove: channels.join(',') - }; + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2, + _incomingParams$state = incomingParams.state, + state = _incomingParams$state === void 0 ? {} : _incomingParams$state; + var config = modules.config; + var params = {}; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + params.state = JSON.stringify(state); + params.heartbeat = config.getPresenceTimeout(); + return params; } function handleResponse() { @@ -5711,50 +6802,48 @@ function handleResponse() { } /***/ }), -/* 23 */ +/* 53 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports.getOperation = getOperation; exports.validateParams = validateParams; exports.getURL = getURL; -exports.isAuthSupported = isAuthSupported; exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { - return _operations["default"].PNRemoveGroupOperation; + return _operations["default"].PNGetStateOperation; } -function validateParams(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; +function validateParams(modules) { var config = modules.config; - if (!channelGroup) return 'Missing Channel Group'; if (!config.subscribeKey) return 'Missing Subscribe Key'; } function getURL(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup), "/remove"); -} - -function isAuthSupported() { - return true; + var _incomingParams$uuid = incomingParams.uuid, + uuid = _incomingParams$uuid === void 0 ? config.UUID : _incomingParams$uuid, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/uuid/").concat(uuid); } function getRequestTimeout(_ref) { @@ -5762,21 +6851,49 @@ function getRequestTimeout(_ref) { return config.getTransactionTimeout(); } -function prepareParams() { - return {}; +function isAuthSupported() { + return true; } -function handleResponse() { - return {}; +function prepareParams(modules, incomingParams) { + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; + var params = {}; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + return params; +} + +function handleResponse(modules, serverResponse, incomingParams) { + var _incomingParams$chann3 = incomingParams.channels, + channels = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3, + _incomingParams$chann4 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4; + var channelsResponse = {}; + + if (channels.length === 1 && channelGroups.length === 0) { + channelsResponse[channels[0]] = serverResponse.payload; + } else { + channelsResponse = serverResponse.payload; + } + + return { + channels: channelsResponse + }; } /***/ }), -/* 24 */ +/* 54 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5788,24 +6905,34 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { - return _operations["default"].PNChannelGroupsOperation; + return _operations["default"].PNSetStateOperation; } -function validateParams(modules) { +function validateParams(modules, incomingParams) { var config = modules.config; + var state = incomingParams.state, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, + _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; + if (!state) return 'Missing State'; if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (channels.length === 0 && channelGroups.length === 0) return 'Please provide a list of channels and/or channel-groups'; } -function getURL(modules) { +function getURL(modules, incomingParams) { var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group"); + var _incomingParams$chann3 = incomingParams.channels, + channels = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/uuid/").concat(config.UUID, "/data"); } function getRequestTimeout(_ref) { @@ -5817,23 +6944,35 @@ function isAuthSupported() { return true; } -function prepareParams() { - return {}; +function prepareParams(modules, incomingParams) { + var state = incomingParams.state, + _incomingParams$chann4 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4; + var params = {}; + params.state = JSON.stringify(state); + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + return params; } function handleResponse(modules, serverResponse) { return { - groups: serverResponse.payload.groups + state: serverResponse.payload }; } /***/ }), -/* 25 */ +/* 55 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5845,235 +6984,325 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function getOperation() { + return _operations["default"].PNHereNowOperation; +} + +function validateParams(modules) { + var config = modules.config; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, + _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; + var baseURL = "/v2/presence/sub-key/".concat(config.subscribeKey); + + if (channels.length > 0 || channelGroups.length > 0) { + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + baseURL += "/channel/".concat(_utils["default"].encodeString(stringifiedChannels)); + } + + return baseURL; +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} -var _operations = _interopRequireDefault(__webpack_require__(0)); +function isAuthSupported() { + return true; +} + +function prepareParams(modules, incomingParams) { + var _incomingParams$chann3 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3, + _incomingParams$inclu = incomingParams.includeUUIDs, + includeUUIDs = _incomingParams$inclu === void 0 ? true : _incomingParams$inclu, + _incomingParams$inclu2 = incomingParams.includeState, + includeState = _incomingParams$inclu2 === void 0 ? false : _incomingParams$inclu2, + _incomingParams$query = incomingParams.queryParameters, + queryParameters = _incomingParams$query === void 0 ? {} : _incomingParams$query; + var params = {}; + if (!includeUUIDs) params.disable_uuids = 1; + if (includeState) params.state = 1; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + params = _objectSpread({}, params, {}, queryParameters); + return params; +} + +function handleResponse(modules, serverResponse, incomingParams) { + var _incomingParams$chann4 = incomingParams.channels, + channels = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4, + _incomingParams$chann5 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann5 === void 0 ? [] : _incomingParams$chann5, + _incomingParams$inclu3 = incomingParams.includeUUIDs, + includeUUIDs = _incomingParams$inclu3 === void 0 ? true : _incomingParams$inclu3, + _incomingParams$inclu4 = incomingParams.includeState, + includeState = _incomingParams$inclu4 === void 0 ? false : _incomingParams$inclu4; -var _utils = _interopRequireDefault(__webpack_require__(2)); + var prepareSingularChannel = function prepareSingularChannel() { + var response = {}; + var occupantsList = []; + response.totalChannels = 1; + response.totalOccupancy = serverResponse.occupancy; + response.channels = {}; + response.channels[channels[0]] = { + occupants: occupantsList, + name: channels[0], + occupancy: serverResponse.occupancy + }; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + if (includeUUIDs && serverResponse.uuids) { + serverResponse.uuids.forEach(function (uuidEntry) { + if (includeState) { + occupantsList.push({ + state: uuidEntry.state, + uuid: uuidEntry.uuid + }); + } else { + occupantsList.push({ + state: null, + uuid: uuidEntry + }); + } + }); + } -function getOperation() { - return _operations["default"].PNChannelsForGroupOperation; -} + return response; + }; -function validateParams(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; - var config = modules.config; - if (!channelGroup) return 'Missing Channel Group'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} + var prepareMultipleChannel = function prepareMultipleChannel() { + var response = {}; + response.totalChannels = serverResponse.payload.total_channels; + response.totalOccupancy = serverResponse.payload.total_occupancy; + response.channels = {}; + Object.keys(serverResponse.payload.channels).forEach(function (channelName) { + var channelEntry = serverResponse.payload.channels[channelName]; + var occupantsList = []; + response.channels[channelName] = { + occupants: occupantsList, + name: channelName, + occupancy: channelEntry.occupancy + }; -function getURL(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; - var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); -} + if (includeUUIDs) { + channelEntry.uuids.forEach(function (uuidEntry) { + if (includeState) { + occupantsList.push({ + state: uuidEntry.state, + uuid: uuidEntry.uuid + }); + } else { + occupantsList.push({ + state: null, + uuid: uuidEntry + }); + } + }); + } -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + return response; + }); + return response; + }; -function isAuthSupported() { - return true; -} + var response; -function prepareParams() { - return {}; -} + if (channels.length > 1 || channelGroups.length > 0 || channelGroups.length === 0 && channels.length === 0) { + response = prepareMultipleChannel(); + } else { + response = prepareSingularChannel(); + } -function handleResponse(modules, serverResponse) { - return { - channels: serverResponse.payload.channels - }; + return response; } /***/ }), -/* 26 */ +/* 56 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports.getOperation = getOperation; exports.validateParams = validateParams; -exports.getURL = getURL; +exports.usePost = usePost; +exports.postURL = postURL; exports.getRequestTimeout = getRequestTimeout; +exports.getRequestHeaders = getRequestHeaders; exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; +exports.postPayload = postPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { - return _operations["default"].PNPushNotificationEnabledChannelsOperation; + return _operations["default"].PNAddMessageActionOperation; } -function validateParams(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway, - channels = incomingParams.channels, - topic = incomingParams.topic; - var config = modules.config; - if (!device) return 'Missing Device ID (device)'; - if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; - if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; - if (!channels || channels.length === 0) return 'Missing Channels'; +function validateParams(_ref, incomingParams) { + var config = _ref.config; + var action = incomingParams.action, + channel = incomingParams.channel, + messageTimetoken = incomingParams.messageTimetoken; + if (!messageTimetoken) return 'Missing message timetoken'; if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (!channel) return 'Missing message channel'; + if (!action) return 'Missing Action'; + if (!action.value) return 'Missing Action.value'; + if (!action.type) return 'Missing Action.type'; + if (action.type.length > 15) return 'Action.type value exceed maximum length of 15'; } -function getURL(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway; - var config = modules.config; - - if (pushGateway === 'apns2') { - return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); - } +function usePost() { + return true; +} - return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); +function postURL(_ref2, incomingParams) { + var config = _ref2.config; + var channel = incomingParams.channel, + messageTimetoken = incomingParams.messageTimetoken; + return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel, "/message/").concat(messageTimetoken); } -function getRequestTimeout(_ref) { - var config = _ref.config; +function getRequestTimeout(_ref3) { + var config = _ref3.config; return config.getTransactionTimeout(); } +function getRequestHeaders() { + return { + 'Content-Type': 'application/json' + }; +} + function isAuthSupported() { return true; } -function prepareParams(modules, incomingParams) { - var pushGateway = incomingParams.pushGateway, - _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, - _incomingParams$envir = incomingParams.environment, - environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, - topic = incomingParams.topic; - var parameters = { - type: pushGateway, - add: channels.join(',') - }; - - if (pushGateway === 'apns2') { - parameters = Object.assign({}, parameters, { - environment: environment, - topic: topic - }); - delete parameters.type; - } +function prepareParams() { + return {}; +} - return parameters; +function postPayload(modules, incomingParams) { + return incomingParams.action; } -function handleResponse() { - return {}; +function handleResponse(modules, addMessageActionResponse) { + return { + data: addMessageActionResponse.data + }; } /***/ }), -/* 27 */ +/* 57 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports.getOperation = getOperation; exports.validateParams = validateParams; +exports.useDelete = useDelete; exports.getURL = getURL; exports.getRequestTimeout = getRequestTimeout; exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { - return _operations["default"].PNPushNotificationEnabledChannelsOperation; -} - -function validateParams(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway, - channels = incomingParams.channels, - topic = incomingParams.topic; - var config = modules.config; - if (!device) return 'Missing Device ID (device)'; - if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; - if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; - if (!channels || channels.length === 0) return 'Missing Channels'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} - -function getURL(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway; - var config = modules.config; - - if (pushGateway === 'apns2') { - return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); - } - - return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); + return _operations["default"].PNRemoveMessageActionOperation; } -function getRequestTimeout(_ref) { +function validateParams(_ref, incomingParams) { var config = _ref.config; - return config.getTransactionTimeout(); + var channel = incomingParams.channel, + actionTimetoken = incomingParams.actionTimetoken, + messageTimetoken = incomingParams.messageTimetoken; + if (!messageTimetoken) return 'Missing message timetoken'; + if (!actionTimetoken) return 'Missing action timetoken'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (!channel) return 'Missing message channel'; } -function isAuthSupported() { +function useDelete() { return true; } -function prepareParams(modules, incomingParams) { - var pushGateway = incomingParams.pushGateway, - _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, - _incomingParams$envir = incomingParams.environment, - environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, - topic = incomingParams.topic; - var parameters = { - type: pushGateway, - remove: channels.join(',') - }; +function getURL(_ref2, incomingParams) { + var config = _ref2.config; + var channel = incomingParams.channel, + actionTimetoken = incomingParams.actionTimetoken, + messageTimetoken = incomingParams.messageTimetoken; + return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel, "/message/").concat(messageTimetoken, "/action/").concat(actionTimetoken); +} - if (pushGateway === 'apns2') { - parameters = Object.assign({}, parameters, { - environment: environment, - topic: topic - }); - delete parameters.type; - } +function getRequestTimeout(_ref3) { + var config = _ref3.config; + return config.getTransactionTimeout(); +} - return parameters; +function isAuthSupported() { + return true; } -function handleResponse() { +function prepareParams() { return {}; } +function handleResponse(modules, removeMessageActionResponse) { + return { + data: removeMessageActionResponse.data + }; +} + /***/ }), -/* 28 */ +/* 58 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -6085,41 +7314,29 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { - return _operations["default"].PNPushNotificationEnabledChannelsOperation; + return _operations["default"].PNGetMessageActionsOperation; } -function validateParams(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway, - topic = incomingParams.topic; - var config = modules.config; - if (!device) return 'Missing Device ID (device)'; - if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; - if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; +function validateParams(_ref, incomingParams) { + var config = _ref.config; + var channel = incomingParams.channel; if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (!channel) return 'Missing message channel'; } -function getURL(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway; - var config = modules.config; - - if (pushGateway === 'apns2') { - return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); - } - - return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); +function getURL(_ref2, incomingParams) { + var config = _ref2.config; + var channel = incomingParams.channel; + return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel); } -function getRequestTimeout(_ref) { - var config = _ref.config; +function getRequestTimeout(_ref3) { + var config = _ref3.config; return config.getTransactionTimeout(); } @@ -6128,660 +7345,1244 @@ function isAuthSupported() { } function prepareParams(modules, incomingParams) { - var pushGateway = incomingParams.pushGateway, - _incomingParams$envir = incomingParams.environment, - environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, - topic = incomingParams.topic; - var parameters = { - type: pushGateway + var limit = incomingParams.limit, + start = incomingParams.start, + end = incomingParams.end; + var outgoingParams = {}; + if (limit) outgoingParams.limit = limit; + if (start) outgoingParams.start = start; + if (end) outgoingParams.end = end; + return outgoingParams; +} + +function handleResponse(modules, getMessageActionsResponse) { + var response = { + data: getMessageActionsResponse.data, + start: null, + end: null }; - if (pushGateway === 'apns2') { - parameters = Object.assign({}, parameters, { - environment: environment, - topic: topic - }); - delete parameters.type; + if (response.data.length) { + response.end = response.data[response.data.length - 1].actionTimetoken; + response.start = response.data[0].actionTimetoken; } - return parameters; -} - -function handleResponse(modules, serverResponse) { - return { - channels: serverResponse - }; + return response; } /***/ }), -/* 29 */ +/* 59 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { -var _flow_interfaces = __webpack_require__(1); +"use strict"; -var _operations = _interopRequireDefault(__webpack_require__(0)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { -function getOperation() { - return _operations["default"].PNRemoveAllPushNotificationsOperation; -} +"use strict"; -function validateParams(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway, - topic = incomingParams.topic; - var config = modules.config; - if (!device) return 'Missing Device ID (device)'; - if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; - if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} -function getURL(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway; - var config = modules.config; +var _interopRequireDefault = __webpack_require__(0); - if (pushGateway === 'apns2') { - return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device, "/remove"); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNListFilesOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return 'channel can\'t be empty'; + } + }, + getURL: function getURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/files"); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function handleResponse(_, response) { + return { + status: response.status, + data: response.data + }; } +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; - return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device, "/remove"); -} +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} +"use strict"; -function isAuthSupported() { - return true; -} -function prepareParams(modules, incomingParams) { - var pushGateway = incomingParams.pushGateway, - _incomingParams$envir = incomingParams.environment, - environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, - topic = incomingParams.topic; - var parameters = { - type: pushGateway - }; +var _interopRequireDefault = __webpack_require__(0); - if (pushGateway === 'apns2') { - parameters = Object.assign({}, parameters, { - environment: environment, - topic: topic - }); - delete parameters.type; - } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; - return parameters; -} +var _operations = _interopRequireDefault(__webpack_require__(1)); -function handleResponse() { - return {}; -} +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNGenerateUploadUrlOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return 'channel can\'t be empty'; + } + + if (!(params === null || params === void 0 ? void 0 : params.name)) { + return 'name can\'t be empty'; + } + }, + usePost: function usePost() { + return true; + }, + postURL: function postURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/generate-upload-url"); + }, + postPayload: function postPayload(_, params) { + return { + name: params.name + }; + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function handleResponse(_, response) { + return { + status: response.status, + data: response.data, + file_upload_request: response.file_upload_request + }; + } +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 30 */ +/* 63 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +exports["default"] = void 0; + +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); -var _flow_interfaces = __webpack_require__(1); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _utils = _interopRequireDefault(__webpack_require__(3)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var preparePayload = function preparePayload(_ref, payload) { + var crypto = _ref.crypto, + config = _ref.config; + var stringifiedPayload = JSON.stringify(payload); + + if (config.cipherKey) { + stringifiedPayload = crypto.encrypt(stringifiedPayload); + stringifiedPayload = JSON.stringify(stringifiedPayload); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + return stringifiedPayload || ''; +}; -function getOperation() { - return _operations["default"].PNUnsubscribeOperation; -} +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNPublishFileOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return "channel can't be empty"; + } -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} + if (!(params === null || params === void 0 ? void 0 : params.fileId)) { + return "file id can't be empty"; + } -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/leave"); -} + if (!(params === null || params === void 0 ? void 0 : params.fileName)) { + return "file name can't be empty"; + } + }, + getURL: function getURL(modules, params) { + var _modules$config = modules.config, + publishKey = _modules$config.publishKey, + subscribeKey = _modules$config.subscribeKey; + var message = { + message: params.message, + file: { + name: params.fileName, + id: params.fileId + } + }; + var payload = preparePayload(modules, message); + return "/v1/files/publish-file/".concat(publishKey, "/").concat(subscribeKey, "/0/").concat(params.channel, "/0/").concat(_utils["default"].encodeString(payload)); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams(_, params) { + var outParams = {}; -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + if (params.ttl) { + outParams.ttl = params.ttl; + } -function isAuthSupported() { - return true; -} + if (params.store) { + outParams.store = params.store ? '1' : '0'; + } -function prepareParams(modules, incomingParams) { - var _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; - var params = {}; + if (params.meta && (0, _typeof2["default"])(params.meta) === 'object') { + outParams.meta = JSON.stringify(params.meta); + } - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); + return outParams; + }, + handleResponse: function handleResponse(_, response) { + return { + timetoken: response['2'] + }; } - - return params; -} - -function handleResponse() { - return {}; -} +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 31 */ +/* 64 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +exports["default"] = void 0; -var _flow_interfaces = __webpack_require__(1); +var _regenerator = _interopRequireDefault(__webpack_require__(21)); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(22)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _endpoint = __webpack_require__(16); -function getOperation() { - return _operations["default"].PNWhereNowOperation; -} +var sendFile = function sendFile(_ref) { + var generateUploadUrl = _ref.generateUploadUrl, + publishFile = _ref.publishFile, + _ref$modules = _ref.modules, + PubNubFile = _ref$modules.PubNubFile, + config = _ref$modules.config, + cryptography = _ref$modules.cryptography, + networking = _ref$modules.networking; + return function () { + var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(_ref2) { + var channel, input, message, cipherKey, meta, ttl, store, file, _ref4, _ref4$file_upload_req, url, formFields, _ref4$data, id, name, formFieldsWithMimeType, result, retries, wasSuccessful; + + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + channel = _ref2.channel, input = _ref2.file, message = _ref2.message, cipherKey = _ref2.cipherKey, meta = _ref2.meta, ttl = _ref2.ttl, store = _ref2.store; + + if (channel) { + _context.next = 3; + break; + } + + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("channel can't be empty")); + + case 3: + if (input) { + _context.next = 5; + break; + } + + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("file can't be empty")); + + case 5: + file = PubNubFile.create(input); + _context.next = 8; + return generateUploadUrl({ + channel: channel, + name: file.name + }); + + case 8: + _ref4 = _context.sent; + _ref4$file_upload_req = _ref4.file_upload_request; + url = _ref4$file_upload_req.url; + formFields = _ref4$file_upload_req.form_fields; + _ref4$data = _ref4.data; + id = _ref4$data.id; + name = _ref4$data.name; + + if (!(cipherKey !== null && cipherKey !== void 0 ? cipherKey : config.cipherKey)) { + _context.next = 19; + break; + } + + _context.next = 18; + return cryptography.encryptFile(cipherKey !== null && cipherKey !== void 0 ? cipherKey : config.cipherKey, file, PubNubFile); + + case 18: + file = _context.sent; + + case 19: + formFieldsWithMimeType = formFields; + + if (file.mimeType) { + formFieldsWithMimeType = formFields.map(function (entry) { + var _file$mimeType; + + if (entry.key === 'Content-Type') return { + key: entry.key, + value: (_file$mimeType = file.mimeType) !== null && _file$mimeType !== void 0 ? _file$mimeType : '' + };else return entry; + }); + } + + _context.prev = 21; + + if (!(typeof Blob !== 'undefined')) { + _context.next = 34; + break; + } + + _context.t0 = networking; + _context.t1 = url; + _context.t2 = formFieldsWithMimeType; + _context.next = 28; + return file.toFile(); + + case 28: + _context.t3 = _context.sent; + _context.next = 31; + return _context.t0.FILE.call(_context.t0, _context.t1, _context.t2, _context.t3); + + case 31: + result = _context.sent; + _context.next = 43; + break; + + case 34: + _context.t4 = networking; + _context.t5 = url; + _context.t6 = formFieldsWithMimeType; + _context.next = 39; + return file.toBuffer(); + + case 39: + _context.t7 = _context.sent; + _context.next = 42; + return _context.t4.FILE.call(_context.t4, _context.t5, _context.t6, _context.t7); + + case 42: + result = _context.sent; + + case 43: + _context.next = 48; + break; + + case 45: + _context.prev = 45; + _context.t8 = _context["catch"](21); + throw new _endpoint.PubNubError('Upload to bucket failed', _context.t8); + + case 48: + if (!(result.status !== 204)) { + _context.next = 50; + break; + } + + throw new _endpoint.PubNubError('Upload to bucket was unsuccessful', result); + + case 50: + retries = 5; + wasSuccessful = false; + + case 52: + if (!(!wasSuccessful && retries > 0)) { + _context.next = 64; + break; + } + + _context.prev = 53; + _context.next = 56; + return publishFile({ + channel: channel, + message: message, + fileId: id, + fileName: name, + meta: meta, + store: store, + ttl: ttl + }); + + case 56: + wasSuccessful = true; + _context.next = 62; + break; + + case 59: + _context.prev = 59; + _context.t9 = _context["catch"](53); + retries -= 1; + + case 62: + _context.next = 52; + break; + + case 64: + if (wasSuccessful) { + _context.next = 68; + break; + } + + throw new _endpoint.PubNubError('Publish failed. You may want to execute that operation manually using pubnub.publishFile', { + channel: channel, + id: id, + name: name + }); + + case 68: + return _context.abrupt("return", { + id: id, + name: name + }); + + case 69: + case "end": + return _context.stop(); + } + } + }, _callee, null, [[21, 45], [53, 59]]); + })); -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} + return function (_x) { + return _ref3.apply(this, arguments); + }; + }(); +}; -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$uuid = incomingParams.uuid, - uuid = _incomingParams$uuid === void 0 ? config.UUID : _incomingParams$uuid; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/uuid/").concat(uuid); -} +var _default = function _default(deps) { + var f = sendFile(deps); + return function (params, cb) { + var resultP = f(params); -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + if (typeof cb === 'function') { + resultP.then(function (result) { + return cb(null, result); + })["catch"](function (error) { + return cb(error, null); + }); + return resultP; + } else { + return resultP; + } + }; +}; -function isAuthSupported() { - return true; -} +exports["default"] = _default; +module.exports = exports.default; -function prepareParams() { - return {}; -} +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { -function handleResponse(modules, serverResponse) { - if (!serverResponse.payload) { - return { - channels: [] - }; +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var runtime = (function (exports) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + exports.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); } - return { - channels: serverResponse.payload.channels + exports.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; }; -} -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { + exports.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; -"use strict"; + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + exports.awrap = function(arg) { + return { __await: arg }; + }; + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return PromiseImpl.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.isAuthSupported = isAuthSupported; -exports.getRequestTimeout = getRequestTimeout; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; + return PromiseImpl.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } -var _flow_interfaces = __webpack_require__(1); + var previousPromise; -var _operations = _interopRequireDefault(__webpack_require__(0)); + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } -var _utils = _interopRequireDefault(__webpack_require__(2)); + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + exports.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { + if (PromiseImpl === void 0) PromiseImpl = Promise; + + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList), + PromiseImpl + ); + + return exports.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; -function getOperation() { - return _operations["default"].PNHeartbeatOperation; -} + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/heartbeat"); -} + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } -function isAuthSupported() { - return true; -} + context.method = method; + context.arg = arg; -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } -function prepareParams(modules, incomingParams) { - var _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2, - _incomingParams$state = incomingParams.state, - state = _incomingParams$state === void 0 ? {} : _incomingParams$state; - var config = modules.config; - var params = {}; + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); - } + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } - params.state = JSON.stringify(state); - params.heartbeat = config.getPresenceTimeout(); - return params; -} + context.dispatchException(context.arg); -function handleResponse() { - return {}; -} + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { + state = GenStateExecuting; -"use strict"; + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + if (record.arg === ContinueSentinel) { + continue; + } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; + return { + value: record.arg, + done: context.done + }; -var _flow_interfaces = __webpack_require__(1); + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } -var _operations = _interopRequireDefault(__webpack_require__(0)); + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } -var _utils = _interopRequireDefault(__webpack_require__(2)); + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + return ContinueSentinel; + } -function getOperation() { - return _operations["default"].PNGetStateOperation; -} + var record = tryCatch(method, delegate.iterator, context.arg); -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$uuid = incomingParams.uuid, - uuid = _incomingParams$uuid === void 0 ? config.UUID : _incomingParams$uuid, - _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/uuid/").concat(uuid); -} + var info = record.arg; -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; -function isAuthSupported() { - return true; -} + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; -function prepareParams(modules, incomingParams) { - var _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; - var params = {}; + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; } - return params; -} + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); -function handleResponse(modules, serverResponse, incomingParams) { - var _incomingParams$chann3 = incomingParams.channels, - channels = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3, - _incomingParams$chann4 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4; - var channelsResponse = {}; + Gp[toStringTagSymbol] = "Generator"; - if (channels.length === 1 && channelGroups.length === 0) { - channelsResponse[channels[0]] = serverResponse.payload; - } else { - channelsResponse = serverResponse.payload; - } + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; - return { - channels: channelsResponse + Gp.toString = function() { + return "[object Generator]"; }; -} -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; -"use strict"; + if (1 in locs) { + entry.catchLoc = locs[1]; + } + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; + this.tryEntries.push(entry); + } -var _flow_interfaces = __webpack_require__(1); + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } -var _operations = _interopRequireDefault(__webpack_require__(0)); + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } -var _utils = _interopRequireDefault(__webpack_require__(2)); + exports.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } -function getOperation() { - return _operations["default"].PNSetStateOperation; -} + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; -function validateParams(modules, incomingParams) { - var config = modules.config; - var state = incomingParams.state, - _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, - _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; - if (!state) return 'Missing State'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; - if (channels.length === 0 && channelGroups.length === 0) return 'Please provide a list of channels and/or channel-groups'; -} + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$chann3 = incomingParams.channels, - channels = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/uuid/").concat(config.UUID, "/data"); -} + if (typeof iterable.next === "function") { + return iterable; + } -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } -function isAuthSupported() { - return true; -} + next.value = undefined; + next.done = true; -function prepareParams(modules, incomingParams) { - var state = incomingParams.state, - _incomingParams$chann4 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4; - var params = {}; - params.state = JSON.stringify(state); + return next; + }; - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); - } + return next.next = next; + } + } - return params; -} + // Return an iterator with no values. + return { next: doneResult }; + } + exports.values = values; -function handleResponse(modules, serverResponse) { - return { - state: serverResponse.payload - }; -} + function doneResult() { + return { value: undefined, done: true }; + } -/***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { + Context.prototype = { + constructor: Context, -"use strict"; + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + this.method = "next"; + this.arg = undefined; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; + this.tryEntries.forEach(resetTryEntry); -var _flow_interfaces = __webpack_require__(1); + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, -var _operations = _interopRequireDefault(__webpack_require__(0)); + stop: function() { + this.done = true; -var _utils = _interopRequireDefault(__webpack_require__(2)); + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + return this.rval; + }, -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + dispatchException: function(exception) { + if (this.done) { + throw exception; + } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + return !! caught; + } -function getOperation() { - return _operations["default"].PNHereNowOperation; -} + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, - _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; - var baseURL = "/v2/presence/sub-key/".concat(config.subscribeKey); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); - if (channels.length > 0 || channelGroups.length > 0) { - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - baseURL += "/channel/".concat(_utils["default"].encodeString(stringifiedChannels)); - } + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } - return baseURL; -} + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } -function isAuthSupported() { - return true; -} + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, -function prepareParams(modules, incomingParams) { - var _incomingParams$chann3 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3, - _incomingParams$inclu = incomingParams.includeUUIDs, - includeUUIDs = _incomingParams$inclu === void 0 ? true : _incomingParams$inclu, - _incomingParams$inclu2 = incomingParams.includeState, - includeState = _incomingParams$inclu2 === void 0 ? false : _incomingParams$inclu2, - _incomingParams$query = incomingParams.queryParameters, - queryParameters = _incomingParams$query === void 0 ? {} : _incomingParams$query; - var params = {}; - if (!includeUUIDs) params.disable_uuids = 1; - if (includeState) params.state = 1; + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); - } + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } - params = _objectSpread({}, params, {}, queryParameters); - return params; -} + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; -function handleResponse(modules, serverResponse, incomingParams) { - var _incomingParams$chann4 = incomingParams.channels, - channels = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4, - _incomingParams$chann5 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann5 === void 0 ? [] : _incomingParams$chann5, - _incomingParams$inclu3 = incomingParams.includeUUIDs, - includeUUIDs = _incomingParams$inclu3 === void 0 ? true : _incomingParams$inclu3, - _incomingParams$inclu4 = incomingParams.includeState, - includeState = _incomingParams$inclu4 === void 0 ? false : _incomingParams$inclu4; + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } - var prepareSingularChannel = function prepareSingularChannel() { - var response = {}; - var occupantsList = []; - response.totalChannels = 1; - response.totalOccupancy = serverResponse.occupancy; - response.channels = {}; - response.channels[channels[0]] = { - occupants: occupantsList, - name: channels[0], - occupancy: serverResponse.occupancy - }; + return this.complete(record); + }, - if (includeUUIDs && serverResponse.uuids) { - serverResponse.uuids.forEach(function (uuidEntry) { - if (includeState) { - occupantsList.push({ - state: uuidEntry.state, - uuid: uuidEntry.uuid - }); - } else { - occupantsList.push({ - state: null, - uuid: uuidEntry - }); - } - }); - } + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } - return response; - }; + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } - var prepareMultipleChannel = function prepareMultipleChannel() { - var response = {}; - response.totalChannels = serverResponse.payload.total_channels; - response.totalOccupancy = serverResponse.payload.total_occupancy; - response.channels = {}; - Object.keys(serverResponse.payload.channels).forEach(function (channelName) { - var channelEntry = serverResponse.payload.channels[channelName]; - var occupantsList = []; - response.channels[channelName] = { - occupants: occupantsList, - name: channelName, - occupancy: channelEntry.occupancy - }; + return ContinueSentinel; + }, - if (includeUUIDs) { - channelEntry.uuids.forEach(function (uuidEntry) { - if (includeState) { - occupantsList.push({ - state: uuidEntry.state, - uuid: uuidEntry.uuid - }); - } else { - occupantsList.push({ - state: null, - uuid: uuidEntry - }); + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); } - }); + return thrown; + } } - return response; - }); - return response; - }; + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, - var response; + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; - if (channels.length > 1 || channelGroups.length > 0 || channelGroups.length === 0 && channels.length === 0) { - response = prepareMultipleChannel(); - } else { - response = prepareSingularChannel(); - } + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } - return response; + return ContinueSentinel; + } + }; + + // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + return exports; + +}( + // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + true ? module.exports : undefined +)); + +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + Function("r", "regeneratorRuntime = r")(runtime); } + /***/ }), -/* 36 */ +/* 66 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6790,251 +8591,226 @@ function handleResponse(modules, serverResponse, incomingParams) { Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.usePost = usePost; -exports.postURL = postURL; -exports.getRequestTimeout = getRequestTimeout; -exports.getRequestHeaders = getRequestHeaders; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.postPayload = postPayload; -exports.handleResponse = handleResponse; - -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +exports["default"] = void 0; -function getOperation() { - return _operations["default"].PNAddMessageActionOperation; -} +var _endpoint = __webpack_require__(16); -function validateParams(_ref, incomingParams) { +var _default = function _default(_ref, _ref2) { var config = _ref.config; - var action = incomingParams.action, - channel = incomingParams.channel, - messageTimetoken = incomingParams.messageTimetoken; - if (!messageTimetoken) return 'Missing message timetoken'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; - if (!channel) return 'Missing message channel'; - if (!action) return 'Missing Action'; - if (!action.value) return 'Missing Action.value'; - if (!action.type) return 'Missing Action.type'; - if (action.type.length > 15) return 'Action.type value exceed maximum length of 15'; -} - -function usePost() { - return true; -} - -function postURL(_ref2, incomingParams) { - var config = _ref2.config; - var channel = incomingParams.channel, - messageTimetoken = incomingParams.messageTimetoken; - return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel, "/message/").concat(messageTimetoken); -} - -function getRequestTimeout(_ref3) { - var config = _ref3.config; - return config.getTransactionTimeout(); -} + var channel = _ref2.channel, + id = _ref2.id, + name = _ref2.name; -function getRequestHeaders() { - return { - 'Content-Type': 'application/json' - }; -} + if (!channel) { + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("channel can't be empty")); + } -function isAuthSupported() { - return true; -} + if (!id) { + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("file id can't be empty")); + } -function prepareParams() { - return {}; -} + if (!name) { + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("file name can't be empty")); + } -function postPayload(modules, incomingParams) { - return incomingParams.action; -} + return "".concat(config.origin, "/v1/files/").concat(config.subscribeKey, "/channels/").concat(channel, "/files/").concat(id, "/").concat(name); +}; -function handleResponse(modules, addMessageActionResponse) { - return { - data: addMessageActionResponse.data - }; -} +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 37 */ +/* 67 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.useDelete = useDelete; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; - -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +exports["default"] = void 0; -function getOperation() { - return _operations["default"].PNRemoveMessageActionOperation; -} +var _regenerator = _interopRequireDefault(__webpack_require__(21)); -function validateParams(_ref, incomingParams) { - var config = _ref.config; - var channel = incomingParams.channel, - actionTimetoken = incomingParams.actionTimetoken, - messageTimetoken = incomingParams.messageTimetoken; - if (!messageTimetoken) return 'Missing message timetoken'; - if (!actionTimetoken) return 'Missing action timetoken'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; - if (!channel) return 'Missing message channel'; -} +var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(22)); -function useDelete() { - return true; -} +var _operations = _interopRequireDefault(__webpack_require__(1)); -function getURL(_ref2, incomingParams) { - var config = _ref2.config; - var channel = incomingParams.channel, - actionTimetoken = incomingParams.actionTimetoken, - messageTimetoken = incomingParams.messageTimetoken; - return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel, "/message/").concat(messageTimetoken, "/action/").concat(actionTimetoken); -} +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNDownloadFileOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return "channel can't be empty"; + } -function getRequestTimeout(_ref3) { - var config = _ref3.config; - return config.getTransactionTimeout(); -} + if (!(params === null || params === void 0 ? void 0 : params.name)) { + return "name can't be empty"; + } -function isAuthSupported() { - return true; -} + if (!(params === null || params === void 0 ? void 0 : params.id)) { + return "id can't be empty"; + } + }, + getURL: function getURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/files/").concat(params.id, "/").concat(params.name); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + ignoreBody: function ignoreBody() { + return true; + }, + forceBuffered: function forceBuffered() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function () { + var _handleResponse = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(_ref4, res, params) { + var _res$response$name; + + var PubNubFile, config, cryptography, body, _params$cipherKey; + + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + PubNubFile = _ref4.PubNubFile, config = _ref4.config, cryptography = _ref4.cryptography; + body = res.response.body; + + if (!config.cipherKey) { + _context.next = 6; + break; + } + + _context.next = 5; + return cryptography.decrypt((_params$cipherKey = params.cipherKey) !== null && _params$cipherKey !== void 0 ? _params$cipherKey : config.cipherKey, body); + + case 5: + body = _context.sent; + + case 6: + return _context.abrupt("return", PubNubFile.create({ + data: body, + name: (_res$response$name = res.response.name) !== null && _res$response$name !== void 0 ? _res$response$name : params.name, + mimeType: res.response.type + })); + + case 7: + case "end": + return _context.stop(); + } + } + }, _callee); + })); -function prepareParams() { - return {}; -} + function handleResponse(_x, _x2, _x3) { + return _handleResponse.apply(this, arguments); + } -function handleResponse(modules, removeMessageActionResponse) { - return { - data: removeMessageActionResponse.data - }; -} + return handleResponse; + }() +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 38 */ +/* 68 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; - -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function getOperation() { - return _operations["default"].PNGetMessageActionsOperation; -} - -function validateParams(_ref, incomingParams) { - var config = _ref.config; - var channel = incomingParams.channel; - if (!config.subscribeKey) return 'Missing Subscribe Key'; - if (!channel) return 'Missing message channel'; -} - -function getURL(_ref2, incomingParams) { - var config = _ref2.config; - var channel = incomingParams.channel; - return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel); -} - -function getRequestTimeout(_ref3) { - var config = _ref3.config; - return config.getTransactionTimeout(); -} +exports["default"] = void 0; -function isAuthSupported() { - return true; -} +var _operations = _interopRequireDefault(__webpack_require__(1)); -function prepareParams(modules, incomingParams) { - var limit = incomingParams.limit, - start = incomingParams.start, - end = incomingParams.end; - var outgoingParams = {}; - if (limit) outgoingParams.limit = limit; - if (start) outgoingParams.start = start; - if (end) outgoingParams.end = end; - return outgoingParams; -} +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNListFilesOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return "channel can't be empty"; + } -function handleResponse(modules, getMessageActionsResponse) { - var response = { - data: getMessageActionsResponse.data, - start: null, - end: null - }; + if (!(params === null || params === void 0 ? void 0 : params.id)) { + return "file id can't be empty"; + } - if (response.data.length) { - response.end = response.data[response.data.length - 1].actionTimetoken; - response.start = response.data[0].actionTimetoken; + if (!(params === null || params === void 0 ? void 0 : params.name)) { + return "file name can't be empty"; + } + }, + useDelete: function useDelete() { + return true; + }, + getURL: function getURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/files/").concat(params.id, "/").concat(params.name); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function handleResponse(_, response) { + return { + status: response.status + }; } - - return response; -} +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 39 */ +/* 69 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7062,7 +8838,7 @@ var endpoint = { var queryParams = {}; if (params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) { - queryParams.include = ['custom']; + queryParams.include = 'custom'; } if (params === null || params === void 0 ? void 0 : (_params$include2 = params.include) === null || _params$include2 === void 0 ? void 0 : _params$include2.totalCount) { @@ -7093,7 +8869,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref4) { - var _ref5 = _slicedToArray(_ref4, 2), + var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2), key = _ref5[0], value = _ref5[1]; @@ -7122,20 +8898,106 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 40 */ +/* 70 */ +/***/ (function(module, exports) { + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +module.exports = _arrayWithHoles; + +/***/ }), +/* 71 */ +/***/ (function(module, exports) { + +function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +module.exports = _iterableToArrayLimit; + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayLikeToArray = __webpack_require__(73); + +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); +} + +module.exports = _unsupportedIterableToArray; + +/***/ }), +/* 73 */ +/***/ (function(module, exports) { + +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; +} + +module.exports = _arrayLikeToArray; + +/***/ }), +/* 74 */ +/***/ (function(module, exports) { + +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."); +} + +module.exports = _nonIterableRest; + +/***/ }), +/* 75 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7165,7 +9027,7 @@ var endpoint = { var config = _ref5.config; return { uuid: (_ref6 = params === null || params === void 0 ? void 0 : params.uuid) !== null && _ref6 !== void 0 ? _ref6 : config.getUUID(), - include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && ['custom'] + include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { @@ -7180,20 +9042,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 41 */ +/* 76 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7233,7 +9095,7 @@ var endpoint = { var config = _ref5.config; return { uuid: (_ref6 = params === null || params === void 0 ? void 0 : params.uuid) !== null && _ref6 !== void 0 ? _ref6 : config.getUUID(), - include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && ['custom'] + include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { @@ -7248,20 +9110,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 42 */ +/* 77 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7308,28 +9170,22 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 43 */ +/* 78 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7357,7 +9213,7 @@ var endpoint = { var queryParams = {}; if (params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) { - queryParams.include = ['custom']; + queryParams.include = 'custom'; } if (params === null || params === void 0 ? void 0 : (_params$include2 = params.include) === null || _params$include2 === void 0 ? void 0 : _params$include2.totalCount) { @@ -7390,7 +9246,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref4) { - var _ref5 = _slicedToArray(_ref4, 2), + var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2), key = _ref5[0], value = _ref5[1]; @@ -7419,20 +9275,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 44 */ +/* 79 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7462,7 +9318,7 @@ var endpoint = { var _ref4, _params$include; return { - include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && ['custom'] + include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { @@ -7477,20 +9333,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 45 */ +/* 80 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7530,7 +9386,7 @@ var endpoint = { var _ref4, _params$include; return { - include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && ['custom'] + include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { @@ -7545,20 +9401,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 46 */ +/* 81 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7602,28 +9458,22 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 47 */ +/* 82 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7670,6 +9520,8 @@ var endpoint = { if ((_ref4 = (_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.UUIDFields) !== null && _ref4 !== void 0 ? _ref4 : true) { queryParams.include.push('uuid'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -7700,7 +9552,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref6) { - var _ref7 = _slicedToArray(_ref6, 2), + var _ref7 = (0, _slicedToArray2["default"])(_ref6, 2), key = _ref7[0], value = _ref7[1]; @@ -7729,30 +9581,24 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 48 */ +/* 83 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7775,7 +9621,7 @@ var endpoint = { return "/v2/objects/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/uuids"); }, patchPayload: function patchPayload(_, params) { - return _defineProperty({ + return (0, _defineProperty2["default"])({ set: [], remove: [] }, params.type, params.uuids.map(function (uuid) { @@ -7827,6 +9673,8 @@ var endpoint = { if ((_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.UUIDFields) { queryParams.include.push('uuid'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -7857,7 +9705,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), + var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2), key = _ref6[0], value = _ref6[1]; @@ -7886,28 +9734,22 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 49 */ +/* 84 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7954,6 +9796,8 @@ var endpoint = { if ((_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.channelFields) { queryParams.include.push('channel'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -7984,7 +9828,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), + var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2), key = _ref6[0], value = _ref6[1]; @@ -8013,30 +9857,24 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 50 */ +/* 85 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -8057,7 +9895,7 @@ var endpoint = { return "/v2/objects/".concat(config.subscribeKey, "/uuids/").concat((_params$uuid = params.uuid) !== null && _params$uuid !== void 0 ? _params$uuid : config.getUUID(), "/channels"); }, patchPayload: function patchPayload(_, params) { - return _defineProperty({ + return (0, _defineProperty2["default"])({ set: [], remove: [] }, params.type, params.channels.map(function (channel) { @@ -8109,6 +9947,8 @@ var endpoint = { if ((_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.channelFields) { queryParams.include.push('channel'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -8139,7 +9979,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), + var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2), key = _ref6[0], value = _ref6[1]; @@ -8168,12 +10008,14 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 51 */ +/* 86 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8189,11 +10031,9 @@ exports.prepareParams = prepareParams; exports.postPayload = postPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { return incomingParams; @@ -8287,12 +10127,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 52 */ +/* 87 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8308,11 +10150,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { return incomingParams; @@ -8408,12 +10248,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 53 */ +/* 88 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8427,11 +10269,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNDeleteUserOperation; @@ -8475,12 +10315,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 54 */ +/* 89 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8493,11 +10335,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetUserOperation; @@ -8561,12 +10401,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 55 */ +/* 90 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8579,11 +10421,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetUsersOperation; @@ -8661,12 +10501,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 56 */ +/* 91 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8682,11 +10524,9 @@ exports.prepareParams = prepareParams; exports.postPayload = postPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { return incomingParams; @@ -8780,12 +10620,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 57 */ +/* 92 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8801,11 +10643,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { return incomingParams; @@ -8901,12 +10741,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 58 */ +/* 93 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8920,11 +10762,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNDeleteSpaceOperation; @@ -8968,12 +10808,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 59 */ +/* 94 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8986,11 +10828,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetSpacesOperation; @@ -9068,12 +10908,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 60 */ +/* 95 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9086,11 +10928,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetSpaceOperation; @@ -9154,12 +10994,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 61 */ +/* 96 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9172,11 +11014,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetMembersOperation; @@ -9265,12 +11105,14 @@ function handleResponse(modules, membersResponse) { } /***/ }), -/* 62 */ +/* 97 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9286,11 +11128,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var users = incomingParams.users; @@ -9411,12 +11251,14 @@ function handleResponse(modules, membersResponse) { } /***/ }), -/* 63 */ +/* 98 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9432,11 +11274,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var addMembers = incomingParams.addMembers, @@ -9599,12 +11439,14 @@ function handleResponse(modules, membersResponse) { } /***/ }), -/* 64 */ +/* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9620,11 +11462,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var users = incomingParams.users; @@ -9739,12 +11579,14 @@ function handleResponse(modules, membersResponse) { } /***/ }), -/* 65 */ +/* 100 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9757,11 +11599,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetMembershipsOperation; @@ -9850,12 +11690,14 @@ function handleResponse(modules, membershipsResponse) { } /***/ }), -/* 66 */ +/* 101 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9871,11 +11713,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var addMemberships = incomingParams.addMemberships, @@ -10038,12 +11878,14 @@ function handleResponse(modules, membershipsResponse) { } /***/ }), -/* 67 */ +/* 102 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10059,11 +11901,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var spaces = incomingParams.spaces; @@ -10184,12 +12024,14 @@ function handleResponse(modules, membershipsResponse) { } /***/ }), -/* 68 */ +/* 103 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10205,11 +12047,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var spaces = incomingParams.spaces; @@ -10324,12 +12164,14 @@ function handleResponse(modules, membershipsResponse) { } /***/ }), -/* 69 */ +/* 104 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10341,11 +12183,9 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNAccessManagerAudit; @@ -10397,12 +12237,14 @@ function handleResponse(modules, serverResponse) { } /***/ }), -/* 70 */ +/* 105 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10414,11 +12256,9 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNAccessManagerGrant; @@ -10490,12 +12330,14 @@ function handleResponse() { } /***/ }), -/* 71 */ +/* 106 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10510,11 +12352,9 @@ exports.prepareParams = prepareParams; exports.postPayload = postPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNAccessManagerGrantToken; @@ -10659,12 +12499,14 @@ function handleResponse(modules, response) { } /***/ }), -/* 72 */ +/* 107 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10679,15 +12521,13 @@ exports.postPayload = postPayload; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); -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); } +var _utils = _interopRequireDefault(__webpack_require__(3)); function prepareMessagePayload(modules, messagePayload) { var crypto = modules.crypto, @@ -10773,7 +12613,7 @@ function prepareParams(modules, incomingParams) { params.norep = 'true'; } - if (meta && _typeof(meta) === 'object') { + if (meta && (0, _typeof2["default"])(meta) === 'object') { params.meta = JSON.stringify(meta); } @@ -10787,12 +12627,14 @@ function handleResponse(modules, serverResponse) { } /***/ }), -/* 73 */ +/* 108 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10804,13 +12646,11 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _utils = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function prepareMessagePayload(modules, messagePayload) { var stringifiedPayload = JSON.stringify(messagePayload); @@ -10859,12 +12699,14 @@ function handleResponse(modules, serverResponse) { } /***/ }), -/* 74 */ +/* 109 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10876,13 +12718,11 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function __processMessage(modules, message) { var config = modules.config, @@ -10931,7 +12771,11 @@ function prepareParams(modules, incomingParams) { _incomingParams$strin = incomingParams.stringifiedTimeToken, stringifiedTimeToken = _incomingParams$strin === void 0 ? false : _incomingParams$strin, _incomingParams$inclu = incomingParams.includeMeta, - includeMeta = _incomingParams$inclu === void 0 ? false : _incomingParams$inclu; + includeMeta = _incomingParams$inclu === void 0 ? false : _incomingParams$inclu, + _incomingParams$inclu2 = incomingParams.includeUuid, + includeUuid = _incomingParams$inclu2 === void 0 ? true : _incomingParams$inclu2, + _incomingParams$inclu3 = incomingParams.includeMessageType, + includeMessageType = _incomingParams$inclu3 === void 0 ? true : _incomingParams$inclu3; var outgoingParams = { include_token: 'true' }; @@ -10941,6 +12785,8 @@ function prepareParams(modules, incomingParams) { if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; if (reverse != null) outgoingParams.reverse = reverse.toString(); if (includeMeta) outgoingParams.include_meta = 'true'; + if (includeUuid) outgoingParams.include_uuid = 'true'; + if (includeMessageType) outgoingParams.include_message_type = 'true'; return outgoingParams; } @@ -10970,12 +12816,14 @@ function handleResponse(modules, serverResponse) { } /***/ }), -/* 75 */ +/* 110 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10988,13 +12836,11 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _utils = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { return _operations["default"].PNDeleteMessagesOperation; @@ -11040,12 +12886,14 @@ function handleResponse(modules, serverResponse) { } /***/ }), -/* 76 */ +/* 111 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -11057,19 +12905,11 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -var _utils = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { return _operations["default"].PNMessageCounts; @@ -11108,7 +12948,7 @@ function prepareParams(modules, incomingParams) { var outgoingParams = {}; if (channelTimetokens && channelTimetokens.length === 1) { - var _channelTimetokens = _slicedToArray(channelTimetokens, 1), + var _channelTimetokens = (0, _slicedToArray2["default"])(channelTimetokens, 1), tt = _channelTimetokens[0]; outgoingParams.timetoken = tt; @@ -11128,12 +12968,14 @@ function handleResponse(modules, serverResponse) { } /***/ }), -/* 77 */ +/* 112 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -11145,13 +12987,11 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function __processMessage(modules, message) { var config = modules.config, @@ -11209,13 +13049,19 @@ function prepareParams(modules, incomingParams) { _incomingParams$strin = incomingParams.stringifiedTimeToken, stringifiedTimeToken = _incomingParams$strin === void 0 ? false : _incomingParams$strin, _incomingParams$inclu3 = incomingParams.includeMeta, - includeMeta = _incomingParams$inclu3 === void 0 ? false : _incomingParams$inclu3; + includeMeta = _incomingParams$inclu3 === void 0 ? false : _incomingParams$inclu3, + _incomingParams$inclu4 = incomingParams.includeUuid, + includeUuid = _incomingParams$inclu4 === void 0 ? true : _incomingParams$inclu4, + _incomingParams$inclu5 = incomingParams.includeMessageType, + includeMessageType = _incomingParams$inclu5 === void 0 ? true : _incomingParams$inclu5; var outgoingParams = {}; if (count) outgoingParams.max = count; if (start) outgoingParams.start = start; if (end) outgoingParams.end = end; if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; if (includeMeta) outgoingParams.include_meta = 'true'; + if (includeUuid) outgoingParams.include_uuid = 'true'; + if (includeMessageType) outgoingParams.include_message_type = 'true'; return outgoingParams; } @@ -11230,6 +13076,8 @@ function handleResponse(modules, serverResponse) { announce.channel = channelName; announce.timetoken = messageEnvelope.timetoken; announce.message = __processMessage(modules, messageEnvelope.message); + announce.messageType = messageEnvelope.message_type; + announce.uuid = messageEnvelope.uuid; if (messageEnvelope.actions) { announce.actions = messageEnvelope.actions; @@ -11247,12 +13095,14 @@ function handleResponse(modules, serverResponse) { } /***/ }), -/* 78 */ +/* 113 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -11264,13 +13114,11 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _utils = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { return _operations["default"].PNSubscribeOperation; @@ -11366,64 +13214,52 @@ function handleResponse(modules, serverResponse) { } /***/ }), -/* 79 */ +/* 114 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _config = _interopRequireDefault(__webpack_require__(3)); - -var _categories = _interopRequireDefault(__webpack_require__(4)); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -var _flow_interfaces = __webpack_require__(1); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _config = _interopRequireDefault(__webpack_require__(8)); -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, descriptor.key, descriptor); } } +var _categories = _interopRequireDefault(__webpack_require__(11)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _flow_interfaces = __webpack_require__(2); var _default = function () { function _default(modules) { var _this = this; - _classCallCheck(this, _default); - - _defineProperty(this, "_modules", void 0); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "_maxSubDomain", void 0); - - _defineProperty(this, "_currentSubDomain", void 0); - - _defineProperty(this, "_standardOrigin", void 0); - - _defineProperty(this, "_subscribeOrigin", void 0); - - _defineProperty(this, "_providedFQDN", void 0); - - _defineProperty(this, "_requestTimeout", void 0); - - _defineProperty(this, "_coreParams", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_modules", void 0); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_maxSubDomain", void 0); + (0, _defineProperty2["default"])(this, "_currentSubDomain", void 0); + (0, _defineProperty2["default"])(this, "_standardOrigin", void 0); + (0, _defineProperty2["default"])(this, "_subscribeOrigin", void 0); + (0, _defineProperty2["default"])(this, "_providedFQDN", void 0); + (0, _defineProperty2["default"])(this, "_requestTimeout", void 0); + (0, _defineProperty2["default"])(this, "_coreParams", void 0); this._modules = {}; Object.keys(modules).forEach(function (key) { _this._modules[key] = modules[key].bind(_this); }); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "init", value: function init(config) { this._config = config; @@ -11466,6 +13302,11 @@ var _default = function () { value: function getStandardOrigin() { return this._standardOrigin; } + }, { + key: "FILE", + value: function FILE(url, fields, file) { + return this._modules.file(url, fields, file); + } }, { key: "POST", value: function POST(params, body, endpoint, callback) { @@ -11528,7 +13369,6 @@ var _default = function () { return _categories["default"].PNUnknownCategory; } }]); - return _default; }(); @@ -11536,35 +13376,33 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 80 */ +/* 115 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -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, descriptor.key, descriptor); } } +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); var _default = function () { function _default() { - _classCallCheck(this, _default); - - _defineProperty(this, "storage", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "storage", void 0); this.storage = {}; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "get", value: function get(key) { return this.storage[key]; @@ -11575,7 +13413,6 @@ var _default = function () { this.storage[key] = value; } }]); - return _default; }(); @@ -11583,40 +13420,37 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 81 */ +/* 116 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -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); } +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -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, descriptor.key, descriptor); } } +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); var _default = function () { function _default(decode, base64ToBinary) { - _classCallCheck(this, _default); - - _defineProperty(this, "_base64ToBinary", void 0); - - _defineProperty(this, "_cborReader", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_base64ToBinary", void 0); + (0, _defineProperty2["default"])(this, "_cborReader", void 0); this._base64ToBinary = base64ToBinary; this._decode = decode; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "decodeToken", value: function decodeToken(tokenString) { var padding = ''; @@ -11631,14 +13465,13 @@ var _default = function () { var result = this._decode(this._base64ToBinary(cleaned)); - if (_typeof(result) === 'object') { + if ((0, _typeof2["default"])(result) === 'object') { return result; } return undefined; } }]); - return _default; }(); @@ -11646,7 +13479,7 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 82 */ +/* 117 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11660,9 +13493,9 @@ exports.post = post; exports.patch = patch; exports.del = del; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _utils = __webpack_require__(83); +var _utils = __webpack_require__(118); function log(url, qs, res) { var _pickLogger = function _pickLogger() { @@ -11760,19 +13593,21 @@ function del(params, endpoint, callback) { } /***/ }), -/* 83 */ +/* 118 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports.encodedKeyValuePair = encodedKeyValuePair; exports.buildUrl = buildUrl; -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); } +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); function encodedKeyValuePair(pairs, key, value) { if (value != null) { @@ -11780,7 +13615,7 @@ function encodedKeyValuePair(pairs, key, value) { value.forEach(function (item) { encodedKeyValuePair(pairs, key, item); }); - } else if (_typeof(value) === 'object') { + } else if ((0, _typeof2["default"])(value) === 'object') { Object.keys(value).forEach(function (subkey) { encodedKeyValuePair(pairs, "".concat(key, "[").concat(subkey, "]"), value[subkey]); }); diff --git a/dist/titanium/pubnub.min.js b/dist/titanium/pubnub.min.js index d5e5a3f38..466c37849 100644 --- a/dist/titanium/pubnub.min.js +++ b/dist/titanium/pubnub.min.js @@ -1 +1,2 @@ -exports.PubNub=function(n){var r={};function i(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}return i.m=n,i.c=r,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=9)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={PNTimeOperation:"PNTimeOperation",PNHistoryOperation:"PNHistoryOperation",PNDeleteMessagesOperation:"PNDeleteMessagesOperation",PNFetchMessagesOperation:"PNFetchMessagesOperation",PNMessageCounts:"PNMessageCountsOperation",PNSubscribeOperation:"PNSubscribeOperation",PNUnsubscribeOperation:"PNUnsubscribeOperation",PNPublishOperation:"PNPublishOperation",PNSignalOperation:"PNSignalOperation",PNAddMessageActionOperation:"PNAddActionOperation",PNRemoveMessageActionOperation:"PNRemoveMessageActionOperation",PNGetMessageActionsOperation:"PNGetMessageActionsOperation",PNCreateUserOperation:"PNCreateUserOperation",PNUpdateUserOperation:"PNUpdateUserOperation",PNDeleteUserOperation:"PNDeleteUserOperation",PNGetUserOperation:"PNGetUsersOperation",PNGetUsersOperation:"PNGetUsersOperation",PNCreateSpaceOperation:"PNCreateSpaceOperation",PNUpdateSpaceOperation:"PNUpdateSpaceOperation",PNDeleteSpaceOperation:"PNDeleteSpaceOperation",PNGetSpaceOperation:"PNGetSpacesOperation",PNGetSpacesOperation:"PNGetSpacesOperation",PNGetMembersOperation:"PNGetMembersOperation",PNUpdateMembersOperation:"PNUpdateMembersOperation",PNGetMembershipsOperation:"PNGetMembershipsOperation",PNUpdateMembershipsOperation:"PNUpdateMembershipsOperation",PNGetAllUUIDMetadataOperation:"PNGetAllUUIDMetadataOperation",PNGetUUIDMetadataOperation:"PNGetUUIDMetadataOperation",PNSetUUIDMetadataOperation:"PNSetUUIDMetadataOperation",PNRemoveUUIDMetadataOperation:"PNRemoveUUIDMetadataOperation",PNGetAllChannelMetadataOperation:"PNGetAllChannelMetadataOperation",PNGetChannelMetadataOperation:"PNGetChannelMetadataOperation",PNSetChannelMetadataOperation:"PNSetChannelMetadataOperation",PNRemoveChannelMetadataOperation:"PNRemoveChannelMetadataOperation",PNSetMembersOperation:"PNSetMembersOperation",PNSetMembershipsOperation:"PNSetMembershipsOperation",PNPushNotificationEnabledChannelsOperation:"PNPushNotificationEnabledChannelsOperation",PNRemoveAllPushNotificationsOperation:"PNRemoveAllPushNotificationsOperation",PNWhereNowOperation:"PNWhereNowOperation",PNSetStateOperation:"PNSetStateOperation",PNHereNowOperation:"PNHereNowOperation",PNGetStateOperation:"PNGetStateOperation",PNHeartbeatOperation:"PNHeartbeatOperation",PNChannelGroupsOperation:"PNChannelGroupsOperation",PNRemoveGroupOperation:"PNRemoveGroupOperation",PNChannelsForGroupOperation:"PNChannelsForGroupOperation",PNAddChannelsToGroupOperation:"PNAddChannelsToGroupOperation",PNRemoveChannelsFromGroupOperation:"PNRemoveChannelsFromGroupOperation",PNAccessManagerGrant:"PNAccessManagerGrant",PNAccessManagerGrantToken:"PNAccessManagerGrantToken",PNAccessManagerAudit:"PNAccessManagerAudit"},e.exports=t.default},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/[!~*'()]/g,function(e){return"%".concat(e.charCodeAt(0).toString(16).toUpperCase())})}function i(e){return function(e){var t=[];return Object.keys(e).forEach(function(e){return t.push(e)}),t}(e).sort()}e.exports={signPamFromParams:function(t){return i(t).map(function(e){return"".concat(e,"=").concat(r(t[e]))}).join("&")},endsWith:function(e,t){return-1!==e.indexOf(t,this.length-t.length)},createPromise:function(){var n,r;return{promise:new Promise(function(e,t){n=e,r=t}),reject:r,fulfill:n}},encodeString:r,deprecated:function(n){return function(){var e,t;"undefined"!=typeof process&&"test"!==(null===(e=process)||void 0===e?void 0:null===(t=e.env)||void 0===t?void 0:"production")&&console.warn("The Objects v1 API has been deprecated.\nYou can learn more about Objects v2 API at https://www.pubnub.com/docs/web-javascript/api-reference-objects.\nIf you have questions about the Objects v2 API or require additional help with migrating to the new data model, please contact PubNub Support at support@pubnub.com.");return n.apply(void 0,arguments)}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(5))&&r.__esModule?r:{default:r};n(1);function o(e,t){for(var n=0;n>10,n=1023&e,r=32768&e;if(31==t)return 0==n?r?-1/0:1/0:NaN;var i=t?Math.pow(2,t-25)*(1024+n):Math.pow(2,-24)*n;return r?-i:i},readFloat32:function(){var e=this.readUint32(),t=(2147483647&e)>>23,n=8388607&e,r=2147483648&e;if(255==t)return 0==n?r?-1/0:1/0:NaN;var i=t?Math.pow(2,t-23-127)*(8388608+n):Math.pow(2,-149)*n;return r?-i:i},readFloat64:function(){var e=this.readUint32(),t=this.readUint32(),n=e>>20&2047,r=4294967296*(1048575&e)+t,i=2147483648&e;if(2047==n)return 0===r?i?-1/0:1/0:NaN;var o=n?Math.pow(2,n-52-1023)*(4503599627370496+r):Math.pow(2,-1074)*r;return i?-o:o},readUint16:function(){return 256*this.readByte()+this.readByte()},readUint32:function(){return 65536*this.readUint16()+this.readUint16()},readUint64:function(){return 4294967296*this.readUint32()+this.readUint32()}},t.prototype={writeByte:r("writeByte"),result:r("result"),writeFloat16:r("writeFloat16"),writeFloat32:r("writeFloat32"),writeFloat64:r("writeFloat64"),writeUint16:function(e){this.writeByte(e>>8&255),this.writeByte(255&e)},writeUint32:function(e){this.writeUint16(e>>16&65535),this.writeUint16(65535&e)},writeUint64:function(e){if(9007199254740992<=e||e<=-9007199254740992)throw new Error("Cannot encode Uint64 of: "+e+" magnitude to big (floating point errors)");this.writeUint32(Math.floor(e/4294967296)),this.writeUint32(e%4294967296)},writeString:r("writeString"),canWriteBinary:function(e){return!1},writeBinary:r("writeChunk")};var d=new Error;function p(e){var t=function(e){var t=e.readByte();return{type:t>>5,value:31&t}}(e);switch(t.type){case 0:return f(t,e);case 1:return-1-f(t,e);case 2:return e.readChunk(f(t,e));case 3:var n=e.readChunk(f(t,e));return n.toString("utf-8");case 4:case 5:var r=f(t,e),i=[];if(null!==r){5===t.type&&(r*=2);for(var o=0;o=this.latestBuffer.length&&(this.completeBuffers.push(this.latestBuffer),this.latestBuffer=Buffer.alloc(this.defaultBufferLength),this.latestBufferOffset=0),this.byteLength++},n.prototype.writeFloat32=function(e){var t=Buffer.alloc(4);t.writeFloatBE(e,0),this.writeBuffer(t)},n.prototype.writeFloat64=function(e){var t=Buffer.alloc(8);t.writeDoubleBE(e,0),this.writeBuffer(t)},n.prototype.writeString=function(e,t){var n=Buffer.from(e,"utf-8");t(n.length),this.writeBuffer(n)},n.prototype.canWriteBinary=function(e){return e instanceof Buffer},n.prototype.writeBinary=function(e,t){t(e.length),this.writeBuffer(e)},n.prototype.writeBuffer=function(e){if(!(e instanceof Buffer))throw new TypeError("BufferWriter only accepts Buffers");this.latestBufferOffset?this.latestBuffer.length-this.latestBufferOffset>=e.length?(e.copy(this.latestBuffer,this.latestBufferOffset),this.latestBufferOffset+=e.length,this.latestBufferOffset>=this.latestBuffer.length&&(this.completeBuffers.push(this.latestBuffer),this.latestBuffer=Buffer.alloc(this.defaultBufferLength),this.latestBufferOffset=0)):(this.completeBuffers.push(this.latestBuffer.slice(0,this.latestBufferOffset)),this.completeBuffers.push(e),this.latestBuffer=Buffer.alloc(this.defaultBufferLength),this.latestBufferOffset=0):this.completeBuffers.push(e),this.byteLength+=e.length},n.prototype.result=function(){for(var e=Buffer.alloc(this.byteLength),t=0,n=0;n>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new u.init(n,t/2)}},a=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new u.init(n,t)}},c=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(a.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return a.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new u.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,o=r/(4*i);if(e=(o=e?s.ceil(o):s.max((0|o)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var a=0;a>>7)^(d<<14|d>>>18)^d>>>3)+g[f-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+g[f-16]}d=l+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&u^~s&c)+h[f]+g[f],p=((r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22))+(r&i^r&o^i&o),l=c,c=u,u=s,s=a+d|0,a=o,o=i,i=r,r=d+p|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+a|0,n[4]=n[4]+s|0,n[5]=n[5]+u|0,n[6]=n[6]+c|0,n[7]=n[7]+l|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=i.floor(n/4294967296),t[15+(64+r>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA256=n._createHelper(r),e.HmacSHA256=n._createHmacHelper(r)}(Math),c=(r=j).enc.Utf8,r.algo.HMAC=r.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=c.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),a=i.words,s=o.words,u=0;u>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,a=0;a<4&&i+.75*a>>6*(3-a)&63));if(t=r.charAt(64))for(;e.length%4;)e.push(t);return e.join("")},parse:function(e){var t=e.length,n=this._map;!(r=n.charAt(64))||-1!=(r=e.indexOf(r))&&(t=r);for(var r=[],i=0,o=0;o>>6-o%4*2;r[i>>>2]|=(a|s)<<24-i%4*8,i++}return u.create(r,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(o){function O(e,t,n,r,i,o,a){return((e=e+(t&n|~t&r)+i+a)<>>32-o)+t}function M(e,t,n,r,i,o,a){return((e=e+(t&r|n&~r)+i+a)<>>32-o)+t}function S(e,t,n,r,i,o,a){return((e=e+(t^n^r)+i+a)<>>32-o)+t}function T(e,t,n,r,i,o,a){return((e=e+(n^(t|~r))+i+a)<>>32-o)+t}for(var e=j,t=(r=e.lib).WordArray,n=r.Hasher,r=e.algo,w=[],i=0;i<64;i++)w[i]=4294967296*o.abs(o.sin(i+1))|0;r=r.MD5=n.extend({_doReset:function(){this._hash=new t.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=e[a=t+n];e[a]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}n=this._hash.words;var i,o,a=e[t+0],s=(r=e[t+1],e[t+2]),u=e[t+3],c=e[t+4],l=e[t+5],f=e[t+6],d=e[t+7],p=e[t+8],h=e[t+9],g=e[t+10],v=e[t+11],b=e[t+12],y=e[t+13],m=e[t+14],_=e[t+15],k=n[0],P=T(P=T(P=T(P=T(P=S(P=S(P=S(P=S(P=M(P=M(P=M(P=M(P=O(P=O(P=O(P=O(P=n[1],o=O(o=n[2],i=O(i=n[3],k=O(k,P,o,i,a,7,w[0]),P,o,r,12,w[1]),k,P,s,17,w[2]),i,k,u,22,w[3]),o=O(o,i=O(i,k=O(k,P,o,i,c,7,w[4]),P,o,l,12,w[5]),k,P,f,17,w[6]),i,k,d,22,w[7]),o=O(o,i=O(i,k=O(k,P,o,i,p,7,w[8]),P,o,h,12,w[9]),k,P,g,17,w[10]),i,k,v,22,w[11]),o=O(o,i=O(i,k=O(k,P,o,i,b,7,w[12]),P,o,y,12,w[13]),k,P,m,17,w[14]),i,k,_,22,w[15]),o=M(o,i=M(i,k=M(k,P,o,i,r,5,w[16]),P,o,f,9,w[17]),k,P,v,14,w[18]),i,k,a,20,w[19]),o=M(o,i=M(i,k=M(k,P,o,i,l,5,w[20]),P,o,g,9,w[21]),k,P,_,14,w[22]),i,k,c,20,w[23]),o=M(o,i=M(i,k=M(k,P,o,i,h,5,w[24]),P,o,m,9,w[25]),k,P,u,14,w[26]),i,k,p,20,w[27]),o=M(o,i=M(i,k=M(k,P,o,i,y,5,w[28]),P,o,s,9,w[29]),k,P,d,14,w[30]),i,k,b,20,w[31]),o=S(o,i=S(i,k=S(k,P,o,i,l,4,w[32]),P,o,p,11,w[33]),k,P,v,16,w[34]),i,k,m,23,w[35]),o=S(o,i=S(i,k=S(k,P,o,i,r,4,w[36]),P,o,c,11,w[37]),k,P,d,16,w[38]),i,k,g,23,w[39]),o=S(o,i=S(i,k=S(k,P,o,i,y,4,w[40]),P,o,a,11,w[41]),k,P,u,16,w[42]),i,k,f,23,w[43]),o=S(o,i=S(i,k=S(k,P,o,i,h,4,w[44]),P,o,b,11,w[45]),k,P,_,16,w[46]),i,k,s,23,w[47]),o=T(o,i=T(i,k=T(k,P,o,i,a,6,w[48]),P,o,d,10,w[49]),k,P,m,15,w[50]),i,k,l,21,w[51]),o=T(o,i=T(i,k=T(k,P,o,i,b,6,w[52]),P,o,u,10,w[53]),k,P,g,15,w[54]),i,k,r,21,w[55]),o=T(o,i=T(i,k=T(k,P,o,i,p,6,w[56]),P,o,_,10,w[57]),k,P,f,15,w[58]),i,k,y,21,w[59]),o=T(o,i=T(i,k=T(k,P,o,i,c,6,w[60]),P,o,v,10,w[61]),k,P,s,15,w[62]),i,k,h,21,w[63]);n[0]=n[0]+k|0,n[1]=n[1]+P|0,n[2]=n[2]+o|0,n[3]=n[3]+i|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32;var i=o.floor(n/4294967296);for(t[15+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process(),t=(e=this._hash).words,n=0;n<4;n++)r=t[n],t[n]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8);return e},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),e.MD5=n._createHelper(r),e.HmacMD5=n._createHmacHelper(r)}(Math),s=(o=(a=j).lib).Base,l=o.WordArray,f=(o=a.algo).EvpKDF=s.extend({cfg:s.extend({keySize:4,hasher:o.MD5,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=(a=this.cfg).hasher.create(),r=l.create(),i=r.words,o=a.keySize,a=a.iterations;i.length>>2]}},e.BlockCipher=o.extend({cfg:o.cfg.extend({mode:u,padding:c}),reset:function(){o.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=t.createEncryptor;else n=t.createDecryptor,this._minBufferSize=1;this._mode=n.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var l=e.CipherParams=t.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),f=(u=(d.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?a.create([1398893684,1701076831]).concat(e).concat(t):t).toString(r)},parse:function(e){var t=(e=r.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var n=a.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return l.create({ciphertext:e,salt:n})}},e.SerializableCipher=t.extend({cfg:t.extend({format:u}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r);return t=i.finalize(t),i=i.cfg,l.create({ciphertext:t,key:n,iv:i.iv,algorithm:e,mode:i.mode,padding:i.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),d=(d.kdf={}).OpenSSL={execute:function(e,t,n,r){return r=r||a.random(8),e=i.create({keySize:t+n}).compute(e,r),n=a.create(e.words.slice(t),4*n),e.sigBytes=4*t,l.create({key:e,iv:n,salt:r})}},p=e.PasswordBasedCipher=f.extend({cfg:f.cfg.extend({kdf:d}),encrypt:function(e,t,n,r){return n=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize),r.iv=n.iv,(e=f.encrypt.call(this,e,t,n.key,r)).mixIn(n),e},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),n=r.kdf.execute(n,e.keySize,e.ivSize,t.salt),r.iv=n.iv,f.decrypt.call(this,e,t,n.key,r)}})}(),function(){for(var e=j,t=e.lib.BlockCipher,n=e.algo,a=[],r=[],i=[],o=[],s=[],u=[],c=[],l=[],f=[],d=[],p=[],h=0;h<256;h++)p[h]=h<128?h<<1:h<<1^283;var g=0,v=0;for(h=0;h<256;h++){var b=(b=v^v<<1^v<<2^v<<3^v<<4)>>>8^255&b^99;a[g]=b;var y=p[r[b]=g],m=p[y],_=p[m],k=257*p[b]^16843008*b;i[g]=k<<24|k>>>8,o[g]=k<<16|k>>>16,s[g]=k<<8|k>>>24,u[g]=k,k=16843009*_^65537*m^257*y^16843008*g,c[b]=k<<24|k>>>8,l[b]=k<<16|k>>>16,f[b]=k<<8|k>>>24,d[b]=k,g?(g=y^p[p[p[_^y]]],v^=p[p[v]]):g=v=1}var P=[0,1,2,4,8,16,32,64,128,27,54];n=n.AES=t.extend({_doReset:function(){for(var e=(n=this._key).words,t=n.sigBytes/4,n=4*((this._nRounds=t+6)+1),r=this._keySchedule=[],i=0;i>>24]<<24|a[o>>>16&255]<<16|a[o>>>8&255]<<8|a[255&o]):(o=a[(o=o<<8|o>>>24)>>>24]<<24|a[o>>>16&255]<<16|a[o>>>8&255]<<8|a[255&o],o^=P[i/t|0]<<24),r[i]=r[i-t]^o}for(e=this._invKeySchedule=[],t=0;t>>24]]^l[a[o>>>16&255]]^f[a[o>>>8&255]]^d[a[255&o]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,i,o,s,u,a)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,c,l,f,d,r),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,o,a,s){for(var u=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],f=e[t+2]^n[2],d=e[t+3]^n[3],p=4,h=1;h>>24]^i[l>>>16&255]^o[f>>>8&255]^a[255&d]^n[p++],v=r[l>>>24]^i[f>>>16&255]^o[d>>>8&255]^a[255&c]^n[p++],b=r[f>>>24]^i[d>>>16&255]^o[c>>>8&255]^a[255&l]^n[p++];d=r[d>>>24]^i[c>>>16&255]^o[l>>>8&255]^a[255&f]^n[p++],c=g,l=v,f=b}g=(s[c>>>24]<<24|s[l>>>16&255]<<16|s[f>>>8&255]<<8|s[255&d])^n[p++],v=(s[l>>>24]<<24|s[f>>>16&255]<<16|s[d>>>8&255]<<8|s[255&c])^n[p++],b=(s[f>>>24]<<24|s[d>>>16&255]<<16|s[c>>>8&255]<<8|s[255&l])^n[p++],d=(s[d>>>24]<<24|s[c>>>16&255]<<16|s[l>>>8&255]<<8|s[255&f])^n[p++],e[t]=g,e[t+1]=v,e[t+2]=b,e[t+3]=d},keySize:8});e.AES=t._createHelper(n)}(),j.mode.ECB=((d=j.lib.BlockCipherMode.extend()).Encryptor=d.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),d.Decryptor=d.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),d),e.exports=j},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;r(n(6)),r(n(3)),r(n(7));var c=r(n(15)),l=r(n(16)),f=r(n(2)),s=(n(1),r(n(4)));function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){for(var n=0;n=o){var a={};a.category=s.default.PNRequestMessageCountExceededCategory,a.operation=t.operation,this._listenerManager.announceStatus(a)}r.forEach(function(e){var t=e.channel,n=e.subscriptionMatch,r=e.publishMetaData;if(t===n&&(n=null),l){if(c._dedupingManager.isDuplicate(e))return;c._dedupingManager.addEntry(e)}if(f.default.endsWith(e.channel,"-pnpres")){var i={channel:null,subscription:null};i.actualChannel=null!=n?t:null,i.subscribedChannel=null!=n?n:t,t&&(i.channel=t.substring(0,t.lastIndexOf("-pnpres"))),n&&(i.subscription=n.substring(0,n.lastIndexOf("-pnpres"))),i.action=e.payload.action,i.state=e.payload.data,i.timetoken=r.publishTimetoken,i.occupancy=e.payload.occupancy,i.uuid=e.payload.uuid,i.timestamp=e.payload.timestamp,e.payload.join&&(i.join=e.payload.join),e.payload.leave&&(i.leave=e.payload.leave),e.payload.timeout&&(i.timeout=e.payload.timeout),c._listenerManager.announcePresence(i)}else if(1===e.messageType){var o={channel:null,subscription:null};o.channel=t,o.subscription=n,o.timetoken=r.publishTimetoken,o.publisher=e.issuingClientId,e.userMetadata&&(o.userMetadata=e.userMetadata),o.message=e.payload,c._listenerManager.announceSignal(o)}else if(2===e.messageType){var a={channel:null,subscription:null};a.channel=t,a.subscription=n,a.timetoken=r.publishTimetoken,a.publisher=e.issuingClientId,e.userMetadata&&(a.userMetadata=e.userMetadata),a.message={event:e.payload.event,type:e.payload.type,data:e.payload.data},c._listenerManager.announceObjects(a),"user"===e.payload.type?c._listenerManager.announceUser(a):"space"===e.payload.type?c._listenerManager.announceSpace(a):"membership"===e.payload.type&&c._listenerManager.announceMembership(a)}else if(3===e.messageType){var s={};s.channel=t,s.subscription=n,s.timetoken=r.publishTimetoken,s.publisher=e.issuingClientId,s.data={messageTimetoken:e.payload.data.messageTimetoken,actionTimetoken:e.payload.data.actionTimetoken,type:e.payload.data.type,uuid:e.issuingClientId,value:e.payload.data.value},s.event=e.payload.event,c._listenerManager.announceMessageAction(s)}else{var u={channel:null,subscription:null};u.actualChannel=null!=n?t:null,u.subscribedChannel=null!=n?n:t,u.channel=t,u.subscription=n,u.timetoken=r.publishTimetoken,u.publisher=e.issuingClientId,e.userMetadata&&(u.userMetadata=e.userMetadata),c._config.cipherKey?u.message=c._crypto.decrypt(e.payload):u.message=e.payload,c._listenerManager.announceMessage(u)}}),this._region=e.metadata.region,this._startSubscribeLoop()}}},{key:"_stopSubscribeLoop",value:function(){this._subscribeCall&&("function"==typeof this._subscribeCall.abort&&this._subscribeCall.abort(),this._subscribeCall=null)}}])&&i(o.prototype,a),void(u&&i(o,u)),h);function h(e){var t=e.subscribeEndpoint,n=e.leaveEndpoint,r=e.heartbeatEndpoint,i=e.setStateEndpoint,o=e.timeEndpoint,a=e.config,s=e.crypto,u=e.listenerManager;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,h),d(this,"_crypto",void 0),d(this,"_config",void 0),d(this,"_listenerManager",void 0),d(this,"_reconnectionManager",void 0),d(this,"_leaveEndpoint",void 0),d(this,"_heartbeatEndpoint",void 0),d(this,"_setStateEndpoint",void 0),d(this,"_subscribeEndpoint",void 0),d(this,"_channels",void 0),d(this,"_presenceChannels",void 0),d(this,"_heartbeatChannels",void 0),d(this,"_heartbeatChannelGroups",void 0),d(this,"_channelGroups",void 0),d(this,"_presenceChannelGroups",void 0),d(this,"_currentTimetoken",void 0),d(this,"_lastTimetoken",void 0),d(this,"_storedTimetoken",void 0),d(this,"_region",void 0),d(this,"_subscribeCall",void 0),d(this,"_heartbeatTimer",void 0),d(this,"_subscriptionStatusAnnounced",void 0),d(this,"_autoNetworkDetection",void 0),d(this,"_isOnline",void 0),d(this,"_pendingChannelSubscriptions",void 0),d(this,"_pendingChannelGroupSubscriptions",void 0),d(this,"_dedupingManager",void 0),this._listenerManager=u,this._config=a,this._leaveEndpoint=n,this._heartbeatEndpoint=r,this._setStateEndpoint=i,this._subscribeEndpoint=t,this._crypto=s,this._channels={},this._presenceChannels={},this._heartbeatChannels={},this._heartbeatChannelGroups={},this._channelGroups={},this._presenceChannelGroups={},this._pendingChannelSubscriptions=[],this._pendingChannelGroupSubscriptions=[],this._currentTimetoken=0,this._lastTimetoken=0,this._storedTimetoken=null,this._subscriptionStatusAnnounced=!1,this._isOnline=!0,this._reconnectionManager=new c.default({timeEndpoint:o}),this._dedupingManager=new l.default({config:a})}t.default=p,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r;(r=n(8))&&r.__esModule,n(1);function i(e,t){for(var n=0;n=this._config.maximumCacheSize&&this.hashHistory.shift(),this.hashHistory.push(this.getKey(e))}},{key:"clearHistory",value:function(){this.hashHistory=[]}}])&&i(a.prototype,s),void(u&&i(a,u)),l);function l(e){var t=e.config;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),o(this,"_config",void 0),o(this,"hashHistory",void 0),this.hashHistory=[],this._config=t}t.default=c,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,o=(r=n(0))&&r.__esModule?r:{default:r};function i(e,t){for(var n=0;nthis._maximumSamplesCount&&r.splice(0,r.length-this._maximumSamplesCount),delete this._trackedLatencies[t]}}},{key:"_averageLatency",value:function(e){return Math.floor(e.reduce(function(e,t){return e+t},0)/e.length)}},{key:"_endpointName",value:function(e){var t=null;switch(e){case o.default.PNPublishOperation:t="pub";break;case o.default.PNSignalOperation:t="sig";break;case o.default.PNHistoryOperation:case o.default.PNFetchMessagesOperation:case o.default.PNDeleteMessagesOperation:case o.default.PNMessageCounts:t="hist";break;case o.default.PNUnsubscribeOperation:case o.default.PNWhereNowOperation:case o.default.PNHereNowOperation:case o.default.PNHeartbeatOperation:case o.default.PNSetStateOperation:case o.default.PNGetStateOperation:t="pres";break;case o.default.PNAddChannelsToGroupOperation:case o.default.PNRemoveChannelsFromGroupOperation:case o.default.PNChannelGroupsOperation:case o.default.PNRemoveGroupOperation:case o.default.PNChannelsForGroupOperation:t="cg";break;case o.default.PNPushNotificationEnabledChannelsOperation:case o.default.PNRemoveAllPushNotificationsOperation:t="push";break;case o.default.PNCreateUserOperation:case o.default.PNUpdateUserOperation:case o.default.PNDeleteUserOperation:case o.default.PNGetUserOperation:case o.default.PNGetUsersOperation:case o.default.PNCreateSpaceOperation:case o.default.PNUpdateSpaceOperation:case o.default.PNDeleteSpaceOperation:case o.default.PNGetSpaceOperation:case o.default.PNGetSpacesOperation:case o.default.PNGetMembersOperation:case o.default.PNUpdateMembersOperation:case o.default.PNGetMembershipsOperation:case o.default.PNUpdateMembershipsOperation:t="obj";break;case o.default.PNAddMessageActionOperation:case o.default.PNRemoveMessageActionOperation:case o.default.PNGetMessageActionsOperation:t="msga";break;case o.default.PNAccessManagerGrant:case o.default.PNAccessManagerAudit:t="pam";break;case o.default.PNAccessManagerGrantToken:t="pam3";break;default:t="time"}return t}}])&&i(s.prototype,u),void(c&&i(s,c)),f);function f(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),a(this,"_maximumSamplesCount",100),a(this,"_trackedLatencies",{}),a(this,"_latencies",{}),this._maximumSamplesCount=e.maximumSamplesCount||this._maximumSamplesCount}t.default=l,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.FCMNotificationPayload=t.MPNSNotificationPayload=t.APNSNotificationPayload=void 0;n(1);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=this._maxSubDomain&&(this._currentSubDomain=1),e=this._currentSubDomain.toString(),this._providedFQDN.replace("ps.pndsn.com","ps".concat(e,".pndsn.com"))):this._providedFQDN;var e}},{key:"hasModule",value:function(e){return e in this._modules}},{key:"shiftStandardOrigin",value:function(){return this._standardOrigin=this.nextOrigin(),this._standardOrigin}},{key:"getStandardOrigin",value:function(){return this._standardOrigin}},{key:"POST",value:function(e,t,n,r){return this._modules.post(e,t,n,r)}},{key:"PATCH",value:function(e,t,n,r){return this._modules.patch(e,t,n,r)}},{key:"GET",value:function(e,t,n){return this._modules.get(e,t,n)}},{key:"DELETE",value:function(e,t,n){return this._modules.del(e,t,n)}},{key:"_detectErrorCategory",value:function(e){if("ENOTFOUND"===e.code)return r.default.PNNetworkIssuesCategory;if("ECONNREFUSED"===e.code)return r.default.PNNetworkIssuesCategory;if("ECONNRESET"===e.code)return r.default.PNNetworkIssuesCategory;if("EAI_AGAIN"===e.code)return r.default.PNNetworkIssuesCategory;if(0===e.status||e.hasOwnProperty("status")&&void 0===e.status)return r.default.PNNetworkIssuesCategory;if(e.timeout)return r.default.PNTimeoutCategory;if("ETIMEDOUT"===e.code)return r.default.PNNetworkIssuesCategory;if(e.response){if(e.response.badRequest)return r.default.PNBadRequestCategory;if(e.response.forbidden)return r.default.PNAccessDeniedCategory}return r.default.PNUnknownCategory}}])&&o(s.prototype,u),void(c&&o(s,c)),f);function f(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),a(this,"_modules",void 0),a(this,"_config",void 0),a(this,"_maxSubDomain",void 0),a(this,"_currentSubDomain",void 0),a(this,"_standardOrigin",void 0),a(this,"_subscribeOrigin",void 0),a(this,"_providedFQDN",void 0),a(this,"_requestTimeout",void 0),a(this,"_coreParams",void 0),this._modules={},Object.keys(t).forEach(function(e){n._modules[e]=t[e].bind(n)})}t.default=l,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){for(var n=0;n>>>>>"),o.log("[".concat(s," / ").concat(a,"]"),"\n",e,"\n",t,"\n",n),o.log("-----")}(n,r,t.responseText),a(u,e)},t.onerror=function(e){return u.error=!0,u.errorData=e.error,u.category=s._detectErrorCategory(e.error),a(u,null)},t.timeout="android"===Ti.Platform.osname?2147483647:1/0,t.send(i)}},function(e,t,n){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(t,n,r){null!=r?Array.isArray(r)?r.forEach(function(e){o(t,n,e)}):"object"===i(r)?Object.keys(r).forEach(function(e){o(t,"".concat(n,"[").concat(e,"]"),r[e])}):t.push("".concat(encodeURIComponent(n),"=").concat(encodeURIComponent(r))):null===r&&t.push(encodeURIComponent("".concat(encodeURIComponent(n))))}Object.defineProperty(t,"__esModule",{value:!0}),t.encodedKeyValuePair=o,t.buildUrl=function(e,t){var n=[];return Object.keys(t).forEach(function(e){o(n,e,t[e])}),"".concat(e,"?").concat(n.join("&"))}}]),module.exports=exports.PubNub; \ No newline at end of file +/*! 4.29.0 / Consumer */ +exports.PubNub=function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=23)}([function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={PNTimeOperation:"PNTimeOperation",PNHistoryOperation:"PNHistoryOperation",PNDeleteMessagesOperation:"PNDeleteMessagesOperation",PNFetchMessagesOperation:"PNFetchMessagesOperation",PNMessageCounts:"PNMessageCountsOperation",PNSubscribeOperation:"PNSubscribeOperation",PNUnsubscribeOperation:"PNUnsubscribeOperation",PNPublishOperation:"PNPublishOperation",PNSignalOperation:"PNSignalOperation",PNAddMessageActionOperation:"PNAddActionOperation",PNRemoveMessageActionOperation:"PNRemoveMessageActionOperation",PNGetMessageActionsOperation:"PNGetMessageActionsOperation",PNCreateUserOperation:"PNCreateUserOperation",PNUpdateUserOperation:"PNUpdateUserOperation",PNDeleteUserOperation:"PNDeleteUserOperation",PNGetUserOperation:"PNGetUsersOperation",PNGetUsersOperation:"PNGetUsersOperation",PNCreateSpaceOperation:"PNCreateSpaceOperation",PNUpdateSpaceOperation:"PNUpdateSpaceOperation",PNDeleteSpaceOperation:"PNDeleteSpaceOperation",PNGetSpaceOperation:"PNGetSpacesOperation",PNGetSpacesOperation:"PNGetSpacesOperation",PNGetMembersOperation:"PNGetMembersOperation",PNUpdateMembersOperation:"PNUpdateMembersOperation",PNGetMembershipsOperation:"PNGetMembershipsOperation",PNUpdateMembershipsOperation:"PNUpdateMembershipsOperation",PNListFilesOperation:"PNListFilesOperation",PNGenerateUploadUrlOperation:"PNGenerateUploadUrlOperation",PNPublishFileOperation:"PNPublishFileOperation",PNGetFileUrlOperation:"PNGetFileUrlOperation",PNDownloadFileOperation:"PNDownloadFileOperation",PNGetAllUUIDMetadataOperation:"PNGetAllUUIDMetadataOperation",PNGetUUIDMetadataOperation:"PNGetUUIDMetadataOperation",PNSetUUIDMetadataOperation:"PNSetUUIDMetadataOperation",PNRemoveUUIDMetadataOperation:"PNRemoveUUIDMetadataOperation",PNGetAllChannelMetadataOperation:"PNGetAllChannelMetadataOperation",PNGetChannelMetadataOperation:"PNGetChannelMetadataOperation",PNSetChannelMetadataOperation:"PNSetChannelMetadataOperation",PNRemoveChannelMetadataOperation:"PNRemoveChannelMetadataOperation",PNSetMembersOperation:"PNSetMembersOperation",PNSetMembershipsOperation:"PNSetMembershipsOperation",PNPushNotificationEnabledChannelsOperation:"PNPushNotificationEnabledChannelsOperation",PNRemoveAllPushNotificationsOperation:"PNRemoveAllPushNotificationsOperation",PNWhereNowOperation:"PNWhereNowOperation",PNSetStateOperation:"PNSetStateOperation",PNHereNowOperation:"PNHereNowOperation",PNGetStateOperation:"PNGetStateOperation",PNHeartbeatOperation:"PNHeartbeatOperation",PNChannelGroupsOperation:"PNChannelGroupsOperation",PNRemoveGroupOperation:"PNRemoveGroupOperation",PNChannelsForGroupOperation:"PNChannelsForGroupOperation",PNAddChannelsToGroupOperation:"PNAddChannelsToGroupOperation",PNRemoveChannelsFromGroupOperation:"PNRemoveChannelsFromGroupOperation",PNAccessManagerGrant:"PNAccessManagerGrant",PNAccessManagerGrantToken:"PNAccessManagerGrantToken",PNAccessManagerAudit:"PNAccessManagerAudit"},e.exports=t.default},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";function r(e){return encodeURIComponent(e).replace(/[!~*'()]/g,(function(e){return"%".concat(e.charCodeAt(0).toString(16).toUpperCase())}))}function i(e){return function(e){var t=[];return Object.keys(e).forEach((function(e){return t.push(e)})),t}(e).sort()}var a="The Objects v1 API has been deprecated.\nYou can learn more about Objects v2 API at https://www.pubnub.com/docs/web-javascript/api-reference-objects.\nIf you have questions about the Objects v2 API or require additional help with migrating to the new data model, please contact PubNub Support at support@pubnub.com.";e.exports={signPamFromParams:function(e){return i(e).map((function(t){return"".concat(t,"=").concat(r(e[t]))})).join("&")},endsWith:function(e,t){return-1!==e.indexOf(t,this.length-t.length)},createPromise:function(){var e,t;return{promise:new Promise((function(n,r){e=n,t=r})),reject:t,fulfill:e}},encodeString:r,deprecated:function(e){return function(){var t,n;"undefined"!=typeof process&&("test"!==(null===(t=process)||void 0===t||null===(n=t.env)||void 0===n?void 0:"production")&&console.warn(a));return e.apply(void 0,arguments)}}}},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function n(e,t){for(var n=0;n=20?this._presenceTimeout=e:(this._presenceTimeout=20,console.log("WARNING: Presence timeout is less than the minimum. Using minimum value: ",this._presenceTimeout)),this.setHeartbeatInterval(this._presenceTimeout/2-1),this}},{key:"setProxy",value:function(e){this.proxy=e}},{key:"getHeartbeatInterval",value:function(){return this._heartbeatInterval}},{key:"setHeartbeatInterval",value:function(e){return this._heartbeatInterval=e,this}},{key:"getSubscribeTimeout",value:function(){return this._subscribeRequestTimeout}},{key:"setSubscribeTimeout",value:function(e){return this._subscribeRequestTimeout=e,this}},{key:"getTransactionTimeout",value:function(){return this._transactionalRequestTimeout}},{key:"setTransactionTimeout",value:function(e){return this._transactionalRequestTimeout=e,this}},{key:"isSendBeaconEnabled",value:function(){return this._useSendBeacon}},{key:"setSendBeaconConfig",value:function(e){return this._useSendBeacon=e,this}},{key:"getVersion",value:function(){return"4.29.0"}},{key:"_addPnsdkSuffix",value:function(e,t){this._PNSDKSuffix[e]=t}},{key:"_getPnsdkSuffix",value:function(e){var t=this;return Object.keys(this._PNSDKSuffix).reduce((function(n,r){return n+e+t._PNSDKSuffix[r]}),"")}},{key:"_decideUUID",value:function(e){return e||(this._db&&this._db.get&&this._db.get("".concat(this.subscribeKey,"uuid"))?this._db.get("".concat(this.subscribeKey,"uuid")):"pn-".concat(s.default.createUUID()))}}]),e}());t.default=u,e.exports=t.default},function(e,t,n){var r=n(70),i=n(71),a=n(72),o=n(74);e.exports=function(e,t){return r(e)||i(e,t)||a(e,t)||o()}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={PNNetworkUpCategory:"PNNetworkUpCategory",PNNetworkDownCategory:"PNNetworkDownCategory",PNNetworkIssuesCategory:"PNNetworkIssuesCategory",PNTimeoutCategory:"PNTimeoutCategory",PNBadRequestCategory:"PNBadRequestCategory",PNAccessDeniedCategory:"PNAccessDeniedCategory",PNUnknownCategory:"PNUnknownCategory",PNReconnectedCategory:"PNReconnectedCategory",PNConnectedCategory:"PNConnectedCategory",PNRequestMessageCountExceededCategory:"PNRequestMessageCountExceededCategory"},e.exports=t.default},function(e,t,n){var r=n(7),i=n(17);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?i(e):t}},function(e,t,n){var r=n(14);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(27)),a={createUUID:function(){return i.default.uuid?i.default.uuid():(0,i.default)()}};t.default=a,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.createValidationError=g,t.default=function(e,t){var n=e.networking,r=e.config,i=e.telemetryManager,a=l.default.createUUID(),o=null,s=null,u={};t.getOperation()===d.default.PNTimeOperation||t.getOperation()===d.default.PNChannelGroupsOperation?o=arguments.length<=2?void 0:arguments[2]:(u=arguments.length<=2?void 0:arguments[2],o=arguments.length<=3?void 0:arguments[3]);"undefined"==typeof Promise||o||(s=f.default.createPromise());var c=t.validateParams(e,u);if(c)return o?o(g(c)):s?(s.reject(new v("Validation failed, check status for details",g(c))),s.promise):void 0;var p,P=t.prepareParams(e,u),O=y(t,e,u),T={url:O,operation:t.getOperation(),timeout:t.getRequestTimeout(e),headers:t.getRequestHeaders?t.getRequestHeaders():{},ignoreBody:"function"==typeof t.ignoreBody&&t.ignoreBody(e),forceBuffered:"function"==typeof t.forceBuffered?t.forceBuffered(e,u):null};P.uuid=r.UUID,P.pnsdk=m(r);var S=i.operationsLatencyForRequest();Object.keys(S).length&&(P=h({},P,{},S));r.useInstanceId&&(P.instanceid=r.instanceId);r.useRequestId&&(P.requestid=a);if(t.isAuthSupported()){var M=b(t,e,u),N=M||r.getAuthKey();N&&(P.auth=N)}r.secretKey&&k(e,O,P,u,t);var w=function(n,r){if(n.error)o?o(n):s&&s.reject(new v("PubNub call failed, check status for details",n));else{i.stopLatencyMeasure(t.getOperation(),a);var c=t.handleResponse(e,r,u);"function"!=typeof c.then&&(c=Promise.resolve(c)),c.then((function(e){o?o(n,e):s&&s.fulfill(e)})).catch((function(e){o?o(e,null):s&&s.reject(new v("PubNub call failed, check status for details",e))}))}};if(i.startLatencyMeasure(t.getOperation(),a),"POST"===_(e,t,u)){var j=t.postPayload(e,u);p=n.POST(P,j,T,w)}else if("PATCH"===_(e,t,u)){var U=t.patchPayload(e,u);p=n.PATCH(P,U,T,w)}else p="DELETE"===_(e,t,u)?n.DELETE(P,T,w):n.GET(P,T,w);if(t.getOperation()===d.default.PNSubscribeOperation)return p;if(s)return s.promise},t.PubNubError=void 0;var i=r(n(4)),a=r(n(5)),o=r(n(12)),s=r(n(10)),u=r(n(13)),c=r(n(37)),l=r(n(15)),f=(n(2),r(n(3))),d=(r(n(8)),r(n(1)));function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t0&&(t+=n),t}function _(e,t,n){return t.usePost&&t.usePost(e,n)?"POST":t.usePatch&&t.usePatch(e,n)?"PATCH":t.useDelete&&t.useDelete(e,n)?"DELETE":"GET"}function k(e,t,n,r,i){var a=e.config,o=e.crypto,s=_(e,i,r);n.timestamp=Math.floor((new Date).getTime()/1e3);var u="".concat(s,"\n").concat(a.publishKey,"\n").concat(t,"\n").concat(f.default.signPamFromParams(n),"\n");if("POST"===s){var c=i.postPayload(e,r);u+="string"==typeof c?c:JSON.stringify(c)}else if("PATCH"===s){var l=i.patchPayload(e,r);u+="string"==typeof l?l:JSON.stringify(l)}var d="v2.".concat(o.HMACSHA256(u));d=(d=(d=d.replace(/\+/g,"-")).replace(/\//g,"_")).replace(/=+$/,""),n.signature=d}t.PubNubError=v},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(5)),a=r(n(6)),o=r(n(4)),s=(r(n(8)),r(n(28)));function u(e){var t,n=[];for(t=0;t>10,n=1023&e,r=32768&e;if(31===t)return 0===n?r?-1/0:1/0:NaN;var i=t?Math.pow(2,t-25)*(1024+n):Math.pow(2,-24)*n;return r?-i:i},readFloat32:function(){var e=this.readUint32(),t=(2147483647&e)>>23,n=8388607&e,r=2147483648&e;if(255===t)return 0===n?r?-1/0:1/0:NaN;var i=t?Math.pow(2,t-23-127)*(8388608+n):Math.pow(2,-149)*n;return r?-i:i},readFloat64:function(){var e=this.readUint32(),t=e>>20&2047,n=4294967296*(1048575&e)+this.readUint32(),r=2147483648&e;if(2047===t)return 0===n?r?-1/0:1/0:NaN;var i=t?Math.pow(2,t-52-1023)*(4503599627370496+n):Math.pow(2,-1074)*n;return r?-i:i},readUint16:function(){return 256*this.readByte()+this.readByte()},readUint32:function(){return 65536*this.readUint16()+this.readUint16()},readUint64:function(){return 4294967296*this.readUint32()+this.readUint32()}},a.prototype={writeByte:r("writeByte"),result:r("result"),writeFloat16:r("writeFloat16"),writeFloat32:r("writeFloat32"),writeFloat64:r("writeFloat64"),writeUint16:function(e){this.writeByte(e>>8&255),this.writeByte(255&e)},writeUint32:function(e){this.writeUint16(e>>16&65535),this.writeUint16(65535&e)},writeUint64:function(e){if(e>=9007199254740992||e<=-9007199254740992)throw new Error("Cannot encode Uint64 of: "+e+" magnitude to big (floating point errors)");this.writeUint32(Math.floor(e/4294967296)),this.writeUint32(e%4294967296)},writeString:r("writeString"),canWriteBinary:function(e){return!1},writeBinary:r("writeChunk")};var u=new Error;function c(e){var t=function(e){var t=e.readByte();return{type:t>>5,value:31&t}}(e);switch(t.type){case 0:return o(t,e);case 1:return-1-o(t,e);case 2:return e.readChunk(o(t,e));case 3:return e.readChunk(o(t,e)).toString("utf-8");case 4:case 5:var r=o(t,e),i=[];if(null!==r){5===t.type&&(r*=2);for(var a=0;a-9007199254740992?e<0?s(1,-1-e,n):s(0,e,n):(function(e,t,n){n.writeByte(e<<5|t)}(7,27,n),n.writeFloat64(e));else if("string"==typeof e)n.writeString(e,(function(e){s(3,e,n)}));else if(n.canWriteBinary(e))n.writeBinary(e,(function(e){s(2,e,n)}));else{if("object"!=typeof e)throw new Error("CBOR encoding not supported: "+e);if(p.config.useToJSON&&"function"==typeof e.toJSON&&(e=e.toJSON()),Array.isArray(e))for(s(4,e.length,n),r=0;r=this.latestBuffer.length&&(this.completeBuffers.push(this.latestBuffer),this.latestBuffer=Buffer.alloc(this.defaultBufferLength),this.latestBufferOffset=0),this.byteLength++},v.prototype.writeFloat32=function(e){var t=Buffer.alloc(4);t.writeFloatBE(e,0),this.writeBuffer(t)},v.prototype.writeFloat64=function(e){var t=Buffer.alloc(8);t.writeDoubleBE(e,0),this.writeBuffer(t)},v.prototype.writeString=function(e,t){var n=Buffer.from(e,"utf-8");t(n.length),this.writeBuffer(n)},v.prototype.canWriteBinary=function(e){return e instanceof Buffer},v.prototype.writeBinary=function(e,t){t(e.length),this.writeBuffer(e)},v.prototype.writeBuffer=function(e){if(!(e instanceof Buffer))throw new TypeError("BufferWriter only accepts Buffers");this.latestBufferOffset?this.latestBuffer.length-this.latestBufferOffset>=e.length?(e.copy(this.latestBuffer,this.latestBufferOffset),this.latestBufferOffset+=e.length,this.latestBufferOffset>=this.latestBuffer.length&&(this.completeBuffers.push(this.latestBuffer),this.latestBuffer=Buffer.alloc(this.defaultBufferLength),this.latestBufferOffset=0)):(this.completeBuffers.push(this.latestBuffer.slice(0,this.latestBufferOffset)),this.completeBuffers.push(e),this.latestBuffer=Buffer.alloc(this.defaultBufferLength),this.latestBufferOffset=0):this.completeBuffers.push(e),this.byteLength+=e.length},v.prototype.result=function(){for(var e=Buffer.alloc(this.byteLength),t=0,n=0;n255)throw new Error("Byte value out of range: "+e);var t=e.toString(16);1==t.length&&(t="0"+t),this.$hex+=t},y.prototype.canWriteBinary=function(t){return t instanceof e||"function"==typeof Buffer&&t instanceof Buffer},y.prototype.writeBinary=function(t,n){if(t instanceof e)n(t.length()),this.$hex+=t.$hex;else{if(!("function"==typeof Buffer&&t instanceof Buffer))throw new TypeError("HexWriter only accepts BinaryHex or Buffers");n(t.length),this.$hex+=t.toString("hex")}},y.prototype.result=function(){return"buffer"===this.finalFormat&&"function"==typeof Buffer?Buffer.from(this.$hex,"hex"):new e(this.$hex).toString(this.finalFormat)},y.prototype.writeString=function(t,n){var r=e.fromUtf8String(t);n(r.length()),this.$hex+=r.$hex},p.addReader((function(t,n){return t instanceof e||t.$hex?new g(t.$hex):"hex"===n?new g(t):void 0})),p.addWriter((function(e){if("hex"===e)return new y})),p}();return e.addSemanticEncode(0,(function(e){if(e instanceof Date)return e.toISOString()})).addSemanticDecode(0,(function(e){return new Date(e)})).addSemanticDecode(1,(function(e){return new Date(e)})),e})?r.apply(t,i):r)||(e.exports=a)},function(e,t,n){"use strict";var r=n(26),i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(5)),o=i(n(6)),s=i(n(4)),u=i(n(8)),c=i(n(18)),l=i(n(29)),f=i(n(32)),d=i(n(33)),p=i(n(19)),h=i(n(36)),v=i(n(16)),g=n(3),y=r(n(41)),b=r(n(42)),m=r(n(43)),_=r(n(44)),k=r(n(45)),P=r(n(46)),O=r(n(47)),T=r(n(48)),S=r(n(49)),M=r(n(50)),N=r(n(51)),w=r(n(52)),j=r(n(53)),U=r(n(54)),C=r(n(55)),x=r(n(56)),R=r(n(57)),A=r(n(58)),E=(n(59),r(n(60)),i(n(61))),K=i(n(62)),F=i(n(63)),I=i(n(64)),D=i(n(66)),B=i(n(67)),G=i(n(68)),L=i(n(69)),q=i(n(75)),H=i(n(76)),z=i(n(77)),V=i(n(78)),W=i(n(79)),$=i(n(80)),J=i(n(81)),X=i(n(82)),Q=i(n(83)),Y=i(n(84)),Z=i(n(85)),ee=r(n(86)),te=r(n(87)),ne=r(n(88)),re=r(n(89)),ie=r(n(90)),ae=r(n(91)),oe=r(n(92)),se=r(n(93)),ue=r(n(94)),ce=r(n(95)),le=r(n(96)),fe=r(n(97)),de=r(n(98)),pe=r(n(99)),he=r(n(100)),ve=r(n(101)),ge=r(n(102)),ye=r(n(103)),be=r(n(104)),me=r(n(105)),_e=r(n(106)),ke=r(n(107)),Pe=r(n(108)),Oe=r(n(109)),Te=r(n(110)),Se=r(n(111)),Me=r(n(112)),Ne=r(n(20)),we=r(n(113)),je=i(n(1)),Ue=i(n(11)),Ce=(n(2),i(n(15)));function xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Re(e){for(var t=1;t1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=a.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n=[],r=0;r>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new o.init(n,t/2)}},c=s.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new o.init(n,t)}},l=s.Utf8={stringify:function(e){try{return decodeURIComponent(escape(c.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return c.parse(unescape(encodeURIComponent(e)))}},f=r.BufferedBlockAlgorithm=a.extend({reset:function(){this._data=new o.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=l.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,r=n.words,i=n.sigBytes,a=this.blockSize,s=i/(4*a);if(t=(s=t?e.ceil(s):e.max((0|s)-this._minBufferSize,0))*a,i=e.min(4*t,i),t){for(var u=0;ul;){var f;e:{f=c;for(var d=e.sqrt(f),p=2;p<=d;p++)if(!(f%p)){f=!1;break e}f=!0}f&&(8>l&&(a[l]=s(e.pow(c,.5))),o[l]=s(e.pow(c,1/3)),l++),c++}var h=[];i=i.SHA256=r.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],s=n[3],u=n[4],c=n[5],l=n[6],f=n[7],d=0;64>d;d++){if(16>d)h[d]=0|e[t+d];else{var p=h[d-15],v=h[d-2];h[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+h[d-7]+((v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10)+h[d-16]}p=f+((u<<26|u>>>6)^(u<<21|u>>>11)^(u<<7|u>>>25))+(u&c^~u&l)+o[d]+h[d],v=((r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22))+(r&i^r&a^i&a),f=l,l=c,c=u,u=s+p|0,s=a,a=i,i=r,r=p+v|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+s|0,n[4]=n[4]+u|0,n[5]=n[5]+c|0,n[6]=n[6]+l|0,n[7]=n[7]+f|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;return n[i>>>5]|=128<<24-i%32,n[14+(i+64>>>9<<4)]=e.floor(r/4294967296),n[15+(i+64>>>9<<4)]=r,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(i),t.HmacSHA256=r._createHmacHelper(i)}(Math),i=(r=u).enc.Utf8,r.algo.HMAC=r.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=i.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var a=this._oKey=t.clone(),o=this._iKey=t.clone(),s=a.words,u=o.words,c=0;c>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,o=0;4>o&&i+.75*o>>6*(3-o)&63));if(t=r.charAt(64))for(;e.length%4;)e.push(t);return e.join("")},parse:function(e){var t=e.length,n=this._map;(r=n.charAt(64))&&-1!=(r=e.indexOf(r))&&(t=r);for(var r=[],i=0,a=0;a>>6-a%4*2;r[i>>>2]|=(s|u)<<24-i%4*8,i++}return o.create(r,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(e){function t(e,t,n,r,i,a,o){return((e=e+(t&n|~t&r)+i+o)<>>32-a)+t}function n(e,t,n,r,i,a,o){return((e=e+(t&r|n&~r)+i+o)<>>32-a)+t}function r(e,t,n,r,i,a,o){return((e=e+(t^n^r)+i+o)<>>32-a)+t}function i(e,t,n,r,i,a,o){return((e=e+(n^(t|~r))+i+o)<>>32-a)+t}for(var a=u,o=(c=a.lib).WordArray,s=c.Hasher,c=a.algo,l=[],f=0;64>f;f++)l[f]=4294967296*e.abs(e.sin(f+1))|0;c=c.MD5=s.extend({_doReset:function(){this._hash=new o.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,a){for(var o=0;16>o;o++){var s=e[u=a+o];e[u]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}o=this._hash.words;var u=e[a+0],c=(s=e[a+1],e[a+2]),f=e[a+3],d=e[a+4],p=e[a+5],h=e[a+6],v=e[a+7],g=e[a+8],y=e[a+9],b=e[a+10],m=e[a+11],_=e[a+12],k=e[a+13],P=e[a+14],O=e[a+15],T=t(T=o[0],N=o[1],M=o[2],S=o[3],u,7,l[0]),S=t(S,T,N,M,s,12,l[1]),M=t(M,S,T,N,c,17,l[2]),N=t(N,M,S,T,f,22,l[3]);T=t(T,N,M,S,d,7,l[4]),S=t(S,T,N,M,p,12,l[5]),M=t(M,S,T,N,h,17,l[6]),N=t(N,M,S,T,v,22,l[7]),T=t(T,N,M,S,g,7,l[8]),S=t(S,T,N,M,y,12,l[9]),M=t(M,S,T,N,b,17,l[10]),N=t(N,M,S,T,m,22,l[11]),T=t(T,N,M,S,_,7,l[12]),S=t(S,T,N,M,k,12,l[13]),M=t(M,S,T,N,P,17,l[14]),T=n(T,N=t(N,M,S,T,O,22,l[15]),M,S,s,5,l[16]),S=n(S,T,N,M,h,9,l[17]),M=n(M,S,T,N,m,14,l[18]),N=n(N,M,S,T,u,20,l[19]),T=n(T,N,M,S,p,5,l[20]),S=n(S,T,N,M,b,9,l[21]),M=n(M,S,T,N,O,14,l[22]),N=n(N,M,S,T,d,20,l[23]),T=n(T,N,M,S,y,5,l[24]),S=n(S,T,N,M,P,9,l[25]),M=n(M,S,T,N,f,14,l[26]),N=n(N,M,S,T,g,20,l[27]),T=n(T,N,M,S,k,5,l[28]),S=n(S,T,N,M,c,9,l[29]),M=n(M,S,T,N,v,14,l[30]),T=r(T,N=n(N,M,S,T,_,20,l[31]),M,S,p,4,l[32]),S=r(S,T,N,M,g,11,l[33]),M=r(M,S,T,N,m,16,l[34]),N=r(N,M,S,T,P,23,l[35]),T=r(T,N,M,S,s,4,l[36]),S=r(S,T,N,M,d,11,l[37]),M=r(M,S,T,N,v,16,l[38]),N=r(N,M,S,T,b,23,l[39]),T=r(T,N,M,S,k,4,l[40]),S=r(S,T,N,M,u,11,l[41]),M=r(M,S,T,N,f,16,l[42]),N=r(N,M,S,T,h,23,l[43]),T=r(T,N,M,S,y,4,l[44]),S=r(S,T,N,M,_,11,l[45]),M=r(M,S,T,N,O,16,l[46]),T=i(T,N=r(N,M,S,T,c,23,l[47]),M,S,u,6,l[48]),S=i(S,T,N,M,v,10,l[49]),M=i(M,S,T,N,P,15,l[50]),N=i(N,M,S,T,p,21,l[51]),T=i(T,N,M,S,_,6,l[52]),S=i(S,T,N,M,f,10,l[53]),M=i(M,S,T,N,b,15,l[54]),N=i(N,M,S,T,s,21,l[55]),T=i(T,N,M,S,g,6,l[56]),S=i(S,T,N,M,O,10,l[57]),M=i(M,S,T,N,h,15,l[58]),N=i(N,M,S,T,k,21,l[59]),T=i(T,N,M,S,d,6,l[60]),S=i(S,T,N,M,m,10,l[61]),M=i(M,S,T,N,c,15,l[62]),N=i(N,M,S,T,y,21,l[63]);o[0]=o[0]+T|0,o[1]=o[1]+N|0,o[2]=o[2]+M|0,o[3]=o[3]+S|0},_doFinalize:function(){var t=this._data,n=t.words,r=8*this._nDataBytes,i=8*t.sigBytes;n[i>>>5]|=128<<24-i%32;var a=e.floor(r/4294967296);for(n[15+(i+64>>>9<<4)]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),n[14+(i+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(n.length+1),this._process(),n=(t=this._hash).words,r=0;4>r;r++)i=n[r],n[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8);return t},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}}),a.MD5=s._createHelper(c),a.HmacMD5=s._createHmacHelper(c)}(Math),function(){var e,t=u,n=(e=t.lib).Base,r=e.WordArray,i=(e=t.algo).EvpKDF=n.extend({cfg:n.extend({keySize:4,hasher:e.MD5,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=(s=this.cfg).hasher.create(),i=r.create(),a=i.words,o=s.keySize,s=s.iterations;a.length>>2]}},t.BlockCipher=s.extend({cfg:s.cfg.extend({mode:c,padding:f}),reset:function(){s.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=t.createEncryptor;else n=t.createDecryptor,this._minBufferSize=1;this._mode=n.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var d=t.CipherParams=n.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),p=(c=(h.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?r.create([1398893684,1701076831]).concat(e).concat(t):t).toString(a)},parse:function(e){var t=(e=a.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var n=r.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return d.create({ciphertext:e,salt:n})}},t.SerializableCipher=n.extend({cfg:n.extend({format:c}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r);return t=i.finalize(t),i=i.cfg,d.create({ciphertext:t,key:n,iv:i.iv,algorithm:e,mode:i.mode,padding:i.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),h=(h.kdf={}).OpenSSL={execute:function(e,t,n,i){return i||(i=r.random(8)),e=o.create({keySize:t+n}).compute(e,i),n=r.create(e.words.slice(t),4*n),e.sigBytes=4*t,d.create({key:e,iv:n,salt:i})}},v=t.PasswordBasedCipher=p.extend({cfg:p.cfg.extend({kdf:h}),encrypt:function(e,t,n,r){return n=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize),r.iv=n.iv,(e=p.encrypt.call(this,e,t,n.key,r)).mixIn(n),e},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),n=r.kdf.execute(n,e.keySize,e.ivSize,t.salt),r.iv=n.iv,p.decrypt.call(this,e,t,n.key,r)}})}(),function(){for(var e=u,t=e.lib.BlockCipher,n=e.algo,r=[],i=[],a=[],o=[],s=[],c=[],l=[],f=[],d=[],p=[],h=[],v=0;256>v;v++)h[v]=128>v?v<<1:v<<1^283;var g=0,y=0;for(v=0;256>v;v++){var b=(b=y^y<<1^y<<2^y<<3^y<<4)>>>8^255&b^99;r[g]=b,i[b]=g;var m=h[g],_=h[m],k=h[_],P=257*h[b]^16843008*b;a[g]=P<<24|P>>>8,o[g]=P<<16|P>>>16,s[g]=P<<8|P>>>24,c[g]=P,P=16843009*k^65537*_^257*m^16843008*g,l[b]=P<<24|P>>>8,f[b]=P<<16|P>>>16,d[b]=P<<8|P>>>24,p[b]=P,g?(g=m^h[h[h[k^m]]],y^=h[h[y]]):g=y=1}var O=[0,1,2,4,8,16,32,64,128,27,54];n=n.AES=t.extend({_doReset:function(){for(var e=(n=this._key).words,t=n.sigBytes/4,n=4*((this._nRounds=t+6)+1),i=this._keySchedule=[],a=0;a>>24]<<24|r[o>>>16&255]<<16|r[o>>>8&255]<<8|r[255&o]):(o=r[(o=o<<8|o>>>24)>>>24]<<24|r[o>>>16&255]<<16|r[o>>>8&255]<<8|r[255&o],o^=O[a/t|0]<<24),i[a]=i[a-t]^o}for(e=this._invKeySchedule=[],t=0;tt||4>=a?o:l[r[o>>>24]]^f[r[o>>>16&255]]^d[r[o>>>8&255]]^p[r[255&o]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,a,o,s,c,r)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,f,d,p,i),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var u=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],f=e[t+2]^n[2],d=e[t+3]^n[3],p=4,h=1;h>>24]^i[l>>>16&255]^a[f>>>8&255]^o[255&d]^n[p++],g=r[l>>>24]^i[f>>>16&255]^a[d>>>8&255]^o[255&c]^n[p++],y=r[f>>>24]^i[d>>>16&255]^a[c>>>8&255]^o[255&l]^n[p++];d=r[d>>>24]^i[c>>>16&255]^a[l>>>8&255]^o[255&f]^n[p++],c=v,l=g,f=y}v=(s[c>>>24]<<24|s[l>>>16&255]<<16|s[f>>>8&255]<<8|s[255&d])^n[p++],g=(s[l>>>24]<<24|s[f>>>16&255]<<16|s[d>>>8&255]<<8|s[255&c])^n[p++],y=(s[f>>>24]<<24|s[d>>>16&255]<<16|s[c>>>8&255]<<8|s[255&l])^n[p++],d=(s[d>>>24]<<24|s[c>>>16&255]<<16|s[l>>>8&255]<<8|s[255&f])^n[p++],e[t]=v,e[t+1]=g,e[t+2]=y,e[t+3]=d},keySize:8});e.AES=t._createHelper(n)}(),u.mode.ECB=((s=u.lib.BlockCipherMode.extend()).Encryptor=s.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),s.Decryptor=s.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),s),e.exports=u},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(7)),a=r(n(5)),o=r(n(6)),s=r(n(4)),u=(r(n(18)),r(n(8)),r(n(19)),r(n(30))),c=r(n(31)),l=r(n(3)),f=(n(2),r(n(11))),d=function(){function e(t){var n=t.subscribeEndpoint,r=t.leaveEndpoint,i=t.heartbeatEndpoint,o=t.setStateEndpoint,l=t.timeEndpoint,f=t.getFileUrl,d=t.config,p=t.crypto,h=t.listenerManager;(0,a.default)(this,e),(0,s.default)(this,"_crypto",void 0),(0,s.default)(this,"_config",void 0),(0,s.default)(this,"_listenerManager",void 0),(0,s.default)(this,"_reconnectionManager",void 0),(0,s.default)(this,"_leaveEndpoint",void 0),(0,s.default)(this,"_heartbeatEndpoint",void 0),(0,s.default)(this,"_setStateEndpoint",void 0),(0,s.default)(this,"_subscribeEndpoint",void 0),(0,s.default)(this,"_getFileUrl",void 0),(0,s.default)(this,"_channels",void 0),(0,s.default)(this,"_presenceChannels",void 0),(0,s.default)(this,"_heartbeatChannels",void 0),(0,s.default)(this,"_heartbeatChannelGroups",void 0),(0,s.default)(this,"_channelGroups",void 0),(0,s.default)(this,"_presenceChannelGroups",void 0),(0,s.default)(this,"_currentTimetoken",void 0),(0,s.default)(this,"_lastTimetoken",void 0),(0,s.default)(this,"_storedTimetoken",void 0),(0,s.default)(this,"_region",void 0),(0,s.default)(this,"_subscribeCall",void 0),(0,s.default)(this,"_heartbeatTimer",void 0),(0,s.default)(this,"_subscriptionStatusAnnounced",void 0),(0,s.default)(this,"_autoNetworkDetection",void 0),(0,s.default)(this,"_isOnline",void 0),(0,s.default)(this,"_pendingChannelSubscriptions",void 0),(0,s.default)(this,"_pendingChannelGroupSubscriptions",void 0),(0,s.default)(this,"_dedupingManager",void 0),this._listenerManager=h,this._config=d,this._leaveEndpoint=r,this._heartbeatEndpoint=i,this._setStateEndpoint=o,this._subscribeEndpoint=n,this._getFileUrl=f,this._crypto=p,this._channels={},this._presenceChannels={},this._heartbeatChannels={},this._heartbeatChannelGroups={},this._channelGroups={},this._presenceChannelGroups={},this._pendingChannelSubscriptions=[],this._pendingChannelGroupSubscriptions=[],this._currentTimetoken=0,this._lastTimetoken=0,this._storedTimetoken=null,this._subscriptionStatusAnnounced=!1,this._isOnline=!0,this._reconnectionManager=new u.default({timeEndpoint:l}),this._dedupingManager=new c.default({config:d})}return(0,o.default)(e,[{key:"adaptStateChange",value:function(e,t){var n=this,r=e.state,i=e.channels,a=void 0===i?[]:i,o=e.channelGroups,s=void 0===o?[]:o;return a.forEach((function(e){e in n._channels&&(n._channels[e].state=r)})),s.forEach((function(e){e in n._channelGroups&&(n._channelGroups[e].state=r)})),this._setStateEndpoint({state:r,channels:a,channelGroups:s},t)}},{key:"adaptPresenceChange",value:function(e){var t=this,n=e.connected,r=e.channels,i=void 0===r?[]:r,a=e.channelGroups,o=void 0===a?[]:a;n?(i.forEach((function(e){t._heartbeatChannels[e]={state:{}}})),o.forEach((function(e){t._heartbeatChannelGroups[e]={state:{}}}))):(i.forEach((function(e){e in t._heartbeatChannels&&delete t._heartbeatChannels[e]})),o.forEach((function(e){e in t._heartbeatChannelGroups&&delete t._heartbeatChannelGroups[e]})),!1===this._config.suppressLeaveEvents&&this._leaveEndpoint({channels:i,channelGroups:o},(function(e){t._listenerManager.announceStatus(e)}))),this.reconnect()}},{key:"adaptSubscribeChange",value:function(e){var t=this,n=e.timetoken,r=e.channels,i=void 0===r?[]:r,a=e.channelGroups,o=void 0===a?[]:a,s=e.withPresence,u=void 0!==s&&s,c=e.withHeartbeats,l=void 0!==c&&c;this._config.subscribeKey&&""!==this._config.subscribeKey?(n&&(this._lastTimetoken=this._currentTimetoken,this._currentTimetoken=n),"0"!==this._currentTimetoken&&0!==this._currentTimetoken&&(this._storedTimetoken=this._currentTimetoken,this._currentTimetoken=0),i.forEach((function(e){t._channels[e]={state:{}},u&&(t._presenceChannels[e]={}),(l||t._config.getHeartbeatInterval())&&(t._heartbeatChannels[e]={}),t._pendingChannelSubscriptions.push(e)})),o.forEach((function(e){t._channelGroups[e]={state:{}},u&&(t._presenceChannelGroups[e]={}),(l||t._config.getHeartbeatInterval())&&(t._heartbeatChannelGroups[e]={}),t._pendingChannelGroupSubscriptions.push(e)})),this._subscriptionStatusAnnounced=!1,this.reconnect()):console&&console.log&&console.log("subscribe key missing; aborting subscribe")}},{key:"adaptUnsubscribeChange",value:function(e,t){var n=this,r=e.channels,i=void 0===r?[]:r,a=e.channelGroups,o=void 0===a?[]:a,s=[],u=[];i.forEach((function(e){e in n._channels&&(delete n._channels[e],s.push(e),e in n._heartbeatChannels&&delete n._heartbeatChannels[e]),e in n._presenceChannels&&(delete n._presenceChannels[e],s.push(e))})),o.forEach((function(e){e in n._channelGroups&&(delete n._channelGroups[e],u.push(e),e in n._heartbeatChannelGroups&&delete n._heartbeatChannelGroups[e]),e in n._presenceChannelGroups&&(delete n._channelGroups[e],u.push(e))})),0===s.length&&0===u.length||(!1!==this._config.suppressLeaveEvents||t||this._leaveEndpoint({channels:s,channelGroups:u},(function(e){e.affectedChannels=s,e.affectedChannelGroups=u,e.currentTimetoken=n._currentTimetoken,e.lastTimetoken=n._lastTimetoken,n._listenerManager.announceStatus(e)})),0===Object.keys(this._channels).length&&0===Object.keys(this._presenceChannels).length&&0===Object.keys(this._channelGroups).length&&0===Object.keys(this._presenceChannelGroups).length&&(this._lastTimetoken=0,this._currentTimetoken=0,this._storedTimetoken=null,this._region=null,this._reconnectionManager.stopPolling()),this.reconnect())}},{key:"unsubscribeAll",value:function(e){this.adaptUnsubscribeChange({channels:this.getSubscribedChannels(),channelGroups:this.getSubscribedChannelGroups()},e)}},{key:"getHeartbeatChannels",value:function(){return Object.keys(this._heartbeatChannels)}},{key:"getHeartbeatChannelGroups",value:function(){return Object.keys(this._heartbeatChannelGroups)}},{key:"getSubscribedChannels",value:function(){return Object.keys(this._channels)}},{key:"getSubscribedChannelGroups",value:function(){return Object.keys(this._channelGroups)}},{key:"reconnect",value:function(){this._startSubscribeLoop(),this._registerHeartbeatTimer()}},{key:"disconnect",value:function(){this._stopSubscribeLoop(),this._stopHeartbeatTimer(),this._reconnectionManager.stopPolling()}},{key:"_registerHeartbeatTimer",value:function(){this._stopHeartbeatTimer(),0!==this._config.getHeartbeatInterval()&&void 0!==this._config.getHeartbeatInterval()&&(this._performHeartbeatLoop(),this._heartbeatTimer=setInterval(this._performHeartbeatLoop.bind(this),1e3*this._config.getHeartbeatInterval()))}},{key:"_stopHeartbeatTimer",value:function(){this._heartbeatTimer&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=null)}},{key:"_performHeartbeatLoop",value:function(){var e=this,t=this.getHeartbeatChannels(),n=this.getHeartbeatChannelGroups(),r={};if(0!==t.length||0!==n.length){this.getSubscribedChannels().forEach((function(t){var n=e._channels[t].state;Object.keys(n).length&&(r[t]=n)})),this.getSubscribedChannelGroups().forEach((function(t){var n=e._channelGroups[t].state;Object.keys(n).length&&(r[t]=n)}));this._heartbeatEndpoint({channels:t,channelGroups:n,state:r},function(t){t.error&&e._config.announceFailedHeartbeats&&e._listenerManager.announceStatus(t),t.error&&e._config.autoNetworkDetection&&e._isOnline&&(e._isOnline=!1,e.disconnect(),e._listenerManager.announceNetworkDown(),e.reconnect()),!t.error&&e._config.announceSuccessfulHeartbeats&&e._listenerManager.announceStatus(t)}.bind(this))}}},{key:"_startSubscribeLoop",value:function(){var e=this;this._stopSubscribeLoop();var t={},n=[],r=[];if(Object.keys(this._channels).forEach((function(r){var i=e._channels[r].state;Object.keys(i).length&&(t[r]=i),n.push(r)})),Object.keys(this._presenceChannels).forEach((function(e){n.push("".concat(e,"-pnpres"))})),Object.keys(this._channelGroups).forEach((function(n){var i=e._channelGroups[n].state;Object.keys(i).length&&(t[n]=i),r.push(n)})),Object.keys(this._presenceChannelGroups).forEach((function(e){r.push("".concat(e,"-pnpres"))})),0!==n.length||0!==r.length){var i={channels:n,channelGroups:r,state:t,timetoken:this._currentTimetoken,filterExpression:this._config.filterExpression,region:this._region};this._subscribeCall=this._subscribeEndpoint(i,this._processSubscribeResponse.bind(this))}}},{key:"_processSubscribeResponse",value:function(e,t){var n=this;if(e.error)e.category===f.default.PNTimeoutCategory?this._startSubscribeLoop():e.category===f.default.PNNetworkIssuesCategory?(this.disconnect(),e.error&&this._config.autoNetworkDetection&&this._isOnline&&(this._isOnline=!1,this._listenerManager.announceNetworkDown()),this._reconnectionManager.onReconnection((function(){n._config.autoNetworkDetection&&!n._isOnline&&(n._isOnline=!0,n._listenerManager.announceNetworkUp()),n.reconnect(),n._subscriptionStatusAnnounced=!0;var t={category:f.default.PNReconnectedCategory,operation:e.operation,lastTimetoken:n._lastTimetoken,currentTimetoken:n._currentTimetoken};n._listenerManager.announceStatus(t)})),this._reconnectionManager.startPolling(),this._listenerManager.announceStatus(e)):e.category===f.default.PNBadRequestCategory?(this._stopHeartbeatTimer(),this._listenerManager.announceStatus(e)):this._listenerManager.announceStatus(e);else{if(this._storedTimetoken?(this._currentTimetoken=this._storedTimetoken,this._storedTimetoken=null):(this._lastTimetoken=this._currentTimetoken,this._currentTimetoken=t.metadata.timetoken),!this._subscriptionStatusAnnounced){var r={};r.category=f.default.PNConnectedCategory,r.operation=e.operation,r.affectedChannels=this._pendingChannelSubscriptions,r.subscribedChannels=this.getSubscribedChannels(),r.affectedChannelGroups=this._pendingChannelGroupSubscriptions,r.lastTimetoken=this._lastTimetoken,r.currentTimetoken=this._currentTimetoken,this._subscriptionStatusAnnounced=!0,this._listenerManager.announceStatus(r),this._pendingChannelSubscriptions=[],this._pendingChannelGroupSubscriptions=[]}var a=t.messages||[],o=this._config,s=o.requestMessageCountThreshold,u=o.dedupeOnSubscribe;if(s&&a.length>=s){var c={};c.category=f.default.PNRequestMessageCountExceededCategory,c.operation=e.operation,this._listenerManager.announceStatus(c)}a.forEach((function(e){var t=e.channel,r=e.subscriptionMatch,a=e.publishMetaData;if(t===r&&(r=null),u){if(n._dedupingManager.isDuplicate(e))return;n._dedupingManager.addEntry(e)}if(l.default.endsWith(e.channel,"-pnpres")){var o={channel:null,subscription:null};o.actualChannel=null!=r?t:null,o.subscribedChannel=null!=r?r:t,t&&(o.channel=t.substring(0,t.lastIndexOf("-pnpres"))),r&&(o.subscription=r.substring(0,r.lastIndexOf("-pnpres"))),o.action=e.payload.action,o.state=e.payload.data,o.timetoken=a.publishTimetoken,o.occupancy=e.payload.occupancy,o.uuid=e.payload.uuid,o.timestamp=e.payload.timestamp,e.payload.join&&(o.join=e.payload.join),e.payload.leave&&(o.leave=e.payload.leave),e.payload.timeout&&(o.timeout=e.payload.timeout),n._listenerManager.announcePresence(o)}else if(1===e.messageType){var s={channel:null,subscription:null};s.channel=t,s.subscription=r,s.timetoken=a.publishTimetoken,s.publisher=e.issuingClientId,e.userMetadata&&(s.userMetadata=e.userMetadata),s.message=e.payload,n._listenerManager.announceSignal(s)}else if(2===e.messageType){var c={channel:null,subscription:null};c.channel=t,c.subscription=r,c.timetoken=a.publishTimetoken,c.publisher=e.issuingClientId,e.userMetadata&&(c.userMetadata=e.userMetadata),c.message={event:e.payload.event,type:e.payload.type,data:e.payload.data},n._listenerManager.announceObjects(c),"user"===e.payload.type?n._listenerManager.announceUser(c):"space"===e.payload.type?n._listenerManager.announceSpace(c):"membership"===e.payload.type&&n._listenerManager.announceMembership(c)}else if(3===e.messageType){var f={};f.channel=t,f.subscription=r,f.timetoken=a.publishTimetoken,f.publisher=e.issuingClientId,f.data={messageTimetoken:e.payload.data.messageTimetoken,actionTimetoken:e.payload.data.actionTimetoken,type:e.payload.data.type,uuid:e.issuingClientId,value:e.payload.data.value},f.event=e.payload.event,n._listenerManager.announceMessageAction(f)}else if(4===e.messageType){var d={};d.channel=t,d.subscription=r,d.timetoken=a.publishTimetoken,d.publisher=e.issuingClientId;var p=e.payload;if(n._config.cipherKey){var h=n._crypto.decrypt(e.payload);"object"===(0,i.default)(h)&&null!==h&&(p=h)}d.message=p.message,d.file={id:p.file.id,name:p.file.name,url:n._getFileUrl({id:p.file.id,name:p.file.name,channel:t})},n._listenerManager.announceFile(d)}else{var v={channel:null,subscription:null};v.actualChannel=null!=r?t:null,v.subscribedChannel=null!=r?r:t,v.channel=t,v.subscription=r,v.timetoken=a.publishTimetoken,v.publisher=e.issuingClientId,e.userMetadata&&(v.userMetadata=e.userMetadata),n._config.cipherKey?v.message=n._crypto.decrypt(e.payload):v.message=e.payload,n._listenerManager.announceMessage(v)}})),this._region=t.metadata.region,this._startSubscribeLoop()}}},{key:"_stopSubscribeLoop",value:function(){this._subscribeCall&&("function"==typeof this._subscribeCall.abort&&this._subscribeCall.abort(),this._subscribeCall=null)}}]),e}();t.default=d,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(5)),a=r(n(6)),o=r(n(4)),s=(r(n(20)),n(2),function(){function e(t){var n=t.timeEndpoint;(0,i.default)(this,e),(0,o.default)(this,"_reconnectionCallback",void 0),(0,o.default)(this,"_timeEndpoint",void 0),(0,o.default)(this,"_timeTimer",void 0),this._timeEndpoint=n}return(0,a.default)(e,[{key:"onReconnection",value:function(e){this._reconnectionCallback=e}},{key:"startPolling",value:function(){this._timeTimer=setInterval(this._performTimeLoop.bind(this),3e3)}},{key:"stopPolling",value:function(){clearInterval(this._timeTimer)}},{key:"_performTimeLoop",value:function(){var e=this;this._timeEndpoint((function(t){t.error||(clearInterval(e._timeTimer),e._reconnectionCallback())}))}}]),e}());t.default=s,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(5)),a=r(n(6)),o=r(n(4)),s=(r(n(8)),n(2),function(){function e(t){var n=t.config;(0,i.default)(this,e),(0,o.default)(this,"_config",void 0),(0,o.default)(this,"hashHistory",void 0),this.hashHistory=[],this._config=n}return(0,a.default)(e,[{key:"getKey",value:function(e){var t=function(e){var t=0;if(0===e.length)return t;for(var n=0;n=this._config.maximumCacheSize&&this.hashHistory.shift(),this.hashHistory.push(this.getKey(e))}},{key:"clearHistory",value:function(){this.hashHistory=[]}}]),e}());t.default=s,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(5)),a=r(n(6)),o=r(n(4)),s=r(n(1)),u=function(){function e(t){(0,i.default)(this,e),(0,o.default)(this,"_maximumSamplesCount",100),(0,o.default)(this,"_trackedLatencies",{}),(0,o.default)(this,"_latencies",{}),this._maximumSamplesCount=t.maximumSamplesCount||this._maximumSamplesCount}return(0,a.default)(e,[{key:"operationsLatencyForRequest",value:function(){var e=this,t={};return Object.keys(this._latencies).forEach((function(n){var r=e._latencies[n],i=e._averageLatency(r);i>0&&(t["l_".concat(n)]=i)})),t}},{key:"startLatencyMeasure",value:function(e,t){e!==s.default.PNSubscribeOperation&&t&&(this._trackedLatencies[t]=Date.now())}},{key:"stopLatencyMeasure",value:function(e,t){if(e!==s.default.PNSubscribeOperation&&t){var n=this._endpointName(e),r=this._latencies[n],i=this._trackedLatencies[t];r||(r=this._latencies[n]=[]),r.push(Date.now()-i),r.length>this._maximumSamplesCount&&r.splice(0,r.length-this._maximumSamplesCount),delete this._trackedLatencies[t]}}},{key:"_averageLatency",value:function(e){return Math.floor(e.reduce((function(e,t){return e+t}),0)/e.length)}},{key:"_endpointName",value:function(e){var t=null;switch(e){case s.default.PNPublishOperation:t="pub";break;case s.default.PNSignalOperation:t="sig";break;case s.default.PNHistoryOperation:case s.default.PNFetchMessagesOperation:case s.default.PNDeleteMessagesOperation:case s.default.PNMessageCounts:t="hist";break;case s.default.PNUnsubscribeOperation:case s.default.PNWhereNowOperation:case s.default.PNHereNowOperation:case s.default.PNHeartbeatOperation:case s.default.PNSetStateOperation:case s.default.PNGetStateOperation:t="pres";break;case s.default.PNAddChannelsToGroupOperation:case s.default.PNRemoveChannelsFromGroupOperation:case s.default.PNChannelGroupsOperation:case s.default.PNRemoveGroupOperation:case s.default.PNChannelsForGroupOperation:t="cg";break;case s.default.PNPushNotificationEnabledChannelsOperation:case s.default.PNRemoveAllPushNotificationsOperation:t="push";break;case s.default.PNCreateUserOperation:case s.default.PNUpdateUserOperation:case s.default.PNDeleteUserOperation:case s.default.PNGetUserOperation:case s.default.PNGetUsersOperation:case s.default.PNCreateSpaceOperation:case s.default.PNUpdateSpaceOperation:case s.default.PNDeleteSpaceOperation:case s.default.PNGetSpaceOperation:case s.default.PNGetSpacesOperation:case s.default.PNGetMembersOperation:case s.default.PNUpdateMembersOperation:case s.default.PNGetMembershipsOperation:case s.default.PNUpdateMembershipsOperation:t="obj";break;case s.default.PNAddMessageActionOperation:case s.default.PNRemoveMessageActionOperation:case s.default.PNGetMessageActionsOperation:t="msga";break;case s.default.PNAccessManagerGrant:case s.default.PNAccessManagerAudit:t="pam";break;case s.default.PNAccessManagerGrantToken:t="pam3";break;default:t="time"}return t}}]),e}();t.default=u,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.FCMNotificationPayload=t.MPNSNotificationPayload=t.APNSNotificationPayload=void 0;var i=r(n(34)),a=r(n(12)),o=r(n(10)),s=r(n(17)),u=r(n(13)),c=r(n(5)),l=r(n(6)),f=r(n(4));n(2);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t2){var r=this._payload;r.notification,r.data;e=p({},e,{},(0,i.default)(r,["notification","data"]))}return this._isSilent?e.notification=this._payload.notification:t=this._payload.notification,Object.keys(e).length&&(n.data=e),t&&Object.keys(t).length&&(n.notification=t),Object.keys(n).length?n:null}},{key:"notification",get:function(){return this._payload.notification}},{key:"data",get:function(){return this._payload.data}},{key:"title",get:function(){return this._title},set:function(e){e&&e.length&&(this._payload.notification.title=e,this._title=e)}},{key:"body",get:function(){return this._body},set:function(e){e&&e.length&&(this._payload.notification.body=e,this._body=e)}},{key:"sound",get:function(){return this._sound},set:function(e){e&&e.length&&(this._payload.notification.sound=e,this._sound=e)}},{key:"icon",get:function(){return this._icon},set:function(e){e&&e.length&&(this._payload.notification.icon=e,this._icon=e)}},{key:"tag",get:function(){return this._tag},set:function(e){e&&e.length&&(this._payload.notification.tag=e,this._tag=e)}},{key:"silent",set:function(e){this._isSilent=e}}]),t}(h);t.FCMNotificationPayload=y;var b=function(){function e(t,n){(0,c.default)(this,e),(0,f.default)(this,"_payload",void 0),(0,f.default)(this,"_debugging",void 0),(0,f.default)(this,"_subtitle",void 0),(0,f.default)(this,"_badge",void 0),(0,f.default)(this,"_sound",void 0),(0,f.default)(this,"_title",void 0),(0,f.default)(this,"_body",void 0),(0,f.default)(this,"apns",void 0),(0,f.default)(this,"mpns",void 0),(0,f.default)(this,"fcm",void 0),this._payload={apns:{},mpns:{},fcm:{}},this._title=t,this._body=n,this.apns=new v(this._payload.apns,t,n),this.mpns=new g(this._payload.mpns,t,n),this.fcm=new y(this._payload.fcm,t,n)}return(0,l.default)(e,[{key:"debugging",set:function(e){this._debugging=e}},{key:"title",get:function(){return this._title}},{key:"body",get:function(){return this._body}},{key:"subtitle",get:function(){return this._subtitle},set:function(e){this._subtitle=e,this.apns.subtitle=e,this.mpns.subtitle=e,this.fcm.subtitle=e}},{key:"badge",get:function(){return this._badge},set:function(e){this._badge=e,this.apns.badge=e,this.mpns.badge=e,this.fcm.badge=e}},{key:"sound",get:function(){return this._sound},set:function(e){this._sound=e,this.apns.sound=e,this.mpns.sound=e,this.fcm.sound=e}}]),(0,l.default)(e,[{key:"buildPayload",value:function(e){var t={};if(e.includes("apns")||e.includes("apns2")){this.apns._apnsPushType=e.includes("apns")?"apns":"apns2";var n=this.apns.toObject();n&&Object.keys(n).length&&(t.pn_apns=n)}if(e.includes("mpns")){var r=this.mpns.toObject();r&&Object.keys(r).length&&(t.pn_mpns=r)}if(e.includes("fcm")){var i=this.fcm.toObject();i&&Object.keys(i).length&&(t.pn_gcm=i)}return Object.keys(t).length&&this._debugging&&(t.pn_debug=!0),t}}]),e}();t.default=b},function(e,t,n){var r=n(35);e.exports=function(e,t){if(null==e)return{};var n,i,a=r(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(7)),a=r(n(5)),o=r(n(6)),s=r(n(4)),u=(r(n(8)),n(2),function(){function e(t,n){(0,a.default)(this,e),(0,s.default)(this,"_config",void 0),(0,s.default)(this,"_cbor",void 0),(0,s.default)(this,"_userTokens",void 0),(0,s.default)(this,"_spaceTokens",void 0),(0,s.default)(this,"_userToken",void 0),(0,s.default)(this,"_spaceToken",void 0),this._config=t,this._cbor=n,this._initializeTokens()}return(0,o.default)(e,[{key:"_initializeTokens",value:function(){this._userTokens={},this._spaceTokens={},this._userToken=void 0,this._spaceToken=void 0}},{key:"_setToken",value:function(e){var t=this,n=this.parseToken(e);n&&n.resources&&(n.resources.users&&Object.keys(n.resources.users).forEach((function(n){t._userTokens[n]=e})),n.resources.spaces&&Object.keys(n.resources.spaces).forEach((function(n){t._spaceTokens[n]=e}))),n&&n.patterns&&(n.patterns.users&&Object.keys(n.patterns.users).length>0&&(this._userToken=e),n.patterns.spaces&&Object.keys(n.patterns.spaces).length>0&&(this._spaceToken=e))}},{key:"setToken",value:function(e){e&&e.length>0&&this._setToken(e)}},{key:"setTokens",value:function(e){var t=this;e&&e.length&&"object"===(0,i.default)(e)&&e.forEach((function(e){t.setToken(e)}))}},{key:"getTokens",value:function(e){var t=this,n={users:{},spaces:{}};return e?(e.user&&(n.user=this._userToken),e.space&&(n.space=this._spaceToken),e.users&&e.users.forEach((function(e){n.users[e]=t._userTokens[e]})),e.space&&e.spaces.forEach((function(e){n.spaces[e]=t._spaceTokens[e]}))):(this._userToken&&(n.user=this._userToken),this._spaceToken&&(n.space=this._spaceToken),Object.keys(this._userTokens).forEach((function(e){n.users[e]=t._userTokens[e]})),Object.keys(this._spaceTokens).forEach((function(e){n.spaces[e]=t._spaceTokens[e]}))),n}},{key:"getToken",value:function(e,t){var n;return t?"user"===e?n=this._userTokens[t]:"space"===e&&(n=this._spaceTokens[t]):"user"===e?n=this._userToken:"space"===e&&(n=this._spaceToken),n}},{key:"extractPermissions",value:function(e){var t={create:!1,read:!1,write:!1,manage:!1,delete:!1};return 16==(16&e)&&(t.create=!0),8==(8&e)&&(t.delete=!0),4==(4&e)&&(t.manage=!0),2==(2&e)&&(t.write=!0),1==(1&e)&&(t.read=!0),t}},{key:"parseToken",value:function(e){var t=this,n=this._cbor.decodeToken(e);if(void 0!==n){var r=Object.keys(n.res.usr),i=Object.keys(n.res.spc),a=Object.keys(n.pat.usr),o=Object.keys(n.pat.spc),s={version:n.v,timestamp:n.t,ttl:n.ttl},u=r.length>0,c=i.length>0;(u||c)&&(s.resources={},u&&(s.resources.users={},r.forEach((function(e){s.resources.users[e]=t.extractPermissions(n.res.usr[e])}))),c&&(s.resources.spaces={},i.forEach((function(e){s.resources.spaces[e]=t.extractPermissions(n.res.spc[e])}))));var l=a.length>0,f=o.length>0;return(l||f)&&(s.patterns={},l&&(s.patterns.users={},a.forEach((function(e){s.patterns.users[e]=t.extractPermissions(n.pat.usr[e])}))),f&&(s.patterns.spaces={},o.forEach((function(e){s.patterns.spaces[e]=t.extractPermissions(n.pat.spc[e])})))),Object.keys(n.meta).length>0&&(s.meta=n.meta),s.signature=n.sig,s}}},{key:"clearTokens",value:function(){this._initializeTokens()}}]),e}());t.default=u,e.exports=t.default},function(e,t,n){var r=n(10),i=n(14),a=n(38),o=n(39);function s(t){var n="function"==typeof Map?new Map:void 0;return e.exports=s=function(e){if(null===e||!a(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return o(e,arguments,r(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),i(t,e)},s(t)}e.exports=s},function(e,t){e.exports=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}},function(e,t,n){var r=n(14),i=n(40);function a(t,n,o){return i()?e.exports=a=Reflect.construct:e.exports=a=function(e,t,n){var i=[null];i.push.apply(i,t);var a=new(Function.bind.apply(e,i));return n&&r(a,n.prototype),a},a.apply(null,arguments)}e.exports=a},function(e,t){e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNAddChannelsToGroupOperation},t.validateParams=function(e,t){var n=t.channels,r=t.channelGroup,i=e.config;if(!r)return"Missing Channel Group";if(!n||0===n.length)return"Missing Channels";if(!i.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channelGroup,r=e.config;return"/v1/channel-registration/sub-key/".concat(r.subscribeKey,"/channel-group/").concat(a.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channels;return{add:(void 0===n?[]:n).join(",")}},t.handleResponse=function(){return{}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNRemoveChannelsFromGroupOperation},t.validateParams=function(e,t){var n=t.channels,r=t.channelGroup,i=e.config;if(!r)return"Missing Channel Group";if(!n||0===n.length)return"Missing Channels";if(!i.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channelGroup,r=e.config;return"/v1/channel-registration/sub-key/".concat(r.subscribeKey,"/channel-group/").concat(a.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channels;return{remove:(void 0===n?[]:n).join(",")}},t.handleResponse=function(){return{}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNRemoveGroupOperation},t.validateParams=function(e,t){var n=t.channelGroup,r=e.config;if(!n)return"Missing Channel Group";if(!r.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channelGroup,r=e.config;return"/v1/channel-registration/sub-key/".concat(r.subscribeKey,"/channel-group/").concat(a.default.encodeString(n),"/remove")},t.isAuthSupported=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.prepareParams=function(){return{}},t.handleResponse=function(){return{}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNChannelGroupsOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e){var t=e.config;return"/v1/channel-registration/sub-key/".concat(t.subscribeKey,"/channel-group")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return{groups:t.payload.groups}};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNChannelsForGroupOperation},t.validateParams=function(e,t){var n=t.channelGroup,r=e.config;if(!n)return"Missing Channel Group";if(!r.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channelGroup,r=e.config;return"/v1/channel-registration/sub-key/".concat(r.subscribeKey,"/channel-group/").concat(a.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return{channels:t.payload.channels}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNPushNotificationEnabledChannelsOperation},t.validateParams=function(e,t){var n=t.device,r=t.pushGateway,i=t.channels,a=t.topic,o=e.config;if(!n)return"Missing Device ID (device)";if(!r)return"Missing GW Type (pushGateway: gcm, apns or apns2)";if("apns2"===r&&!a)return"Missing APNS2 topic";if(!i||0===i.length)return"Missing Channels";if(!o.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.device,r=t.pushGateway,i=e.config;if("apns2"===r)return"/v2/push/sub-key/".concat(i.subscribeKey,"/devices-apns2/").concat(n);return"/v1/push/sub-key/".concat(i.subscribeKey,"/devices/").concat(n)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.pushGateway,r=t.channels,i=void 0===r?[]:r,a=t.environment,o=void 0===a?"development":a,s=t.topic,u={type:n,add:i.join(",")};"apns2"===n&&delete(u=Object.assign({},u,{environment:o,topic:s})).type;return u},t.handleResponse=function(){return{}};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNPushNotificationEnabledChannelsOperation},t.validateParams=function(e,t){var n=t.device,r=t.pushGateway,i=t.channels,a=t.topic,o=e.config;if(!n)return"Missing Device ID (device)";if(!r)return"Missing GW Type (pushGateway: gcm, apns or apns2)";if("apns2"===r&&!a)return"Missing APNS2 topic";if(!i||0===i.length)return"Missing Channels";if(!o.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.device,r=t.pushGateway,i=e.config;if("apns2"===r)return"/v2/push/sub-key/".concat(i.subscribeKey,"/devices-apns2/").concat(n);return"/v1/push/sub-key/".concat(i.subscribeKey,"/devices/").concat(n)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.pushGateway,r=t.channels,i=void 0===r?[]:r,a=t.environment,o=void 0===a?"development":a,s=t.topic,u={type:n,remove:i.join(",")};"apns2"===n&&delete(u=Object.assign({},u,{environment:o,topic:s})).type;return u},t.handleResponse=function(){return{}};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNPushNotificationEnabledChannelsOperation},t.validateParams=function(e,t){var n=t.device,r=t.pushGateway,i=t.topic,a=e.config;if(!n)return"Missing Device ID (device)";if(!r)return"Missing GW Type (pushGateway: gcm, apns or apns2)";if("apns2"===r&&!i)return"Missing APNS2 topic";if(!a.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.device,r=t.pushGateway,i=e.config;if("apns2"===r)return"/v2/push/sub-key/".concat(i.subscribeKey,"/devices-apns2/").concat(n);return"/v1/push/sub-key/".concat(i.subscribeKey,"/devices/").concat(n)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.pushGateway,r=t.environment,i=void 0===r?"development":r,a=t.topic,o={type:n};"apns2"===n&&delete(o=Object.assign({},o,{environment:i,topic:a})).type;return o},t.handleResponse=function(e,t){return{channels:t}};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNRemoveAllPushNotificationsOperation},t.validateParams=function(e,t){var n=t.device,r=t.pushGateway,i=t.topic,a=e.config;if(!n)return"Missing Device ID (device)";if(!r)return"Missing GW Type (pushGateway: gcm, apns or apns2)";if("apns2"===r&&!i)return"Missing APNS2 topic";if(!a.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.device,r=t.pushGateway,i=e.config;if("apns2"===r)return"/v2/push/sub-key/".concat(i.subscribeKey,"/devices-apns2/").concat(n,"/remove");return"/v1/push/sub-key/".concat(i.subscribeKey,"/devices/").concat(n,"/remove")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.pushGateway,r=t.environment,i=void 0===r?"development":r,a=t.topic,o={type:n};"apns2"===n&&delete(o=Object.assign({},o,{environment:i,topic:a})).type;return o},t.handleResponse=function(){return{}};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNUnsubscribeOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,o=i.length>0?i.join(","):",";return"/v2/presence/sub-key/".concat(n.subscribeKey,"/channel/").concat(a.default.encodeString(o),"/leave")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channelGroups,r=void 0===n?[]:n,i={};r.length>0&&(i["channel-group"]=r.join(","));return i},t.handleResponse=function(){return{}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNWhereNowOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,r=t.uuid,i=void 0===r?n.UUID:r;return"/v2/presence/sub-key/".concat(n.subscribeKey,"/uuid/").concat(i)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){if(!t.payload)return{channels:[]};return{channels:t.payload.channels}};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNHeartbeatOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,o=i.length>0?i.join(","):",";return"/v2/presence/sub-key/".concat(n.subscribeKey,"/channel/").concat(a.default.encodeString(o),"/heartbeat")},t.isAuthSupported=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.prepareParams=function(e,t){var n=t.channelGroups,r=void 0===n?[]:n,i=t.state,a=void 0===i?{}:i,o=e.config,s={};r.length>0&&(s["channel-group"]=r.join(","));return s.state=JSON.stringify(a),s.heartbeat=o.getPresenceTimeout(),s},t.handleResponse=function(){return{}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNGetStateOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,r=t.uuid,i=void 0===r?n.UUID:r,o=t.channels,s=void 0===o?[]:o,u=s.length>0?s.join(","):",";return"/v2/presence/sub-key/".concat(n.subscribeKey,"/channel/").concat(a.default.encodeString(u),"/uuid/").concat(i)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channelGroups,r=void 0===n?[]:n,i={};r.length>0&&(i["channel-group"]=r.join(","));return i},t.handleResponse=function(e,t,n){var r=n.channels,i=void 0===r?[]:r,a=n.channelGroups,o=void 0===a?[]:a,s={};1===i.length&&0===o.length?s[i[0]]=t.payload:s=t.payload;return{channels:s}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNSetStateOperation},t.validateParams=function(e,t){var n=e.config,r=t.state,i=t.channels,a=void 0===i?[]:i,o=t.channelGroups,s=void 0===o?[]:o;if(!r)return"Missing State";if(!n.subscribeKey)return"Missing Subscribe Key";if(0===a.length&&0===s.length)return"Please provide a list of channels and/or channel-groups"},t.getURL=function(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,o=i.length>0?i.join(","):",";return"/v2/presence/sub-key/".concat(n.subscribeKey,"/channel/").concat(a.default.encodeString(o),"/uuid/").concat(n.UUID,"/data")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.state,r=t.channelGroups,i=void 0===r?[]:r,a={};a.state=JSON.stringify(n),i.length>0&&(a["channel-group"]=i.join(","));return a},t.handleResponse=function(e,t){return{state:t.payload}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNHereNowOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,a=t.channelGroups,s=void 0===a?[]:a,u="/v2/presence/sub-key/".concat(n.subscribeKey);if(i.length>0||s.length>0){var c=i.length>0?i.join(","):",";u+="/channel/".concat(o.default.encodeString(c))}return u},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channelGroups,r=void 0===n?[]:n,a=t.includeUUIDs,o=void 0===a||a,u=t.includeState,c=void 0!==u&&u,l=t.queryParameters,f=void 0===l?{}:l,d={};o||(d.disable_uuids=1);c&&(d.state=1);r.length>0&&(d["channel-group"]=r.join(","));return d=function(e){for(var t=1;t1||s.length>0||0===s.length&&0===a.length?function(){var e={};return e.totalChannels=t.payload.total_channels,e.totalOccupancy=t.payload.total_occupancy,e.channels={},Object.keys(t.payload.channels).forEach((function(n){var r=t.payload.channels[n],i=[];return e.channels[n]={occupants:i,name:n,occupancy:r.occupancy},c&&r.uuids.forEach((function(e){f?i.push({state:e.state,uuid:e.uuid}):i.push({state:null,uuid:e})})),e})),e}():function(){var e={},n=[];return e.totalChannels=1,e.totalOccupancy=t.occupancy,e.channels={},e.channels[a[0]]={occupants:n,name:a[0],occupancy:t.occupancy},c&&t.uuids&&t.uuids.forEach((function(e){f?n.push({state:e.state,uuid:e.uuid}):n.push({state:null,uuid:e})})),e}();return r};var i=r(n(4)),a=(n(2),r(n(1))),o=r(n(3));function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNAddMessageActionOperation},t.validateParams=function(e,t){var n=e.config,r=t.action,i=t.channel;if(!t.messageTimetoken)return"Missing message timetoken";if(!n.subscribeKey)return"Missing Subscribe Key";if(!i)return"Missing message channel";if(!r)return"Missing Action";if(!r.value)return"Missing Action.value";if(!r.type)return"Missing Action.type";if(r.type.length>15)return"Action.type value exceed maximum length of 15"},t.usePost=function(){return!0},t.postURL=function(e,t){var n=e.config,r=t.channel,i=t.messageTimetoken;return"/v1/message-actions/".concat(n.subscribeKey,"/channel/").concat(r,"/message/").concat(i)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.getRequestHeaders=function(){return{"Content-Type":"application/json"}},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.postPayload=function(e,t){return t.action},t.handleResponse=function(e,t){return{data:t.data}};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNRemoveMessageActionOperation},t.validateParams=function(e,t){var n=e.config,r=t.channel,i=t.actionTimetoken;if(!t.messageTimetoken)return"Missing message timetoken";if(!i)return"Missing action timetoken";if(!n.subscribeKey)return"Missing Subscribe Key";if(!r)return"Missing message channel"},t.useDelete=function(){return!0},t.getURL=function(e,t){var n=e.config,r=t.channel,i=t.actionTimetoken,a=t.messageTimetoken;return"/v1/message-actions/".concat(n.subscribeKey,"/channel/").concat(r,"/message/").concat(a,"/action/").concat(i)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return{data:t.data}};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNGetMessageActionsOperation},t.validateParams=function(e,t){var n=e.config,r=t.channel;if(!n.subscribeKey)return"Missing Subscribe Key";if(!r)return"Missing message channel"},t.getURL=function(e,t){var n=e.config,r=t.channel;return"/v1/message-actions/".concat(n.subscribeKey,"/channel/").concat(r)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.limit,r=t.start,i=t.end,a={};n&&(a.limit=n);r&&(a.start=r);i&&(a.end=i);return a},t.handleResponse=function(e,t){var n={data:t.data,start:null,end:null};n.data.length&&(n.end=n.data[n.data.length-1].actionTimetoken,n.start=n.data[0].actionTimetoken);return n};n(2);var i=r(n(1))},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(1)),a={getOperation:function(){return i.default.PNListFilesOperation},validateParams:function(e,t){if(!(null==t?void 0:t.channel))return"channel can't be empty"},getURL:function(e,t){var n=e.config;return"/v1/files/".concat(n.subscribeKey,"/channels/").concat(t.channel,"/files")},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(){return{}},handleResponse:function(e,t){return{status:t.status,data:t.data}}};t.default=a,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(1)),a={getOperation:function(){return i.default.PNGenerateUploadUrlOperation},validateParams:function(e,t){return(null==t?void 0:t.channel)?(null==t?void 0:t.name)?void 0:"name can't be empty":"channel can't be empty"},usePost:function(){return!0},postURL:function(e,t){var n=e.config;return"/v1/files/".concat(n.subscribeKey,"/channels/").concat(t.channel,"/generate-upload-url")},postPayload:function(e,t){return{name:t.name}},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(){return{}},handleResponse:function(e,t){return{status:t.status,data:t.data,file_upload_request:t.file_upload_request}}};t.default=a,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(7)),a=r(n(1)),o=r(n(3)),s={getOperation:function(){return a.default.PNPublishFileOperation},validateParams:function(e,t){return(null==t?void 0:t.channel)?(null==t?void 0:t.fileId)?(null==t?void 0:t.fileName)?void 0:"file name can't be empty":"file id can't be empty":"channel can't be empty"},getURL:function(e,t){var n=e.config,r=n.publishKey,i=n.subscribeKey,a=function(e,t){var n=e.crypto,r=e.config,i=JSON.stringify(t);return r.cipherKey&&(i=n.encrypt(i),i=JSON.stringify(i)),i||""}(e,{message:t.message,file:{name:t.fileName,id:t.fileId}});return"/v1/files/publish-file/".concat(r,"/").concat(i,"/0/").concat(t.channel,"/0/").concat(o.default.encodeString(a))},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(e,t){var n={};return t.ttl&&(n.ttl=t.ttl),t.store&&(n.store=t.store?"1":"0"),t.meta&&"object"===(0,i.default)(t.meta)&&(n.meta=JSON.stringify(t.meta)),n},handleResponse:function(e,t){return{timetoken:t[2]}}};t.default=s,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(21)),a=r(n(22)),o=n(16);t.default=function(e){var t,n,r,s,u,c,l,f,d,p=(r=(t=e).generateUploadUrl,s=t.publishFile,u=t.modules,c=u.PubNubFile,l=u.config,f=u.cryptography,d=u.networking,n=(0,a.default)(i.default.mark((function e(t){var n,a,u,p,h,v,g,y,b,m,_,k,P,O,T,S,M,N,w;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.channel,a=t.file,u=t.message,p=t.cipherKey,h=t.meta,v=t.ttl,g=t.store,n){e.next=3;break}throw new o.PubNubError("Validation failed, check status for details",(0,o.createValidationError)("channel can't be empty"));case 3:if(a){e.next=5;break}throw new o.PubNubError("Validation failed, check status for details",(0,o.createValidationError)("file can't be empty"));case 5:return y=c.create(a),e.next=8,r({channel:n,name:y.name});case 8:if(b=e.sent,m=b.file_upload_request,_=m.url,k=m.form_fields,P=b.data,O=P.id,T=P.name,!(null!=p?p:l.cipherKey)){e.next=19;break}return e.next=18,f.encryptFile(null!=p?p:l.cipherKey,y,c);case 18:y=e.sent;case 19:if(S=k,y.mimeType&&(S=k.map((function(e){var t;return"Content-Type"===e.key?{key:e.key,value:null!==(t=y.mimeType)&&void 0!==t?t:""}:e}))),e.prev=21,"undefined"==typeof Blob){e.next=34;break}return e.t0=d,e.t1=_,e.t2=S,e.next=28,y.toFile();case 28:return e.t3=e.sent,e.next=31,e.t0.FILE.call(e.t0,e.t1,e.t2,e.t3);case 31:M=e.sent,e.next=43;break;case 34:return e.t4=d,e.t5=_,e.t6=S,e.next=39,y.toBuffer();case 39:return e.t7=e.sent,e.next=42,e.t4.FILE.call(e.t4,e.t5,e.t6,e.t7);case 42:M=e.sent;case 43:e.next=48;break;case 45:throw e.prev=45,e.t8=e.catch(21),new o.PubNubError("Upload to bucket failed",e.t8);case 48:if(204===M.status){e.next=50;break}throw new o.PubNubError("Upload to bucket was unsuccessful",M);case 50:N=5,w=!1;case 52:if(w||!(N>0)){e.next=64;break}return e.prev=53,e.next=56,s({channel:n,message:u,fileId:O,fileName:T,meta:h,store:g,ttl:v});case 56:w=!0,e.next=62;break;case 59:e.prev=59,e.t9=e.catch(53),N-=1;case 62:e.next=52;break;case 64:if(w){e.next=68;break}throw new o.PubNubError("Publish failed. You may want to execute that operation manually using pubnub.publishFile",{channel:n,id:O,name:T});case 68:return e.abrupt("return",{id:O,name:T});case 69:case"end":return e.stop()}}),e,null,[[21,45],[53,59]])}))),function(e){return n.apply(this,arguments)});return function(e,t){var n=p(e);return"function"==typeof t?(n.then((function(e){return t(null,e)})).catch((function(e){return t(e,null)})),n):n}},e.exports=t.default},function(e,t,n){var r=function(e){"use strict";var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},i=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function s(e,t,n,r){var i=t&&t.prototype instanceof l?t:l,a=Object.create(i.prototype),o=new P(r||[]);return a._invoke=function(e,t,n){var r="suspendedStart";return function(i,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===i)throw a;return T()}for(n.method=i,n.arg=a;;){var o=n.delegate;if(o){var s=m(o,n);if(s){if(s===c)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===c)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}(e,n,o),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var c={};function l(){}function f(){}function d(){}var p={};p[i]=function(){return this};var h=Object.getPrototypeOf,v=h&&h(h(O([])));v&&v!==t&&n.call(v,i)&&(p=v);var g=d.prototype=l.prototype=Object.create(p);function y(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function b(e,t){var r;this._invoke=function(i,a){function o(){return new t((function(r,o){!function r(i,a,o,s){var c=u(e[i],e,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,o,s)}),(function(e){r("throw",e,o,s)})):t.resolve(f).then((function(e){l.value=e,o(l)}),(function(e){return r("throw",e,o,s)}))}s(c.arg)}(i,a,r,o)}))}return r=r?r.then(o,o):o()}}function m(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,m(e,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return c}var r=u(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var i=r.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,c):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function O(e){if(e){var t=e[i];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,a=function t(){for(;++r=0;--i){var a=this.tryEntries[i],o=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&n.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),c}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;k(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),c}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(16);t.default=function(e,t){var n=e.config,i=t.channel,a=t.id,o=t.name;if(!i)throw new r.PubNubError("Validation failed, check status for details",(0,r.createValidationError)("channel can't be empty"));if(!a)throw new r.PubNubError("Validation failed, check status for details",(0,r.createValidationError)("file id can't be empty"));if(!o)throw new r.PubNubError("Validation failed, check status for details",(0,r.createValidationError)("file name can't be empty"));return"".concat(n.origin,"/v1/files/").concat(n.subscribeKey,"/channels/").concat(i,"/files/").concat(a,"/").concat(o)},e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i,a=r(n(21)),o=r(n(22)),s=r(n(1)),u={getOperation:function(){return s.default.PNDownloadFileOperation},validateParams:function(e,t){return(null==t?void 0:t.channel)?(null==t?void 0:t.name)?(null==t?void 0:t.id)?void 0:"id can't be empty":"name can't be empty":"channel can't be empty"},getURL:function(e,t){var n=e.config;return"/v1/files/".concat(n.subscribeKey,"/channels/").concat(t.channel,"/files/").concat(t.id,"/").concat(t.name)},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},ignoreBody:function(){return!0},forceBuffered:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(){return{}},handleResponse:(i=(0,o.default)(a.default.mark((function e(t,n,r){var i,o,s,u,c,l;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.PubNubFile,s=t.config,u=t.cryptography,c=n.response.body,!s.cipherKey){e.next=6;break}return e.next=5,u.decrypt(null!==(l=r.cipherKey)&&void 0!==l?l:s.cipherKey,c);case 5:c=e.sent;case 6:return e.abrupt("return",o.create({data:c,name:null!==(i=n.response.name)&&void 0!==i?i:r.name,mimeType:n.response.type}));case 7:case"end":return e.stop()}}),e)}))),function(e,t,n){return i.apply(this,arguments)})};t.default=u,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(1)),a={getOperation:function(){return i.default.PNListFilesOperation},validateParams:function(e,t){return(null==t?void 0:t.channel)?(null==t?void 0:t.id)?(null==t?void 0:t.name)?void 0:"file name can't be empty":"file id can't be empty":"channel can't be empty"},useDelete:function(){return!0},getURL:function(e,t){var n=e.config;return"/v1/files/".concat(n.subscribeKey,"/channels/").concat(t.channel,"/files/").concat(t.id,"/").concat(t.name)},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(){return{}},handleResponse:function(e,t){return{status:t.status}}};t.default=a,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(9)),a=r(n(1)),o={getOperation:function(){return a.default.PNGetAllUUIDMetadataOperation},validateParams:function(){},getURL:function(e){var t=e.config;return"/v2/objects/".concat(t.subscribeKey,"/uuids")},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("user")},prepareParams:function(e,t){var n,r,a,o,s,u,c,l,f={};((null==t||null===(n=t.include)||void 0===n?void 0:n.customFields)&&(f.include="custom"),null==t||null===(r=t.include)||void 0===r?void 0:r.totalCount)&&(f.count=null===(s=t.include)||void 0===s?void 0:s.totalCount);(null==t||null===(a=t.page)||void 0===a?void 0:a.next)&&(f.start=null===(u=t.page)||void 0===u?void 0:u.next);(null==t||null===(o=t.page)||void 0===o?void 0:o.prev)&&(f.end=null===(c=t.page)||void 0===c?void 0:c.prev);((null==t?void 0:t.filter)&&(f.filter=t.filter),f.limit=null==t?void 0:t.limit,null==t?void 0:t.sort)&&(f.sort=Object.entries(null!==(l=t.sort)&&void 0!==l?l:{}).map((function(e){var t=(0,i.default)(e,2),n=t[0],r=t[1];return"asc"===r||"desc"===r?"".concat(n,":").concat(r):n})));return f},handleResponse:function(e,t){return{status:t.status,data:t.data,totalCount:t.totalCount,next:t.next,prev:t.prev}}};t.default=o,e.exports=t.default},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}return n}}},function(e,t,n){var r=n(73);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(r.include=a)}return r},t.postPayload=function(e,t){return function(e,t){return t}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNUpdateUserOperation},t.validateParams=function(e,t){var n=e.config,r=t.id,i=t.name,a=t.custom;if(!r)return"Missing User.id";if(!i)return"Missing User.name";if(!n.subscribeKey)return"Missing Subscribe Key";if(a&&!Object.values(a).every((function(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e})))return"Invalid custom type, only string, number and boolean values are allowed."},t.usePatch=function(){return!0},t.getURL=function(e,t){var n=e.config,r=t.id;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(r)},t.patchURL=function(e,t){var n=e.config,r=t.id;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(r)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.id)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,r={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var i=[];n.customFields&&i.push("custom");var a=i.join(",");a.length>0&&(r.include=a)}return r},t.patchPayload=function(e,t){return function(e,t){return t}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNDeleteUserOperation},t.validateParams=function(e,t){var n=e.config;if(!t)return"Missing UserId";if(!n.subscribeKey)return"Missing Subscribe Key"},t.useDelete=function(){return!0},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t)||e.tokenManager.getToken("user")},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNGetUserOperation},t.validateParams=function(e,t){if(!t.userId)return"Missing userId"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,r={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var i=[];n.customFields&&i.push("custom");var a=i.join(",");a.length>0&&(r.include=a)}return r},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNGetUsersOperation},t.validateParams=function(){},t.getURL=function(e){var t=e.config;return"/v1/objects/".concat(t.subscribeKey,"/users")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e){return e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a=t.filter,o={};r&&(o.limit=r);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom");var u=s.join(",");u.length>0&&(o.include=u)}i&&(i.next&&(o.start=i.next),i.prev&&(o.end=i.prev));a&&(o.filter=a);return o},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNCreateSpaceOperation},t.validateParams=function(e,t){var n=e.config,r=t.id,i=t.name,a=t.custom;if(!r)return"Missing Space.id";if(!i)return"Missing Space.name";if(!n.subscribeKey)return"Missing Subscribe Key";if(a&&!Object.values(a).every((function(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e})))return"Invalid custom type, only string, number and boolean values are allowed."},t.usePost=function(){return!0},t.getURL=function(e){var t=e.config;return"/v1/objects/".concat(t.subscribeKey,"/spaces")},t.postURL=function(e){var t=e.config;return"/v1/objects/".concat(t.subscribeKey,"/spaces")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.id)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,r={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var i=[];n.customFields&&i.push("custom");var a=i.join(",");a.length>0&&(r.include=a)}return r},t.postPayload=function(e,t){return function(e,t){return t}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNUpdateSpaceOperation},t.validateParams=function(e,t){var n=e.config,r=t.id,i=t.name,a=t.custom;if(!r)return"Missing Space.id";if(!i)return"Missing Space.name";if(!n.subscribeKey)return"Missing Subscribe Key";if(a&&!Object.values(a).every((function(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e})))return"Invalid custom type, only string, number and boolean values are allowed."},t.usePatch=function(){return!0},t.getURL=function(e,t){var n=e.config,r=t.id;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(r)},t.patchURL=function(e,t){var n=e.config,r=t.id;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(r)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.id)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,r={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var i=[];n.customFields&&i.push("custom");var a=i.join(",");a.length>0&&(r.include=a)}return r},t.patchPayload=function(e,t){return function(e,t){return t}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNDeleteSpaceOperation},t.validateParams=function(e,t){var n=e.config;if(!t)return"Missing SpaceId";if(!n.subscribeKey)return"Missing Subscribe Key"},t.useDelete=function(){return!0},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t)||e.tokenManager.getToken("space")},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNGetSpacesOperation},t.validateParams=function(){},t.getURL=function(e){var t=e.config;return"/v1/objects/".concat(t.subscribeKey,"/spaces")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e){return e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a=t.filter,o={};r&&(o.limit=r);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom");var u=s.join(",");u.length>0&&(o.include=u)}i&&(i.next&&(o.start=i.next),i.prev&&(o.end=i.prev));a&&(o.filter=a);return o},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNGetSpaceOperation},t.validateParams=function(e,t){if(!t.spaceId)return"Missing spaceId"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,r={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var i=[];n.customFields&&i.push("custom");var a=i.join(",");a.length>0&&(r.include=a)}return r},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNGetMembersOperation},t.validateParams=function(e,t){if(!t.spaceId)return"Missing spaceId"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a=t.filter,o={};r&&(o.limit=r);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom"),n.userFields&&s.push("user"),n.customUserFields&&s.push("user.custom");var u=s.join(",");u.length>0&&(o.include=u)}i&&(i.next&&(o.start=i.next),i.prev&&(o.end=i.prev));a&&(o.filter=a);return o},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNUpdateMembersOperation},t.validateParams=function(e,t){var n=t.spaceId,r=t.users;if(!n)return"Missing spaceId";if(!r)return"Missing users"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a={};r&&(a.limit=r);if(n){var o=[];n.totalCount&&(a.count=!0),n.customFields&&o.push("custom"),n.spaceFields&&o.push("space"),n.customSpaceFields&&o.push("space.custom");var s=o.join(",");s.length>0&&(a.include=s)}i&&(i.next&&(a.start=i.next),i.prev&&(a.end=i.prev));return a},t.patchPayload=function(e,t){return function(e,t){var n=t.users,r={};n&&n.length>0&&(r.add=[],n.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),r.add.push(t)})));return r}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNUpdateMembersOperation},t.validateParams=function(e,t){var n=t.spaceId,r=t.users;if(!n)return"Missing spaceId";if(!r)return"Missing users"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a={};r&&(a.limit=r);if(n){var o=[];n.totalCount&&(a.count=!0),n.customFields&&o.push("custom"),n.spaceFields&&o.push("space"),n.customSpaceFields&&o.push("space.custom");var s=o.join(",");s.length>0&&(a.include=s)}i&&(i.next&&(a.start=i.next),i.prev&&(a.end=i.prev));return a},t.patchPayload=function(e,t){return function(e,t){var n=t.addMembers,r=t.updateMembers,i=t.removeMembers,a=t.users,o={};n&&n.length>0&&(o.add=[],n.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),o.add.push(t)})));r&&r.length>0&&(o.update=[],r.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),o.update.push(t)})));a&&a.length>0&&(o.update=o.update||[],a.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),o.update.push(t)})));i&&i.length>0&&(o.remove=[],i.forEach((function(e){o.remove.push({id:e})})));return o}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNUpdateMembersOperation},t.validateParams=function(e,t){var n=t.spaceId,r=t.users;if(!n)return"Missing spaceId";if(!r)return"Missing users"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a={};r&&(a.limit=r);if(n){var o=[];n.totalCount&&(a.count=!0),n.customFields&&o.push("custom"),n.spaceFields&&o.push("space"),n.customSpaceFields&&o.push("space.custom");var s=o.join(",");s.length>0&&(a.include=s)}i&&(i.next&&(a.start=i.next),i.prev&&(a.end=i.prev));return a},t.patchPayload=function(e,t){return function(e,t){var n=t.users,r={};n&&n.length>0&&(r.remove=[],n.forEach((function(e){r.remove.push({id:e})})));return r}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNGetMembershipsOperation},t.validateParams=function(e,t){if(!t.userId)return"Missing userId"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a=t.filter,o={};r&&(o.limit=r);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom"),n.spaceFields&&s.push("space"),n.customSpaceFields&&s.push("space.custom");var u=s.join(",");u.length>0&&(o.include=u)}i&&(i.next&&(o.start=i.next),i.prev&&(o.end=i.prev));a&&(o.filter=a);return o},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNUpdateMembershipsOperation},t.validateParams=function(e,t){var n=t.userId,r=t.spaces;if(!n)return"Missing userId";if(!r)return"Missing spaces"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a={};r&&(a.limit=r);if(n){var o=[];n.totalCount&&(a.count=!0),n.customFields&&o.push("custom"),n.spaceFields&&o.push("space"),n.customSpaceFields&&o.push("space.custom");var s=o.join(",");s.length>0&&(a.include=s)}i&&(i.next&&(a.start=i.next),i.prev&&(a.end=i.prev));return a},t.patchPayload=function(e,t){return function(e,t){var n=t.addMemberships,r=t.updateMemberships,i=t.removeMemberships,a=t.spaces,o={};n&&n.length>0&&(o.add=[],n.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),o.add.push(t)})));r&&r.length>0&&(o.update=[],r.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),o.update.push(t)})));a&&a.length>0&&(o.update=o.update||[],a.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),o.update.push(t)})));i&&i.length>0&&(o.remove=[],i.forEach((function(e){o.remove.push({id:e})})));return o}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNUpdateMembershipsOperation},t.validateParams=function(e,t){var n=t.userId,r=t.spaces;if(!n)return"Missing userId";if(!r)return"Missing spaces"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a={};r&&(a.limit=r);if(n){var o=[];n.totalCount&&(a.count=!0),n.customFields&&o.push("custom"),n.spaceFields&&o.push("space"),n.customSpaceFields&&o.push("space.custom");var s=o.join(",");s.length>0&&(a.include=s)}i&&(i.next&&(a.start=i.next),i.prev&&(a.end=i.prev));return a},t.patchPayload=function(e,t){return function(e,t){var n=t.spaces,r={};n&&n.length>0&&(r.add=[],n.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),r.add.push(t)})));return r}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNUpdateMembershipsOperation},t.validateParams=function(e,t){var n=t.userId,r=t.spaces;if(!n)return"Missing userId";if(!r)return"Missing spaces"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,r=t.limit,i=t.page,a={};r&&(a.limit=r);if(n){var o=[];n.totalCount&&(a.count=!0),n.customFields&&o.push("custom"),n.spaceFields&&o.push("space"),n.customSpaceFields&&o.push("space.custom");var s=o.join(",");s.length>0&&(a.include=s)}i&&(i.next&&(a.start=i.next),i.prev&&(a.end=i.prev));return a},t.patchPayload=function(e,t){return function(e,t){var n=t.spaces,r={};n&&n.length>0&&(r.remove=[],n.forEach((function(e){r.remove.push({id:e})})));return r}(0,t)},t.handleResponse=function(e,t){return t};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNAccessManagerAudit},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e){var t=e.config;return"/v2/auth/audit/sub-key/".concat(t.subscribeKey)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!1},t.prepareParams=function(e,t){var n=t.channel,r=t.channelGroup,i=t.authKeys,a=void 0===i?[]:i,o={};n&&(o.channel=n);r&&(o["channel-group"]=r);a.length>0&&(o.auth=a.join(","));return o},t.handleResponse=function(e,t){return t.payload};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNAccessManagerGrant},t.validateParams=function(e){var t=e.config;if(!t.subscribeKey)return"Missing Subscribe Key";if(!t.publishKey)return"Missing Publish Key";if(!t.secretKey)return"Missing Secret Key"},t.getURL=function(e){var t=e.config;return"/v2/auth/grant/sub-key/".concat(t.subscribeKey)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!1},t.prepareParams=function(e,t){var n=t.channels,r=void 0===n?[]:n,i=t.channelGroups,a=void 0===i?[]:i,o=t.ttl,s=t.read,u=void 0!==s&&s,c=t.write,l=void 0!==c&&c,f=t.manage,d=void 0!==f&&f,p=t.authKeys,h=void 0===p?[]:p,v=t.delete,g={};g.r=u?"1":"0",g.w=l?"1":"0",g.m=d?"1":"0",g.d=v?"1":"0",r.length>0&&(g.channel=r.join(","));a.length>0&&(g["channel-group"]=a.join(","));h.length>0&&(g.auth=h.join(","));(o||0===o)&&(g.ttl=o);return g},t.handleResponse=function(){return{}};n(2);var i=r(n(1))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNAccessManagerGrantToken},t.extractPermissions=a,t.validateParams=function(e,t){var n=e.config;if(!n.subscribeKey)return"Missing Subscribe Key";if(!n.publishKey)return"Missing Publish Key";if(!n.secretKey)return"Missing Secret Key";if(!t.resources&&!t.patterns)return"Missing either Resources or Patterns.";if(t.resources&&(!t.resources.users||0===Object.keys(t.resources.users).length)&&(!t.resources.spaces||0===Object.keys(t.resources.spaces).length)||t.patterns&&(!t.patterns.users||0===Object.keys(t.patterns.users).length)&&(!t.patterns.spaces||0===Object.keys(t.patterns.spaces).length))return"Missing values for either Resources or Patterns."},t.postURL=function(e){var t=e.config;return"/v3/pam/".concat(t.subscribeKey,"/grant")},t.usePost=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!1},t.prepareParams=function(){return{}},t.postPayload=function(e,t){return function(e,t){var n=t.ttl,r=t.resources,i=t.patterns,o=t.meta,s={ttl:0,permissions:{resources:{channels:{},groups:{},users:{},spaces:{}},patterns:{channels:{},groups:{},users:{},spaces:{}},meta:{}}};if(r){var u=r.users,c=r.spaces;u&&Object.keys(u).forEach((function(e){s.permissions.resources.users[e]=a(u[e])})),c&&Object.keys(c).forEach((function(e){s.permissions.resources.spaces[e]=a(c[e])}))}if(i){var l=i.users,f=i.spaces;l&&Object.keys(l).forEach((function(e){s.permissions.patterns.users[e]=a(l[e])})),f&&Object.keys(f).forEach((function(e){s.permissions.patterns.spaces[e]=a(f[e])}))}(n||0===n)&&(s.ttl=n);o&&(s.permissions.meta=o);return s}(0,t)},t.handleResponse=function(e,t){return t.data.token};n(2);var i=r(n(1));function a(e){var t=0;return e.create&&(t|=16),e.delete&&(t|=8),e.manage&&(t|=4),e.write&&(t|=2),e.read&&(t|=1),t}},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNPublishOperation},t.validateParams=function(e,t){var n=e.config,r=t.message;if(!t.channel)return"Missing Channel";if(!r)return"Missing Message";if(!n.subscribeKey)return"Missing Subscribe Key"},t.usePost=function(e,t){var n=t.sendByPost;return void 0!==n&&n},t.getURL=function(e,t){var n=e.config,r=t.channel,i=t.message,a=s(e,i);return"/publish/".concat(n.publishKey,"/").concat(n.subscribeKey,"/0/").concat(o.default.encodeString(r),"/0/").concat(o.default.encodeString(a))},t.postURL=function(e,t){var n=e.config,r=t.channel;return"/publish/".concat(n.publishKey,"/").concat(n.subscribeKey,"/0/").concat(o.default.encodeString(r),"/0")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.postPayload=function(e,t){var n=t.message;return s(e,n)},t.prepareParams=function(e,t){var n=t.meta,r=t.replicate,a=void 0===r||r,o=t.storeInHistory,s=t.ttl,u={};null!=o&&(u.store=o?"1":"0");s&&(u.ttl=s);!1===a&&(u.norep="true");n&&"object"===(0,i.default)(n)&&(u.meta=JSON.stringify(n));return u},t.handleResponse=function(e,t){return{timetoken:t[2]}};var i=r(n(7)),a=(n(2),r(n(1))),o=r(n(3));function s(e,t){var n=e.crypto,r=e.config,i=JSON.stringify(t);return r.cipherKey&&(i=n.encrypt(i),i=JSON.stringify(i)),i}},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNSignalOperation},t.validateParams=function(e,t){var n=e.config,r=t.message;if(!t.channel)return"Missing Channel";if(!r)return"Missing Message";if(!n.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,r=t.channel,i=t.message,o=(s=i,JSON.stringify(s));var s;return"/signal/".concat(n.publishKey,"/").concat(n.subscribeKey,"/0/").concat(a.default.encodeString(r),"/0/").concat(a.default.encodeString(o))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return{timetoken:t[2]}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNHistoryOperation},t.validateParams=function(e,t){var n=t.channel,r=e.config;if(!n)return"Missing channel";if(!r.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channel,r=e.config;return"/v2/history/sub-key/".concat(r.subscribeKey,"/channel/").concat(a.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.start,r=t.end,i=t.reverse,a=t.count,o=void 0===a?100:a,s=t.stringifiedTimeToken,u=void 0!==s&&s,c=t.includeMeta,l=void 0!==c&&c,f=t.includeUuid,d=void 0===f||f,p=t.includeMessageType,h=void 0===p||p,v={include_token:"true"};v.count=o,n&&(v.start=n);r&&(v.end=r);u&&(v.string_message_token="true");null!=i&&(v.reverse=i.toString());l&&(v.include_meta="true");d&&(v.include_uuid="true");h&&(v.include_message_type="true");return v},t.handleResponse=function(e,t){var n={messages:[],startTimeToken:t[1],endTimeToken:t[2]};Array.isArray(t[0])&&t[0].forEach((function(t){var r={timetoken:t.timetoken,entry:o(e,t.message)};t.meta&&(r.meta=t.meta),n.messages.push(r)}));return n};n(2);var i=r(n(1)),a=r(n(3));function o(e,t){var n=e.config,r=e.crypto;if(!n.cipherKey)return t;try{return r.decrypt(t)}catch(e){return t}}},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNDeleteMessagesOperation},t.validateParams=function(e,t){var n=t.channel,r=e.config;if(!n)return"Missing channel";if(!r.subscribeKey)return"Missing Subscribe Key"},t.useDelete=function(){return!0},t.getURL=function(e,t){var n=t.channel,r=e.config;return"/v3/history/sub-key/".concat(r.subscribeKey,"/channel/").concat(a.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.start,r=t.end,i={};n&&(i.start=n);r&&(i.end=r);return i},t.handleResponse=function(e,t){return t.payload};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNMessageCounts},t.validateParams=function(e,t){var n=t.channels,r=t.timetoken,i=t.channelTimetokens,a=e.config;if(!n)return"Missing channel";if(r&&i)return"timetoken and channelTimetokens are incompatible together";if(r&&i&&i.length>1&&n.length!==i.length)return"Length of channelTimetokens and channels do not match";if(!a.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channels,r=e.config,i=n.join(",");return"/v3/history/sub-key/".concat(r.subscribeKey,"/message-counts/").concat(o.default.encodeString(i))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.timetoken,r=t.channelTimetokens,a={};if(r&&1===r.length){var o=(0,i.default)(r,1)[0];a.timetoken=o}else r?a.channelsTimetoken=r.join(","):n&&(a.timetoken=n);return a},t.handleResponse=function(e,t){return{channels:t.channels}};var i=r(n(9)),a=r(n(1)),o=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNFetchMessagesOperation},t.validateParams=function(e,t){var n=t.channels,r=t.includeMessageActions,i=void 0!==r&&r,a=e.config;if(!n||0===n.length)return"Missing channels";if(!a.subscribeKey)return"Missing Subscribe Key";if(i&&n.length>1)throw new TypeError("History can return actions data for a single channel only. Either pass a single channel or disable the includeMessageActions flag.")},t.getURL=function(e,t){var n=t.channels,r=void 0===n?[]:n,i=t.includeMessageActions,o=void 0!==i&&i,s=e.config,u=o?"history-with-actions":"history",c=r.length>0?r.join(","):",";return"/v3/".concat(u,"/sub-key/").concat(s.subscribeKey,"/channel/").concat(a.default.encodeString(c))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.start,r=t.end,i=t.count,a=t.stringifiedTimeToken,o=void 0!==a&&a,s=t.includeMeta,u=void 0!==s&&s,c=t.includeUuid,l=void 0===c||c,f=t.includeMessageType,d=void 0===f||f,p={};i&&(p.max=i);n&&(p.start=n);r&&(p.end=r);o&&(p.string_message_token="true");u&&(p.include_meta="true");l&&(p.include_uuid="true");d&&(p.include_message_type="true");return p},t.handleResponse=function(e,t){var n={channels:{}};return Object.keys(t.channels||{}).forEach((function(r){n.channels[r]=[],(t.channels[r]||[]).forEach((function(t){var i={};i.channel=r,i.timetoken=t.timetoken,i.message=function(e,t){var n=e.config,r=e.crypto;if(!n.cipherKey)return t;try{return r.decrypt(t)}catch(e){return t}}(e,t.message),i.messageType=t.message_type,i.uuid=t.uuid,t.actions&&(i.actions=t.actions,i.data=t.actions),t.meta&&(i.meta=t.meta),n.channels[r].push(i)}))})),n};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return i.default.PNSubscribeOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,r=t.channels,i=void 0===r?[]:r,o=i.length>0?i.join(","):",";return"/v2/subscribe/".concat(n.subscribeKey,"/").concat(a.default.encodeString(o),"/0")},t.getRequestTimeout=function(e){return e.config.getSubscribeTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=e.config,r=t.state,i=t.channelGroups,a=void 0===i?[]:i,o=t.timetoken,s=t.filterExpression,u=t.region,c={heartbeat:n.getPresenceTimeout()};a.length>0&&(c["channel-group"]=a.join(","));s&&s.length>0&&(c["filter-expr"]=s);Object.keys(r).length&&(c.state=JSON.stringify(r));o&&(c.tt=o);u&&(c.tr=u);return c},t.handleResponse=function(e,t){var n=[];t.m.forEach((function(e){var t={publishTimetoken:e.p.t,region:e.p.r},r={shard:parseInt(e.a,10),subscriptionMatch:e.b,channel:e.c,messageType:e.e,payload:e.d,flags:e.f,issuingClientId:e.i,subscribeKey:e.k,originationTimetoken:e.o,userMetadata:e.u,publishMetaData:t};n.push(r)}));var r={timetoken:t.t.t,region:t.t.r};return{messages:n,metadata:r}};n(2);var i=r(n(1)),a=r(n(3))},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(5)),a=r(n(6)),o=r(n(4)),s=(r(n(8)),r(n(11))),u=(n(2),function(){function e(t){var n=this;(0,i.default)(this,e),(0,o.default)(this,"_modules",void 0),(0,o.default)(this,"_config",void 0),(0,o.default)(this,"_maxSubDomain",void 0),(0,o.default)(this,"_currentSubDomain",void 0),(0,o.default)(this,"_standardOrigin",void 0),(0,o.default)(this,"_subscribeOrigin",void 0),(0,o.default)(this,"_providedFQDN",void 0),(0,o.default)(this,"_requestTimeout",void 0),(0,o.default)(this,"_coreParams",void 0),this._modules={},Object.keys(t).forEach((function(e){n._modules[e]=t[e].bind(n)}))}return(0,a.default)(e,[{key:"init",value:function(e){this._config=e,this._maxSubDomain=20,this._currentSubDomain=Math.floor(Math.random()*this._maxSubDomain),this._providedFQDN=(this._config.secure?"https://":"http://")+this._config.origin,this._coreParams={},this.shiftStandardOrigin()}},{key:"nextOrigin",value:function(){return this._providedFQDN.match(/ps\.pndsn\.com$/i)?(this._currentSubDomain+=1,this._currentSubDomain>=this._maxSubDomain&&(this._currentSubDomain=1),e=this._currentSubDomain.toString(),this._providedFQDN.replace("ps.pndsn.com","ps".concat(e,".pndsn.com"))):this._providedFQDN;var e}},{key:"hasModule",value:function(e){return e in this._modules}},{key:"shiftStandardOrigin",value:function(){return this._standardOrigin=this.nextOrigin(),this._standardOrigin}},{key:"getStandardOrigin",value:function(){return this._standardOrigin}},{key:"FILE",value:function(e,t,n){return this._modules.file(e,t,n)}},{key:"POST",value:function(e,t,n,r){return this._modules.post(e,t,n,r)}},{key:"PATCH",value:function(e,t,n,r){return this._modules.patch(e,t,n,r)}},{key:"GET",value:function(e,t,n){return this._modules.get(e,t,n)}},{key:"DELETE",value:function(e,t,n){return this._modules.del(e,t,n)}},{key:"_detectErrorCategory",value:function(e){if("ENOTFOUND"===e.code)return s.default.PNNetworkIssuesCategory;if("ECONNREFUSED"===e.code)return s.default.PNNetworkIssuesCategory;if("ECONNRESET"===e.code)return s.default.PNNetworkIssuesCategory;if("EAI_AGAIN"===e.code)return s.default.PNNetworkIssuesCategory;if(0===e.status||e.hasOwnProperty("status")&&void 0===e.status)return s.default.PNNetworkIssuesCategory;if(e.timeout)return s.default.PNTimeoutCategory;if("ETIMEDOUT"===e.code)return s.default.PNNetworkIssuesCategory;if(e.response){if(e.response.badRequest)return s.default.PNBadRequestCategory;if(e.response.forbidden)return s.default.PNAccessDeniedCategory}return s.default.PNUnknownCategory}}]),e}());t.default=u,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(5)),a=r(n(6)),o=r(n(4)),s=function(){function e(){(0,i.default)(this,e),(0,o.default)(this,"storage",void 0),this.storage={}}return(0,a.default)(e,[{key:"get",value:function(e){return this.storage[e]}},{key:"set",value:function(e,t){this.storage[e]=t}}]),e}();t.default=s,e.exports=t.default},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=r(n(7)),a=r(n(5)),o=r(n(6)),s=r(n(4)),u=function(){function e(t,n){(0,a.default)(this,e),(0,s.default)(this,"_base64ToBinary",void 0),(0,s.default)(this,"_cborReader",void 0),this._base64ToBinary=n,this._decode=t}return(0,o.default)(e,[{key:"decodeToken",value:function(e){var t="";e.length%4==3?t="=":e.length%4==2&&(t="==");var n=e.replace(/-/gi,"+").replace(/_/gi,"/")+t,r=this._decode(this._base64ToBinary(n));if("object"===(0,i.default)(r))return r}}]),e}();t.default=u,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.get=function(e,t,n){var r=i(),a=this.getStandardOrigin()+t.url;return o.call(this,r,"GET",a,e,{},t,n)},t.post=function(e,t,n,r){var a=i(),s=this.getStandardOrigin()+n.url;return o.call(this,a,"POST",s,e,JSON.parse(t),n,r)},t.patch=function(e,t,n,r){var a=i(),s=this.getStandardOrigin()+n.url;return o.call(this,a,"PATCH",s,e,JSON.parse(t),n,r)},t.del=function(e,t,n){var r=i(),a=this.getStandardOrigin()+t.url;return o.call(this,r,"DELETE",a,e,{},t,n)};n(2);var r=n(118);function i(){return"mobileweb"===Ti.Platform.osname?new XMLHttpRequest:Ti.Network.createHTTPClient()}function a(e){"mobileweb"!==Ti.Platform.osname&&this._config.keepAlive&&(e.enableKeepAlive=!0)}function o(e,t,n,i,o,s,u){var c=this,l={};l.operation=s.operation,e.open(t,(0,r.buildUrl)(n,i),!0),a.call(this,e),e.onload=function(){l.error=!1,e.status&&(l.statusCode=e.status);var t=JSON.parse(e.responseText);return c._config.logVerbosity&&function(e,t,n){var r=(new Date).getTime(),i=(new Date).toISOString(),a=Ti&&Ti.API&&Ti.API.log?Ti.API:console;a.log("<<<<<"),a.log("[".concat(i,"]"),"\n",e,"\n",t),a.log("-----");var o=(new Date).getTime()-r,s=(new Date).toISOString();a.log(">>>>>>"),a.log("[".concat(s," / ").concat(o,"]"),"\n",e,"\n",t,"\n",n),a.log("-----")}(n,i,e.responseText),u(l,t)},e.onerror=function(e){return l.error=!0,l.errorData=e.error,l.category=c._detectErrorCategory(e.error),u(l,null)},e.timeout="android"===Ti.Platform.osname?2147483647:1/0,e.send(o)}},function(e,t,n){"use strict";var r=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.encodedKeyValuePair=a,t.buildUrl=function(e,t){var n=[];return Object.keys(t).forEach((function(e){a(n,e,t[e])})),"".concat(e,"?").concat(n.join("&"))};var i=r(n(7));function a(e,t,n){null!=n?Array.isArray(n)?n.forEach((function(n){a(e,t,n)})):"object"===(0,i.default)(n)?Object.keys(n).forEach((function(r){a(e,"".concat(t,"[").concat(r,"]"),n[r])})):e.push("".concat(encodeURIComponent(t),"=").concat(encodeURIComponent(n))):null===n&&e.push(encodeURIComponent("".concat(encodeURIComponent(t))))}}]),module.exports=exports.PubNub; \ No newline at end of file diff --git a/dist/web/pubnub.js b/dist/web/pubnub.js index 47206289c..4c6593811 100644 --- a/dist/web/pubnub.js +++ b/dist/web/pubnub.js @@ -1,4 +1,4 @@ -/*! 4.28.4 / Consumer */ +/*! 4.29.0 / Consumer */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); @@ -92,11 +92,23 @@ return /******/ (function(modules) { // webpackBootstrap /******/ /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 11); +/******/ return __webpack_require__(__webpack_require__.s = 28); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ +/***/ (function(module, exports) { + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} + +module.exports = _interopRequireDefault; + +/***/ }), +/* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -133,6 +145,11 @@ var _default = { PNUpdateMembersOperation: 'PNUpdateMembersOperation', PNGetMembershipsOperation: 'PNGetMembershipsOperation', PNUpdateMembershipsOperation: 'PNUpdateMembershipsOperation', + PNListFilesOperation: 'PNListFilesOperation', + PNGenerateUploadUrlOperation: 'PNGenerateUploadUrlOperation', + PNPublishFileOperation: 'PNPublishFileOperation', + PNGetFileUrlOperation: 'PNGetFileUrlOperation', + PNDownloadFileOperation: 'PNDownloadFileOperation', PNGetAllUUIDMetadataOperation: 'PNGetAllUUIDMetadataOperation', PNGetUUIDMetadataOperation: 'PNGetUUIDMetadataOperation', PNSetUUIDMetadataOperation: 'PNSetUUIDMetadataOperation', @@ -163,7 +180,7 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 1 */ +/* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -172,7 +189,7 @@ module.exports = exports.default; module.exports = {}; /***/ }), -/* 2 */ +/* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -244,116 +261,157 @@ module.exports = { encodeString: encodeString, deprecated: deprecated }; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(18))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25))) /***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _uuid = _interopRequireDefault(__webpack_require__(5)); - -var _flow_interfaces = __webpack_require__(1); - -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, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var PRESENCE_TIMEOUT_MINIMUM = 20; -var PRESENCE_TIMEOUT_DEFAULT = 300; - -var _default = function () { - function _default(_ref) { - var setup = _ref.setup, - db = _ref.db; - - _classCallCheck(this, _default); - - _defineProperty(this, "_db", void 0); - - _defineProperty(this, "subscribeKey", void 0); - - _defineProperty(this, "publishKey", void 0); - - _defineProperty(this, "secretKey", void 0); - - _defineProperty(this, "cipherKey", void 0); - - _defineProperty(this, "authKey", void 0); - - _defineProperty(this, "UUID", void 0); - - _defineProperty(this, "proxy", void 0); - - _defineProperty(this, "instanceId", void 0); +/* 4 */ +/***/ (function(module, exports) { - _defineProperty(this, "sdkName", void 0); +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } - _defineProperty(this, "sdkFamily", void 0); + return obj; +} - _defineProperty(this, "partnerId", void 0); +module.exports = _defineProperty; - _defineProperty(this, "filterExpression", void 0); +/***/ }), +/* 5 */ +/***/ (function(module, exports) { - _defineProperty(this, "suppressLeaveEvents", void 0); +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} - _defineProperty(this, "secure", void 0); +module.exports = _classCallCheck; - _defineProperty(this, "origin", void 0); +/***/ }), +/* 6 */ +/***/ (function(module, exports) { - _defineProperty(this, "logVerbosity", void 0); +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, descriptor.key, descriptor); + } +} - _defineProperty(this, "useInstanceId", void 0); +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} - _defineProperty(this, "useRequestId", void 0); +module.exports = _createClass; - _defineProperty(this, "keepAlive", void 0); +/***/ }), +/* 7 */ +/***/ (function(module, exports) { - _defineProperty(this, "keepAliveSettings", void 0); +function _typeof(obj) { + "@babel/helpers - typeof"; - _defineProperty(this, "autoNetworkDetection", void 0); + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + module.exports = _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + module.exports = _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } - _defineProperty(this, "announceSuccessfulHeartbeats", void 0); + return _typeof(obj); +} - _defineProperty(this, "announceFailedHeartbeats", void 0); +module.exports = _typeof; - _defineProperty(this, "_presenceTimeout", void 0); +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { - _defineProperty(this, "_heartbeatInterval", void 0); +"use strict"; - _defineProperty(this, "_subscribeRequestTimeout", void 0); - _defineProperty(this, "_transactionalRequestTimeout", void 0); +var _interopRequireDefault = __webpack_require__(0); - _defineProperty(this, "_useSendBeacon", void 0); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; - _defineProperty(this, "_PNSDKSuffix", void 0); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); - _defineProperty(this, "requestMessageCountThreshold", void 0); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); - _defineProperty(this, "restore", void 0); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); - _defineProperty(this, "dedupeOnSubscribe", void 0); +var _uuid = _interopRequireDefault(__webpack_require__(17)); - _defineProperty(this, "maximumCacheSize", void 0); +var _flow_interfaces = __webpack_require__(2); - _defineProperty(this, "customEncrypt", void 0); +var PRESENCE_TIMEOUT_MINIMUM = 20; +var PRESENCE_TIMEOUT_DEFAULT = 300; - _defineProperty(this, "customDecrypt", void 0); +var _default = function () { + function _default(_ref) { + var _setup$fileUploadPubl, _setup$useRandomIVs; + var setup = _ref.setup, + db = _ref.db; + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_db", void 0); + (0, _defineProperty2["default"])(this, "subscribeKey", void 0); + (0, _defineProperty2["default"])(this, "publishKey", void 0); + (0, _defineProperty2["default"])(this, "secretKey", void 0); + (0, _defineProperty2["default"])(this, "cipherKey", void 0); + (0, _defineProperty2["default"])(this, "authKey", void 0); + (0, _defineProperty2["default"])(this, "UUID", void 0); + (0, _defineProperty2["default"])(this, "proxy", void 0); + (0, _defineProperty2["default"])(this, "instanceId", void 0); + (0, _defineProperty2["default"])(this, "sdkName", void 0); + (0, _defineProperty2["default"])(this, "sdkFamily", void 0); + (0, _defineProperty2["default"])(this, "partnerId", void 0); + (0, _defineProperty2["default"])(this, "filterExpression", void 0); + (0, _defineProperty2["default"])(this, "suppressLeaveEvents", void 0); + (0, _defineProperty2["default"])(this, "secure", void 0); + (0, _defineProperty2["default"])(this, "origin", void 0); + (0, _defineProperty2["default"])(this, "logVerbosity", void 0); + (0, _defineProperty2["default"])(this, "useInstanceId", void 0); + (0, _defineProperty2["default"])(this, "useRequestId", void 0); + (0, _defineProperty2["default"])(this, "keepAlive", void 0); + (0, _defineProperty2["default"])(this, "keepAliveSettings", void 0); + (0, _defineProperty2["default"])(this, "autoNetworkDetection", void 0); + (0, _defineProperty2["default"])(this, "announceSuccessfulHeartbeats", void 0); + (0, _defineProperty2["default"])(this, "announceFailedHeartbeats", void 0); + (0, _defineProperty2["default"])(this, "_presenceTimeout", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatInterval", void 0); + (0, _defineProperty2["default"])(this, "_subscribeRequestTimeout", void 0); + (0, _defineProperty2["default"])(this, "_transactionalRequestTimeout", void 0); + (0, _defineProperty2["default"])(this, "_useSendBeacon", void 0); + (0, _defineProperty2["default"])(this, "_PNSDKSuffix", void 0); + (0, _defineProperty2["default"])(this, "requestMessageCountThreshold", void 0); + (0, _defineProperty2["default"])(this, "restore", void 0); + (0, _defineProperty2["default"])(this, "dedupeOnSubscribe", void 0); + (0, _defineProperty2["default"])(this, "maximumCacheSize", void 0); + (0, _defineProperty2["default"])(this, "customEncrypt", void 0); + (0, _defineProperty2["default"])(this, "customDecrypt", void 0); + (0, _defineProperty2["default"])(this, "fileUploadPublishRetryLimit", void 0); + (0, _defineProperty2["default"])(this, "useRandomIVs", void 0); this._PNSDKSuffix = {}; this._db = db; this.instanceId = "pn-".concat(_uuid["default"].createUUID()); @@ -377,6 +435,8 @@ var _default = function () { this.maximumCacheSize = setup.maximumCacheSize || 100; this.customEncrypt = setup.customEncrypt; this.customDecrypt = setup.customDecrypt; + this.fileUploadPublishRetryLimit = (_setup$fileUploadPubl = setup.fileUploadPublishRetryLimit) !== null && _setup$fileUploadPubl !== void 0 ? _setup$fileUploadPubl : 5; + this.useRandomIVs = (_setup$useRandomIVs = setup.useRandomIVs) !== null && _setup$useRandomIVs !== void 0 ? _setup$useRandomIVs : false; if (typeof location !== 'undefined' && location.protocol === 'https:') { this.secure = true; @@ -406,7 +466,7 @@ var _default = function () { this.setUUID(this._decideUUID(setup.uuid)); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "getAuthKey", value: function getAuthKey() { return this.authKey; @@ -516,7 +576,7 @@ var _default = function () { }, { key: "getVersion", value: function getVersion() { - return '4.28.4'; + return '4.29.0'; } }, { key: "_addPnsdkSuffix", @@ -546,7 +606,6 @@ var _default = function () { return "pn-".concat(_uuid["default"].createUUID()); } }]); - return _default; }(); @@ -554,7 +613,87 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 4 */ +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayWithHoles = __webpack_require__(77); + +var iterableToArrayLimit = __webpack_require__(78); + +var unsupportedIterableToArray = __webpack_require__(79); + +var nonIterableRest = __webpack_require__(81); + +function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArray; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(72); + + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + +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); + }); + }; +} + +module.exports = _asyncToGenerator; + +/***/ }), +/* 12 */ +/***/ (function(module, exports) { + +function _getPrototypeOf(o) { + module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +module.exports = _getPrototypeOf; + +/***/ }), +/* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -580,20 +719,76 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 5 */ +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +var _typeof = __webpack_require__(7); + +var assertThisInitialized = __webpack_require__(19); + +function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } + + return assertThisInitialized(self); +} + +module.exports = _possibleConstructorReturn; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +var setPrototypeOf = __webpack_require__(16); + +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); +} + +module.exports = _inherits; + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + +function _setPrototypeOf(o, p) { + module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +module.exports = _setPrototypeOf; + +/***/ }), +/* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _lilUuid = _interopRequireDefault(__webpack_require__(14)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _lilUuid = _interopRequireDefault(__webpack_require__(32)); var _default = { createUUID: function createUUID() { @@ -608,1511 +803,3852 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 6 */ +/* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports["default"] = void 0; +exports.createValidationError = createValidationError; +exports["default"] = _default; +exports.PubNubError = void 0; -var _config = _interopRequireDefault(__webpack_require__(3)); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -var _hmacSha = _interopRequireDefault(__webpack_require__(7)); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(14)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(12)); -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, descriptor.key, descriptor); } } +var _inherits2 = _interopRequireDefault(__webpack_require__(15)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(45)); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _uuid = _interopRequireDefault(__webpack_require__(17)); -var _default = function () { - function _default(_ref) { - var config = _ref.config; +var _flow_interfaces = __webpack_require__(2); - _classCallCheck(this, _default); +var _utils = _interopRequireDefault(__webpack_require__(3)); - _defineProperty(this, "_config", void 0); +var _config = _interopRequireDefault(__webpack_require__(8)); - _defineProperty(this, "_iv", void 0); +var _operations = _interopRequireDefault(__webpack_require__(1)); - _defineProperty(this, "_allowedKeyEncodings", void 0); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - _defineProperty(this, "_allowedKeyLengths", void 0); +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - _defineProperty(this, "_allowedModes", void 0); +var PubNubError = function (_Error) { + (0, _inherits2["default"])(PubNubError, _Error); - _defineProperty(this, "_defaultOptions", void 0); + function PubNubError(message, status) { + var _this; - this._config = config; - this._iv = '0123456789012345'; - this._allowedKeyEncodings = ['hex', 'utf8', 'base64', 'binary']; - this._allowedKeyLengths = [128, 256]; - this._allowedModes = ['ecb', 'cbc']; - this._defaultOptions = { - encryptKey: true, - keyEncoding: 'utf8', - keyLength: 256, - mode: 'cbc' - }; + (0, _classCallCheck2["default"])(this, PubNubError); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PubNubError).call(this, message)); + _this.name = _this.constructor.name; + _this.status = status; + _this.message = message; + return _this; } - _createClass(_default, [{ - key: "HMACSHA256", - value: function HMACSHA256(data) { - var hash = _hmacSha["default"].HmacSHA256(data, this._config.secretKey); + return PubNubError; +}((0, _wrapNativeSuper2["default"])(Error)); - return hash.toString(_hmacSha["default"].enc.Base64); - } - }, { - key: "SHA256", - value: function SHA256(s) { - return _hmacSha["default"].SHA256(s).toString(_hmacSha["default"].enc.Hex); - } - }, { - key: "_parseOptions", - value: function _parseOptions(incomingOptions) { - var options = incomingOptions || {}; - if (!options.hasOwnProperty('encryptKey')) options.encryptKey = this._defaultOptions.encryptKey; - if (!options.hasOwnProperty('keyEncoding')) options.keyEncoding = this._defaultOptions.keyEncoding; - if (!options.hasOwnProperty('keyLength')) options.keyLength = this._defaultOptions.keyLength; - if (!options.hasOwnProperty('mode')) options.mode = this._defaultOptions.mode; +exports.PubNubError = PubNubError; - if (this._allowedKeyEncodings.indexOf(options.keyEncoding.toLowerCase()) === -1) { - options.keyEncoding = this._defaultOptions.keyEncoding; - } +function createError(errorPayload, type) { + errorPayload.type = type; + errorPayload.error = true; + return errorPayload; +} - if (this._allowedKeyLengths.indexOf(parseInt(options.keyLength, 10)) === -1) { - options.keyLength = this._defaultOptions.keyLength; - } +function createValidationError(message) { + return createError({ + message: message + }, 'validationError'); +} - if (this._allowedModes.indexOf(options.mode.toLowerCase()) === -1) { - options.mode = this._defaultOptions.mode; - } +function decideURL(endpoint, modules, incomingParams) { + if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { + return endpoint.postURL(modules, incomingParams); + } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) { + return endpoint.patchURL(modules, incomingParams); + } else { + return endpoint.getURL(modules, incomingParams); + } +} - return options; - } - }, { - key: "_decodeKey", - value: function _decodeKey(key, options) { - if (options.keyEncoding === 'base64') { - return _hmacSha["default"].enc.Base64.parse(key); - } else if (options.keyEncoding === 'hex') { - return _hmacSha["default"].enc.Hex.parse(key); - } else { - return key; - } - } - }, { - key: "_getPaddedKey", - value: function _getPaddedKey(key, options) { - key = this._decodeKey(key, options); +function getAuthToken(endpoint, modules, incomingParams) { + var token; - if (options.encryptKey) { - return _hmacSha["default"].enc.Utf8.parse(this.SHA256(key).slice(0, 32)); - } else { - return key; - } - } - }, { - key: "_getMode", - value: function _getMode(options) { - if (options.mode === 'ecb') { - return _hmacSha["default"].mode.ECB; - } else { - return _hmacSha["default"].mode.CBC; - } - } - }, { - key: "_getIV", - value: function _getIV(options) { - return options.mode === 'cbc' ? _hmacSha["default"].enc.Utf8.parse(this._iv) : null; - } - }, { - key: "encrypt", - value: function encrypt(data, customCipherKey, options) { - if (this._config.customEncrypt) { - return this._config.customEncrypt(data); - } else { - return this.pnEncrypt(data, customCipherKey, options); - } + if (endpoint.getAuthToken) { + token = endpoint.getAuthToken(modules, incomingParams); + } + + return token; +} + +function generatePNSDK(config) { + if (config.sdkName) { + return config.sdkName; + } + + var base = "PubNub-JS-".concat(config.sdkFamily); + + if (config.partnerId) { + base += "-".concat(config.partnerId); + } + + base += "/".concat(config.getVersion()); + + var pnsdkSuffix = config._getPnsdkSuffix(' '); + + if (pnsdkSuffix.length > 0) { + base += pnsdkSuffix; + } + + return base; +} + +function getHttpMethod(modules, endpoint, incomingParams) { + if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { + return 'POST'; + } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) { + return 'PATCH'; + } else if (endpoint.useDelete && endpoint.useDelete(modules, incomingParams)) { + return 'DELETE'; + } else { + return 'GET'; + } +} + +function signRequest(modules, url, outgoingParams, incomingParams, endpoint) { + var config = modules.config, + crypto = modules.crypto; + var httpMethod = getHttpMethod(modules, endpoint, incomingParams); + outgoingParams.timestamp = Math.floor(new Date().getTime() / 1000); + var signInput = "".concat(httpMethod, "\n").concat(config.publishKey, "\n").concat(url, "\n").concat(_utils["default"].signPamFromParams(outgoingParams), "\n"); + + if (httpMethod === 'POST') { + var payload = endpoint.postPayload(modules, incomingParams); + + if (typeof payload === 'string') { + signInput += payload; + } else { + signInput += JSON.stringify(payload); } - }, { - key: "decrypt", - value: function decrypt(data, customCipherKey, options) { - if (this._config.customDecrypt) { - return this._config.customDecrypt(data); - } else { - return this.pnDecrypt(data, customCipherKey, options); - } + } else if (httpMethod === 'PATCH') { + var _payload = endpoint.patchPayload(modules, incomingParams); + + if (typeof _payload === 'string') { + signInput += _payload; + } else { + signInput += JSON.stringify(_payload); } - }, { - key: "pnEncrypt", - value: function pnEncrypt(data, customCipherKey, options) { - if (!customCipherKey && !this._config.cipherKey) return data; - options = this._parseOptions(options); + } - var iv = this._getIV(options); + var signature = "v2.".concat(crypto.HMACSHA256(signInput)); + signature = signature.replace(/\+/g, '-'); + signature = signature.replace(/\//g, '_'); + signature = signature.replace(/=+$/, ''); + outgoingParams.signature = signature; +} - var mode = this._getMode(options); +function _default(modules, endpoint) { + var networking = modules.networking, + config = modules.config, + telemetryManager = modules.telemetryManager; - var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); + var requestId = _uuid["default"].createUUID(); - var encryptedHexArray = _hmacSha["default"].AES.encrypt(data, cipherKey, { - iv: iv, - mode: mode - }).ciphertext; + var callback = null; + var promiseComponent = null; + var incomingParams = {}; + + if (endpoint.getOperation() === _operations["default"].PNTimeOperation || endpoint.getOperation() === _operations["default"].PNChannelGroupsOperation) { + callback = arguments.length <= 2 ? undefined : arguments[2]; + } else { + incomingParams = arguments.length <= 2 ? undefined : arguments[2]; + callback = arguments.length <= 3 ? undefined : arguments[3]; + } + + if (typeof Promise !== 'undefined' && !callback) { + promiseComponent = _utils["default"].createPromise(); + } + + var validationResult = endpoint.validateParams(modules, incomingParams); - var base64Encrypted = encryptedHexArray.toString(_hmacSha["default"].enc.Base64); - return base64Encrypted || data; + if (validationResult) { + if (callback) { + return callback(createValidationError(validationResult)); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('Validation failed, check status for details', createValidationError(validationResult))); + return promiseComponent.promise; } - }, { - key: "pnDecrypt", - value: function pnDecrypt(data, customCipherKey, options) { - if (!customCipherKey && !this._config.cipherKey) return data; - options = this._parseOptions(options); - var iv = this._getIV(options); + return; + } - var mode = this._getMode(options); + var outgoingParams = endpoint.prepareParams(modules, incomingParams); + var url = decideURL(endpoint, modules, incomingParams); + var callInstance; + var networkingParams = { + url: url, + operation: endpoint.getOperation(), + timeout: endpoint.getRequestTimeout(modules), + headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {}, + ignoreBody: typeof endpoint.ignoreBody === 'function' ? endpoint.ignoreBody(modules) : false, + forceBuffered: typeof endpoint.forceBuffered === 'function' ? endpoint.forceBuffered(modules, incomingParams) : null + }; + outgoingParams.uuid = config.UUID; + outgoingParams.pnsdk = generatePNSDK(config); + var telemetryLatencies = telemetryManager.operationsLatencyForRequest(); - var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); + if (Object.keys(telemetryLatencies).length) { + outgoingParams = _objectSpread({}, outgoingParams, {}, telemetryLatencies); + } - try { - var ciphertext = _hmacSha["default"].enc.Base64.parse(data); + if (config.useInstanceId) { + outgoingParams.instanceid = config.instanceId; + } - var plainJSON = _hmacSha["default"].AES.decrypt({ - ciphertext: ciphertext - }, cipherKey, { - iv: iv, - mode: mode - }).toString(_hmacSha["default"].enc.Utf8); + if (config.useRequestId) { + outgoingParams.requestid = requestId; + } - var plaintext = JSON.parse(plainJSON); - return plaintext; - } catch (e) { - return null; + if (endpoint.isAuthSupported()) { + var token = getAuthToken(endpoint, modules, incomingParams); + var tokenOrKey = token || config.getAuthKey(); + + if (tokenOrKey) { + outgoingParams.auth = tokenOrKey; + } + } + + if (config.secretKey) { + signRequest(modules, url, outgoingParams, incomingParams, endpoint); + } + + var onResponse = function onResponse(status, payload) { + if (status.error) { + if (callback) { + callback(status); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', status)); } + + return; } - }]); - return _default; -}(); + telemetryManager.stopLatencyMeasure(endpoint.getOperation(), requestId); + var responseP = endpoint.handleResponse(modules, payload, incomingParams); -exports["default"] = _default; -module.exports = exports.default; + if (typeof responseP.then !== 'function') { + responseP = Promise.resolve(responseP); + } + + responseP.then(function (result) { + if (callback) { + callback(status, result); + } else if (promiseComponent) { + promiseComponent.fulfill(result); + } + })["catch"](function (e) { + if (callback) { + callback(e, null); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', e)); + } + }); + }; + + telemetryManager.startLatencyMeasure(endpoint.getOperation(), requestId); + + if (getHttpMethod(modules, endpoint, incomingParams) === 'POST') { + var payload = endpoint.postPayload(modules, incomingParams); + callInstance = networking.POST(outgoingParams, payload, networkingParams, onResponse); + } else if (getHttpMethod(modules, endpoint, incomingParams) === 'PATCH') { + var _payload2 = endpoint.patchPayload(modules, incomingParams); + + callInstance = networking.PATCH(outgoingParams, _payload2, networkingParams, onResponse); + } else if (getHttpMethod(modules, endpoint, incomingParams) === 'DELETE') { + callInstance = networking.DELETE(outgoingParams, networkingParams, onResponse); + } else { + callInstance = networking.GET(outgoingParams, networkingParams, onResponse); + } + + if (endpoint.getOperation() === _operations["default"].PNSubscribeOperation) { + return callInstance; + } + + if (promiseComponent) { + return promiseComponent.promise; + } +} /***/ }), -/* 7 */ +/* 19 */ +/***/ (function(module, exports) { + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +module.exports = _assertThisInitialized; + +/***/ }), +/* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/* WEBPACK VAR INJECTION */(function(Buffer) { +var _interopRequireDefault = __webpack_require__(0); -var CryptoJS = CryptoJS || function (h, s) { - var f = {}, - g = f.lib = {}, - q = function q() {}, - m = g.Base = { - extend: function extend(a) { - q.prototype = this; - var c = new q(); - a && c.mixIn(a); - c.hasOwnProperty("init") || (c.init = function () { - c.$super.init.apply(this, arguments); - }); - c.init.prototype = c; - c.$super = this; - return c; - }, - create: function create() { - var a = this.extend(); - a.init.apply(a, arguments); - return a; - }, - init: function init() {}, - mixIn: function mixIn(a) { - for (var c in a) { - a.hasOwnProperty(c) && (this[c] = a[c]); - } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; - a.hasOwnProperty("toString") && (this.toString = a.toString); - }, - clone: function clone() { - return this.init.prototype.extend(this); - } - }, - r = g.WordArray = m.extend({ - init: function init(a, c) { - a = this.words = a || []; - this.sigBytes = c != s ? c : 4 * a.length; - }, - toString: function toString(a) { - return (a || k).stringify(this); - }, - concat: function concat(a) { - var c = this.words, - d = a.words, - b = this.sigBytes; - a = a.sigBytes; - this.clamp(); - if (b % 4) for (var e = 0; e < a; e++) { - c[b + e >>> 2] |= (d[e >>> 2] >>> 24 - 8 * (e % 4) & 255) << 24 - 8 * ((b + e) % 4); - } else if (65535 < d.length) for (e = 0; e < a; e += 4) { - c[b + e >>> 2] = d[e >>> 2]; - } else c.push.apply(c, d); - this.sigBytes += a; - return this; - }, - clamp: function clamp() { - var a = this.words, - c = this.sigBytes; - a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4); - a.length = h.ceil(c / 4); - }, - clone: function clone() { - var a = m.clone.call(this); - a.words = this.words.slice(0); - return a; - }, - random: function random(a) { - for (var c = [], d = 0; d < a; d += 4) { - c.push(4294967296 * h.random() | 0); - } +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); - return new r.init(c, a); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); + +var _config = _interopRequireDefault(__webpack_require__(8)); + +var _hmacSha = _interopRequireDefault(__webpack_require__(22)); + +function bufferToWordArray(b) { + var wa = []; + var i; + + for (i = 0; i < b.length; i += 1) { + wa[i / 4 | 0] |= b[i] << 24 - 8 * i; + } + + return _hmacSha["default"].lib.WordArray.create(wa, b.length); +} + +var _default = function () { + function _default(_ref) { + var config = _ref.config; + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_iv", void 0); + (0, _defineProperty2["default"])(this, "_allowedKeyEncodings", void 0); + (0, _defineProperty2["default"])(this, "_allowedKeyLengths", void 0); + (0, _defineProperty2["default"])(this, "_allowedModes", void 0); + (0, _defineProperty2["default"])(this, "_defaultOptions", void 0); + this._config = config; + this._iv = '0123456789012345'; + this._allowedKeyEncodings = ['hex', 'utf8', 'base64', 'binary']; + this._allowedKeyLengths = [128, 256]; + this._allowedModes = ['ecb', 'cbc']; + this._defaultOptions = { + encryptKey: true, + keyEncoding: 'utf8', + keyLength: 256, + mode: 'cbc' + }; + } + + (0, _createClass2["default"])(_default, [{ + key: "HMACSHA256", + value: function HMACSHA256(data) { + var hash = _hmacSha["default"].HmacSHA256(data, this._config.secretKey); + + return hash.toString(_hmacSha["default"].enc.Base64); } - }), - l = f.enc = {}, - k = l.Hex = { - stringify: function stringify(a) { - var c = a.words; - a = a.sigBytes; + }, { + key: "SHA256", + value: function SHA256(s) { + return _hmacSha["default"].SHA256(s).toString(_hmacSha["default"].enc.Hex); + } + }, { + key: "_parseOptions", + value: function _parseOptions(incomingOptions) { + var options = incomingOptions || {}; + if (!options.hasOwnProperty('encryptKey')) options.encryptKey = this._defaultOptions.encryptKey; + if (!options.hasOwnProperty('keyEncoding')) options.keyEncoding = this._defaultOptions.keyEncoding; + if (!options.hasOwnProperty('keyLength')) options.keyLength = this._defaultOptions.keyLength; + if (!options.hasOwnProperty('mode')) options.mode = this._defaultOptions.mode; - for (var d = [], b = 0; b < a; b++) { - var e = c[b >>> 2] >>> 24 - 8 * (b % 4) & 255; - d.push((e >>> 4).toString(16)); - d.push((e & 15).toString(16)); + if (this._allowedKeyEncodings.indexOf(options.keyEncoding.toLowerCase()) === -1) { + options.keyEncoding = this._defaultOptions.keyEncoding; } - return d.join(""); - }, - parse: function parse(a) { - for (var c = a.length, d = [], b = 0; b < c; b += 2) { - d[b >>> 3] |= parseInt(a.substr(b, 2), 16) << 24 - 4 * (b % 8); + if (this._allowedKeyLengths.indexOf(parseInt(options.keyLength, 10)) === -1) { + options.keyLength = this._defaultOptions.keyLength; } - return new r.init(d, c / 2); - } - }, - n = l.Latin1 = { - stringify: function stringify(a) { - var c = a.words; - a = a.sigBytes; - - for (var d = [], b = 0; b < a; b++) { - d.push(String.fromCharCode(c[b >>> 2] >>> 24 - 8 * (b % 4) & 255)); + if (this._allowedModes.indexOf(options.mode.toLowerCase()) === -1) { + options.mode = this._defaultOptions.mode; } - return d.join(""); - }, - parse: function parse(a) { - for (var c = a.length, d = [], b = 0; b < c; b++) { - d[b >>> 2] |= (a.charCodeAt(b) & 255) << 24 - 8 * (b % 4); + return options; + } + }, { + key: "_decodeKey", + value: function _decodeKey(key, options) { + if (options.keyEncoding === 'base64') { + return _hmacSha["default"].enc.Base64.parse(key); + } else if (options.keyEncoding === 'hex') { + return _hmacSha["default"].enc.Hex.parse(key); + } else { + return key; } + } + }, { + key: "_getPaddedKey", + value: function _getPaddedKey(key, options) { + key = this._decodeKey(key, options); - return new r.init(d, c); + if (options.encryptKey) { + return _hmacSha["default"].enc.Utf8.parse(this.SHA256(key).slice(0, 32)); + } else { + return key; + } } - }, - j = l.Utf8 = { - stringify: function stringify(a) { - try { - return decodeURIComponent(escape(n.stringify(a))); - } catch (c) { - throw Error("Malformed UTF-8 data"); + }, { + key: "_getMode", + value: function _getMode(options) { + if (options.mode === 'ecb') { + return _hmacSha["default"].mode.ECB; + } else { + return _hmacSha["default"].mode.CBC; } - }, - parse: function parse(a) { - return n.parse(unescape(encodeURIComponent(a))); } - }, - u = g.BufferedBlockAlgorithm = m.extend({ - reset: function reset() { - this._data = new r.init(); - this._nDataBytes = 0; - }, - _append: function _append(a) { - "string" == typeof a && (a = j.parse(a)); + }, { + key: "_getIV", + value: function _getIV(options) { + return options.mode === 'cbc' ? _hmacSha["default"].enc.Utf8.parse(this._iv) : null; + } + }, { + key: "_getRandomIV", + value: function _getRandomIV() { + return _hmacSha["default"].lib.WordArray.random(16); + } + }, { + key: "encrypt", + value: function encrypt(data, customCipherKey, options) { + if (this._config.customEncrypt) { + return this._config.customEncrypt(data); + } else { + return this.pnEncrypt(data, customCipherKey, options); + } + } + }, { + key: "decrypt", + value: function decrypt(data, customCipherKey, options) { + if (this._config.customDecrypt) { + return this._config.customDecrypt(data); + } else { + return this.pnDecrypt(data, customCipherKey, options); + } + } + }, { + key: "pnEncrypt", + value: function pnEncrypt(data, customCipherKey, options) { + if (!customCipherKey && !this._config.cipherKey) return data; + options = this._parseOptions(options); - this._data.concat(a); + var mode = this._getMode(options); - this._nDataBytes += a.sigBytes; - }, - _process: function _process(a) { - var c = this._data, - d = c.words, - b = c.sigBytes, - e = this.blockSize, - f = b / (4 * e), - f = a ? h.ceil(f) : h.max((f | 0) - this._minBufferSize, 0); - a = f * e; - b = h.min(4 * a, b); + var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); - if (a) { - for (var g = 0; g < a; g += e) { - this._doProcessBlock(d, g); - } + if (this._config.useRandomIVs) { + var waIv = this._getRandomIV(); - g = d.splice(0, a); - c.sigBytes -= b; - } + var waPayload = _hmacSha["default"].AES.encrypt(data, cipherKey, { + iv: waIv, + mode: mode + }).ciphertext; - return new r.init(g, b); - }, - clone: function clone() { - var a = m.clone.call(this); - a._data = this._data.clone(); - return a; - }, - _minBufferSize: 0 - }); - - g.Hasher = u.extend({ - cfg: m.extend(), - init: function init(a) { - this.cfg = this.cfg.extend(a); - this.reset(); - }, - reset: function reset() { - u.reset.call(this); - - this._doReset(); - }, - update: function update(a) { - this._append(a); + return waIv.clone().concat(waPayload.clone()).toString(_hmacSha["default"].enc.Base64); + } else { + var iv = this._getIV(options); - this._process(); + var encryptedHexArray = _hmacSha["default"].AES.encrypt(data, cipherKey, { + iv: iv, + mode: mode + }).ciphertext; - return this; - }, - finalize: function finalize(a) { - a && this._append(a); - return this._doFinalize(); - }, - blockSize: 16, - _createHelper: function _createHelper(a) { - return function (c, d) { - return new a.init(d).finalize(c); - }; - }, - _createHmacHelper: function _createHmacHelper(a) { - return function (c, d) { - return new t.HMAC.init(a, d).finalize(c); - }; + var base64Encrypted = encryptedHexArray.toString(_hmacSha["default"].enc.Base64); + return base64Encrypted || data; + } } - }); - var t = f.algo = {}; - return f; -}(Math); + }, { + key: "pnDecrypt", + value: function pnDecrypt(data, customCipherKey, options) { + if (!customCipherKey && !this._config.cipherKey) return data; + options = this._parseOptions(options); -(function (h) { - for (var s = CryptoJS, f = s.lib, g = f.WordArray, q = f.Hasher, f = s.algo, m = [], r = [], l = function l(a) { - return 4294967296 * (a - (a | 0)) | 0; - }, k = 2, n = 0; 64 > n;) { - var j; + var mode = this._getMode(options); - a: { - j = k; + var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); - for (var u = h.sqrt(j), t = 2; t <= u; t++) { - if (!(j % t)) { - j = !1; - break a; + if (this._config.useRandomIVs) { + var ciphertext = Buffer.from(data, 'base64'); + var iv = bufferToWordArray(ciphertext.slice(0, 16)); + var payload = bufferToWordArray(ciphertext.slice(16)); + + try { + var plainJSON = _hmacSha["default"].AES.decrypt({ + ciphertext: payload + }, cipherKey, { + iv: iv, + mode: mode + }).toString(_hmacSha["default"].enc.Utf8); + + var plaintext = JSON.parse(plainJSON); + return plaintext; + } catch (e) { + return null; } - } + } else { + var _iv = this._getIV(options); - j = !0; - } + try { + var _ciphertext = _hmacSha["default"].enc.Base64.parse(data); - j && (8 > n && (m[n] = l(h.pow(k, 0.5))), r[n] = l(h.pow(k, 1 / 3)), n++); - k++; - } + var _plainJSON = _hmacSha["default"].AES.decrypt({ + ciphertext: _ciphertext + }, cipherKey, { + iv: _iv, + mode: mode + }).toString(_hmacSha["default"].enc.Utf8); - var a = [], - f = f.SHA256 = q.extend({ - _doReset: function _doReset() { - this._hash = new g.init(m.slice(0)); - }, - _doProcessBlock: function _doProcessBlock(c, d) { - for (var b = this._hash.words, e = b[0], f = b[1], g = b[2], j = b[3], h = b[4], m = b[5], n = b[6], q = b[7], p = 0; 64 > p; p++) { - if (16 > p) a[p] = c[d + p] | 0;else { - var k = a[p - 15], - l = a[p - 2]; - a[p] = ((k << 25 | k >>> 7) ^ (k << 14 | k >>> 18) ^ k >>> 3) + a[p - 7] + ((l << 15 | l >>> 17) ^ (l << 13 | l >>> 19) ^ l >>> 10) + a[p - 16]; + var _plaintext = JSON.parse(_plainJSON); + + return _plaintext; + } catch (e) { + return null; } - k = q + ((h << 26 | h >>> 6) ^ (h << 21 | h >>> 11) ^ (h << 7 | h >>> 25)) + (h & m ^ ~h & n) + r[p] + a[p]; - l = ((e << 30 | e >>> 2) ^ (e << 19 | e >>> 13) ^ (e << 10 | e >>> 22)) + (e & f ^ e & g ^ f & g); - q = n; - n = m; - m = h; - h = j + k | 0; - j = g; - g = f; - f = e; - e = k + l | 0; } + } + }]); + return _default; +}(); - b[0] = b[0] + e | 0; - b[1] = b[1] + f | 0; - b[2] = b[2] + g | 0; - b[3] = b[3] + j | 0; - b[4] = b[4] + h | 0; - b[5] = b[5] + m | 0; - b[6] = b[6] + n | 0; - b[7] = b[7] + q | 0; - }, - _doFinalize: function _doFinalize() { - var a = this._data, - d = a.words, - b = 8 * this._nDataBytes, - e = 8 * a.sigBytes; - d[e >>> 5] |= 128 << 24 - e % 32; - d[(e + 64 >>> 9 << 4) + 14] = h.floor(b / 4294967296); - d[(e + 64 >>> 9 << 4) + 15] = b; - a.sigBytes = 4 * d.length; +exports["default"] = _default; +module.exports = exports.default; +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(21).Buffer)) - this._process(); +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { - return this._hash; - }, - clone: function clone() { - var a = q.clone.call(this); - a._hash = this._hash.clone(); - return a; - } - }); - s.SHA256 = q._createHelper(f); - s.HmacSHA256 = q._createHmacHelper(f); -})(Math); +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/* eslint-disable no-proto */ -(function () { - var h = CryptoJS, - s = h.enc.Utf8; - h.algo.HMAC = h.lib.Base.extend({ - init: function init(f, g) { - f = this._hasher = new f.init(); - "string" == typeof g && (g = s.parse(g)); - var h = f.blockSize, - m = 4 * h; - g.sigBytes > m && (g = f.finalize(g)); - g.clamp(); - for (var r = this._oKey = g.clone(), l = this._iKey = g.clone(), k = r.words, n = l.words, j = 0; j < h; j++) { - k[j] ^= 1549556828, n[j] ^= 909522486; - } - r.sigBytes = l.sigBytes = m; - this.reset(); - }, - reset: function reset() { - var f = this._hasher; - f.reset(); - f.update(this._iKey); - }, - update: function update(f) { - this._hasher.update(f); +var base64 = __webpack_require__(34) +var ieee754 = __webpack_require__(35) +var isArray = __webpack_require__(36) - return this; - }, - finalize: function finalize(f) { - var g = this._hasher; - f = g.finalize(f); - g.reset(); - return g.finalize(this._oKey.clone().concat(f)); - } - }); -})(); +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 -(function () { - var u = CryptoJS, - p = u.lib.WordArray; - u.enc.Base64 = { - stringify: function stringify(d) { - var l = d.words, - p = d.sigBytes, - t = this._map; - d.clamp(); - d = []; +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. - for (var r = 0; r < p; r += 3) { - for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++) { - d.push(t.charAt(w >>> 6 * (3 - v) & 63)); - } - } + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ +Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() - if (l = t.charAt(64)) for (; d.length % 4;) { - d.push(l); - } - return d.join(""); - }, - parse: function parse(d) { - var l = d.length, - s = this._map, - t = s.charAt(64); - t && (t = d.indexOf(t), -1 != t && (l = t)); +/* + * Export kMaxLength after typed array support is determined. + */ +exports.kMaxLength = kMaxLength() - for (var t = [], r = 0, w = 0; w < l; w++) { - if (w % 4) { - var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4), - b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4); - t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4); - r++; - } - } +function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } +} - return p.create(t, r); - }, - _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" - }; -})(); +function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff +} -(function (u) { - function p(b, n, a, c, e, j, k) { - b = b + (n & a | ~n & c) + e + k; - return (b << j | b >>> 32 - j) + n; +function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length } - function d(b, n, a, c, e, j, k) { - b = b + (n & c | a & ~c) + e + k; - return (b << j | b >>> 32 - j) + n; + return that +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) } - function l(b, n, a, c, e, j, k) { - b = b + (n ^ a ^ c) + e + k; - return (b << j | b >>> 32 - j) + n; + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) } + return from(this, arg, encodingOrOffset, length) +} - function s(b, n, a, c, e, j, k) { - b = b + (a ^ (n | ~c)) + e + k; - return (b << j | b >>> 32 - j) + n; +Buffer.poolSize = 8192 // not used by this implementation + +// TODO: Legacy, not needed anymore. Remove in next major version. +Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr +} + +function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') } - for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++) { - b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0; + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) } - r = r.MD5 = v.extend({ - _doReset: function _doReset() { - this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878]); - }, - _doProcessBlock: function _doProcessBlock(q, n) { - for (var a = 0; 16 > a; a++) { - var c = n + a, - e = q[c]; - q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360; - } + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } - var a = this._hash.words, - c = q[n + 0], - e = q[n + 1], - j = q[n + 2], - k = q[n + 3], - z = q[n + 4], - r = q[n + 5], - t = q[n + 6], - w = q[n + 7], - v = q[n + 8], - A = q[n + 9], - B = q[n + 10], - C = q[n + 11], - u = q[n + 12], - D = q[n + 13], - E = q[n + 14], - x = q[n + 15], - f = a[0], - m = a[1], - g = a[2], - h = a[3], - f = p(f, m, g, h, c, 7, b[0]), - h = p(h, f, m, g, e, 12, b[1]), - g = p(g, h, f, m, j, 17, b[2]), - m = p(m, g, h, f, k, 22, b[3]), - f = p(f, m, g, h, z, 7, b[4]), - h = p(h, f, m, g, r, 12, b[5]), - g = p(g, h, f, m, t, 17, b[6]), - m = p(m, g, h, f, w, 22, b[7]), - f = p(f, m, g, h, v, 7, b[8]), - h = p(h, f, m, g, A, 12, b[9]), - g = p(g, h, f, m, B, 17, b[10]), - m = p(m, g, h, f, C, 22, b[11]), - f = p(f, m, g, h, u, 7, b[12]), - h = p(h, f, m, g, D, 12, b[13]), - g = p(g, h, f, m, E, 17, b[14]), - m = p(m, g, h, f, x, 22, b[15]), - f = d(f, m, g, h, e, 5, b[16]), - h = d(h, f, m, g, t, 9, b[17]), - g = d(g, h, f, m, C, 14, b[18]), - m = d(m, g, h, f, c, 20, b[19]), - f = d(f, m, g, h, r, 5, b[20]), - h = d(h, f, m, g, B, 9, b[21]), - g = d(g, h, f, m, x, 14, b[22]), - m = d(m, g, h, f, z, 20, b[23]), - f = d(f, m, g, h, A, 5, b[24]), - h = d(h, f, m, g, E, 9, b[25]), - g = d(g, h, f, m, k, 14, b[26]), - m = d(m, g, h, f, v, 20, b[27]), - f = d(f, m, g, h, D, 5, b[28]), - h = d(h, f, m, g, j, 9, b[29]), - g = d(g, h, f, m, w, 14, b[30]), - m = d(m, g, h, f, u, 20, b[31]), - f = l(f, m, g, h, r, 4, b[32]), - h = l(h, f, m, g, v, 11, b[33]), - g = l(g, h, f, m, C, 16, b[34]), - m = l(m, g, h, f, E, 23, b[35]), - f = l(f, m, g, h, e, 4, b[36]), - h = l(h, f, m, g, z, 11, b[37]), - g = l(g, h, f, m, w, 16, b[38]), - m = l(m, g, h, f, B, 23, b[39]), - f = l(f, m, g, h, D, 4, b[40]), - h = l(h, f, m, g, c, 11, b[41]), - g = l(g, h, f, m, k, 16, b[42]), - m = l(m, g, h, f, t, 23, b[43]), - f = l(f, m, g, h, A, 4, b[44]), - h = l(h, f, m, g, u, 11, b[45]), - g = l(g, h, f, m, x, 16, b[46]), - m = l(m, g, h, f, j, 23, b[47]), - f = s(f, m, g, h, c, 6, b[48]), - h = s(h, f, m, g, w, 10, b[49]), - g = s(g, h, f, m, E, 15, b[50]), - m = s(m, g, h, f, r, 21, b[51]), - f = s(f, m, g, h, u, 6, b[52]), - h = s(h, f, m, g, k, 10, b[53]), - g = s(g, h, f, m, B, 15, b[54]), - m = s(m, g, h, f, e, 21, b[55]), - f = s(f, m, g, h, v, 6, b[56]), - h = s(h, f, m, g, x, 10, b[57]), - g = s(g, h, f, m, t, 15, b[58]), - m = s(m, g, h, f, D, 21, b[59]), - f = s(f, m, g, h, z, 6, b[60]), - h = s(h, f, m, g, C, 10, b[61]), - g = s(g, h, f, m, j, 15, b[62]), - m = s(m, g, h, f, A, 21, b[63]); - a[0] = a[0] + f | 0; - a[1] = a[1] + m | 0; - a[2] = a[2] + g | 0; - a[3] = a[3] + h | 0; - }, - _doFinalize: function _doFinalize() { - var b = this._data, - n = b.words, - a = 8 * this._nDataBytes, - c = 8 * b.sigBytes; - n[c >>> 5] |= 128 << 24 - c % 32; - var e = u.floor(a / 4294967296); - n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360; - n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360; - b.sigBytes = 4 * (n.length + 1); + return fromObject(that, value) +} - this._process(); +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } +} - b = this._hash; - n = b.words; +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } +} - for (a = 0; 4 > a; a++) { - c = n[a], n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360; - } +function alloc (that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) +} - return b; - }, - clone: function clone() { - var b = v.clone.call(this); - b._hash = this._hash.clone(); - return b; +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) +} + +function allocUnsafe (that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 } - }); - t.MD5 = v._createHelper(r); - t.HmacMD5 = v._createHmacHelper(r); -})(Math); + } + return that +} -(function () { - var u = CryptoJS, - p = u.lib, - d = p.Base, - l = p.WordArray, - p = u.algo, - s = p.EvpKDF = d.extend({ - cfg: d.extend({ - keySize: 4, - hasher: p.MD5, - iterations: 1 - }), - init: function init(d) { - this.cfg = this.cfg.extend(d); - }, - compute: function compute(d, r) { - for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) { - n && s.update(n); - var n = s.update(d).finalize(r); - s.reset(); +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) +} - for (var a = 1; a < p; a++) { - n = s.finalize(n), s.reset(); - } +function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } - b.concat(n); - } + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } - b.sigBytes = 4 * q; - return b; - } - }); + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) - u.EvpKDF = function (d, l, p) { - return s.create(p).compute(d, l); - }; -})(); + var actual = that.write(string, encoding) -CryptoJS.lib.Cipher || function (u) { - var p = CryptoJS, - d = p.lib, - l = d.Base, - s = d.WordArray, - t = d.BufferedBlockAlgorithm, - r = p.enc.Base64, - w = p.algo.EvpKDF, - v = d.Cipher = t.extend({ - cfg: l.extend(), - createEncryptor: function createEncryptor(e, a) { - return this.create(this._ENC_XFORM_MODE, e, a); - }, - createDecryptor: function createDecryptor(e, a) { - return this.create(this._DEC_XFORM_MODE, e, a); - }, - init: function init(e, a, b) { - this.cfg = this.cfg.extend(b); - this._xformMode = e; - this._key = a; - this.reset(); - }, - reset: function reset() { - t.reset.call(this); + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } - this._doReset(); - }, - process: function process(e) { - this._append(e); + return that +} - return this._process(); - }, - finalize: function finalize(e) { - e && this._append(e); - return this._doFinalize(); - }, - keySize: 4, - ivSize: 4, - _ENC_XFORM_MODE: 1, - _DEC_XFORM_MODE: 2, - _createHelper: function _createHelper(e) { - return { - encrypt: function encrypt(b, k, d) { - return ("string" == typeof k ? c : a).encrypt(e, b, k, d); - }, - decrypt: function decrypt(b, k, d) { - return ("string" == typeof k ? c : a).decrypt(e, b, k, d); - } - }; - } - }); - d.StreamCipher = v.extend({ - _doFinalize: function _doFinalize() { - return this._process(!0); - }, - blockSize: 1 - }); +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that +} - var b = p.mode = {}, - x = function x(e, a, b) { - var c = this._iv; - c ? this._iv = u : c = this._prevBlock; +function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer - for (var d = 0; d < b; d++) { - e[a + d] ^= c[d]; + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that } - }, - q = (d.BlockCipherMode = l.extend({ - createEncryptor: function createEncryptor(e, a) { - return this.Encryptor.create(e, a); - }, - createDecryptor: function createDecryptor(e, a) { - return this.Decryptor.create(e, a); - }, - init: function init(e, a) { - this._cipher = e; - this._iv = a; - } - })).extend(); - q.Encryptor = q.extend({ - processBlock: function processBlock(e, a) { - var b = this._cipher, - c = b.blockSize; - x.call(this, e, a, c); - b.encryptBlock(e, a); - this._prevBlock = e.slice(a, a + c); - } - }); - q.Decryptor = q.extend({ - processBlock: function processBlock(e, a) { - var b = this._cipher, - c = b.blockSize, - d = e.slice(a, a + c); - b.decryptBlock(e, a); - x.call(this, e, a, c); - this._prevBlock = d; - } - }); - b = b.CBC = q; - q = (p.pad = {}).Pkcs7 = { - pad: function pad(a, b) { - for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4) { - l.push(d); + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) } + return fromArrayLike(that, obj) + } - c = s.create(l, c); - a.concat(c); - }, - unpad: function unpad(a) { - a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255; + if (obj.type === 'Buffer' && isArray(obj.data)) { + return fromArrayLike(that, obj.data) } - }; - d.BlockCipher = v.extend({ - cfg: v.cfg.extend({ - mode: b, - padding: q - }), - reset: function reset() { - v.reset.call(this); - var a = this.cfg, - b = a.iv, - a = a.mode; - if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor;else c = a.createDecryptor, this._minBufferSize = 1; - this._mode = c.call(a, this, b && b.words); - }, - _doProcessBlock: function _doProcessBlock(a, b) { - this._mode.processBlock(a, b); - }, - _doFinalize: function _doFinalize() { - var a = this.cfg.padding; + } - if (this._xformMode == this._ENC_XFORM_MODE) { - a.pad(this._data, this.blockSize); + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} - var b = this._process(!0); - } else b = this._process(!0), a.unpad(b); +function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 +} - return b; - }, - blockSize: 4 - }); - var n = d.CipherParams = l.extend({ - init: function init(a) { - this.mixIn(a); - }, - toString: function toString(a) { - return (a || this.formatter).stringify(this); - } - }), - b = (p.format = {}).OpenSSL = { - stringify: function stringify(a) { - var b = a.ciphertext; - a = a.salt; - return (a ? s.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r); - }, - parse: function parse(a) { - a = r.parse(a); - var b = a.words; +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} - if (1398893684 == b[0] && 1701076831 == b[1]) { - var c = s.create(b.slice(2, 4)); - b.splice(0, 4); - a.sigBytes -= 16; - } +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} - return n.create({ - ciphertext: a, - salt: c - }); +Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break } - }, - a = d.SerializableCipher = l.extend({ - cfg: l.extend({ - format: b - }), - encrypt: function encrypt(a, b, c, d) { - d = this.cfg.extend(d); - var l = a.createEncryptor(c, d); - b = l.finalize(b); - l = l.cfg; - return n.create({ - ciphertext: b, - key: c, - iv: l.iv, - algorithm: a, - mode: l.mode, - padding: l.padding, - blockSize: a.blockSize, - formatter: d.format - }); - }, - decrypt: function decrypt(a, b, c, d) { - d = this.cfg.extend(d); - b = this._parse(b, d.format); - return a.createDecryptor(c, d).finalize(b.ciphertext); - }, - _parse: function _parse(a, b) { - return "string" == typeof a ? b.parse(a, this) : a; + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length } - }), - p = (p.kdf = {}).OpenSSL = { - execute: function execute(a, b, c, d) { - d || (d = s.random(8)); - a = w.create({ - keySize: b + c - }).compute(a, d); - c = s.create(a.words.slice(b), 4 * c); - a.sigBytes = 4 * b; - return n.create({ - key: a, - iv: c, - salt: d - }); + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') } - }, - c = d.PasswordBasedCipher = a.extend({ - cfg: a.cfg.extend({ - kdf: p - }), - encrypt: function encrypt(b, c, d, l) { - l = this.cfg.extend(l); - d = l.kdf.execute(d, b.keySize, b.ivSize); - l.iv = d.iv; - b = a.encrypt.call(this, b, c, d.key, l); - b.mixIn(d); - return b; - }, - decrypt: function decrypt(b, c, d, l) { - l = this.cfg.extend(l); - c = this._parse(c, l.format); - d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt); - l.iv = d.iv; - return a.decrypt.call(this, b, c, d.key, l); + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true } - }); -}(); + } +} +Buffer.byteLength = byteLength -(function () { - for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++) { - a[c] = 128 > c ? c << 1 : c << 1 ^ 283; +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' } - for (var e = 0, j = 0, c = 0; 256 > c; c++) { - var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4, - k = k >>> 8 ^ k & 255 ^ 99; - l[e] = k; - s[k] = e; - var z = a[e], - F = a[z], - G = a[F], - y = 257 * a[k] ^ 16843008 * k; - t[e] = y << 24 | y >>> 8; - r[e] = y << 16 | y >>> 16; - w[e] = y << 8 | y >>> 24; - v[e] = y; - y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e; - b[k] = y << 24 | y >>> 8; - x[k] = y << 16 | y >>> 16; - q[k] = y << 8 | y >>> 24; - n[k] = y; - e ? (e = z ^ a[a[a[G ^ z]]], j ^= a[a[j]]) : e = j = 1; + if (end === undefined || end > this.length) { + end = this.length } - var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], - d = d.AES = p.extend({ - _doReset: function _doReset() { - for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++) { - if (j < d) e[j] = c[j];else { - var k = e[j - 1]; - j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24, k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255], k ^= H[j / d | 0] << 24); - e[j] = e[j - d] ^ k; - } - } + if (end <= 0) { + return '' + } - c = this._invKeySchedule = []; + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 - for (d = 0; d < a; d++) { - j = a - d, k = d % 4 ? e[j] : e[j - 4], c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>> 8 & 255]] ^ n[l[k & 255]]; - } - }, - encryptBlock: function encryptBlock(a, b) { - this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l); - }, - decryptBlock: function decryptBlock(a, c) { - var d = a[c + 1]; - a[c + 1] = a[c + 3]; - a[c + 3] = d; + if (end <= start) { + return '' + } - this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s); + if (!encoding) encoding = 'utf8' - d = a[c + 1]; - a[c + 1] = a[c + 3]; - a[c + 3] = d; - }, - _doCryptBlock: function _doCryptBlock(a, b, c, d, e, j, l, f) { - for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++) { - var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++], - s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++], - t = d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++], - n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++], - g = q, - h = s, - k = t; - } + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) - q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++]; - s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++]; - t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++]; - n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++]; - a[b] = q; - a[b + 1] = s; - a[b + 2] = t; - a[b + 3] = n; - }, - keySize: 8 - }); - u.AES = p._createHelper(d); -})(); + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) -CryptoJS.mode.ECB = function () { - var ECB = CryptoJS.lib.BlockCipherMode.extend(); - ECB.Encryptor = ECB.extend({ - processBlock: function processBlock(words, offset) { - this._cipher.encryptBlock(words, offset); - } - }); - ECB.Decryptor = ECB.extend({ - processBlock: function processBlock(words, offset) { - this._cipher.decryptBlock(words, offset); - } - }); - return ECB; -}(); + case 'ascii': + return asciiSlice(this, start, end) -module.exports = CryptoJS; + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { + case 'base64': + return base64Slice(this, start, end) -"use strict"; + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; +// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect +// Buffer instances. +Buffer.prototype._isBuffer = true -var _flow_interfaces = __webpack_require__(1); +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} -var _categories = _interopRequireDefault(__webpack_require__(4)); +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} -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, descriptor.key, descriptor); } } +Buffer.prototype.toString = function toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' +} -var _default = function () { - function _default() { - _classCallCheck(this, _default); +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } - _defineProperty(this, "_listeners", void 0); + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } - this._listeners = []; + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') } - _createClass(_default, [{ - key: "addListener", - value: function addListener(newListeners) { - this._listeners.push(newListeners); - } - }, { - key: "removeListener", - value: function removeListener(deprecatedListener) { - var newListeners = []; + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } - this._listeners.forEach(function (listener) { - if (listener !== deprecatedListener) newListeners.push(listener); - }); + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 - this._listeners = newListeners; - } - }, { - key: "removeAllListeners", - value: function removeAllListeners() { - this._listeners = []; - } - }, { - key: "announcePresence", - value: function announcePresence(announce) { - this._listeners.forEach(function (listener) { - if (listener.presence) listener.presence(announce); - }); - } - }, { - key: "announceStatus", - value: function announceStatus(announce) { - this._listeners.forEach(function (listener) { - if (listener.status) listener.status(announce); - }); - } - }, { - key: "announceMessage", - value: function announceMessage(announce) { - this._listeners.forEach(function (listener) { - if (listener.message) listener.message(announce); - }); - } - }, { - key: "announceSignal", - value: function announceSignal(announce) { - this._listeners.forEach(function (listener) { - if (listener.signal) listener.signal(announce); - }); - } - }, { - key: "announceMessageAction", - value: function announceMessageAction(announce) { - this._listeners.forEach(function (listener) { - if (listener.messageAction) listener.messageAction(announce); - }); - } - }, { - key: "announceObjects", - value: function announceObjects(announce) { - this._listeners.forEach(function (listener) { - if (listener.objects) listener.objects(announce); - }); + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break } - }, { - key: "announceUser", - value: function announceUser(announce) { - this._listeners.forEach(function (listener) { - if (listener.user) listener.user(announce); - }); + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } } - }, { - key: "announceSpace", - value: function announceSpace(announce) { - this._listeners.forEach(function (listener) { - if (listener.space) listener.space(announce); - }); + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 } - }, { - key: "announceMembership", - value: function announceMembership(announce) { - this._listeners.forEach(function (listener) { - if (listener.membership) listener.membership(announce); - }); + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) } - }, { - key: "announceNetworkUp", - value: function announceNetworkUp() { - var networkStatus = {}; - networkStatus.category = _categories["default"].PNNetworkUpCategory; - this.announceStatus(networkStatus); + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } } - }, { - key: "announceNetworkDown", - value: function announceNetworkDown() { - var networkStatus = {}; - networkStatus.category = _categories["default"].PNNetworkDownCategory; - this.announceStatus(networkStatus); + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i } - }]); - - return _default; -}(); - -exports["default"] = _default; -module.exports = exports.default; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { + } -"use strict"; + return -1 +} +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.prepareParams = prepareParams; -exports.isAuthSupported = isAuthSupported; -exports.handleResponse = handleResponse; -exports.validateParams = validateParams; +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} -var _flow_interfaces = __webpack_require__(1); +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} -var _operations = _interopRequireDefault(__webpack_require__(0)); +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') -function getOperation() { - return _operations["default"].PNTimeOperation; + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (isNaN(parsed)) return i + buf[offset + i] = parsed + } + return i } -function getURL() { - return '/time/0'; +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) } -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) } -function prepareParams() { - return {}; +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) } -function isAuthSupported() { - return false; +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) } -function handleResponse(modules, serverResponse) { - return { - timetoken: serverResponse[0] - }; +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) } -function validateParams() {} - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } -"use strict"; + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } -/** - * Check if `obj` is an object. - * - * @param {Object} obj - * @return {Boolean} - * @api private - */ + if (!encoding) encoding = 'utf8' -function isObject(obj) { - return null !== obj && 'object' === typeof obj; -} + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) -module.exports = isObject; + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + case 'ascii': + return asciiWrite(this, string, offset, length) -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) -"use strict"; + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} -var _cborJs = _interopRequireDefault(__webpack_require__(12)); +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] -var _pubnubCommon = _interopRequireDefault(__webpack_require__(13)); + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 -var _networking = _interopRequireDefault(__webpack_require__(81)); + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint -var _hmacSha = _interopRequireDefault(__webpack_require__(7)); + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } -var _web = _interopRequireDefault(__webpack_require__(82)); + res.push(codePoint) + i += bytesPerSequence + } -var _common = _interopRequireDefault(__webpack_require__(83)); + return decodeCodePointsArray(res) +} -var _webNode = __webpack_require__(84); +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 -var _flow_interfaces = __webpack_require__(1); +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} -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 hexSlice (buf, start, end) { + var len = buf.length -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len -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); } + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} -function sendBeacon(url) { - if (navigator && navigator.sendBeacon) { - navigator.sendBeacon(url); - } else { - return false; +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) } + return res } -function base64ToBinary(base64String) { - var parsedWordArray = _hmacSha["default"].enc.Base64.parse(base64String).words; +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end - var arrayBuffer = new ArrayBuffer(parsedWordArray.length * 4); - var view = new Uint8Array(arrayBuffer); - var filledArrayBuffer = null; - var zeroBytesCount = 0; - var byteOffset = 0; + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } - for (var wordIdx = 0; wordIdx < parsedWordArray.length; wordIdx += 1) { - var word = parsedWordArray[wordIdx]; - byteOffset = wordIdx * 4; - view[byteOffset] = (word & 0xff000000) >> 24; - view[byteOffset + 1] = (word & 0x00ff0000) >> 16; - view[byteOffset + 2] = (word & 0x0000ff00) >> 8; - view[byteOffset + 3] = word & 0x000000ff; + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len } - for (var byteIdx = byteOffset + 3; byteIdx >= byteOffset; byteIdx -= 1) { - if (view[byteIdx] === 0) { - zeroBytesCount += 1; + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] } } - if (zeroBytesCount > 0) { - filledArrayBuffer = view.buffer.slice(0, view.byteLength - zeroBytesCount); + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 +} + +function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) } else { - filledArrayBuffer = view.buffer; + objectWriteUInt16(this, value, offset, true) } + return offset + 2 +} - return filledArrayBuffer; +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 } -function stringifyBufferKeys(obj) { - var isObject = function isObject(value) { - return value && _typeof(value) === 'object' && value.constructor === Object; - }; +function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } +} - var isString = function isString(value) { - return typeof value === 'string' || value instanceof String; - }; +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} - var isNumber = function isNumber(value) { - return typeof value === 'number' && isFinite(value); - }; +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) - if (!isObject(obj)) { - return obj; + checkInt(this, value, offset, byteLength, limit - 1, -limit) } - var normalizedObject = {}; - Object.keys(obj).forEach(function (key) { - var keyIsString = isString(key); - var stringifiedKey = key; - var value = obj[key]; + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } - if (Array.isArray(key) || keyIsString && key.indexOf(',') >= 0) { - var bytes = keyIsString ? key.split(',') : key; - stringifiedKey = bytes.reduce(function (string, _byte) { - string += String.fromCharCode(_byte); - return string; - }, ''); - } else if (isNumber(key) || keyIsString && !isNaN(key)) { - stringifiedKey = String.fromCharCode(keyIsString ? parseInt(key, 10) : 10); + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } - normalizedObject[stringifiedKey] = isObject(value) ? stringifyBufferKeys(value) : value; - }); - return normalizedObject; + return offset + byteLength } -var _default = function (_PubNubCore) { - _inherits(_default, _PubNubCore); +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} - function _default(setup) { - var _this; +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 +} - _classCallCheck(this, _default); +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 +} - var _setup$listenToBrowse = setup.listenToBrowserNetworkEvents, - listenToBrowserNetworkEvents = _setup$listenToBrowse === void 0 ? true : _setup$listenToBrowse; - setup.db = _web["default"]; - setup.sdkFamily = 'Web'; - setup.networking = new _networking["default"]({ - del: _webNode.del, - get: _webNode.get, - post: _webNode.post, - patch: _webNode.patch, - sendBeacon: sendBeacon - }); - setup.cbor = new _common["default"](function (arrayBuffer) { - return stringifyBufferKeys(_cborJs["default"].decode(arrayBuffer)); - }, base64ToBinary); - _this = _possibleConstructorReturn(this, _getPrototypeOf(_default).call(this, setup)); +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} - if (listenToBrowserNetworkEvents) { - window.addEventListener('offline', function () { - _this.networkDownDetected(); - }); - window.addEventListener('online', function () { - _this.networkUpDetected(); - }); - } +function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} - return _this; +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} - return _default; -}(_pubnubCommon["default"]); +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} -exports["default"] = _default; -module.exports = exports.default; +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start -var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* - * The MIT License (MIT) - * - * Copyright (c) 2014 Patrick Gansterer - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(33))) + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var CryptoJS = CryptoJS || function (h, s) { + var f = {}, + g = f.lib = {}, + q = function q() {}, + m = g.Base = { + extend: function extend(a) { + q.prototype = this; + var c = new q(); + a && c.mixIn(a); + c.hasOwnProperty("init") || (c.init = function () { + c.$super.init.apply(this, arguments); + }); + c.init.prototype = c; + c.$super = this; + return c; + }, + create: function create() { + var a = this.extend(); + a.init.apply(a, arguments); + return a; + }, + init: function init() {}, + mixIn: function mixIn(a) { + for (var c in a) { + a.hasOwnProperty(c) && (this[c] = a[c]); + } + + a.hasOwnProperty("toString") && (this.toString = a.toString); + }, + clone: function clone() { + return this.init.prototype.extend(this); + } + }, + r = g.WordArray = m.extend({ + init: function init(a, c) { + a = this.words = a || []; + this.sigBytes = c != s ? c : 4 * a.length; + }, + toString: function toString(a) { + return (a || k).stringify(this); + }, + concat: function concat(a) { + var c = this.words, + d = a.words, + b = this.sigBytes; + a = a.sigBytes; + this.clamp(); + if (b % 4) for (var e = 0; e < a; e++) { + c[b + e >>> 2] |= (d[e >>> 2] >>> 24 - 8 * (e % 4) & 255) << 24 - 8 * ((b + e) % 4); + } else if (65535 < d.length) for (e = 0; e < a; e += 4) { + c[b + e >>> 2] = d[e >>> 2]; + } else c.push.apply(c, d); + this.sigBytes += a; + return this; + }, + clamp: function clamp() { + var a = this.words, + c = this.sigBytes; + a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4); + a.length = h.ceil(c / 4); + }, + clone: function clone() { + var a = m.clone.call(this); + a.words = this.words.slice(0); + return a; + }, + random: function random(a) { + for (var c = [], d = 0; d < a; d += 4) { + c.push(4294967296 * h.random() | 0); + } + + return new r.init(c, a); + } + }), + l = f.enc = {}, + k = l.Hex = { + stringify: function stringify(a) { + var c = a.words; + a = a.sigBytes; + + for (var d = [], b = 0; b < a; b++) { + var e = c[b >>> 2] >>> 24 - 8 * (b % 4) & 255; + d.push((e >>> 4).toString(16)); + d.push((e & 15).toString(16)); + } + + return d.join(""); + }, + parse: function parse(a) { + for (var c = a.length, d = [], b = 0; b < c; b += 2) { + d[b >>> 3] |= parseInt(a.substr(b, 2), 16) << 24 - 4 * (b % 8); + } + + return new r.init(d, c / 2); + } + }, + n = l.Latin1 = { + stringify: function stringify(a) { + var c = a.words; + a = a.sigBytes; + + for (var d = [], b = 0; b < a; b++) { + d.push(String.fromCharCode(c[b >>> 2] >>> 24 - 8 * (b % 4) & 255)); + } + + return d.join(""); + }, + parse: function parse(a) { + for (var c = a.length, d = [], b = 0; b < c; b++) { + d[b >>> 2] |= (a.charCodeAt(b) & 255) << 24 - 8 * (b % 4); + } + + return new r.init(d, c); + } + }, + j = l.Utf8 = { + stringify: function stringify(a) { + try { + return decodeURIComponent(escape(n.stringify(a))); + } catch (c) { + throw Error("Malformed UTF-8 data"); + } + }, + parse: function parse(a) { + return n.parse(unescape(encodeURIComponent(a))); + } + }, + u = g.BufferedBlockAlgorithm = m.extend({ + reset: function reset() { + this._data = new r.init(); + this._nDataBytes = 0; + }, + _append: function _append(a) { + "string" == typeof a && (a = j.parse(a)); + + this._data.concat(a); + + this._nDataBytes += a.sigBytes; + }, + _process: function _process(a) { + var c = this._data, + d = c.words, + b = c.sigBytes, + e = this.blockSize, + f = b / (4 * e), + f = a ? h.ceil(f) : h.max((f | 0) - this._minBufferSize, 0); + a = f * e; + b = h.min(4 * a, b); + + if (a) { + for (var g = 0; g < a; g += e) { + this._doProcessBlock(d, g); + } + + g = d.splice(0, a); + c.sigBytes -= b; + } + + return new r.init(g, b); + }, + clone: function clone() { + var a = m.clone.call(this); + a._data = this._data.clone(); + return a; + }, + _minBufferSize: 0 + }); + + g.Hasher = u.extend({ + cfg: m.extend(), + init: function init(a) { + this.cfg = this.cfg.extend(a); + this.reset(); + }, + reset: function reset() { + u.reset.call(this); + + this._doReset(); + }, + update: function update(a) { + this._append(a); + + this._process(); + + return this; + }, + finalize: function finalize(a) { + a && this._append(a); + return this._doFinalize(); + }, + blockSize: 16, + _createHelper: function _createHelper(a) { + return function (c, d) { + return new a.init(d).finalize(c); + }; + }, + _createHmacHelper: function _createHmacHelper(a) { + return function (c, d) { + return new t.HMAC.init(a, d).finalize(c); + }; + } + }); + var t = f.algo = {}; + return f; +}(Math); + +(function (h) { + for (var s = CryptoJS, f = s.lib, g = f.WordArray, q = f.Hasher, f = s.algo, m = [], r = [], l = function l(a) { + return 4294967296 * (a - (a | 0)) | 0; + }, k = 2, n = 0; 64 > n;) { + var j; + + a: { + j = k; + + for (var u = h.sqrt(j), t = 2; t <= u; t++) { + if (!(j % t)) { + j = !1; + break a; + } + } + + j = !0; + } + + j && (8 > n && (m[n] = l(h.pow(k, 0.5))), r[n] = l(h.pow(k, 1 / 3)), n++); + k++; + } + + var a = [], + f = f.SHA256 = q.extend({ + _doReset: function _doReset() { + this._hash = new g.init(m.slice(0)); + }, + _doProcessBlock: function _doProcessBlock(c, d) { + for (var b = this._hash.words, e = b[0], f = b[1], g = b[2], j = b[3], h = b[4], m = b[5], n = b[6], q = b[7], p = 0; 64 > p; p++) { + if (16 > p) a[p] = c[d + p] | 0;else { + var k = a[p - 15], + l = a[p - 2]; + a[p] = ((k << 25 | k >>> 7) ^ (k << 14 | k >>> 18) ^ k >>> 3) + a[p - 7] + ((l << 15 | l >>> 17) ^ (l << 13 | l >>> 19) ^ l >>> 10) + a[p - 16]; + } + k = q + ((h << 26 | h >>> 6) ^ (h << 21 | h >>> 11) ^ (h << 7 | h >>> 25)) + (h & m ^ ~h & n) + r[p] + a[p]; + l = ((e << 30 | e >>> 2) ^ (e << 19 | e >>> 13) ^ (e << 10 | e >>> 22)) + (e & f ^ e & g ^ f & g); + q = n; + n = m; + m = h; + h = j + k | 0; + j = g; + g = f; + f = e; + e = k + l | 0; + } + + b[0] = b[0] + e | 0; + b[1] = b[1] + f | 0; + b[2] = b[2] + g | 0; + b[3] = b[3] + j | 0; + b[4] = b[4] + h | 0; + b[5] = b[5] + m | 0; + b[6] = b[6] + n | 0; + b[7] = b[7] + q | 0; + }, + _doFinalize: function _doFinalize() { + var a = this._data, + d = a.words, + b = 8 * this._nDataBytes, + e = 8 * a.sigBytes; + d[e >>> 5] |= 128 << 24 - e % 32; + d[(e + 64 >>> 9 << 4) + 14] = h.floor(b / 4294967296); + d[(e + 64 >>> 9 << 4) + 15] = b; + a.sigBytes = 4 * d.length; + + this._process(); + + return this._hash; + }, + clone: function clone() { + var a = q.clone.call(this); + a._hash = this._hash.clone(); + return a; + } + }); + s.SHA256 = q._createHelper(f); + s.HmacSHA256 = q._createHmacHelper(f); +})(Math); + +(function () { + var h = CryptoJS, + s = h.enc.Utf8; + h.algo.HMAC = h.lib.Base.extend({ + init: function init(f, g) { + f = this._hasher = new f.init(); + "string" == typeof g && (g = s.parse(g)); + var h = f.blockSize, + m = 4 * h; + g.sigBytes > m && (g = f.finalize(g)); + g.clamp(); + + for (var r = this._oKey = g.clone(), l = this._iKey = g.clone(), k = r.words, n = l.words, j = 0; j < h; j++) { + k[j] ^= 1549556828, n[j] ^= 909522486; + } + + r.sigBytes = l.sigBytes = m; + this.reset(); + }, + reset: function reset() { + var f = this._hasher; + f.reset(); + f.update(this._iKey); + }, + update: function update(f) { + this._hasher.update(f); + + return this; + }, + finalize: function finalize(f) { + var g = this._hasher; + f = g.finalize(f); + g.reset(); + return g.finalize(this._oKey.clone().concat(f)); + } + }); +})(); + +(function () { + var u = CryptoJS, + p = u.lib.WordArray; + u.enc.Base64 = { + stringify: function stringify(d) { + var l = d.words, + p = d.sigBytes, + t = this._map; + d.clamp(); + d = []; + + for (var r = 0; r < p; r += 3) { + for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++) { + d.push(t.charAt(w >>> 6 * (3 - v) & 63)); + } + } + + if (l = t.charAt(64)) for (; d.length % 4;) { + d.push(l); + } + return d.join(""); + }, + parse: function parse(d) { + var l = d.length, + s = this._map, + t = s.charAt(64); + t && (t = d.indexOf(t), -1 != t && (l = t)); + + for (var t = [], r = 0, w = 0; w < l; w++) { + if (w % 4) { + var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4), + b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4); + t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4); + r++; + } + } + + return p.create(t, r); + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" + }; +})(); + +(function (u) { + function p(b, n, a, c, e, j, k) { + b = b + (n & a | ~n & c) + e + k; + return (b << j | b >>> 32 - j) + n; + } + + function d(b, n, a, c, e, j, k) { + b = b + (n & c | a & ~c) + e + k; + return (b << j | b >>> 32 - j) + n; + } + + function l(b, n, a, c, e, j, k) { + b = b + (n ^ a ^ c) + e + k; + return (b << j | b >>> 32 - j) + n; + } + + function s(b, n, a, c, e, j, k) { + b = b + (a ^ (n | ~c)) + e + k; + return (b << j | b >>> 32 - j) + n; + } + + for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++) { + b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0; + } + + r = r.MD5 = v.extend({ + _doReset: function _doReset() { + this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878]); + }, + _doProcessBlock: function _doProcessBlock(q, n) { + for (var a = 0; 16 > a; a++) { + var c = n + a, + e = q[c]; + q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360; + } + + var a = this._hash.words, + c = q[n + 0], + e = q[n + 1], + j = q[n + 2], + k = q[n + 3], + z = q[n + 4], + r = q[n + 5], + t = q[n + 6], + w = q[n + 7], + v = q[n + 8], + A = q[n + 9], + B = q[n + 10], + C = q[n + 11], + u = q[n + 12], + D = q[n + 13], + E = q[n + 14], + x = q[n + 15], + f = a[0], + m = a[1], + g = a[2], + h = a[3], + f = p(f, m, g, h, c, 7, b[0]), + h = p(h, f, m, g, e, 12, b[1]), + g = p(g, h, f, m, j, 17, b[2]), + m = p(m, g, h, f, k, 22, b[3]), + f = p(f, m, g, h, z, 7, b[4]), + h = p(h, f, m, g, r, 12, b[5]), + g = p(g, h, f, m, t, 17, b[6]), + m = p(m, g, h, f, w, 22, b[7]), + f = p(f, m, g, h, v, 7, b[8]), + h = p(h, f, m, g, A, 12, b[9]), + g = p(g, h, f, m, B, 17, b[10]), + m = p(m, g, h, f, C, 22, b[11]), + f = p(f, m, g, h, u, 7, b[12]), + h = p(h, f, m, g, D, 12, b[13]), + g = p(g, h, f, m, E, 17, b[14]), + m = p(m, g, h, f, x, 22, b[15]), + f = d(f, m, g, h, e, 5, b[16]), + h = d(h, f, m, g, t, 9, b[17]), + g = d(g, h, f, m, C, 14, b[18]), + m = d(m, g, h, f, c, 20, b[19]), + f = d(f, m, g, h, r, 5, b[20]), + h = d(h, f, m, g, B, 9, b[21]), + g = d(g, h, f, m, x, 14, b[22]), + m = d(m, g, h, f, z, 20, b[23]), + f = d(f, m, g, h, A, 5, b[24]), + h = d(h, f, m, g, E, 9, b[25]), + g = d(g, h, f, m, k, 14, b[26]), + m = d(m, g, h, f, v, 20, b[27]), + f = d(f, m, g, h, D, 5, b[28]), + h = d(h, f, m, g, j, 9, b[29]), + g = d(g, h, f, m, w, 14, b[30]), + m = d(m, g, h, f, u, 20, b[31]), + f = l(f, m, g, h, r, 4, b[32]), + h = l(h, f, m, g, v, 11, b[33]), + g = l(g, h, f, m, C, 16, b[34]), + m = l(m, g, h, f, E, 23, b[35]), + f = l(f, m, g, h, e, 4, b[36]), + h = l(h, f, m, g, z, 11, b[37]), + g = l(g, h, f, m, w, 16, b[38]), + m = l(m, g, h, f, B, 23, b[39]), + f = l(f, m, g, h, D, 4, b[40]), + h = l(h, f, m, g, c, 11, b[41]), + g = l(g, h, f, m, k, 16, b[42]), + m = l(m, g, h, f, t, 23, b[43]), + f = l(f, m, g, h, A, 4, b[44]), + h = l(h, f, m, g, u, 11, b[45]), + g = l(g, h, f, m, x, 16, b[46]), + m = l(m, g, h, f, j, 23, b[47]), + f = s(f, m, g, h, c, 6, b[48]), + h = s(h, f, m, g, w, 10, b[49]), + g = s(g, h, f, m, E, 15, b[50]), + m = s(m, g, h, f, r, 21, b[51]), + f = s(f, m, g, h, u, 6, b[52]), + h = s(h, f, m, g, k, 10, b[53]), + g = s(g, h, f, m, B, 15, b[54]), + m = s(m, g, h, f, e, 21, b[55]), + f = s(f, m, g, h, v, 6, b[56]), + h = s(h, f, m, g, x, 10, b[57]), + g = s(g, h, f, m, t, 15, b[58]), + m = s(m, g, h, f, D, 21, b[59]), + f = s(f, m, g, h, z, 6, b[60]), + h = s(h, f, m, g, C, 10, b[61]), + g = s(g, h, f, m, j, 15, b[62]), + m = s(m, g, h, f, A, 21, b[63]); + a[0] = a[0] + f | 0; + a[1] = a[1] + m | 0; + a[2] = a[2] + g | 0; + a[3] = a[3] + h | 0; + }, + _doFinalize: function _doFinalize() { + var b = this._data, + n = b.words, + a = 8 * this._nDataBytes, + c = 8 * b.sigBytes; + n[c >>> 5] |= 128 << 24 - c % 32; + var e = u.floor(a / 4294967296); + n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360; + n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360; + b.sigBytes = 4 * (n.length + 1); + + this._process(); + + b = this._hash; + n = b.words; + + for (a = 0; 4 > a; a++) { + c = n[a], n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360; + } + + return b; + }, + clone: function clone() { + var b = v.clone.call(this); + b._hash = this._hash.clone(); + return b; + } + }); + t.MD5 = v._createHelper(r); + t.HmacMD5 = v._createHmacHelper(r); +})(Math); + +(function () { + var u = CryptoJS, + p = u.lib, + d = p.Base, + l = p.WordArray, + p = u.algo, + s = p.EvpKDF = d.extend({ + cfg: d.extend({ + keySize: 4, + hasher: p.MD5, + iterations: 1 + }), + init: function init(d) { + this.cfg = this.cfg.extend(d); + }, + compute: function compute(d, r) { + for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) { + n && s.update(n); + var n = s.update(d).finalize(r); + s.reset(); + + for (var a = 1; a < p; a++) { + n = s.finalize(n), s.reset(); + } + + b.concat(n); + } + + b.sigBytes = 4 * q; + return b; + } + }); + + u.EvpKDF = function (d, l, p) { + return s.create(p).compute(d, l); + }; +})(); + +CryptoJS.lib.Cipher || function (u) { + var p = CryptoJS, + d = p.lib, + l = d.Base, + s = d.WordArray, + t = d.BufferedBlockAlgorithm, + r = p.enc.Base64, + w = p.algo.EvpKDF, + v = d.Cipher = t.extend({ + cfg: l.extend(), + createEncryptor: function createEncryptor(e, a) { + return this.create(this._ENC_XFORM_MODE, e, a); + }, + createDecryptor: function createDecryptor(e, a) { + return this.create(this._DEC_XFORM_MODE, e, a); + }, + init: function init(e, a, b) { + this.cfg = this.cfg.extend(b); + this._xformMode = e; + this._key = a; + this.reset(); + }, + reset: function reset() { + t.reset.call(this); + + this._doReset(); + }, + process: function process(e) { + this._append(e); + + return this._process(); + }, + finalize: function finalize(e) { + e && this._append(e); + return this._doFinalize(); + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function _createHelper(e) { + return { + encrypt: function encrypt(b, k, d) { + return ("string" == typeof k ? c : a).encrypt(e, b, k, d); + }, + decrypt: function decrypt(b, k, d) { + return ("string" == typeof k ? c : a).decrypt(e, b, k, d); + } + }; + } + }); + d.StreamCipher = v.extend({ + _doFinalize: function _doFinalize() { + return this._process(!0); + }, + blockSize: 1 + }); + + var b = p.mode = {}, + x = function x(e, a, b) { + var c = this._iv; + c ? this._iv = u : c = this._prevBlock; + + for (var d = 0; d < b; d++) { + e[a + d] ^= c[d]; + } + }, + q = (d.BlockCipherMode = l.extend({ + createEncryptor: function createEncryptor(e, a) { + return this.Encryptor.create(e, a); + }, + createDecryptor: function createDecryptor(e, a) { + return this.Decryptor.create(e, a); + }, + init: function init(e, a) { + this._cipher = e; + this._iv = a; + } + })).extend(); + + q.Encryptor = q.extend({ + processBlock: function processBlock(e, a) { + var b = this._cipher, + c = b.blockSize; + x.call(this, e, a, c); + b.encryptBlock(e, a); + this._prevBlock = e.slice(a, a + c); + } + }); + q.Decryptor = q.extend({ + processBlock: function processBlock(e, a) { + var b = this._cipher, + c = b.blockSize, + d = e.slice(a, a + c); + b.decryptBlock(e, a); + x.call(this, e, a, c); + this._prevBlock = d; + } + }); + b = b.CBC = q; + q = (p.pad = {}).Pkcs7 = { + pad: function pad(a, b) { + for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4) { + l.push(d); + } + + c = s.create(l, c); + a.concat(c); + }, + unpad: function unpad(a) { + a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255; + } + }; + d.BlockCipher = v.extend({ + cfg: v.cfg.extend({ + mode: b, + padding: q + }), + reset: function reset() { + v.reset.call(this); + var a = this.cfg, + b = a.iv, + a = a.mode; + if (this._xformMode == this._ENC_XFORM_MODE) var c = a.createEncryptor;else c = a.createDecryptor, this._minBufferSize = 1; + this._mode = c.call(a, this, b && b.words); + }, + _doProcessBlock: function _doProcessBlock(a, b) { + this._mode.processBlock(a, b); + }, + _doFinalize: function _doFinalize() { + var a = this.cfg.padding; + + if (this._xformMode == this._ENC_XFORM_MODE) { + a.pad(this._data, this.blockSize); + + var b = this._process(!0); + } else b = this._process(!0), a.unpad(b); + + return b; + }, + blockSize: 4 + }); + var n = d.CipherParams = l.extend({ + init: function init(a) { + this.mixIn(a); + }, + toString: function toString(a) { + return (a || this.formatter).stringify(this); + } + }), + b = (p.format = {}).OpenSSL = { + stringify: function stringify(a) { + var b = a.ciphertext; + a = a.salt; + return (a ? s.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r); + }, + parse: function parse(a) { + a = r.parse(a); + var b = a.words; + + if (1398893684 == b[0] && 1701076831 == b[1]) { + var c = s.create(b.slice(2, 4)); + b.splice(0, 4); + a.sigBytes -= 16; + } + + return n.create({ + ciphertext: a, + salt: c + }); + } + }, + a = d.SerializableCipher = l.extend({ + cfg: l.extend({ + format: b + }), + encrypt: function encrypt(a, b, c, d) { + d = this.cfg.extend(d); + var l = a.createEncryptor(c, d); + b = l.finalize(b); + l = l.cfg; + return n.create({ + ciphertext: b, + key: c, + iv: l.iv, + algorithm: a, + mode: l.mode, + padding: l.padding, + blockSize: a.blockSize, + formatter: d.format + }); + }, + decrypt: function decrypt(a, b, c, d) { + d = this.cfg.extend(d); + b = this._parse(b, d.format); + return a.createDecryptor(c, d).finalize(b.ciphertext); + }, + _parse: function _parse(a, b) { + return "string" == typeof a ? b.parse(a, this) : a; + } + }), + p = (p.kdf = {}).OpenSSL = { + execute: function execute(a, b, c, d) { + d || (d = s.random(8)); + a = w.create({ + keySize: b + c + }).compute(a, d); + c = s.create(a.words.slice(b), 4 * c); + a.sigBytes = 4 * b; + return n.create({ + key: a, + iv: c, + salt: d + }); + } + }, + c = d.PasswordBasedCipher = a.extend({ + cfg: a.cfg.extend({ + kdf: p + }), + encrypt: function encrypt(b, c, d, l) { + l = this.cfg.extend(l); + d = l.kdf.execute(d, b.keySize, b.ivSize); + l.iv = d.iv; + b = a.encrypt.call(this, b, c, d.key, l); + b.mixIn(d); + return b; + }, + decrypt: function decrypt(b, c, d, l) { + l = this.cfg.extend(l); + c = this._parse(c, l.format); + d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt); + l.iv = d.iv; + return a.decrypt.call(this, b, c, d.key, l); + } + }); +}(); + +(function () { + for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++) { + a[c] = 128 > c ? c << 1 : c << 1 ^ 283; + } + + for (var e = 0, j = 0, c = 0; 256 > c; c++) { + var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4, + k = k >>> 8 ^ k & 255 ^ 99; + l[e] = k; + s[k] = e; + var z = a[e], + F = a[z], + G = a[F], + y = 257 * a[k] ^ 16843008 * k; + t[e] = y << 24 | y >>> 8; + r[e] = y << 16 | y >>> 16; + w[e] = y << 8 | y >>> 24; + v[e] = y; + y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e; + b[k] = y << 24 | y >>> 8; + x[k] = y << 16 | y >>> 16; + q[k] = y << 8 | y >>> 24; + n[k] = y; + e ? (e = z ^ a[a[a[G ^ z]]], j ^= a[a[j]]) : e = j = 1; + } + + var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], + d = d.AES = p.extend({ + _doReset: function _doReset() { + for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++) { + if (j < d) e[j] = c[j];else { + var k = e[j - 1]; + j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24, k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255], k ^= H[j / d | 0] << 24); + e[j] = e[j - d] ^ k; + } + } + + c = this._invKeySchedule = []; + + for (d = 0; d < a; d++) { + j = a - d, k = d % 4 ? e[j] : e[j - 4], c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>> 8 & 255]] ^ n[l[k & 255]]; + } + }, + encryptBlock: function encryptBlock(a, b) { + this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l); + }, + decryptBlock: function decryptBlock(a, c) { + var d = a[c + 1]; + a[c + 1] = a[c + 3]; + a[c + 3] = d; + + this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s); + + d = a[c + 1]; + a[c + 1] = a[c + 3]; + a[c + 3] = d; + }, + _doCryptBlock: function _doCryptBlock(a, b, c, d, e, j, l, f) { + for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++) { + var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++], + s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++], + t = d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++], + n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++], + g = q, + h = s, + k = t; + } + + q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++]; + s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++]; + t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++]; + n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++]; + a[b] = q; + a[b + 1] = s; + a[b + 2] = t; + a[b + 3] = n; + }, + keySize: 8 + }); + u.AES = p._createHelper(d); +})(); + +CryptoJS.mode.ECB = function () { + var ECB = CryptoJS.lib.BlockCipherMode.extend(); + ECB.Encryptor = ECB.extend({ + processBlock: function processBlock(words, offset) { + this._cipher.encryptBlock(words, offset); + } + }); + ECB.Decryptor = ECB.extend({ + processBlock: function processBlock(words, offset) { + this._cipher.decryptBlock(words, offset); + } + }); + return ECB; +}(); + +module.exports = CryptoJS; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); + +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); + +var _flow_interfaces = __webpack_require__(2); + +var _categories = _interopRequireDefault(__webpack_require__(13)); + +var _default = function () { + function _default() { + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_listeners", void 0); + this._listeners = []; + } + + (0, _createClass2["default"])(_default, [{ + key: "addListener", + value: function addListener(newListeners) { + this._listeners.push(newListeners); + } + }, { + key: "removeListener", + value: function removeListener(deprecatedListener) { + var newListeners = []; + + this._listeners.forEach(function (listener) { + if (listener !== deprecatedListener) newListeners.push(listener); + }); + + this._listeners = newListeners; + } + }, { + key: "removeAllListeners", + value: function removeAllListeners() { + this._listeners = []; + } + }, { + key: "announcePresence", + value: function announcePresence(announce) { + this._listeners.forEach(function (listener) { + if (listener.presence) listener.presence(announce); + }); + } + }, { + key: "announceStatus", + value: function announceStatus(announce) { + this._listeners.forEach(function (listener) { + if (listener.status) listener.status(announce); + }); + } + }, { + key: "announceMessage", + value: function announceMessage(announce) { + this._listeners.forEach(function (listener) { + if (listener.message) listener.message(announce); + }); + } + }, { + key: "announceSignal", + value: function announceSignal(announce) { + this._listeners.forEach(function (listener) { + if (listener.signal) listener.signal(announce); + }); + } + }, { + key: "announceMessageAction", + value: function announceMessageAction(announce) { + this._listeners.forEach(function (listener) { + if (listener.messageAction) listener.messageAction(announce); + }); + } + }, { + key: "announceFile", + value: function announceFile(announce) { + this._listeners.forEach(function (listener) { + if (listener.file) listener.file(announce); + }); + } + }, { + key: "announceObjects", + value: function announceObjects(announce) { + this._listeners.forEach(function (listener) { + if (listener.objects) listener.objects(announce); + }); + } + }, { + key: "announceUser", + value: function announceUser(announce) { + this._listeners.forEach(function (listener) { + if (listener.user) listener.user(announce); + }); + } + }, { + key: "announceSpace", + value: function announceSpace(announce) { + this._listeners.forEach(function (listener) { + if (listener.space) listener.space(announce); + }); + } + }, { + key: "announceMembership", + value: function announceMembership(announce) { + this._listeners.forEach(function (listener) { + if (listener.membership) listener.membership(announce); + }); + } + }, { + key: "announceNetworkUp", + value: function announceNetworkUp() { + var networkStatus = {}; + networkStatus.category = _categories["default"].PNNetworkUpCategory; + this.announceStatus(networkStatus); + } + }, { + key: "announceNetworkDown", + value: function announceNetworkDown() { + var networkStatus = {}; + networkStatus.category = _categories["default"].PNNetworkDownCategory; + this.announceStatus(networkStatus); + } + }]); + return _default; +}(); + +exports["default"] = _default; +module.exports = exports.default; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.prepareParams = prepareParams; +exports.isAuthSupported = isAuthSupported; +exports.handleResponse = handleResponse; +exports.validateParams = validateParams; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +function getOperation() { + return _operations["default"].PNTimeOperation; +} + +function getURL() { + return '/time/0'; +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function prepareParams() { + return {}; +} + +function isAuthSupported() { + return false; +} + +function handleResponse(modules, serverResponse) { + return { + timetoken: serverResponse[0] + }; +} + +function validateParams() {} + +/***/ }), +/* 25 */ +/***/ (function(module, exports) { + +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Check if `obj` is an object. + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ + +function isObject(obj) { + return null !== obj && 'object' === typeof obj; +} + +module.exports = isObject; + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(14)); + +var _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(12)); + +var _inherits2 = _interopRequireDefault(__webpack_require__(15)); + +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); + +var _cborJs = _interopRequireDefault(__webpack_require__(29)); + +var _pubnubCommon = _interopRequireDefault(__webpack_require__(30)); + +var _networking = _interopRequireDefault(__webpack_require__(121)); + +var _hmacSha = _interopRequireDefault(__webpack_require__(22)); + +var _web = _interopRequireDefault(__webpack_require__(122)); + +var _common = _interopRequireDefault(__webpack_require__(123)); + +var _webNode = __webpack_require__(124); + +var _flow_interfaces = __webpack_require__(2); + +var _web2 = _interopRequireDefault(__webpack_require__(131)); + +var _web3 = _interopRequireDefault(__webpack_require__(132)); + +function sendBeacon(url) { + if (navigator && navigator.sendBeacon) { + navigator.sendBeacon(url); + } else { + return false; + } +} + +function base64ToBinary(base64String) { + var parsedWordArray = _hmacSha["default"].enc.Base64.parse(base64String).words; + + var arrayBuffer = new ArrayBuffer(parsedWordArray.length * 4); + var view = new Uint8Array(arrayBuffer); + var filledArrayBuffer = null; + var zeroBytesCount = 0; + var byteOffset = 0; + + for (var wordIdx = 0; wordIdx < parsedWordArray.length; wordIdx += 1) { + var word = parsedWordArray[wordIdx]; + byteOffset = wordIdx * 4; + view[byteOffset] = (word & 0xff000000) >> 24; + view[byteOffset + 1] = (word & 0x00ff0000) >> 16; + view[byteOffset + 2] = (word & 0x0000ff00) >> 8; + view[byteOffset + 3] = word & 0x000000ff; + } + + for (var byteIdx = byteOffset + 3; byteIdx >= byteOffset; byteIdx -= 1) { + if (view[byteIdx] === 0) { + zeroBytesCount += 1; + } + } + + if (zeroBytesCount > 0) { + filledArrayBuffer = view.buffer.slice(0, view.byteLength - zeroBytesCount); + } else { + filledArrayBuffer = view.buffer; + } + + return filledArrayBuffer; +} + +function stringifyBufferKeys(obj) { + var isObject = function isObject(value) { + return value && (0, _typeof2["default"])(value) === 'object' && value.constructor === Object; + }; + + var isString = function isString(value) { + return typeof value === 'string' || value instanceof String; + }; + + var isNumber = function isNumber(value) { + return typeof value === 'number' && isFinite(value); + }; + + if (!isObject(obj)) { + return obj; + } + + var normalizedObject = {}; + Object.keys(obj).forEach(function (key) { + var keyIsString = isString(key); + var stringifiedKey = key; + var value = obj[key]; + + if (Array.isArray(key) || keyIsString && key.indexOf(',') >= 0) { + var bytes = keyIsString ? key.split(',') : key; + stringifiedKey = bytes.reduce(function (string, _byte) { + string += String.fromCharCode(_byte); + return string; + }, ''); + } else if (isNumber(key) || keyIsString && !isNaN(key)) { + stringifiedKey = String.fromCharCode(keyIsString ? parseInt(key, 10) : 10); + } + + normalizedObject[stringifiedKey] = isObject(value) ? stringifyBufferKeys(value) : value; + }); + return normalizedObject; +} + +var _default = function (_PubNubCore) { + (0, _inherits2["default"])(_default, _PubNubCore); + + function _default(setup) { + var _this; + + (0, _classCallCheck2["default"])(this, _default); + var _setup$listenToBrowse = setup.listenToBrowserNetworkEvents, + listenToBrowserNetworkEvents = _setup$listenToBrowse === void 0 ? true : _setup$listenToBrowse; + setup.db = _web["default"]; + setup.sdkFamily = 'Web'; + setup.networking = new _networking["default"]({ + del: _webNode.del, + get: _webNode.get, + post: _webNode.post, + patch: _webNode.patch, + sendBeacon: sendBeacon, + file: _webNode.file + }); + setup.cbor = new _common["default"](function (arrayBuffer) { + return stringifyBufferKeys(_cborJs["default"].decode(arrayBuffer)); + }, base64ToBinary); + setup.PubNubFile = _web3["default"]; + setup.cryptography = new _web2["default"](); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(_default).call(this, setup)); + + if (listenToBrowserNetworkEvents) { + window.addEventListener('offline', function () { + _this.networkDownDetected(); + }); + window.addEventListener('online', function () { + _this.networkUpDetected(); + }); + } + + return _this; + } + + return _default; +}(_pubnubCommon["default"]); + +exports["default"] = _default; +module.exports = exports.default; + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* + * The MIT License (MIT) + * + * Copyright (c) 2014 Patrick Gansterer + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * @@ -2511,333 +5047,280 @@ else {} /***/ }), -/* 13 */ +/* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -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); } +var _interopRequireWildcard = __webpack_require__(31); + +var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _config = _interopRequireDefault(__webpack_require__(3)); - -var _index = _interopRequireDefault(__webpack_require__(6)); - -var _subscription_manager = _interopRequireDefault(__webpack_require__(15)); - -var _telemetry_manager = _interopRequireDefault(__webpack_require__(19)); - -var _push_payload = _interopRequireDefault(__webpack_require__(20)); - -var _listener_manager = _interopRequireDefault(__webpack_require__(8)); - -var _token_manager = _interopRequireDefault(__webpack_require__(21)); - -var _endpoint = _interopRequireDefault(__webpack_require__(22)); - -var _utils = __webpack_require__(2); - -var addChannelsChannelGroupConfig = _interopRequireWildcard(__webpack_require__(23)); - -var removeChannelsChannelGroupConfig = _interopRequireWildcard(__webpack_require__(24)); - -var deleteChannelGroupConfig = _interopRequireWildcard(__webpack_require__(25)); - -var listChannelGroupsConfig = _interopRequireWildcard(__webpack_require__(26)); - -var listChannelsInChannelGroupConfig = _interopRequireWildcard(__webpack_require__(27)); - -var addPushChannelsConfig = _interopRequireWildcard(__webpack_require__(28)); - -var removePushChannelsConfig = _interopRequireWildcard(__webpack_require__(29)); - -var listPushChannelsConfig = _interopRequireWildcard(__webpack_require__(30)); - -var removeDevicePushConfig = _interopRequireWildcard(__webpack_require__(31)); - -var presenceLeaveEndpointConfig = _interopRequireWildcard(__webpack_require__(32)); - -var presenceWhereNowEndpointConfig = _interopRequireWildcard(__webpack_require__(33)); - -var presenceHeartbeatEndpointConfig = _interopRequireWildcard(__webpack_require__(34)); - -var presenceGetStateConfig = _interopRequireWildcard(__webpack_require__(35)); - -var presenceSetStateConfig = _interopRequireWildcard(__webpack_require__(36)); - -var presenceHereNowConfig = _interopRequireWildcard(__webpack_require__(37)); - -var addMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(38)); - -var removeMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(39)); - -var getMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(40)); - -var _get_all = _interopRequireDefault(__webpack_require__(41)); - -var _get = _interopRequireDefault(__webpack_require__(42)); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -var _set = _interopRequireDefault(__webpack_require__(43)); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -var _remove = _interopRequireDefault(__webpack_require__(44)); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -var _get_all2 = _interopRequireDefault(__webpack_require__(45)); +var _config = _interopRequireDefault(__webpack_require__(8)); -var _get2 = _interopRequireDefault(__webpack_require__(46)); +var _index = _interopRequireDefault(__webpack_require__(20)); -var _set2 = _interopRequireDefault(__webpack_require__(47)); +var _subscription_manager = _interopRequireDefault(__webpack_require__(37)); -var _remove2 = _interopRequireDefault(__webpack_require__(48)); +var _telemetry_manager = _interopRequireDefault(__webpack_require__(40)); -var _get3 = _interopRequireDefault(__webpack_require__(49)); +var _push_payload = _interopRequireDefault(__webpack_require__(41)); -var _set3 = _interopRequireDefault(__webpack_require__(50)); +var _listener_manager = _interopRequireDefault(__webpack_require__(23)); -var _get4 = _interopRequireDefault(__webpack_require__(51)); +var _token_manager = _interopRequireDefault(__webpack_require__(44)); -var _set4 = _interopRequireDefault(__webpack_require__(52)); +var _endpoint = _interopRequireDefault(__webpack_require__(18)); -var createUserEndpointConfig = _interopRequireWildcard(__webpack_require__(53)); +var _utils = __webpack_require__(3); -var updateUserEndpointConfig = _interopRequireWildcard(__webpack_require__(54)); +var addChannelsChannelGroupConfig = _interopRequireWildcard(__webpack_require__(49)); -var deleteUserEndpointConfig = _interopRequireWildcard(__webpack_require__(55)); +var removeChannelsChannelGroupConfig = _interopRequireWildcard(__webpack_require__(50)); -var getUserEndpointConfig = _interopRequireWildcard(__webpack_require__(56)); +var deleteChannelGroupConfig = _interopRequireWildcard(__webpack_require__(51)); -var getUsersEndpointConfig = _interopRequireWildcard(__webpack_require__(57)); +var listChannelGroupsConfig = _interopRequireWildcard(__webpack_require__(52)); -var createSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(58)); +var listChannelsInChannelGroupConfig = _interopRequireWildcard(__webpack_require__(53)); -var updateSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(59)); +var addPushChannelsConfig = _interopRequireWildcard(__webpack_require__(54)); -var deleteSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(60)); +var removePushChannelsConfig = _interopRequireWildcard(__webpack_require__(55)); -var getSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(61)); +var listPushChannelsConfig = _interopRequireWildcard(__webpack_require__(56)); -var getSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(62)); +var removeDevicePushConfig = _interopRequireWildcard(__webpack_require__(57)); -var getMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(63)); +var presenceLeaveEndpointConfig = _interopRequireWildcard(__webpack_require__(58)); -var addMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(64)); +var presenceWhereNowEndpointConfig = _interopRequireWildcard(__webpack_require__(59)); -var updateMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(65)); +var presenceHeartbeatEndpointConfig = _interopRequireWildcard(__webpack_require__(60)); -var removeMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(66)); +var presenceGetStateConfig = _interopRequireWildcard(__webpack_require__(61)); -var getMembershipsEndpointConfig = _interopRequireWildcard(__webpack_require__(67)); +var presenceSetStateConfig = _interopRequireWildcard(__webpack_require__(62)); -var updateMembershipsEndpointConfig = _interopRequireWildcard(__webpack_require__(68)); +var presenceHereNowConfig = _interopRequireWildcard(__webpack_require__(63)); -var joinSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(69)); +var addMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(64)); -var leaveSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(70)); +var removeMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(65)); -var auditEndpointConfig = _interopRequireWildcard(__webpack_require__(71)); +var getMessageActionEndpointConfig = _interopRequireWildcard(__webpack_require__(66)); -var grantEndpointConfig = _interopRequireWildcard(__webpack_require__(72)); +var _file = __webpack_require__(26); -var grantTokenEndpointConfig = _interopRequireWildcard(__webpack_require__(73)); +var fileUploadTypes = _interopRequireWildcard(__webpack_require__(67)); -var publishEndpointConfig = _interopRequireWildcard(__webpack_require__(74)); +var _list_files = _interopRequireDefault(__webpack_require__(68)); -var signalEndpointConfig = _interopRequireWildcard(__webpack_require__(75)); +var _generate_upload_url = _interopRequireDefault(__webpack_require__(69)); -var historyEndpointConfig = _interopRequireWildcard(__webpack_require__(76)); +var _publish_file = _interopRequireDefault(__webpack_require__(70)); -var deleteMessagesEndpointConfig = _interopRequireWildcard(__webpack_require__(77)); +var _send_file = _interopRequireDefault(__webpack_require__(71)); -var messageCountsEndpointConfig = _interopRequireWildcard(__webpack_require__(78)); +var _get_file_url = _interopRequireDefault(__webpack_require__(73)); -var fetchMessagesEndpointConfig = _interopRequireWildcard(__webpack_require__(79)); +var _download_file = _interopRequireDefault(__webpack_require__(74)); -var timeEndpointConfig = _interopRequireWildcard(__webpack_require__(9)); +var _delete_file = _interopRequireDefault(__webpack_require__(75)); -var subscribeEndpointConfig = _interopRequireWildcard(__webpack_require__(80)); +var _get_all = _interopRequireDefault(__webpack_require__(76)); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _get = _interopRequireDefault(__webpack_require__(82)); -var _categories = _interopRequireDefault(__webpack_require__(4)); +var _set = _interopRequireDefault(__webpack_require__(83)); -var _flow_interfaces = __webpack_require__(1); +var _remove = _interopRequireDefault(__webpack_require__(84)); -var _uuid = _interopRequireDefault(__webpack_require__(5)); +var _get_all2 = _interopRequireDefault(__webpack_require__(85)); -function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } +var _get2 = _interopRequireDefault(__webpack_require__(86)); -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +var _set2 = _interopRequireDefault(__webpack_require__(87)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _remove2 = _interopRequireDefault(__webpack_require__(88)); -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var _default = function () { - function _default(setup) { - var _this = this; - - _classCallCheck(this, _default); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "_telemetryManager", void 0); - - _defineProperty(this, "_listenerManager", void 0); - - _defineProperty(this, "_tokenManager", void 0); - - _defineProperty(this, "time", void 0); - - _defineProperty(this, "publish", void 0); - - _defineProperty(this, "fire", void 0); - - _defineProperty(this, "history", void 0); - - _defineProperty(this, "deleteMessages", void 0); - - _defineProperty(this, "messageCounts", void 0); - - _defineProperty(this, "fetchMessages", void 0); - - _defineProperty(this, "channelGroups", void 0); - - _defineProperty(this, "push", void 0); - - _defineProperty(this, "hereNow", void 0); - - _defineProperty(this, "whereNow", void 0); - - _defineProperty(this, "getState", void 0); - - _defineProperty(this, "setState", void 0); - - _defineProperty(this, "grant", void 0); - - _defineProperty(this, "grantToken", void 0); - - _defineProperty(this, "audit", void 0); - - _defineProperty(this, "subscribe", void 0); +var _get3 = _interopRequireDefault(__webpack_require__(89)); - _defineProperty(this, "signal", void 0); +var _set3 = _interopRequireDefault(__webpack_require__(90)); - _defineProperty(this, "presence", void 0); +var _get4 = _interopRequireDefault(__webpack_require__(91)); - _defineProperty(this, "unsubscribe", void 0); +var _set4 = _interopRequireDefault(__webpack_require__(92)); - _defineProperty(this, "unsubscribeAll", void 0); +var createUserEndpointConfig = _interopRequireWildcard(__webpack_require__(93)); - _defineProperty(this, "addMessageAction", void 0); +var updateUserEndpointConfig = _interopRequireWildcard(__webpack_require__(94)); - _defineProperty(this, "removeMessageAction", void 0); +var deleteUserEndpointConfig = _interopRequireWildcard(__webpack_require__(95)); - _defineProperty(this, "getMessageActions", void 0); +var getUserEndpointConfig = _interopRequireWildcard(__webpack_require__(96)); - _defineProperty(this, "objects", void 0); +var getUsersEndpointConfig = _interopRequireWildcard(__webpack_require__(97)); - _defineProperty(this, "createUser", void 0); +var createSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(98)); - _defineProperty(this, "updateUser", void 0); +var updateSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(99)); - _defineProperty(this, "deleteUser", void 0); +var deleteSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(100)); - _defineProperty(this, "getUser", void 0); +var getSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(101)); - _defineProperty(this, "getUsers", void 0); +var getSpaceEndpointConfig = _interopRequireWildcard(__webpack_require__(102)); - _defineProperty(this, "createSpace", void 0); +var getMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(103)); - _defineProperty(this, "updateSpace", void 0); +var addMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(104)); - _defineProperty(this, "deleteSpace", void 0); +var updateMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(105)); - _defineProperty(this, "getSpaces", void 0); +var removeMembersEndpointConfig = _interopRequireWildcard(__webpack_require__(106)); - _defineProperty(this, "getSpace", void 0); +var getMembershipsEndpointConfig = _interopRequireWildcard(__webpack_require__(107)); - _defineProperty(this, "getMembers", void 0); +var updateMembershipsEndpointConfig = _interopRequireWildcard(__webpack_require__(108)); - _defineProperty(this, "addMembers", void 0); +var joinSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(109)); - _defineProperty(this, "updateMembers", void 0); +var leaveSpacesEndpointConfig = _interopRequireWildcard(__webpack_require__(110)); - _defineProperty(this, "removeMembers", void 0); +var auditEndpointConfig = _interopRequireWildcard(__webpack_require__(111)); - _defineProperty(this, "getMemberships", void 0); +var grantEndpointConfig = _interopRequireWildcard(__webpack_require__(112)); - _defineProperty(this, "joinSpaces", void 0); +var grantTokenEndpointConfig = _interopRequireWildcard(__webpack_require__(113)); - _defineProperty(this, "updateMemberships", void 0); +var publishEndpointConfig = _interopRequireWildcard(__webpack_require__(114)); - _defineProperty(this, "leaveSpaces", void 0); +var signalEndpointConfig = _interopRequireWildcard(__webpack_require__(115)); - _defineProperty(this, "disconnect", void 0); +var historyEndpointConfig = _interopRequireWildcard(__webpack_require__(116)); - _defineProperty(this, "reconnect", void 0); +var deleteMessagesEndpointConfig = _interopRequireWildcard(__webpack_require__(117)); - _defineProperty(this, "destroy", void 0); +var messageCountsEndpointConfig = _interopRequireWildcard(__webpack_require__(118)); - _defineProperty(this, "stop", void 0); +var fetchMessagesEndpointConfig = _interopRequireWildcard(__webpack_require__(119)); - _defineProperty(this, "getSubscribedChannels", void 0); +var timeEndpointConfig = _interopRequireWildcard(__webpack_require__(24)); - _defineProperty(this, "getSubscribedChannelGroups", void 0); +var subscribeEndpointConfig = _interopRequireWildcard(__webpack_require__(120)); - _defineProperty(this, "addListener", void 0); +var _operations = _interopRequireDefault(__webpack_require__(1)); - _defineProperty(this, "removeListener", void 0); +var _categories = _interopRequireDefault(__webpack_require__(13)); - _defineProperty(this, "removeAllListeners", void 0); +var _flow_interfaces = __webpack_require__(2); - _defineProperty(this, "parseToken", void 0); +var _uuid = _interopRequireDefault(__webpack_require__(17)); - _defineProperty(this, "setToken", void 0); - - _defineProperty(this, "setTokens", void 0); - - _defineProperty(this, "getToken", void 0); - - _defineProperty(this, "getTokens", void 0); - - _defineProperty(this, "clearTokens", void 0); - - _defineProperty(this, "getAuthKey", void 0); - - _defineProperty(this, "setAuthKey", void 0); - - _defineProperty(this, "setCipherKey", void 0); - - _defineProperty(this, "setUUID", void 0); - - _defineProperty(this, "getUUID", void 0); - - _defineProperty(this, "getFilterExpression", void 0); - - _defineProperty(this, "setFilterExpression", void 0); - - _defineProperty(this, "setHeartbeatInterval", void 0); - - _defineProperty(this, "setProxy", void 0); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - _defineProperty(this, "encrypt", void 0); +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - _defineProperty(this, "decrypt", void 0); +var _default = function () { + function _default(setup) { + var _this = this; + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_telemetryManager", void 0); + (0, _defineProperty2["default"])(this, "_listenerManager", void 0); + (0, _defineProperty2["default"])(this, "_tokenManager", void 0); + (0, _defineProperty2["default"])(this, "time", void 0); + (0, _defineProperty2["default"])(this, "publish", void 0); + (0, _defineProperty2["default"])(this, "fire", void 0); + (0, _defineProperty2["default"])(this, "history", void 0); + (0, _defineProperty2["default"])(this, "deleteMessages", void 0); + (0, _defineProperty2["default"])(this, "messageCounts", void 0); + (0, _defineProperty2["default"])(this, "fetchMessages", void 0); + (0, _defineProperty2["default"])(this, "channelGroups", void 0); + (0, _defineProperty2["default"])(this, "push", void 0); + (0, _defineProperty2["default"])(this, "hereNow", void 0); + (0, _defineProperty2["default"])(this, "whereNow", void 0); + (0, _defineProperty2["default"])(this, "getState", void 0); + (0, _defineProperty2["default"])(this, "setState", void 0); + (0, _defineProperty2["default"])(this, "grant", void 0); + (0, _defineProperty2["default"])(this, "grantToken", void 0); + (0, _defineProperty2["default"])(this, "audit", void 0); + (0, _defineProperty2["default"])(this, "subscribe", void 0); + (0, _defineProperty2["default"])(this, "signal", void 0); + (0, _defineProperty2["default"])(this, "presence", void 0); + (0, _defineProperty2["default"])(this, "unsubscribe", void 0); + (0, _defineProperty2["default"])(this, "unsubscribeAll", void 0); + (0, _defineProperty2["default"])(this, "addMessageAction", void 0); + (0, _defineProperty2["default"])(this, "removeMessageAction", void 0); + (0, _defineProperty2["default"])(this, "getMessageActions", void 0); + (0, _defineProperty2["default"])(this, "File", void 0); + (0, _defineProperty2["default"])(this, "encryptFile", void 0); + (0, _defineProperty2["default"])(this, "decryptFile", void 0); + (0, _defineProperty2["default"])(this, "listFiles", void 0); + (0, _defineProperty2["default"])(this, "sendFile", void 0); + (0, _defineProperty2["default"])(this, "downloadFile", void 0); + (0, _defineProperty2["default"])(this, "getFileUrl", void 0); + (0, _defineProperty2["default"])(this, "deleteFile", void 0); + (0, _defineProperty2["default"])(this, "publishFile", void 0); + (0, _defineProperty2["default"])(this, "objects", void 0); + (0, _defineProperty2["default"])(this, "createUser", void 0); + (0, _defineProperty2["default"])(this, "updateUser", void 0); + (0, _defineProperty2["default"])(this, "deleteUser", void 0); + (0, _defineProperty2["default"])(this, "getUser", void 0); + (0, _defineProperty2["default"])(this, "getUsers", void 0); + (0, _defineProperty2["default"])(this, "createSpace", void 0); + (0, _defineProperty2["default"])(this, "updateSpace", void 0); + (0, _defineProperty2["default"])(this, "deleteSpace", void 0); + (0, _defineProperty2["default"])(this, "getSpaces", void 0); + (0, _defineProperty2["default"])(this, "getSpace", void 0); + (0, _defineProperty2["default"])(this, "getMembers", void 0); + (0, _defineProperty2["default"])(this, "addMembers", void 0); + (0, _defineProperty2["default"])(this, "updateMembers", void 0); + (0, _defineProperty2["default"])(this, "removeMembers", void 0); + (0, _defineProperty2["default"])(this, "getMemberships", void 0); + (0, _defineProperty2["default"])(this, "joinSpaces", void 0); + (0, _defineProperty2["default"])(this, "updateMemberships", void 0); + (0, _defineProperty2["default"])(this, "leaveSpaces", void 0); + (0, _defineProperty2["default"])(this, "disconnect", void 0); + (0, _defineProperty2["default"])(this, "reconnect", void 0); + (0, _defineProperty2["default"])(this, "destroy", void 0); + (0, _defineProperty2["default"])(this, "stop", void 0); + (0, _defineProperty2["default"])(this, "getSubscribedChannels", void 0); + (0, _defineProperty2["default"])(this, "getSubscribedChannelGroups", void 0); + (0, _defineProperty2["default"])(this, "addListener", void 0); + (0, _defineProperty2["default"])(this, "removeListener", void 0); + (0, _defineProperty2["default"])(this, "removeAllListeners", void 0); + (0, _defineProperty2["default"])(this, "parseToken", void 0); + (0, _defineProperty2["default"])(this, "setToken", void 0); + (0, _defineProperty2["default"])(this, "setTokens", void 0); + (0, _defineProperty2["default"])(this, "getToken", void 0); + (0, _defineProperty2["default"])(this, "getTokens", void 0); + (0, _defineProperty2["default"])(this, "clearTokens", void 0); + (0, _defineProperty2["default"])(this, "getAuthKey", void 0); + (0, _defineProperty2["default"])(this, "setAuthKey", void 0); + (0, _defineProperty2["default"])(this, "setCipherKey", void 0); + (0, _defineProperty2["default"])(this, "setUUID", void 0); + (0, _defineProperty2["default"])(this, "getUUID", void 0); + (0, _defineProperty2["default"])(this, "getFilterExpression", void 0); + (0, _defineProperty2["default"])(this, "setFilterExpression", void 0); + (0, _defineProperty2["default"])(this, "setHeartbeatInterval", void 0); + (0, _defineProperty2["default"])(this, "setProxy", void 0); + (0, _defineProperty2["default"])(this, "encrypt", void 0); + (0, _defineProperty2["default"])(this, "decrypt", void 0); var db = setup.db, networking = setup.networking, cbor = setup.cbor; @@ -2848,6 +5331,7 @@ var _default = function () { var crypto = new _index["default"]({ config: config }); + var cryptography = setup.cryptography; networking.init(config); var tokenManager = this._tokenManager = new _token_manager["default"](config, cbor); var telemetryManager = this._telemetryManager = new _telemetry_manager["default"]({ @@ -2857,8 +5341,19 @@ var _default = function () { config: config, networking: networking, crypto: crypto, + cryptography: cryptography, tokenManager: tokenManager, - telemetryManager: telemetryManager + telemetryManager: telemetryManager, + PubNubFile: setup.PubNubFile + }; + this.File = setup.PubNubFile; + + this.encryptFile = function (key, file) { + return cryptography.encryptFile(key, file, _this.File); + }; + + this.decryptFile = function (key, file) { + return cryptography.decryptFile(key, file, _this.File); }; var timeEndpoint = _endpoint["default"].bind(this, modules, timeEndpointConfig); @@ -2880,7 +5375,10 @@ var _default = function () { subscribeEndpoint: subscribeEndpoint, crypto: modules.crypto, config: modules.config, - listenerManager: listenerManager + listenerManager: listenerManager, + getFileUrl: function getFileUrl(params) { + return (0, _get_file_url["default"])(modules, params); + } }); this.addListener = listenerManager.addListener.bind(listenerManager); this.removeListener = listenerManager.removeListener.bind(listenerManager); @@ -2927,6 +5425,23 @@ var _default = function () { this.addMessageAction = _endpoint["default"].bind(this, modules, addMessageActionEndpointConfig); this.removeMessageAction = _endpoint["default"].bind(this, modules, removeMessageActionEndpointConfig); this.getMessageActions = _endpoint["default"].bind(this, modules, getMessageActionEndpointConfig); + this.listFiles = _endpoint["default"].bind(this, modules, _list_files["default"]); + + var generateUploadUrl = _endpoint["default"].bind(this, modules, _generate_upload_url["default"]); + + this.publishFile = _endpoint["default"].bind(this, modules, _publish_file["default"]); + this.sendFile = (0, _send_file["default"])({ + generateUploadUrl: generateUploadUrl, + publishFile: this.publishFile, + modules: modules + }); + + this.getFileUrl = function (params) { + return (0, _get_file_url["default"])(modules, params); + }; + + this.downloadFile = _endpoint["default"].bind(this, modules, _download_file["default"]); + this.deleteFile = _endpoint["default"].bind(this, modules, _delete_file["default"]); this.objects = { getAllUUIDMetadata: _endpoint["default"].bind(this, modules, _get_all["default"]), getUUIDMetadata: _endpoint["default"].bind(this, modules, _get["default"]), @@ -3029,7 +5544,7 @@ var _default = function () { } } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "getVersion", value: function getVersion() { return this._config.getVersion(); @@ -3068,20 +5583,76 @@ var _default = function () { return _uuid["default"].createUUID(); } }]); - return _default; }(); exports["default"] = _default; +(0, _defineProperty2["default"])(_default, "OPERATIONS", _operations["default"]); +(0, _defineProperty2["default"])(_default, "CATEGORIES", _categories["default"]); +module.exports = exports.default; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { -_defineProperty(_default, "OPERATIONS", _operations["default"]); +var _typeof = __webpack_require__(7); -_defineProperty(_default, "CATEGORIES", _categories["default"]); +function _getRequireWildcardCache() { + if (typeof WeakMap !== "function") return null; + var cache = new WeakMap(); -module.exports = exports.default; + _getRequireWildcardCache = function _getRequireWildcardCache() { + return cache; + }; + + return cache; +} + +function _interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } + + if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { + return { + "default": obj + }; + } + + var cache = _getRequireWildcardCache(); + + if (cache && cache.has(obj)) { + return cache.get(obj); + } + + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + + newObj["default"] = obj; + + if (cache) { + cache.set(obj, newObj); + } + + return newObj; +} + +module.exports = _interopRequireWildcard; /***/ }), -/* 14 */ +/* 32 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! lil-uuid - v0.1 - MIT License - https://github.com/lil-js/uuid */ @@ -3111,128 +5682,389 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ return uuid } - function isUUID(str, version) { - var pattern = uuidRegex[version || 'all'] - return pattern && pattern.test(str) || false + function isUUID(str, version) { + var pattern = uuidRegex[version || 'all'] + return pattern && pattern.test(str) || false + } + + uuid.isUUID = isUUID + uuid.VERSION = VERSION + + exports.uuid = uuid + exports.isUUID = isUUID +})); + + +/***/ }), +/* 33 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || new Function("return this")(); +} catch (e) { + // This works if the window reference is available + if (typeof window === "object") g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.byteLength = byteLength +exports.toByteArray = toByteArray +exports.fromByteArray = fromByteArray + +var lookup = [] +var revLookup = [] +var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + +var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' +for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i +} + +// Support decoding URL-safe base64 strings, as Node.js does. +// See: https://en.wikipedia.org/wiki/Base64#URL_applications +revLookup['-'.charCodeAt(0)] = 62 +revLookup['_'.charCodeAt(0)] = 63 + +function getLens (b64) { + var len = b64.length + + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') } - uuid.isUUID = isUUID - uuid.VERSION = VERSION + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf('=') + if (validLen === -1) validLen = len - exports.uuid = uuid - exports.isUUID = isUUID -})); + var placeHoldersLen = validLen === len + ? 0 + : 4 - (validLen % 4) + return [validLen, placeHoldersLen] +} -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { +// base64 is 4/3 + up to two characters of the original data +function byteLength (b64) { + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} -"use strict"; +function _byteLength (b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} +function toByteArray (b64) { + var tmp + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) + + var curByte = 0 + + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 + ? validLen - 4 + : validLen + + var i + for (i = 0; i < len; i += 4) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)] + arr[curByte++] = (tmp >> 16) & 0xFF + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } -var _cryptography = _interopRequireDefault(__webpack_require__(6)); + if (placeHoldersLen === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[curByte++] = tmp & 0xFF + } -var _config = _interopRequireDefault(__webpack_require__(3)); + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } -var _listener_manager = _interopRequireDefault(__webpack_require__(8)); + return arr +} -var _reconnection_manager = _interopRequireDefault(__webpack_require__(16)); +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + + lookup[num >> 12 & 0x3F] + + lookup[num >> 6 & 0x3F] + + lookup[num & 0x3F] +} -var _deduping_manager = _interopRequireDefault(__webpack_require__(17)); +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xFF0000) + + ((uint8[i + 1] << 8) & 0xFF00) + + (uint8[i + 2] & 0xFF) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} -var _utils = _interopRequireDefault(__webpack_require__(2)); +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 -var _flow_interfaces = __webpack_require__(1); + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk( + uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) + )) + } -var _categories = _interopRequireDefault(__webpack_require__(4)); + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + parts.push( + lookup[tmp >> 2] + + lookup[(tmp << 4) & 0x3F] + + '==' + ) + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3F] + + lookup[(tmp << 2) & 0x3F] + + '=' + ) + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + return parts.join('') +} -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, descriptor.key, descriptor); } } +/***/ }), +/* 35 */ +/***/ (function(module, exports) { -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 -var _default = function () { - function _default(_ref) { - var subscribeEndpoint = _ref.subscribeEndpoint, - leaveEndpoint = _ref.leaveEndpoint, - heartbeatEndpoint = _ref.heartbeatEndpoint, - setStateEndpoint = _ref.setStateEndpoint, - timeEndpoint = _ref.timeEndpoint, - config = _ref.config, - crypto = _ref.crypto, - listenerManager = _ref.listenerManager; + value = Math.abs(value) - _classCallCheck(this, _default); + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } - _defineProperty(this, "_crypto", void 0); + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = ((value * c) - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } - _defineProperty(this, "_config", void 0); + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - _defineProperty(this, "_listenerManager", void 0); + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - _defineProperty(this, "_reconnectionManager", void 0); + buffer[offset + i - d] |= s * 128 +} - _defineProperty(this, "_leaveEndpoint", void 0); - _defineProperty(this, "_heartbeatEndpoint", void 0); +/***/ }), +/* 36 */ +/***/ (function(module, exports) { - _defineProperty(this, "_setStateEndpoint", void 0); +var toString = {}.toString; - _defineProperty(this, "_subscribeEndpoint", void 0); +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; - _defineProperty(this, "_channels", void 0); - _defineProperty(this, "_presenceChannels", void 0); +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { - _defineProperty(this, "_heartbeatChannels", void 0); +"use strict"; - _defineProperty(this, "_heartbeatChannelGroups", void 0); - _defineProperty(this, "_channelGroups", void 0); +var _interopRequireDefault = __webpack_require__(0); - _defineProperty(this, "_presenceChannelGroups", void 0); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; - _defineProperty(this, "_currentTimetoken", void 0); +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); - _defineProperty(this, "_lastTimetoken", void 0); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); - _defineProperty(this, "_storedTimetoken", void 0); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); - _defineProperty(this, "_region", void 0); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); - _defineProperty(this, "_subscribeCall", void 0); +var _cryptography = _interopRequireDefault(__webpack_require__(20)); - _defineProperty(this, "_heartbeatTimer", void 0); +var _config = _interopRequireDefault(__webpack_require__(8)); - _defineProperty(this, "_subscriptionStatusAnnounced", void 0); +var _listener_manager = _interopRequireDefault(__webpack_require__(23)); - _defineProperty(this, "_autoNetworkDetection", void 0); +var _reconnection_manager = _interopRequireDefault(__webpack_require__(38)); - _defineProperty(this, "_isOnline", void 0); +var _deduping_manager = _interopRequireDefault(__webpack_require__(39)); - _defineProperty(this, "_pendingChannelSubscriptions", void 0); +var _utils = _interopRequireDefault(__webpack_require__(3)); - _defineProperty(this, "_pendingChannelGroupSubscriptions", void 0); +var _flow_interfaces = __webpack_require__(2); - _defineProperty(this, "_dedupingManager", void 0); +var _categories = _interopRequireDefault(__webpack_require__(13)); +var _default = function () { + function _default(_ref) { + var subscribeEndpoint = _ref.subscribeEndpoint, + leaveEndpoint = _ref.leaveEndpoint, + heartbeatEndpoint = _ref.heartbeatEndpoint, + setStateEndpoint = _ref.setStateEndpoint, + timeEndpoint = _ref.timeEndpoint, + getFileUrl = _ref.getFileUrl, + config = _ref.config, + crypto = _ref.crypto, + listenerManager = _ref.listenerManager; + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_crypto", void 0); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_listenerManager", void 0); + (0, _defineProperty2["default"])(this, "_reconnectionManager", void 0); + (0, _defineProperty2["default"])(this, "_leaveEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_setStateEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_subscribeEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_getFileUrl", void 0); + (0, _defineProperty2["default"])(this, "_channels", void 0); + (0, _defineProperty2["default"])(this, "_presenceChannels", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatChannels", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatChannelGroups", void 0); + (0, _defineProperty2["default"])(this, "_channelGroups", void 0); + (0, _defineProperty2["default"])(this, "_presenceChannelGroups", void 0); + (0, _defineProperty2["default"])(this, "_currentTimetoken", void 0); + (0, _defineProperty2["default"])(this, "_lastTimetoken", void 0); + (0, _defineProperty2["default"])(this, "_storedTimetoken", void 0); + (0, _defineProperty2["default"])(this, "_region", void 0); + (0, _defineProperty2["default"])(this, "_subscribeCall", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatTimer", void 0); + (0, _defineProperty2["default"])(this, "_subscriptionStatusAnnounced", void 0); + (0, _defineProperty2["default"])(this, "_autoNetworkDetection", void 0); + (0, _defineProperty2["default"])(this, "_isOnline", void 0); + (0, _defineProperty2["default"])(this, "_pendingChannelSubscriptions", void 0); + (0, _defineProperty2["default"])(this, "_pendingChannelGroupSubscriptions", void 0); + (0, _defineProperty2["default"])(this, "_dedupingManager", void 0); this._listenerManager = listenerManager; this._config = config; this._leaveEndpoint = leaveEndpoint; this._heartbeatEndpoint = heartbeatEndpoint; this._setStateEndpoint = setStateEndpoint; this._subscribeEndpoint = subscribeEndpoint; + this._getFileUrl = getFileUrl; this._crypto = crypto; this._channels = {}; this._presenceChannels = {}; @@ -3255,7 +6087,7 @@ var _default = function () { }); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "adaptStateChange", value: function adaptStateChange(args, callback) { var _this = this; @@ -3819,28 +6651,56 @@ var _default = function () { _announce3.event = message.payload.event; _this7._listenerManager.announceMessageAction(_announce3); - } else { + } else if (message.messageType === 4) { var _announce4 = {}; - _announce4.channel = null; - _announce4.subscription = null; - _announce4.actualChannel = subscriptionMatch != null ? channel : null; - _announce4.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; _announce4.channel = channel; _announce4.subscription = subscriptionMatch; _announce4.timetoken = publishMetaData.publishTimetoken; _announce4.publisher = message.issuingClientId; + var msgPayload = message.payload; + + if (_this7._config.cipherKey) { + var decryptedPayload = _this7._crypto.decrypt(message.payload); + + if ((0, _typeof2["default"])(decryptedPayload) === 'object' && decryptedPayload !== null) { + msgPayload = decryptedPayload; + } + } + + _announce4.message = msgPayload.message; + _announce4.file = { + id: msgPayload.file.id, + name: msgPayload.file.name, + url: _this7._getFileUrl({ + id: msgPayload.file.id, + name: msgPayload.file.name, + channel: channel + }) + }; + + _this7._listenerManager.announceFile(_announce4); + } else { + var _announce5 = {}; + _announce5.channel = null; + _announce5.subscription = null; + _announce5.actualChannel = subscriptionMatch != null ? channel : null; + _announce5.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; + _announce5.channel = channel; + _announce5.subscription = subscriptionMatch; + _announce5.timetoken = publishMetaData.publishTimetoken; + _announce5.publisher = message.issuingClientId; if (message.userMetadata) { - _announce4.userMetadata = message.userMetadata; + _announce5.userMetadata = message.userMetadata; } if (_this7._config.cipherKey) { - _announce4.message = _this7._crypto.decrypt(message.payload); + _announce5.message = _this7._crypto.decrypt(message.payload); } else { - _announce4.message = message.payload; + _announce5.message = message.payload; } - _this7._listenerManager.announceMessage(_announce4); + _this7._listenerManager.announceMessage(_announce5); } }); this._region = payload.metadata.region; @@ -3859,7 +6719,6 @@ var _default = function () { } } }]); - return _default; }(); @@ -3867,47 +6726,40 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 16 */ +/* 38 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _time = _interopRequireDefault(__webpack_require__(9)); - -var _flow_interfaces = __webpack_require__(1); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -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, descriptor.key, descriptor); } } +var _time = _interopRequireDefault(__webpack_require__(24)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _flow_interfaces = __webpack_require__(2); var _default = function () { function _default(_ref) { var timeEndpoint = _ref.timeEndpoint; - - _classCallCheck(this, _default); - - _defineProperty(this, "_reconnectionCallback", void 0); - - _defineProperty(this, "_timeEndpoint", void 0); - - _defineProperty(this, "_timeTimer", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_reconnectionCallback", void 0); + (0, _defineProperty2["default"])(this, "_timeEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_timeTimer", void 0); this._timeEndpoint = timeEndpoint; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "onReconnection", value: function onReconnection(reconnectionCallback) { this._reconnectionCallback = reconnectionCallback; @@ -3930,334 +6782,130 @@ var _default = function () { this._timeEndpoint(function (status) { if (!status.error) { clearInterval(_this._timeTimer); - - _this._reconnectionCallback(); - } - }); - } - }]); - - return _default; -}(); - -exports["default"] = _default; -module.exports = exports.default; - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; - -var _config = _interopRequireDefault(__webpack_require__(3)); - -var _flow_interfaces = __webpack_require__(1); - -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, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - -var hashCode = function hashCode(payload) { - var hash = 0; - if (payload.length === 0) return hash; - - for (var i = 0; i < payload.length; i += 1) { - var character = payload.charCodeAt(i); - hash = (hash << 5) - hash + character; - hash = hash & hash; - } - - return hash; -}; - -var _default = function () { - function _default(_ref) { - var config = _ref.config; - - _classCallCheck(this, _default); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "hashHistory", void 0); - - this.hashHistory = []; - this._config = config; - } - - _createClass(_default, [{ - key: "getKey", - value: function getKey(message) { - var hashedPayload = hashCode(JSON.stringify(message.payload)).toString(); - var timetoken = message.publishMetaData.publishTimetoken; - return "".concat(timetoken, "-").concat(hashedPayload); - } - }, { - key: "isDuplicate", - value: function isDuplicate(message) { - return this.hashHistory.includes(this.getKey(message)); - } - }, { - key: "addEntry", - value: function addEntry(message) { - if (this.hashHistory.length >= this._config.maximumCacheSize) { - this.hashHistory.shift(); - } - - this.hashHistory.push(this.getKey(message)); - } - }, { - key: "clearHistory", - value: function clearHistory() { - this.hashHistory = []; - } - }]); - - return _default; -}(); - -exports["default"] = _default; -module.exports = exports.default; - -/***/ }), -/* 18 */ -/***/ (function(module, exports) { - -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); + + _this._reconnectionCallback(); } + }); } + }]); + return _default; +}(); +exports["default"] = _default; +module.exports = exports.default; -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; +var _interopRequireDefault = __webpack_require__(0); -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; +var _config = _interopRequireDefault(__webpack_require__(8)); -function noop() {} +var _flow_interfaces = __webpack_require__(2); -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; +var hashCode = function hashCode(payload) { + var hash = 0; + if (payload.length === 0) return hash; -process.listeners = function (name) { return [] } + for (var i = 0; i < payload.length; i += 1) { + var character = payload.charCodeAt(i); + hash = (hash << 5) - hash + character; + hash = hash & hash; + } -process.binding = function (name) { - throw new Error('process.binding is not supported'); + return hash; }; -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; +var _default = function () { + function _default(_ref) { + var config = _ref.config; + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "hashHistory", void 0); + this.hashHistory = []; + this._config = config; + } + + (0, _createClass2["default"])(_default, [{ + key: "getKey", + value: function getKey(message) { + var hashedPayload = hashCode(JSON.stringify(message.payload)).toString(); + var timetoken = message.publishMetaData.publishTimetoken; + return "".concat(timetoken, "-").concat(hashedPayload); + } + }, { + key: "isDuplicate", + value: function isDuplicate(message) { + return this.hashHistory.includes(this.getKey(message)); + } + }, { + key: "addEntry", + value: function addEntry(message) { + if (this.hashHistory.length >= this._config.maximumCacheSize) { + this.hashHistory.shift(); + } + + this.hashHistory.push(this.getKey(message)); + } + }, { + key: "clearHistory", + value: function clearHistory() { + this.hashHistory = []; + } + }]); + return _default; +}(); +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 19 */ +/* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -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"); } } +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -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, descriptor.key, descriptor); } } +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var _default = function () { function _default(configuration) { - _classCallCheck(this, _default); - - _defineProperty(this, "_maximumSamplesCount", 100); - - _defineProperty(this, "_trackedLatencies", {}); - - _defineProperty(this, "_latencies", {}); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_maximumSamplesCount", 100); + (0, _defineProperty2["default"])(this, "_trackedLatencies", {}); + (0, _defineProperty2["default"])(this, "_latencies", {}); this._maximumSamplesCount = configuration.maximumSamplesCount || this._maximumSamplesCount; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "operationsLatencyForRequest", value: function operationsLatencyForRequest() { var _this = this; @@ -4391,301 +7039,577 @@ var _default = function () { operation = 'pam3'; break; - default: - operation = 'time'; - break; - } + default: + operation = 'time'; + break; + } + + return operation; + } + }]); + return _default; +}(); + +exports["default"] = _default; +module.exports = exports.default; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = exports.FCMNotificationPayload = exports.MPNSNotificationPayload = exports.APNSNotificationPayload = void 0; + +var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__(42)); + +var _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(14)); + +var _getPrototypeOf5 = _interopRequireDefault(__webpack_require__(12)); + +var _assertThisInitialized2 = _interopRequireDefault(__webpack_require__(19)); + +var _inherits2 = _interopRequireDefault(__webpack_require__(15)); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); + +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); + +var _flow_interfaces = __webpack_require__(2); + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +var BaseNotificationPayload = function () { + (0, _createClass2["default"])(BaseNotificationPayload, [{ + key: "payload", + get: function get() { + return this._payload; + } + }, { + key: "title", + set: function set(value) { + this._title = value; + } + }, { + key: "subtitle", + set: function set(value) { + this._subtitle = value; + } + }, { + key: "body", + set: function set(value) { + this._body = value; + } + }, { + key: "badge", + set: function set(value) { + this._badge = value; + } + }, { + key: "sound", + set: function set(value) { + this._sound = value; + } + }]); + + function BaseNotificationPayload(payload, title, body) { + (0, _classCallCheck2["default"])(this, BaseNotificationPayload); + (0, _defineProperty2["default"])(this, "_subtitle", void 0); + (0, _defineProperty2["default"])(this, "_payload", void 0); + (0, _defineProperty2["default"])(this, "_badge", void 0); + (0, _defineProperty2["default"])(this, "_sound", void 0); + (0, _defineProperty2["default"])(this, "_title", void 0); + (0, _defineProperty2["default"])(this, "_body", void 0); + this._payload = payload; + + this._setDefaultPayloadStructure(); + + this.title = title; + this.body = body; + } - return operation; + (0, _createClass2["default"])(BaseNotificationPayload, [{ + key: "_setDefaultPayloadStructure", + value: function _setDefaultPayloadStructure() {} + }, { + key: "toObject", + value: function toObject() { + return {}; } }]); - - return _default; + return BaseNotificationPayload; }(); -exports["default"] = _default; -module.exports = exports.default; +var APNSNotificationPayload = function (_BaseNotificationPayl) { + (0, _inherits2["default"])(APNSNotificationPayload, _BaseNotificationPayl); -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { + function APNSNotificationPayload() { + var _getPrototypeOf2; -"use strict"; + var _this; + (0, _classCallCheck2["default"])(this, APNSNotificationPayload); -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = exports.FCMNotificationPayload = exports.MPNSNotificationPayload = exports.APNSNotificationPayload = void 0; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf5["default"])(APNSNotificationPayload)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_configurations", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_apnsPushType", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_isSilent", void 0); + return _this; + } + + (0, _createClass2["default"])(APNSNotificationPayload, [{ + key: "_setDefaultPayloadStructure", + value: function _setDefaultPayloadStructure() { + this._payload.aps = { + alert: {} + }; + } + }, { + key: "toObject", + value: function toObject() { + var _this2 = this; -var _flow_interfaces = __webpack_require__(1); + var payload = _objectSpread({}, this._payload); + + var aps = payload.aps; + var alert = aps.alert; -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); } + if (this._isSilent) { + aps['content-available'] = 1; + } -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; } + if (this._apnsPushType === 'apns2') { + if (!this._configurations || !this._configurations.length) { + throw new ReferenceError('APNS2 configuration is missing'); + } -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; } + var configurations = []; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + this._configurations.forEach(function (configuration) { + configurations.push(_this2._objectFromAPNS2Configuration(configuration)); + }); -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + if (configurations.length) { + payload.pn_push = configurations; + } + } + + if (!alert || !Object.keys(alert).length) { + delete aps.alert; + } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + if (this._isSilent) { + delete aps.alert; + delete aps.badge; + delete aps.sound; + alert = {}; + } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + return this._isSilent || Object.keys(alert).length ? payload : null; + } + }, { + key: "_objectFromAPNS2Configuration", + value: function _objectFromAPNS2Configuration(configuration) { + var _this3 = this; -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + if (!configuration.targets || !configuration.targets.length) { + throw new ReferenceError('At least one APNS2 target should be provided'); + } -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); } + var targets = []; + configuration.targets.forEach(function (target) { + targets.push(_this3._objectFromAPNSTarget(target)); + }); + var collapseId = configuration.collapseId, + expirationDate = configuration.expirationDate; + var objectifiedConfiguration = { + auth_method: 'token', + targets: targets, + version: 'v2' + }; -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + if (collapseId && collapseId.length) { + objectifiedConfiguration.collapse_id = collapseId; + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + if (expirationDate) { + objectifiedConfiguration.expiration = expirationDate.toISOString(); + } -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, descriptor.key, descriptor); } } + return objectifiedConfiguration; + } + }, { + key: "_objectFromAPNSTarget", + value: function _objectFromAPNSTarget(target) { + if (!target.topic || !target.topic.length) { + throw new TypeError('Target \'topic\' undefined.'); + } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + var topic = target.topic, + _target$environment = target.environment, + environment = _target$environment === void 0 ? 'development' : _target$environment, + _target$excludedDevic = target.excludedDevices, + excludedDevices = _target$excludedDevic === void 0 ? [] : _target$excludedDevic; + var objectifiedTarget = { + topic: topic, + environment: environment + }; -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + if (excludedDevices.length) { + objectifiedTarget.excluded_devices = excludedDevices; + } -var BaseNotificationPayload = function () { - _createClass(BaseNotificationPayload, [{ - key: "payload", + return objectifiedTarget; + } + }, { + key: "configurations", + set: function set(value) { + if (!value || !value.length) return; + this._configurations = value; + } + }, { + key: "notification", get: function get() { - return this._payload; + return this._payload.aps; } }, { key: "title", + get: function get() { + return this._title; + }, set: function set(value) { + if (!value || !value.length) return; + this._payload.aps.alert.title = value; this._title = value; } }, { key: "subtitle", + get: function get() { + return this._subtitle; + }, set: function set(value) { + if (!value || !value.length) return; + this._payload.aps.alert.subtitle = value; this._subtitle = value; } }, { key: "body", + get: function get() { + return this._body; + }, set: function set(value) { + if (!value || !value.length) return; + this._payload.aps.alert.body = value; this._body = value; } }, { key: "badge", + get: function get() { + return this._badge; + }, set: function set(value) { + if (value === undefined || value === null) return; + this._payload.aps.badge = value; this._badge = value; } }, { key: "sound", + get: function get() { + return this._sound; + }, set: function set(value) { + if (!value || !value.length) return; + this._payload.aps.sound = value; this._sound = value; } + }, { + key: "silent", + set: function set(value) { + this._isSilent = value; + } }]); + return APNSNotificationPayload; +}(BaseNotificationPayload); - function BaseNotificationPayload(payload, title, body) { - _classCallCheck(this, BaseNotificationPayload); - - _defineProperty(this, "_subtitle", void 0); - - _defineProperty(this, "_payload", void 0); - - _defineProperty(this, "_badge", void 0); +exports.APNSNotificationPayload = APNSNotificationPayload; - _defineProperty(this, "_sound", void 0); +var MPNSNotificationPayload = function (_BaseNotificationPayl2) { + (0, _inherits2["default"])(MPNSNotificationPayload, _BaseNotificationPayl2); - _defineProperty(this, "_title", void 0); + function MPNSNotificationPayload() { + var _getPrototypeOf3; - _defineProperty(this, "_body", void 0); + var _this4; - this._payload = payload; + (0, _classCallCheck2["default"])(this, MPNSNotificationPayload); - this._setDefaultPayloadStructure(); + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } - this.title = title; - this.body = body; + _this4 = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf3 = (0, _getPrototypeOf5["default"])(MPNSNotificationPayload)).call.apply(_getPrototypeOf3, [this].concat(args))); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_backContent", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_backTitle", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_count", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_type", void 0); + return _this4; } - _createClass(BaseNotificationPayload, [{ - key: "_setDefaultPayloadStructure", - value: function _setDefaultPayloadStructure() {} + (0, _createClass2["default"])(MPNSNotificationPayload, [{ + key: "toObject", + value: function toObject() { + return Object.keys(this._payload).length ? _objectSpread({}, this._payload) : null; + } + }, { + key: "backContent", + get: function get() { + return this._backContent; + }, + set: function set(value) { + if (!value || !value.length) return; + this._payload.back_content = value; + this._backContent = value; + } + }, { + key: "backTitle", + get: function get() { + return this._backTitle; + }, + set: function set(value) { + if (!value || !value.length) return; + this._payload.back_title = value; + this._backTitle = value; + } + }, { + key: "count", + get: function get() { + return this._count; + }, + set: function set(value) { + if (value === undefined || value === null) return; + this._payload.count = value; + this._count = value; + } + }, { + key: "title", + get: function get() { + return this._title; + }, + set: function set(value) { + if (!value || !value.length) return; + this._payload.title = value; + this._title = value; + } + }, { + key: "type", + get: function get() { + return this._type; + }, + set: function set(value) { + if (!value || !value.length) return; + this._payload.type = value; + this._type = value; + } + }, { + key: "subtitle", + get: function get() { + return this.backTitle; + }, + set: function set(value) { + this.backTitle = value; + } + }, { + key: "body", + get: function get() { + return this.backContent; + }, + set: function set(value) { + this.backContent = value; + } }, { - key: "toObject", - value: function toObject() { - return {}; + key: "badge", + get: function get() { + return this.count; + }, + set: function set(value) { + this.count = value; } }]); + return MPNSNotificationPayload; +}(BaseNotificationPayload); - return BaseNotificationPayload; -}(); +exports.MPNSNotificationPayload = MPNSNotificationPayload; -var APNSNotificationPayload = function (_BaseNotificationPayl) { - _inherits(APNSNotificationPayload, _BaseNotificationPayl); +var FCMNotificationPayload = function (_BaseNotificationPayl3) { + (0, _inherits2["default"])(FCMNotificationPayload, _BaseNotificationPayl3); - function APNSNotificationPayload() { - var _getPrototypeOf2; + function FCMNotificationPayload() { + var _getPrototypeOf4; - var _this; + var _this5; - _classCallCheck(this, APNSNotificationPayload); + (0, _classCallCheck2["default"])(this, FCMNotificationPayload); - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; + for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + args[_key3] = arguments[_key3]; } - _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(APNSNotificationPayload)).call.apply(_getPrototypeOf2, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this), "_configurations", void 0); - - _defineProperty(_assertThisInitialized(_this), "_apnsPushType", void 0); - - _defineProperty(_assertThisInitialized(_this), "_isSilent", void 0); - - return _this; + _this5 = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf4 = (0, _getPrototypeOf5["default"])(FCMNotificationPayload)).call.apply(_getPrototypeOf4, [this].concat(args))); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "_isSilent", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "_icon", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "_tag", void 0); + return _this5; } - _createClass(APNSNotificationPayload, [{ + (0, _createClass2["default"])(FCMNotificationPayload, [{ key: "_setDefaultPayloadStructure", value: function _setDefaultPayloadStructure() { - this._payload.aps = { - alert: {} - }; + this._payload.notification = {}; + this._payload.data = {}; } }, { key: "toObject", value: function toObject() { - var _this2 = this; - - var payload = _objectSpread({}, this._payload); + var data = _objectSpread({}, this._payload.data); - var aps = payload.aps; - var alert = aps.alert; + var notification = null; + var payload = {}; - if (this._isSilent) { - aps['content-available'] = 1; + if (Object.keys(this._payload).length > 2) { + var _this$_payload = this._payload, + initialNotification = _this$_payload.notification, + initialData = _this$_payload.data, + additionalData = (0, _objectWithoutProperties2["default"])(_this$_payload, ["notification", "data"]); + data = _objectSpread({}, data, {}, additionalData); } - if (this._apnsPushType === 'apns2') { - if (!this._configurations || !this._configurations.length) { - throw new ReferenceError('APNS2 configuration is missing'); - } - - var configurations = []; - - this._configurations.forEach(function (configuration) { - configurations.push(_this2._objectFromAPNS2Configuration(configuration)); - }); - - if (configurations.length) { - payload.pn_push = configurations; - } + if (this._isSilent) { + data.notification = this._payload.notification; + } else { + notification = this._payload.notification; } - if (!alert || !Object.keys(alert).length) { - delete aps.alert; + if (Object.keys(data).length) { + payload.data = data; } - if (this._isSilent) { - delete aps.alert; - delete aps.badge; - delete aps.sound; - alert = {}; + if (notification && Object.keys(notification).length) { + payload.notification = notification; } - return this._isSilent || Object.keys(alert).length ? payload : null; + return Object.keys(payload).length ? payload : null; } }, { - key: "_objectFromAPNS2Configuration", - value: function _objectFromAPNS2Configuration(configuration) { - var _this3 = this; - - if (!configuration.targets || !configuration.targets.length) { - throw new ReferenceError('At least one APNS2 target should be provided'); - } - - var targets = []; - configuration.targets.forEach(function (target) { - targets.push(_this3._objectFromAPNSTarget(target)); - }); - var collapseId = configuration.collapseId, - expirationDate = configuration.expirationDate; - var objectifiedConfiguration = { - auth_method: 'token', - targets: targets, - version: 'v2' - }; - - if (collapseId && collapseId.length) { - objectifiedConfiguration.collapse_id = collapseId; - } - - if (expirationDate) { - objectifiedConfiguration.expiration = expirationDate.toISOString(); - } - - return objectifiedConfiguration; + key: "notification", + get: function get() { + return this._payload.notification; } }, { - key: "_objectFromAPNSTarget", - value: function _objectFromAPNSTarget(target) { - if (!target.topic || !target.topic.length) { - throw new TypeError('Target \'topic\' undefined.'); - } - - var topic = target.topic, - _target$environment = target.environment, - environment = _target$environment === void 0 ? 'development' : _target$environment, - _target$excludedDevic = target.excludedDevices, - excludedDevices = _target$excludedDevic === void 0 ? [] : _target$excludedDevic; - var objectifiedTarget = { - topic: topic, - environment: environment - }; - - if (excludedDevices.length) { - objectifiedTarget.excluded_devices = excludedDevices; - } - - return objectifiedTarget; + key: "data", + get: function get() { + return this._payload.data; } }, { - key: "configurations", + key: "title", + get: function get() { + return this._title; + }, set: function set(value) { if (!value || !value.length) return; - this._configurations = value; + this._payload.notification.title = value; + this._title = value; } }, { - key: "notification", + key: "body", get: function get() { - return this._payload.aps; + return this._body; + }, + set: function set(value) { + if (!value || !value.length) return; + this._payload.notification.body = value; + this._body = value; } }, { - key: "title", + key: "sound", get: function get() { - return this._title; + return this._sound; }, set: function set(value) { if (!value || !value.length) return; - this._payload.aps.alert.title = value; - this._title = value; + this._payload.notification.sound = value; + this._sound = value; } }, { - key: "subtitle", + key: "icon", get: function get() { - return this._subtitle; + return this._icon; }, set: function set(value) { if (!value || !value.length) return; - this._payload.aps.alert.subtitle = value; - this._subtitle = value; + this._payload.notification.icon = value; + this._icon = value; + } + }, { + key: "tag", + get: function get() { + return this._tag; + }, + set: function set(value) { + if (!value || !value.length) return; + this._payload.notification.tag = value; + this._tag = value; + } + }, { + key: "silent", + set: function set(value) { + this._isSilent = value; + } + }]); + return FCMNotificationPayload; +}(BaseNotificationPayload); + +exports.FCMNotificationPayload = FCMNotificationPayload; + +var NotificationsPayload = function () { + (0, _createClass2["default"])(NotificationsPayload, [{ + key: "debugging", + set: function set(value) { + this._debugging = value; + } + }, { + key: "title", + get: function get() { + return this._title; } }, { key: "body", get: function get() { return this._body; + } + }, { + key: "subtitle", + get: function get() { + return this._subtitle; }, set: function set(value) { - if (!value || !value.length) return; - this._payload.aps.alert.body = value; - this._body = value; + this._subtitle = value; + this.apns.subtitle = value; + this.mpns.subtitle = value; + this.fcm.subtitle = value; } }, { key: "badge", @@ -4693,9 +7617,10 @@ var APNSNotificationPayload = function (_BaseNotificationPayl) { return this._badge; }, set: function set(value) { - if (value === undefined || value === null) return; - this._payload.aps.badge = value; this._badge = value; + this.apns.badge = value; + this.mpns.badge = value; + this.fcm.badge = value; } }, { key: "sound", @@ -4703,986 +7628,1180 @@ var APNSNotificationPayload = function (_BaseNotificationPayl) { return this._sound; }, set: function set(value) { - if (!value || !value.length) return; - this._payload.aps.sound = value; this._sound = value; + this.apns.sound = value; + this.mpns.sound = value; + this.fcm.sound = value; } - }, { - key: "silent", - set: function set(value) { - this._isSilent = value; + }]); + + function NotificationsPayload(title, body) { + (0, _classCallCheck2["default"])(this, NotificationsPayload); + (0, _defineProperty2["default"])(this, "_payload", void 0); + (0, _defineProperty2["default"])(this, "_debugging", void 0); + (0, _defineProperty2["default"])(this, "_subtitle", void 0); + (0, _defineProperty2["default"])(this, "_badge", void 0); + (0, _defineProperty2["default"])(this, "_sound", void 0); + (0, _defineProperty2["default"])(this, "_title", void 0); + (0, _defineProperty2["default"])(this, "_body", void 0); + (0, _defineProperty2["default"])(this, "apns", void 0); + (0, _defineProperty2["default"])(this, "mpns", void 0); + (0, _defineProperty2["default"])(this, "fcm", void 0); + this._payload = { + apns: {}, + mpns: {}, + fcm: {} + }; + this._title = title; + this._body = body; + this.apns = new APNSNotificationPayload(this._payload.apns, title, body); + this.mpns = new MPNSNotificationPayload(this._payload.mpns, title, body); + this.fcm = new FCMNotificationPayload(this._payload.fcm, title, body); + } + + (0, _createClass2["default"])(NotificationsPayload, [{ + key: "buildPayload", + value: function buildPayload(platforms) { + var payload = {}; + + if (platforms.includes('apns') || platforms.includes('apns2')) { + this.apns._apnsPushType = platforms.includes('apns') ? 'apns' : 'apns2'; + var apnsPayload = this.apns.toObject(); + + if (apnsPayload && Object.keys(apnsPayload).length) { + payload.pn_apns = apnsPayload; + } + } + + if (platforms.includes('mpns')) { + var mpnsPayload = this.mpns.toObject(); + + if (mpnsPayload && Object.keys(mpnsPayload).length) { + payload.pn_mpns = mpnsPayload; + } + } + + if (platforms.includes('fcm')) { + var fcmPayload = this.fcm.toObject(); + + if (fcmPayload && Object.keys(fcmPayload).length) { + payload.pn_gcm = fcmPayload; + } + } + + if (Object.keys(payload).length && this._debugging) { + payload.pn_debug = true; + } + + return payload; } }]); + return NotificationsPayload; +}(); - return APNSNotificationPayload; -}(BaseNotificationPayload); - -exports.APNSNotificationPayload = APNSNotificationPayload; +var _default = NotificationsPayload; +exports["default"] = _default; -var MPNSNotificationPayload = function (_BaseNotificationPayl2) { - _inherits(MPNSNotificationPayload, _BaseNotificationPayl2); +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { - function MPNSNotificationPayload() { - var _getPrototypeOf3; +var objectWithoutPropertiesLoose = __webpack_require__(43); - var _this4; +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = objectWithoutPropertiesLoose(source, excluded); + var key, i; - _classCallCheck(this, MPNSNotificationPayload); + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; + 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; +} + +module.exports = _objectWithoutProperties; + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { - _this4 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(MPNSNotificationPayload)).call.apply(_getPrototypeOf3, [this].concat(args))); +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; - _defineProperty(_assertThisInitialized(_this4), "_backContent", void 0); + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } - _defineProperty(_assertThisInitialized(_this4), "_backTitle", void 0); + return target; +} - _defineProperty(_assertThisInitialized(_this4), "_count", void 0); +module.exports = _objectWithoutPropertiesLoose; - _defineProperty(_assertThisInitialized(_this4), "_type", void 0); +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { - return _this4; +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); + +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); + +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); + +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); + +var _config = _interopRequireDefault(__webpack_require__(8)); + +var _flow_interfaces = __webpack_require__(2); + +var _default = function () { + function _default(config, cbor) { + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_cbor", void 0); + (0, _defineProperty2["default"])(this, "_userTokens", void 0); + (0, _defineProperty2["default"])(this, "_spaceTokens", void 0); + (0, _defineProperty2["default"])(this, "_userToken", void 0); + (0, _defineProperty2["default"])(this, "_spaceToken", void 0); + this._config = config; + this._cbor = cbor; + + this._initializeTokens(); } - _createClass(MPNSNotificationPayload, [{ - key: "toObject", - value: function toObject() { - return Object.keys(this._payload).length ? _objectSpread({}, this._payload) : null; - } - }, { - key: "backContent", - get: function get() { - return this._backContent; - }, - set: function set(value) { - if (!value || !value.length) return; - this._payload.back_content = value; - this._backContent = value; - } - }, { - key: "backTitle", - get: function get() { - return this._backTitle; - }, - set: function set(value) { - if (!value || !value.length) return; - this._payload.back_title = value; - this._backTitle = value; - } - }, { - key: "count", - get: function get() { - return this._count; - }, - set: function set(value) { - if (value === undefined || value === null) return; - this._payload.count = value; - this._count = value; + (0, _createClass2["default"])(_default, [{ + key: "_initializeTokens", + value: function _initializeTokens() { + this._userTokens = {}; + this._spaceTokens = {}; + this._userToken = undefined; + this._spaceToken = undefined; } }, { - key: "title", - get: function get() { - return this._title; - }, - set: function set(value) { - if (!value || !value.length) return; - this._payload.title = value; - this._title = value; + key: "_setToken", + value: function _setToken(token) { + var _this = this; + + var tokenObject = this.parseToken(token); + + if (tokenObject && tokenObject.resources) { + if (tokenObject.resources.users) { + Object.keys(tokenObject.resources.users).forEach(function (id) { + _this._userTokens[id] = token; + }); + } + + if (tokenObject.resources.spaces) { + Object.keys(tokenObject.resources.spaces).forEach(function (id) { + _this._spaceTokens[id] = token; + }); + } + } + + if (tokenObject && tokenObject.patterns) { + if (tokenObject.patterns.users && Object.keys(tokenObject.patterns.users).length > 0) { + this._userToken = token; + } + + if (tokenObject.patterns.spaces && Object.keys(tokenObject.patterns.spaces).length > 0) { + this._spaceToken = token; + } + } } }, { - key: "type", - get: function get() { - return this._type; - }, - set: function set(value) { - if (!value || !value.length) return; - this._payload.type = value; - this._type = value; + key: "setToken", + value: function setToken(token) { + if (token && token.length > 0) { + this._setToken(token); + } } }, { - key: "subtitle", - get: function get() { - return this.backTitle; - }, - set: function set(value) { - this.backTitle = value; + key: "setTokens", + value: function setTokens(tokens) { + var _this2 = this; + + if (tokens && tokens.length && (0, _typeof2["default"])(tokens) === 'object') { + tokens.forEach(function (token) { + _this2.setToken(token); + }); + } } }, { - key: "body", - get: function get() { - return this.backContent; - }, - set: function set(value) { - this.backContent = value; + key: "getTokens", + value: function getTokens(tokenDef) { + var _this3 = this; + + var result = { + users: {}, + spaces: {} + }; + + if (tokenDef) { + if (tokenDef.user) { + result.user = this._userToken; + } + + if (tokenDef.space) { + result.space = this._spaceToken; + } + + if (tokenDef.users) { + tokenDef.users.forEach(function (user) { + result.users[user] = _this3._userTokens[user]; + }); + } + + if (tokenDef.space) { + tokenDef.spaces.forEach(function (space) { + result.spaces[space] = _this3._spaceTokens[space]; + }); + } + } else { + if (this._userToken) { + result.user = this._userToken; + } + + if (this._spaceToken) { + result.space = this._spaceToken; + } + + Object.keys(this._userTokens).forEach(function (user) { + result.users[user] = _this3._userTokens[user]; + }); + Object.keys(this._spaceTokens).forEach(function (space) { + result.spaces[space] = _this3._spaceTokens[space]; + }); + } + + return result; } }, { - key: "badge", - get: function get() { - return this.count; - }, - set: function set(value) { - this.count = value; - } - }]); + key: "getToken", + value: function getToken(type, id) { + var result; + + if (id) { + if (type === 'user') { + result = this._userTokens[id]; + } else if (type === 'space') { + result = this._spaceTokens[id]; + } + } else if (type === 'user') { + result = this._userToken; + } else if (type === 'space') { + result = this._spaceToken; + } - return MPNSNotificationPayload; -}(BaseNotificationPayload); + return result; + } + }, { + key: "extractPermissions", + value: function extractPermissions(permissions) { + var permissionsResult = { + create: false, + read: false, + write: false, + manage: false, + "delete": false + }; -exports.MPNSNotificationPayload = MPNSNotificationPayload; + if ((permissions & 16) === 16) { + permissionsResult.create = true; + } -var FCMNotificationPayload = function (_BaseNotificationPayl3) { - _inherits(FCMNotificationPayload, _BaseNotificationPayl3); + if ((permissions & 8) === 8) { + permissionsResult["delete"] = true; + } - function FCMNotificationPayload() { - var _getPrototypeOf4; + if ((permissions & 4) === 4) { + permissionsResult.manage = true; + } - var _this5; + if ((permissions & 2) === 2) { + permissionsResult.write = true; + } - _classCallCheck(this, FCMNotificationPayload); + if ((permissions & 1) === 1) { + permissionsResult.read = true; + } - for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { - args[_key3] = arguments[_key3]; + return permissionsResult; } + }, { + key: "parseToken", + value: function parseToken(tokenString) { + var _this4 = this; - _this5 = _possibleConstructorReturn(this, (_getPrototypeOf4 = _getPrototypeOf(FCMNotificationPayload)).call.apply(_getPrototypeOf4, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this5), "_isSilent", void 0); + var parsed = this._cbor.decodeToken(tokenString); - _defineProperty(_assertThisInitialized(_this5), "_icon", void 0); + if (parsed !== undefined) { + var userResourcePermissions = Object.keys(parsed.res.usr); + var spaceResourcePermissions = Object.keys(parsed.res.spc); + var userPatternPermissions = Object.keys(parsed.pat.usr); + var spacePatternPermissions = Object.keys(parsed.pat.spc); + var result = { + version: parsed.v, + timestamp: parsed.t, + ttl: parsed.ttl + }; + var userResources = userResourcePermissions.length > 0; + var spaceResources = spaceResourcePermissions.length > 0; - _defineProperty(_assertThisInitialized(_this5), "_tag", void 0); + if (userResources || spaceResources) { + result.resources = {}; - return _this5; - } + if (userResources) { + result.resources.users = {}; + userResourcePermissions.forEach(function (id) { + result.resources.users[id] = _this4.extractPermissions(parsed.res.usr[id]); + }); + } - _createClass(FCMNotificationPayload, [{ - key: "_setDefaultPayloadStructure", - value: function _setDefaultPayloadStructure() { - this._payload.notification = {}; - this._payload.data = {}; - } - }, { - key: "toObject", - value: function toObject() { - var data = _objectSpread({}, this._payload.data); + if (spaceResources) { + result.resources.spaces = {}; + spaceResourcePermissions.forEach(function (id) { + result.resources.spaces[id] = _this4.extractPermissions(parsed.res.spc[id]); + }); + } + } - var notification = null; - var payload = {}; + var userPatterns = userPatternPermissions.length > 0; + var spacePatterns = spacePatternPermissions.length > 0; - if (Object.keys(this._payload).length > 2) { - var _this$_payload = this._payload, - initialNotification = _this$_payload.notification, - initialData = _this$_payload.data, - additionalData = _objectWithoutProperties(_this$_payload, ["notification", "data"]); + if (userPatterns || spacePatterns) { + result.patterns = {}; - data = _objectSpread({}, data, {}, additionalData); - } + if (userPatterns) { + result.patterns.users = {}; + userPatternPermissions.forEach(function (id) { + result.patterns.users[id] = _this4.extractPermissions(parsed.pat.usr[id]); + }); + } - if (this._isSilent) { - data.notification = this._payload.notification; - } else { - notification = this._payload.notification; - } + if (spacePatterns) { + result.patterns.spaces = {}; + spacePatternPermissions.forEach(function (id) { + result.patterns.spaces[id] = _this4.extractPermissions(parsed.pat.spc[id]); + }); + } + } - if (Object.keys(data).length) { - payload.data = data; - } + if (Object.keys(parsed.meta).length > 0) { + result.meta = parsed.meta; + } - if (notification && Object.keys(notification).length) { - payload.notification = notification; + result.signature = parsed.sig; + return result; + } else { + return undefined; } - - return Object.keys(payload).length ? payload : null; - } - }, { - key: "notification", - get: function get() { - return this._payload.notification; - } - }, { - key: "data", - get: function get() { - return this._payload.data; - } - }, { - key: "title", - get: function get() { - return this._title; - }, - set: function set(value) { - if (!value || !value.length) return; - this._payload.notification.title = value; - this._title = value; - } - }, { - key: "body", - get: function get() { - return this._body; - }, - set: function set(value) { - if (!value || !value.length) return; - this._payload.notification.body = value; - this._body = value; - } - }, { - key: "sound", - get: function get() { - return this._sound; - }, - set: function set(value) { - if (!value || !value.length) return; - this._payload.notification.sound = value; - this._sound = value; - } - }, { - key: "icon", - get: function get() { - return this._icon; - }, - set: function set(value) { - if (!value || !value.length) return; - this._payload.notification.icon = value; - this._icon = value; - } - }, { - key: "tag", - get: function get() { - return this._tag; - }, - set: function set(value) { - if (!value || !value.length) return; - this._payload.notification.tag = value; - this._tag = value; } }, { - key: "silent", - set: function set(value) { - this._isSilent = value; + key: "clearTokens", + value: function clearTokens() { + this._initializeTokens(); } }]); + return _default; +}(); - return FCMNotificationPayload; -}(BaseNotificationPayload); +exports["default"] = _default; +module.exports = exports.default; -exports.FCMNotificationPayload = FCMNotificationPayload; +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { -var NotificationsPayload = function () { - _createClass(NotificationsPayload, [{ - key: "debugging", - set: function set(value) { - this._debugging = value; - } - }, { - key: "title", - get: function get() { - return this._title; - } - }, { - key: "body", - get: function get() { - return this._body; - } - }, { - key: "subtitle", - get: function get() { - return this._subtitle; - }, - set: function set(value) { - this._subtitle = value; - this.apns.subtitle = value; - this.mpns.subtitle = value; - this.fcm.subtitle = value; - } - }, { - key: "badge", - get: function get() { - return this._badge; - }, - set: function set(value) { - this._badge = value; - this.apns.badge = value; - this.mpns.badge = value; - this.fcm.badge = value; - } - }, { - key: "sound", - get: function get() { - return this._sound; - }, - set: function set(value) { - this._sound = value; - this.apns.sound = value; - this.mpns.sound = value; - this.fcm.sound = value; +var getPrototypeOf = __webpack_require__(12); + +var setPrototypeOf = __webpack_require__(16); + +var isNativeFunction = __webpack_require__(46); + +var construct = __webpack_require__(47); + +function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); } - }]); - function NotificationsPayload(title, body) { - _classCallCheck(this, NotificationsPayload); + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } - _defineProperty(this, "_payload", void 0); + function Wrapper() { + return construct(Class, arguments, getPrototypeOf(this).constructor); + } - _defineProperty(this, "_debugging", void 0); + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return setPrototypeOf(Wrapper, Class); + }; - _defineProperty(this, "_subtitle", void 0); + return _wrapNativeSuper(Class); +} - _defineProperty(this, "_badge", void 0); +module.exports = _wrapNativeSuper; - _defineProperty(this, "_sound", void 0); +/***/ }), +/* 46 */ +/***/ (function(module, exports) { - _defineProperty(this, "_title", void 0); +function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} - _defineProperty(this, "_body", void 0); +module.exports = _isNativeFunction; - _defineProperty(this, "apns", void 0); +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { - _defineProperty(this, "mpns", void 0); +var setPrototypeOf = __webpack_require__(16); - _defineProperty(this, "fcm", void 0); +var isNativeReflectConstruct = __webpack_require__(48); - this._payload = { - apns: {}, - mpns: {}, - fcm: {} +function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + module.exports = _construct = Reflect.construct; + } else { + module.exports = _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) setPrototypeOf(instance, Class.prototype); + return instance; }; - this._title = title; - this._body = body; - this.apns = new APNSNotificationPayload(this._payload.apns, title, body); - this.mpns = new MPNSNotificationPayload(this._payload.mpns, title, body); - this.fcm = new FCMNotificationPayload(this._payload.fcm, title, body); } - _createClass(NotificationsPayload, [{ - key: "buildPayload", - value: function buildPayload(platforms) { - var payload = {}; + return _construct.apply(null, arguments); +} - if (platforms.includes('apns') || platforms.includes('apns2')) { - this.apns._apnsPushType = platforms.includes('apns') ? 'apns' : 'apns2'; - var apnsPayload = this.apns.toObject(); +module.exports = _construct; - if (apnsPayload && Object.keys(apnsPayload).length) { - payload.pn_apns = apnsPayload; - } - } +/***/ }), +/* 48 */ +/***/ (function(module, exports) { - if (platforms.includes('mpns')) { - var mpnsPayload = this.mpns.toObject(); +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; - if (mpnsPayload && Object.keys(mpnsPayload).length) { - payload.pn_mpns = mpnsPayload; - } - } + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } +} - if (platforms.includes('fcm')) { - var fcmPayload = this.fcm.toObject(); +module.exports = _isNativeReflectConstruct; - if (fcmPayload && Object.keys(fcmPayload).length) { - payload.pn_gcm = fcmPayload; - } - } +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { - if (Object.keys(payload).length && this._debugging) { - payload.pn_debug = true; - } +"use strict"; - return payload; - } - }]); - return NotificationsPayload; -}(); +var _interopRequireDefault = __webpack_require__(0); -var _default = NotificationsPayload; -exports["default"] = _default; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function getOperation() { + return _operations["default"].PNAddChannelsToGroupOperation; +} + +function validateParams(modules, incomingParams) { + var channels = incomingParams.channels, + channelGroup = incomingParams.channelGroup; + var config = modules.config; + if (!channelGroup) return 'Missing Channel Group'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function isAuthSupported() { + return true; +} + +function prepareParams(modules, incomingParams) { + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + return { + add: channels.join(',') + }; +} + +function handleResponse() { + return {}; +} /***/ }), -/* 21 */ +/* 50 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports["default"] = void 0; +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; -var _config = _interopRequireDefault(__webpack_require__(3)); +var _flow_interfaces = __webpack_require__(2); -var _flow_interfaces = __webpack_require__(1); +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); -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 getOperation() { + return _operations["default"].PNRemoveChannelsFromGroupOperation; +} -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +function validateParams(modules, incomingParams) { + var channels = incomingParams.channels, + channelGroup = incomingParams.channelGroup; + var config = modules.config; + if (!channelGroup) return 'Missing Channel Group'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} -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, descriptor.key, descriptor); } } +function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); +} -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function isAuthSupported() { + return true; +} -var _default = function () { - function _default(config, cbor) { - _classCallCheck(this, _default); +function prepareParams(modules, incomingParams) { + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + return { + remove: channels.join(',') + }; +} - _defineProperty(this, "_config", void 0); +function handleResponse() { + return {}; +} - _defineProperty(this, "_cbor", void 0); +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { - _defineProperty(this, "_userTokens", void 0); +"use strict"; - _defineProperty(this, "_spaceTokens", void 0); - _defineProperty(this, "_userToken", void 0); +var _interopRequireDefault = __webpack_require__(0); - _defineProperty(this, "_spaceToken", void 0); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.isAuthSupported = isAuthSupported; +exports.getRequestTimeout = getRequestTimeout; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; - this._config = config; - this._cbor = cbor; +var _flow_interfaces = __webpack_require__(2); - this._initializeTokens(); - } +var _operations = _interopRequireDefault(__webpack_require__(1)); - _createClass(_default, [{ - key: "_initializeTokens", - value: function _initializeTokens() { - this._userTokens = {}; - this._spaceTokens = {}; - this._userToken = undefined; - this._spaceToken = undefined; - } - }, { - key: "_setToken", - value: function _setToken(token) { - var _this = this; +var _utils = _interopRequireDefault(__webpack_require__(3)); - var tokenObject = this.parseToken(token); +function getOperation() { + return _operations["default"].PNRemoveGroupOperation; +} - if (tokenObject && tokenObject.resources) { - if (tokenObject.resources.users) { - Object.keys(tokenObject.resources.users).forEach(function (id) { - _this._userTokens[id] = token; - }); - } +function validateParams(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + if (!channelGroup) return 'Missing Channel Group'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - if (tokenObject.resources.spaces) { - Object.keys(tokenObject.resources.spaces).forEach(function (id) { - _this._spaceTokens[id] = token; - }); - } - } +function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup), "/remove"); +} - if (tokenObject && tokenObject.patterns) { - if (tokenObject.patterns.users && Object.keys(tokenObject.patterns.users).length > 0) { - this._userToken = token; - } +function isAuthSupported() { + return true; +} - if (tokenObject.patterns.spaces && Object.keys(tokenObject.patterns.spaces).length > 0) { - this._spaceToken = token; - } - } - } - }, { - key: "setToken", - value: function setToken(token) { - if (token && token.length > 0) { - this._setToken(token); - } - } - }, { - key: "setTokens", - value: function setTokens(tokens) { - var _this2 = this; +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function prepareParams() { + return {}; +} - if (tokens && tokens.length && _typeof(tokens) === 'object') { - tokens.forEach(function (token) { - _this2.setToken(token); - }); - } - } - }, { - key: "getTokens", - value: function getTokens(tokenDef) { - var _this3 = this; +function handleResponse() { + return {}; +} - var result = { - users: {}, - spaces: {} - }; +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { - if (tokenDef) { - if (tokenDef.user) { - result.user = this._userToken; - } +"use strict"; - if (tokenDef.space) { - result.space = this._spaceToken; - } - if (tokenDef.users) { - tokenDef.users.forEach(function (user) { - result.users[user] = _this3._userTokens[user]; - }); - } +var _interopRequireDefault = __webpack_require__(0); - if (tokenDef.space) { - tokenDef.spaces.forEach(function (space) { - result.spaces[space] = _this3._spaceTokens[space]; - }); - } - } else { - if (this._userToken) { - result.user = this._userToken; - } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; - if (this._spaceToken) { - result.space = this._spaceToken; - } +var _flow_interfaces = __webpack_require__(2); - Object.keys(this._userTokens).forEach(function (user) { - result.users[user] = _this3._userTokens[user]; - }); - Object.keys(this._spaceTokens).forEach(function (space) { - result.spaces[space] = _this3._spaceTokens[space]; - }); - } +var _operations = _interopRequireDefault(__webpack_require__(1)); - return result; - } - }, { - key: "getToken", - value: function getToken(type, id) { - var result; +function getOperation() { + return _operations["default"].PNChannelGroupsOperation; +} - if (id) { - if (type === 'user') { - result = this._userTokens[id]; - } else if (type === 'space') { - result = this._spaceTokens[id]; - } - } else if (type === 'user') { - result = this._userToken; - } else if (type === 'space') { - result = this._spaceToken; - } +function validateParams(modules) { + var config = modules.config; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - return result; - } - }, { - key: "extractPermissions", - value: function extractPermissions(permissions) { - var permissionsResult = { - create: false, - read: false, - write: false, - manage: false, - "delete": false - }; +function getURL(modules) { + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group"); +} - if ((permissions & 16) === 16) { - permissionsResult.create = true; - } +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} - if ((permissions & 8) === 8) { - permissionsResult["delete"] = true; - } +function isAuthSupported() { + return true; +} - if ((permissions & 4) === 4) { - permissionsResult.manage = true; - } +function prepareParams() { + return {}; +} - if ((permissions & 2) === 2) { - permissionsResult.write = true; - } +function handleResponse(modules, serverResponse) { + return { + groups: serverResponse.payload.groups + }; +} - if ((permissions & 1) === 1) { - permissionsResult.read = true; - } +/***/ }), +/* 53 */ +/***/ (function(module, exports, __webpack_require__) { - return permissionsResult; - } - }, { - key: "parseToken", - value: function parseToken(tokenString) { - var _this4 = this; +"use strict"; - var parsed = this._cbor.decodeToken(tokenString); - if (parsed !== undefined) { - var userResourcePermissions = Object.keys(parsed.res.usr); - var spaceResourcePermissions = Object.keys(parsed.res.spc); - var userPatternPermissions = Object.keys(parsed.pat.usr); - var spacePatternPermissions = Object.keys(parsed.pat.spc); - var result = { - version: parsed.v, - timestamp: parsed.t, - ttl: parsed.ttl - }; - var userResources = userResourcePermissions.length > 0; - var spaceResources = spaceResourcePermissions.length > 0; +var _interopRequireDefault = __webpack_require__(0); - if (userResources || spaceResources) { - result.resources = {}; +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; - if (userResources) { - result.resources.users = {}; - userResourcePermissions.forEach(function (id) { - result.resources.users[id] = _this4.extractPermissions(parsed.res.usr[id]); - }); - } +var _flow_interfaces = __webpack_require__(2); - if (spaceResources) { - result.resources.spaces = {}; - spaceResourcePermissions.forEach(function (id) { - result.resources.spaces[id] = _this4.extractPermissions(parsed.res.spc[id]); - }); - } - } +var _operations = _interopRequireDefault(__webpack_require__(1)); - var userPatterns = userPatternPermissions.length > 0; - var spacePatterns = spacePatternPermissions.length > 0; +var _utils = _interopRequireDefault(__webpack_require__(3)); - if (userPatterns || spacePatterns) { - result.patterns = {}; +function getOperation() { + return _operations["default"].PNChannelsForGroupOperation; +} - if (userPatterns) { - result.patterns.users = {}; - userPatternPermissions.forEach(function (id) { - result.patterns.users[id] = _this4.extractPermissions(parsed.pat.usr[id]); - }); - } +function validateParams(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + if (!channelGroup) return 'Missing Channel Group'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - if (spacePatterns) { - result.patterns.spaces = {}; - spacePatternPermissions.forEach(function (id) { - result.patterns.spaces[id] = _this4.extractPermissions(parsed.pat.spc[id]); - }); - } - } +function getURL(modules, incomingParams) { + var channelGroup = incomingParams.channelGroup; + var config = modules.config; + return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); +} - if (Object.keys(parsed.meta).length > 0) { - result.meta = parsed.meta; - } +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} - result.signature = parsed.sig; - return result; - } else { - return undefined; - } - } - }, { - key: "clearTokens", - value: function clearTokens() { - this._initializeTokens(); - } - }]); +function isAuthSupported() { + return true; +} - return _default; -}(); +function prepareParams() { + return {}; +} -exports["default"] = _default; -module.exports = exports.default; +function handleResponse(modules, serverResponse) { + return { + channels: serverResponse.payload.channels + }; +} /***/ }), -/* 22 */ +/* 54 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports["default"] = _default; +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; -var _uuid = _interopRequireDefault(__webpack_require__(5)); +var _flow_interfaces = __webpack_require__(2); -var _flow_interfaces = __webpack_require__(1); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +function getOperation() { + return _operations["default"].PNPushNotificationEnabledChannelsOperation; +} -var _config = _interopRequireDefault(__webpack_require__(3)); +function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + channels = incomingParams.channels, + topic = incomingParams.topic; + var config = modules.config; + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; + if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} -var _operations = _interopRequireDefault(__webpack_require__(0)); +function getURL(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + if (pushGateway === 'apns2') { + return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); + } -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); +} -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function isAuthSupported() { + return true; +} -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 prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, + _incomingParams$envir = incomingParams.environment, + environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, + topic = incomingParams.topic; + var parameters = { + type: pushGateway, + add: channels.join(',') + }; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + if (pushGateway === 'apns2') { + parameters = Object.assign({}, parameters, { + environment: environment, + topic: topic + }); + delete parameters.type; + } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + return parameters; +} -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function handleResponse() { + return {}; +} -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); } +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { -function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +"use strict"; -function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } -function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +var _interopRequireDefault = __webpack_require__(0); -function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var _flow_interfaces = __webpack_require__(2); -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +var _operations = _interopRequireDefault(__webpack_require__(1)); -var PubNubError = function (_Error) { - _inherits(PubNubError, _Error); +function getOperation() { + return _operations["default"].PNPushNotificationEnabledChannelsOperation; +} - function PubNubError(message, status) { - var _this; +function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + channels = incomingParams.channels, + topic = incomingParams.topic; + var config = modules.config; + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; + if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; + if (!channels || channels.length === 0) return 'Missing Channels'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - _classCallCheck(this, PubNubError); +function getURL(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; - _this = _possibleConstructorReturn(this, _getPrototypeOf(PubNubError).call(this, message)); - _this.name = _this.constructor.name; - _this.status = status; - _this.message = message; - return _this; + if (pushGateway === 'apns2') { + return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); } - return PubNubError; -}(_wrapNativeSuper(Error)); - -function createError(errorPayload, type) { - errorPayload.type = type; - errorPayload.error = true; - return errorPayload; + return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); } -function createValidationError(message) { - return createError({ - message: message - }, 'validationError'); +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); } -function decideURL(endpoint, modules, incomingParams) { - if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { - return endpoint.postURL(modules, incomingParams); - } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) { - return endpoint.patchURL(modules, incomingParams); - } else { - return endpoint.getURL(modules, incomingParams); - } +function isAuthSupported() { + return true; } -function getAuthToken(endpoint, modules, incomingParams) { - var token; +function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, + _incomingParams$envir = incomingParams.environment, + environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, + topic = incomingParams.topic; + var parameters = { + type: pushGateway, + remove: channels.join(',') + }; - if (endpoint.getAuthToken) { - token = endpoint.getAuthToken(modules, incomingParams); + if (pushGateway === 'apns2') { + parameters = Object.assign({}, parameters, { + environment: environment, + topic: topic + }); + delete parameters.type; } - return token; + return parameters; } -function generatePNSDK(config) { - if (config.sdkName) { - return config.sdkName; - } +function handleResponse() { + return {}; +} - var base = "PubNub-JS-".concat(config.sdkFamily); +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { - if (config.partnerId) { - base += "-".concat(config.partnerId); - } +"use strict"; - base += "/".concat(config.getVersion()); - var pnsdkSuffix = config._getPnsdkSuffix(' '); +var _interopRequireDefault = __webpack_require__(0); - if (pnsdkSuffix.length > 0) { - base += pnsdkSuffix; - } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; - return base; -} +var _flow_interfaces = __webpack_require__(2); -function getHttpMethod(modules, endpoint, incomingParams) { - if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) { - return 'POST'; - } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) { - return 'PATCH'; - } else if (endpoint.useDelete && endpoint.useDelete(modules, incomingParams)) { - return 'DELETE'; - } else { - return 'GET'; - } -} +var _operations = _interopRequireDefault(__webpack_require__(1)); -function signRequest(modules, url, outgoingParams, incomingParams, endpoint) { - var config = modules.config, - crypto = modules.crypto; - var httpMethod = getHttpMethod(modules, endpoint, incomingParams); - outgoingParams.timestamp = Math.floor(new Date().getTime() / 1000); - var signInput = "".concat(httpMethod, "\n").concat(config.publishKey, "\n").concat(url, "\n").concat(_utils["default"].signPamFromParams(outgoingParams), "\n"); +function getOperation() { + return _operations["default"].PNPushNotificationEnabledChannelsOperation; +} - if (httpMethod === 'POST') { - var payload = endpoint.postPayload(modules, incomingParams); +function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + topic = incomingParams.topic; + var config = modules.config; + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; + if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - if (typeof payload === 'string') { - signInput += payload; - } else { - signInput += JSON.stringify(payload); - } - } else if (httpMethod === 'PATCH') { - var _payload = endpoint.patchPayload(modules, incomingParams); +function getURL(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; - if (typeof _payload === 'string') { - signInput += _payload; - } else { - signInput += JSON.stringify(_payload); - } + if (pushGateway === 'apns2') { + return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); } - var signature = "v2.".concat(crypto.HMACSHA256(signInput)); - signature = signature.replace(/\+/g, '-'); - signature = signature.replace(/\//g, '_'); - signature = signature.replace(/=+$/, ''); - outgoingParams.signature = signature; + return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); } -function _default(modules, endpoint) { - var networking = modules.networking, - config = modules.config, - telemetryManager = modules.telemetryManager; - - var requestId = _uuid["default"].createUUID(); +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} - var callback = null; - var promiseComponent = null; - var incomingParams = {}; +function isAuthSupported() { + return true; +} - if (endpoint.getOperation() === _operations["default"].PNTimeOperation || endpoint.getOperation() === _operations["default"].PNChannelGroupsOperation) { - callback = arguments.length <= 2 ? undefined : arguments[2]; - } else { - incomingParams = arguments.length <= 2 ? undefined : arguments[2]; - callback = arguments.length <= 3 ? undefined : arguments[3]; - } +function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$envir = incomingParams.environment, + environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, + topic = incomingParams.topic; + var parameters = { + type: pushGateway + }; - if (typeof Promise !== 'undefined' && !callback) { - promiseComponent = _utils["default"].createPromise(); + if (pushGateway === 'apns2') { + parameters = Object.assign({}, parameters, { + environment: environment, + topic: topic + }); + delete parameters.type; } - var validationResult = endpoint.validateParams(modules, incomingParams); + return parameters; +} - if (validationResult) { - if (callback) { - return callback(createValidationError(validationResult)); - } else if (promiseComponent) { - promiseComponent.reject(new PubNubError('Validation failed, check status for details', createValidationError(validationResult))); - return promiseComponent.promise; - } +function handleResponse(modules, serverResponse) { + return { + channels: serverResponse + }; +} - return; - } +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { - var outgoingParams = endpoint.prepareParams(modules, incomingParams); - var url = decideURL(endpoint, modules, incomingParams); - var callInstance; - var networkingParams = { - url: url, - operation: endpoint.getOperation(), - timeout: endpoint.getRequestTimeout(modules), - headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {} - }; - outgoingParams.uuid = config.UUID; - outgoingParams.pnsdk = generatePNSDK(config); - var telemetryLatencies = telemetryManager.operationsLatencyForRequest(); +"use strict"; - if (Object.keys(telemetryLatencies).length) { - outgoingParams = _objectSpread({}, outgoingParams, {}, telemetryLatencies); - } - if (config.useInstanceId) { - outgoingParams.instanceid = config.instanceId; - } +var _interopRequireDefault = __webpack_require__(0); - if (config.useRequestId) { - outgoingParams.requestid = requestId; - } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; - if (endpoint.isAuthSupported()) { - var token = getAuthToken(endpoint, modules, incomingParams); - var tokenOrKey = token || config.getAuthKey(); +var _flow_interfaces = __webpack_require__(2); - if (tokenOrKey) { - outgoingParams.auth = tokenOrKey; - } - } +var _operations = _interopRequireDefault(__webpack_require__(1)); - if (config.secretKey) { - signRequest(modules, url, outgoingParams, incomingParams, endpoint); - } +function getOperation() { + return _operations["default"].PNRemoveAllPushNotificationsOperation; +} - var onResponse = function onResponse(status, payload) { - if (status.error) { - if (callback) { - callback(status); - } else if (promiseComponent) { - promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', status)); - } +function validateParams(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway, + topic = incomingParams.topic; + var config = modules.config; + if (!device) return 'Missing Device ID (device)'; + if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; + if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} - return; - } +function getURL(modules, incomingParams) { + var device = incomingParams.device, + pushGateway = incomingParams.pushGateway; + var config = modules.config; - telemetryManager.stopLatencyMeasure(endpoint.getOperation(), requestId); - var parsedPayload = endpoint.handleResponse(modules, payload, incomingParams); + if (pushGateway === 'apns2') { + return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device, "/remove"); + } - if (callback) { - callback(status, parsedPayload); - } else if (promiseComponent) { - promiseComponent.fulfill(parsedPayload); - } - }; + return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device, "/remove"); +} - telemetryManager.startLatencyMeasure(endpoint.getOperation(), requestId); +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} - if (getHttpMethod(modules, endpoint, incomingParams) === 'POST') { - var payload = endpoint.postPayload(modules, incomingParams); - callInstance = networking.POST(outgoingParams, payload, networkingParams, onResponse); - } else if (getHttpMethod(modules, endpoint, incomingParams) === 'PATCH') { - var _payload2 = endpoint.patchPayload(modules, incomingParams); +function isAuthSupported() { + return true; +} - callInstance = networking.PATCH(outgoingParams, _payload2, networkingParams, onResponse); - } else if (getHttpMethod(modules, endpoint, incomingParams) === 'DELETE') { - callInstance = networking.DELETE(outgoingParams, networkingParams, onResponse); - } else { - callInstance = networking.GET(outgoingParams, networkingParams, onResponse); - } +function prepareParams(modules, incomingParams) { + var pushGateway = incomingParams.pushGateway, + _incomingParams$envir = incomingParams.environment, + environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, + topic = incomingParams.topic; + var parameters = { + type: pushGateway + }; - if (endpoint.getOperation() === _operations["default"].PNSubscribeOperation) { - return callInstance; + if (pushGateway === 'apns2') { + parameters = Object.assign({}, parameters, { + environment: environment, + topic: topic + }); + delete parameters.type; } - if (promiseComponent) { - return promiseComponent.promise; - } + return parameters; } -module.exports = exports.default; +function handleResponse() { + return {}; +} /***/ }), -/* 23 */ +/* 58 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5694,31 +8813,27 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _utils = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { - return _operations["default"].PNAddChannelsToGroupOperation; + return _operations["default"].PNUnsubscribeOperation; } -function validateParams(modules, incomingParams) { - var channels = incomingParams.channels, - channelGroup = incomingParams.channelGroup; +function validateParams(modules) { var config = modules.config; - if (!channelGroup) return 'Missing Channel Group'; - if (!channels || channels.length === 0) return 'Missing Channels'; if (!config.subscribeKey) return 'Missing Subscribe Key'; } function getURL(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/leave"); } function getRequestTimeout(_ref) { @@ -5731,11 +8846,15 @@ function isAuthSupported() { } function prepareParams(modules, incomingParams) { - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - return { - add: channels.join(',') - }; + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; + var params = {}; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + return params; } function handleResponse() { @@ -5743,12 +8862,14 @@ function handleResponse() { } /***/ }), -/* 24 */ +/* 59 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5760,31 +8881,24 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -var _utils = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { - return _operations["default"].PNRemoveChannelsFromGroupOperation; + return _operations["default"].PNWhereNowOperation; } -function validateParams(modules, incomingParams) { - var channels = incomingParams.channels, - channelGroup = incomingParams.channelGroup; +function validateParams(modules) { var config = modules.config; - if (!channelGroup) return 'Missing Channel Group'; - if (!channels || channels.length === 0) return 'Missing Channels'; if (!config.subscribeKey) return 'Missing Subscribe Key'; } function getURL(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); + var _incomingParams$uuid = incomingParams.uuid, + uuid = _incomingParams$uuid === void 0 ? config.UUID : _incomingParams$uuid; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/uuid/").concat(uuid); } function getRequestTimeout(_ref) { @@ -5796,25 +8910,31 @@ function isAuthSupported() { return true; } -function prepareParams(modules, incomingParams) { - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - return { - remove: channels.join(',') - }; +function prepareParams() { + return {}; } -function handleResponse() { - return {}; +function handleResponse(modules, serverResponse) { + if (!serverResponse.payload) { + return { + channels: [] + }; + } + + return { + channels: serverResponse.payload.channels + }; } /***/ }), -/* 25 */ +/* 60 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5826,29 +8946,27 @@ exports.getRequestTimeout = getRequestTimeout; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _utils = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { - return _operations["default"].PNRemoveGroupOperation; + return _operations["default"].PNHeartbeatOperation; } -function validateParams(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; +function validateParams(modules) { var config = modules.config; - if (!channelGroup) return 'Missing Channel Group'; if (!config.subscribeKey) return 'Missing Subscribe Key'; } function getURL(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup), "/remove"); + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/heartbeat"); } function isAuthSupported() { @@ -5860,8 +8978,21 @@ function getRequestTimeout(_ref) { return config.getTransactionTimeout(); } -function prepareParams() { - return {}; +function prepareParams(modules, incomingParams) { + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2, + _incomingParams$state = incomingParams.state, + state = _incomingParams$state === void 0 ? {} : _incomingParams$state; + var config = modules.config; + var params = {}; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + params.state = JSON.stringify(state); + params.heartbeat = config.getPresenceTimeout(); + return params; } function handleResponse() { @@ -5869,12 +9000,14 @@ function handleResponse() { } /***/ }), -/* 26 */ +/* 61 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5886,14 +9019,14 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { - return _operations["default"].PNChannelGroupsOperation; + return _operations["default"].PNGetStateOperation; } function validateParams(modules) { @@ -5901,9 +9034,14 @@ function validateParams(modules) { if (!config.subscribeKey) return 'Missing Subscribe Key'; } -function getURL(modules) { +function getURL(modules, incomingParams) { var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group"); + var _incomingParams$uuid = incomingParams.uuid, + uuid = _incomingParams$uuid === void 0 ? config.UUID : _incomingParams$uuid, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/uuid/").concat(uuid); } function getRequestTimeout(_ref) { @@ -5915,23 +9053,45 @@ function isAuthSupported() { return true; } -function prepareParams() { - return {}; +function prepareParams(modules, incomingParams) { + var _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; + var params = {}; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + return params; } -function handleResponse(modules, serverResponse) { +function handleResponse(modules, serverResponse, incomingParams) { + var _incomingParams$chann3 = incomingParams.channels, + channels = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3, + _incomingParams$chann4 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4; + var channelsResponse = {}; + + if (channels.length === 1 && channelGroups.length === 0) { + channelsResponse[channels[0]] = serverResponse.payload; + } else { + channelsResponse = serverResponse.payload; + } + return { - groups: serverResponse.payload.groups + channels: channelsResponse }; } /***/ }), -/* 27 */ +/* 62 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5943,29 +9103,34 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { - return _operations["default"].PNChannelsForGroupOperation; + return _operations["default"].PNSetStateOperation; } function validateParams(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; var config = modules.config; - if (!channelGroup) return 'Missing Channel Group'; + var state = incomingParams.state, + _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, + _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; + if (!state) return 'Missing State'; if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (channels.length === 0 && channelGroups.length === 0) return 'Please provide a list of channels and/or channel-groups'; } function getURL(modules, incomingParams) { - var channelGroup = incomingParams.channelGroup; var config = modules.config; - return "/v1/channel-registration/sub-key/".concat(config.subscribeKey, "/channel-group/").concat(_utils["default"].encodeString(channelGroup)); + var _incomingParams$chann3 = incomingParams.channels, + channels = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/uuid/").concat(config.UUID, "/data"); } function getRequestTimeout(_ref) { @@ -5977,23 +9142,35 @@ function isAuthSupported() { return true; } -function prepareParams() { - return {}; +function prepareParams(modules, incomingParams) { + var state = incomingParams.state, + _incomingParams$chann4 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4; + var params = {}; + params.state = JSON.stringify(state); + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); + } + + return params; } function handleResponse(modules, serverResponse) { return { - channels: serverResponse.payload.channels + state: serverResponse.payload }; } /***/ }), -/* 28 */ +/* 63 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -6005,39 +9182,41 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _utils = _interopRequireDefault(__webpack_require__(3)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function getOperation() { - return _operations["default"].PNPushNotificationEnabledChannelsOperation; + return _operations["default"].PNHereNowOperation; } -function validateParams(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway, - channels = incomingParams.channels, - topic = incomingParams.topic; +function validateParams(modules) { var config = modules.config; - if (!device) return 'Missing Device ID (device)'; - if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; - if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; - if (!channels || channels.length === 0) return 'Missing Channels'; if (!config.subscribeKey) return 'Missing Subscribe Key'; } function getURL(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway; var config = modules.config; + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, + _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; + var baseURL = "/v2/presence/sub-key/".concat(config.subscribeKey); - if (pushGateway === 'apns2') { - return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); + if (channels.length > 0 || channelGroups.length > 0) { + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + baseURL += "/channel/".concat(_utils["default"].encodeString(stringifiedChannels)); } - return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); + return baseURL; } function getRequestTimeout(_ref) { @@ -6050,260 +9229,252 @@ function isAuthSupported() { } function prepareParams(modules, incomingParams) { - var pushGateway = incomingParams.pushGateway, - _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, - _incomingParams$envir = incomingParams.environment, - environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, - topic = incomingParams.topic; - var parameters = { - type: pushGateway, - add: channels.join(',') - }; + var _incomingParams$chann3 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3, + _incomingParams$inclu = incomingParams.includeUUIDs, + includeUUIDs = _incomingParams$inclu === void 0 ? true : _incomingParams$inclu, + _incomingParams$inclu2 = incomingParams.includeState, + includeState = _incomingParams$inclu2 === void 0 ? false : _incomingParams$inclu2, + _incomingParams$query = incomingParams.queryParameters, + queryParameters = _incomingParams$query === void 0 ? {} : _incomingParams$query; + var params = {}; + if (!includeUUIDs) params.disable_uuids = 1; + if (includeState) params.state = 1; - if (pushGateway === 'apns2') { - parameters = Object.assign({}, parameters, { - environment: environment, - topic: topic - }); - delete parameters.type; + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); } - return parameters; -} - -function handleResponse() { - return {}; -} - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; - -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function getOperation() { - return _operations["default"].PNPushNotificationEnabledChannelsOperation; + params = _objectSpread({}, params, {}, queryParameters); + return params; } -function validateParams(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway, - channels = incomingParams.channels, - topic = incomingParams.topic; - var config = modules.config; - if (!device) return 'Missing Device ID (device)'; - if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; - if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; - if (!channels || channels.length === 0) return 'Missing Channels'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} +function handleResponse(modules, serverResponse, incomingParams) { + var _incomingParams$chann4 = incomingParams.channels, + channels = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4, + _incomingParams$chann5 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann5 === void 0 ? [] : _incomingParams$chann5, + _incomingParams$inclu3 = incomingParams.includeUUIDs, + includeUUIDs = _incomingParams$inclu3 === void 0 ? true : _incomingParams$inclu3, + _incomingParams$inclu4 = incomingParams.includeState, + includeState = _incomingParams$inclu4 === void 0 ? false : _incomingParams$inclu4; -function getURL(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway; - var config = modules.config; + var prepareSingularChannel = function prepareSingularChannel() { + var response = {}; + var occupantsList = []; + response.totalChannels = 1; + response.totalOccupancy = serverResponse.occupancy; + response.channels = {}; + response.channels[channels[0]] = { + occupants: occupantsList, + name: channels[0], + occupancy: serverResponse.occupancy + }; - if (pushGateway === 'apns2') { - return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); - } + if (includeUUIDs && serverResponse.uuids) { + serverResponse.uuids.forEach(function (uuidEntry) { + if (includeState) { + occupantsList.push({ + state: uuidEntry.state, + uuid: uuidEntry.uuid + }); + } else { + occupantsList.push({ + state: null, + uuid: uuidEntry + }); + } + }); + } - return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); -} + return response; + }; -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + var prepareMultipleChannel = function prepareMultipleChannel() { + var response = {}; + response.totalChannels = serverResponse.payload.total_channels; + response.totalOccupancy = serverResponse.payload.total_occupancy; + response.channels = {}; + Object.keys(serverResponse.payload.channels).forEach(function (channelName) { + var channelEntry = serverResponse.payload.channels[channelName]; + var occupantsList = []; + response.channels[channelName] = { + occupants: occupantsList, + name: channelName, + occupancy: channelEntry.occupancy + }; -function isAuthSupported() { - return true; -} + if (includeUUIDs) { + channelEntry.uuids.forEach(function (uuidEntry) { + if (includeState) { + occupantsList.push({ + state: uuidEntry.state, + uuid: uuidEntry.uuid + }); + } else { + occupantsList.push({ + state: null, + uuid: uuidEntry + }); + } + }); + } -function prepareParams(modules, incomingParams) { - var pushGateway = incomingParams.pushGateway, - _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, - _incomingParams$envir = incomingParams.environment, - environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, - topic = incomingParams.topic; - var parameters = { - type: pushGateway, - remove: channels.join(',') + return response; + }); + return response; }; - if (pushGateway === 'apns2') { - parameters = Object.assign({}, parameters, { - environment: environment, - topic: topic - }); - delete parameters.type; - } + var response; - return parameters; -} + if (channels.length > 1 || channelGroups.length > 0 || channelGroups.length === 0 && channels.length === 0) { + response = prepareMultipleChannel(); + } else { + response = prepareSingularChannel(); + } -function handleResponse() { - return {}; + return response; } /***/ }), -/* 30 */ +/* 64 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports.getOperation = getOperation; exports.validateParams = validateParams; -exports.getURL = getURL; +exports.usePost = usePost; +exports.postURL = postURL; exports.getRequestTimeout = getRequestTimeout; +exports.getRequestHeaders = getRequestHeaders; exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; +exports.postPayload = postPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { - return _operations["default"].PNPushNotificationEnabledChannelsOperation; + return _operations["default"].PNAddMessageActionOperation; } -function validateParams(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway, - topic = incomingParams.topic; - var config = modules.config; - if (!device) return 'Missing Device ID (device)'; - if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; - if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; +function validateParams(_ref, incomingParams) { + var config = _ref.config; + var action = incomingParams.action, + channel = incomingParams.channel, + messageTimetoken = incomingParams.messageTimetoken; + if (!messageTimetoken) return 'Missing message timetoken'; if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (!channel) return 'Missing message channel'; + if (!action) return 'Missing Action'; + if (!action.value) return 'Missing Action.value'; + if (!action.type) return 'Missing Action.type'; + if (action.type.length > 15) return 'Action.type value exceed maximum length of 15'; } -function getURL(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway; - var config = modules.config; - - if (pushGateway === 'apns2') { - return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device); - } +function usePost() { + return true; +} - return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device); +function postURL(_ref2, incomingParams) { + var config = _ref2.config; + var channel = incomingParams.channel, + messageTimetoken = incomingParams.messageTimetoken; + return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel, "/message/").concat(messageTimetoken); } -function getRequestTimeout(_ref) { - var config = _ref.config; +function getRequestTimeout(_ref3) { + var config = _ref3.config; return config.getTransactionTimeout(); } +function getRequestHeaders() { + return { + 'Content-Type': 'application/json' + }; +} + function isAuthSupported() { return true; } -function prepareParams(modules, incomingParams) { - var pushGateway = incomingParams.pushGateway, - _incomingParams$envir = incomingParams.environment, - environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, - topic = incomingParams.topic; - var parameters = { - type: pushGateway - }; - - if (pushGateway === 'apns2') { - parameters = Object.assign({}, parameters, { - environment: environment, - topic: topic - }); - delete parameters.type; - } +function prepareParams() { + return {}; +} - return parameters; +function postPayload(modules, incomingParams) { + return incomingParams.action; } -function handleResponse(modules, serverResponse) { +function handleResponse(modules, addMessageActionResponse) { return { - channels: serverResponse + data: addMessageActionResponse.data }; } /***/ }), -/* 31 */ +/* 65 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports.getOperation = getOperation; exports.validateParams = validateParams; +exports.useDelete = useDelete; exports.getURL = getURL; exports.getRequestTimeout = getRequestTimeout; exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { - return _operations["default"].PNRemoveAllPushNotificationsOperation; + return _operations["default"].PNRemoveMessageActionOperation; } -function validateParams(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway, - topic = incomingParams.topic; - var config = modules.config; - if (!device) return 'Missing Device ID (device)'; - if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)'; - if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic'; +function validateParams(_ref, incomingParams) { + var config = _ref.config; + var channel = incomingParams.channel, + actionTimetoken = incomingParams.actionTimetoken, + messageTimetoken = incomingParams.messageTimetoken; + if (!messageTimetoken) return 'Missing message timetoken'; + if (!actionTimetoken) return 'Missing action timetoken'; if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (!channel) return 'Missing message channel'; } -function getURL(modules, incomingParams) { - var device = incomingParams.device, - pushGateway = incomingParams.pushGateway; - var config = modules.config; - - if (pushGateway === 'apns2') { - return "/v2/push/sub-key/".concat(config.subscribeKey, "/devices-apns2/").concat(device, "/remove"); - } +function useDelete() { + return true; +} - return "/v1/push/sub-key/".concat(config.subscribeKey, "/devices/").concat(device, "/remove"); +function getURL(_ref2, incomingParams) { + var config = _ref2.config; + var channel = incomingParams.channel, + actionTimetoken = incomingParams.actionTimetoken, + messageTimetoken = incomingParams.messageTimetoken; + return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel, "/message/").concat(messageTimetoken, "/action/").concat(actionTimetoken); } -function getRequestTimeout(_ref) { - var config = _ref.config; +function getRequestTimeout(_ref3) { + var config = _ref3.config; return config.getTransactionTimeout(); } @@ -6311,37 +9482,25 @@ function isAuthSupported() { return true; } -function prepareParams(modules, incomingParams) { - var pushGateway = incomingParams.pushGateway, - _incomingParams$envir = incomingParams.environment, - environment = _incomingParams$envir === void 0 ? 'development' : _incomingParams$envir, - topic = incomingParams.topic; - var parameters = { - type: pushGateway - }; - - if (pushGateway === 'apns2') { - parameters = Object.assign({}, parameters, { - environment: environment, - topic: topic - }); - delete parameters.type; - } - - return parameters; +function prepareParams() { + return {}; } -function handleResponse() { - return {}; +function handleResponse(modules, removeMessageActionResponse) { + return { + data: removeMessageActionResponse.data + }; } /***/ }), -/* 32 */ +/* 66 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -6353,33 +9512,29 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); - -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { - return _operations["default"].PNUnsubscribeOperation; + return _operations["default"].PNGetMessageActionsOperation; } -function validateParams(modules) { - var config = modules.config; +function validateParams(_ref, incomingParams) { + var config = _ref.config; + var channel = incomingParams.channel; if (!config.subscribeKey) return 'Missing Subscribe Key'; + if (!channel) return 'Missing message channel'; } -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/leave"); +function getURL(_ref2, incomingParams) { + var config = _ref2.config; + var channel = incomingParams.channel; + return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel); } -function getRequestTimeout(_ref) { - var config = _ref.config; +function getRequestTimeout(_ref3) { + var config = _ref3.config; return config.getTransactionTimeout(); } @@ -6388,583 +9543,1237 @@ function isAuthSupported() { } function prepareParams(modules, incomingParams) { - var _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; - var params = {}; + var limit = incomingParams.limit, + start = incomingParams.start, + end = incomingParams.end; + var outgoingParams = {}; + if (limit) outgoingParams.limit = limit; + if (start) outgoingParams.start = start; + if (end) outgoingParams.end = end; + return outgoingParams; +} - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); +function handleResponse(modules, getMessageActionsResponse) { + var response = { + data: getMessageActionsResponse.data, + start: null, + end: null + }; + + if (response.data.length) { + response.end = response.data[response.data.length - 1].actionTimetoken; + response.start = response.data[0].actionTimetoken; } - return params; + return response; } -function handleResponse() { - return {}; -} +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + /***/ }), -/* 33 */ +/* 68 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +exports["default"] = void 0; -var _flow_interfaces = __webpack_require__(1); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNListFilesOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return 'channel can\'t be empty'; + } + }, + getURL: function getURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/files"); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function handleResponse(_, response) { + return { + status: response.status, + data: response.data + }; + } +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { -function getOperation() { - return _operations["default"].PNWhereNowOperation; -} +"use strict"; -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$uuid = incomingParams.uuid, - uuid = _incomingParams$uuid === void 0 ? config.UUID : _incomingParams$uuid; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/uuid/").concat(uuid); -} +var _interopRequireDefault = __webpack_require__(0); -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; -function isAuthSupported() { - return true; -} +var _operations = _interopRequireDefault(__webpack_require__(1)); -function prepareParams() { - return {}; -} +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNGenerateUploadUrlOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return 'channel can\'t be empty'; + } -function handleResponse(modules, serverResponse) { - if (!serverResponse.payload) { + if (!(params === null || params === void 0 ? void 0 : params.name)) { + return 'name can\'t be empty'; + } + }, + usePost: function usePost() { + return true; + }, + postURL: function postURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/generate-upload-url"); + }, + postPayload: function postPayload(_, params) { return { - channels: [] + name: params.name + }; + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function handleResponse(_, response) { + return { + status: response.status, + data: response.data, + file_upload_request: response.file_upload_request }; } - - return { - channels: serverResponse.payload.channels - }; -} +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 34 */ +/* 70 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.isAuthSupported = isAuthSupported; -exports.getRequestTimeout = getRequestTimeout; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +exports["default"] = void 0; -var _flow_interfaces = __webpack_require__(1); +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _utils = _interopRequireDefault(__webpack_require__(3)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var preparePayload = function preparePayload(_ref, payload) { + var crypto = _ref.crypto, + config = _ref.config; + var stringifiedPayload = JSON.stringify(payload); -function getOperation() { - return _operations["default"].PNHeartbeatOperation; -} + if (config.cipherKey) { + stringifiedPayload = crypto.encrypt(stringifiedPayload); + stringifiedPayload = JSON.stringify(stringifiedPayload); + } -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} + return stringifiedPayload || ''; +}; -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/heartbeat"); -} +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNPublishFileOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return "channel can't be empty"; + } -function isAuthSupported() { - return true; -} + if (!(params === null || params === void 0 ? void 0 : params.fileId)) { + return "file id can't be empty"; + } -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + if (!(params === null || params === void 0 ? void 0 : params.fileName)) { + return "file name can't be empty"; + } + }, + getURL: function getURL(modules, params) { + var _modules$config = modules.config, + publishKey = _modules$config.publishKey, + subscribeKey = _modules$config.subscribeKey; + var message = { + message: params.message, + file: { + name: params.fileName, + id: params.fileId + } + }; + var payload = preparePayload(modules, message); + return "/v1/files/publish-file/".concat(publishKey, "/").concat(subscribeKey, "/0/").concat(params.channel, "/0/").concat(_utils["default"].encodeString(payload)); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams(_, params) { + var outParams = {}; -function prepareParams(modules, incomingParams) { - var _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2, - _incomingParams$state = incomingParams.state, - state = _incomingParams$state === void 0 ? {} : _incomingParams$state; - var config = modules.config; - var params = {}; + if (params.ttl) { + outParams.ttl = params.ttl; + } - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); - } + if (params.store) { + outParams.store = params.store ? '1' : '0'; + } - params.state = JSON.stringify(state); - params.heartbeat = config.getPresenceTimeout(); - return params; -} + if (params.meta && (0, _typeof2["default"])(params.meta) === 'object') { + outParams.meta = JSON.stringify(params.meta); + } -function handleResponse() { - return {}; -} + return outParams; + }, + handleResponse: function handleResponse(_, response) { + return { + timetoken: response['2'] + }; + } +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 35 */ +/* 71 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +exports["default"] = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(10)); + +var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(11)); + +var _endpoint = __webpack_require__(18); + +var sendFile = function sendFile(_ref) { + var generateUploadUrl = _ref.generateUploadUrl, + publishFile = _ref.publishFile, + _ref$modules = _ref.modules, + PubNubFile = _ref$modules.PubNubFile, + config = _ref$modules.config, + cryptography = _ref$modules.cryptography, + networking = _ref$modules.networking; + return function () { + var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(_ref2) { + var channel, input, message, cipherKey, meta, ttl, store, file, _ref4, _ref4$file_upload_req, url, formFields, _ref4$data, id, name, formFieldsWithMimeType, result, retries, wasSuccessful; + + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + channel = _ref2.channel, input = _ref2.file, message = _ref2.message, cipherKey = _ref2.cipherKey, meta = _ref2.meta, ttl = _ref2.ttl, store = _ref2.store; + + if (channel) { + _context.next = 3; + break; + } + + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("channel can't be empty")); + + case 3: + if (input) { + _context.next = 5; + break; + } + + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("file can't be empty")); + + case 5: + file = PubNubFile.create(input); + _context.next = 8; + return generateUploadUrl({ + channel: channel, + name: file.name + }); + + case 8: + _ref4 = _context.sent; + _ref4$file_upload_req = _ref4.file_upload_request; + url = _ref4$file_upload_req.url; + formFields = _ref4$file_upload_req.form_fields; + _ref4$data = _ref4.data; + id = _ref4$data.id; + name = _ref4$data.name; + + if (!(cipherKey !== null && cipherKey !== void 0 ? cipherKey : config.cipherKey)) { + _context.next = 19; + break; + } + + _context.next = 18; + return cryptography.encryptFile(cipherKey !== null && cipherKey !== void 0 ? cipherKey : config.cipherKey, file, PubNubFile); + + case 18: + file = _context.sent; + + case 19: + formFieldsWithMimeType = formFields; + + if (file.mimeType) { + formFieldsWithMimeType = formFields.map(function (entry) { + var _file$mimeType; + + if (entry.key === 'Content-Type') return { + key: entry.key, + value: (_file$mimeType = file.mimeType) !== null && _file$mimeType !== void 0 ? _file$mimeType : '' + };else return entry; + }); + } + + _context.prev = 21; + + if (!(typeof Blob !== 'undefined')) { + _context.next = 34; + break; + } + + _context.t0 = networking; + _context.t1 = url; + _context.t2 = formFieldsWithMimeType; + _context.next = 28; + return file.toFile(); + + case 28: + _context.t3 = _context.sent; + _context.next = 31; + return _context.t0.FILE.call(_context.t0, _context.t1, _context.t2, _context.t3); + + case 31: + result = _context.sent; + _context.next = 43; + break; + + case 34: + _context.t4 = networking; + _context.t5 = url; + _context.t6 = formFieldsWithMimeType; + _context.next = 39; + return file.toBuffer(); + + case 39: + _context.t7 = _context.sent; + _context.next = 42; + return _context.t4.FILE.call(_context.t4, _context.t5, _context.t6, _context.t7); + + case 42: + result = _context.sent; + + case 43: + _context.next = 48; + break; + + case 45: + _context.prev = 45; + _context.t8 = _context["catch"](21); + throw new _endpoint.PubNubError('Upload to bucket failed', _context.t8); + + case 48: + if (!(result.status !== 204)) { + _context.next = 50; + break; + } + + throw new _endpoint.PubNubError('Upload to bucket was unsuccessful', result); + + case 50: + retries = 5; + wasSuccessful = false; + + case 52: + if (!(!wasSuccessful && retries > 0)) { + _context.next = 64; + break; + } + + _context.prev = 53; + _context.next = 56; + return publishFile({ + channel: channel, + message: message, + fileId: id, + fileName: name, + meta: meta, + store: store, + ttl: ttl + }); + + case 56: + wasSuccessful = true; + _context.next = 62; + break; + + case 59: + _context.prev = 59; + _context.t9 = _context["catch"](53); + retries -= 1; + + case 62: + _context.next = 52; + break; + + case 64: + if (wasSuccessful) { + _context.next = 68; + break; + } + + throw new _endpoint.PubNubError('Publish failed. You may want to execute that operation manually using pubnub.publishFile', { + channel: channel, + id: id, + name: name + }); + + case 68: + return _context.abrupt("return", { + id: id, + name: name + }); + + case 69: + case "end": + return _context.stop(); + } + } + }, _callee, null, [[21, 45], [53, 59]]); + })); + + return function (_x) { + return _ref3.apply(this, arguments); + }; + }(); +}; + +var _default = function _default(deps) { + var f = sendFile(deps); + return function (params, cb) { + var resultP = f(params); + + if (typeof cb === 'function') { + resultP.then(function (result) { + return cb(null, result); + })["catch"](function (error) { + return cb(error, null); + }); + return resultP; + } else { + return resultP; + } + }; +}; + +exports["default"] = _default; +module.exports = exports.default; -var _flow_interfaces = __webpack_require__(1); +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var runtime = (function (exports) { + "use strict"; -var _operations = _interopRequireDefault(__webpack_require__(0)); + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; -var _utils = _interopRequireDefault(__webpack_require__(2)); + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + exports.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; -function getOperation() { - return _operations["default"].PNGetStateOperation; -} + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$uuid = incomingParams.uuid, - uuid = _incomingParams$uuid === void 0 ? config.UUID : _incomingParams$uuid, - _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/uuid/").concat(uuid); -} + exports.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + exports.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; -function isAuthSupported() { - return true; -} + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + exports.awrap = function(arg) { + return { __await: arg }; + }; -function prepareParams(modules, incomingParams) { - var _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; - var params = {}; + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return PromiseImpl.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); - } + return PromiseImpl.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } - return params; -} + var previousPromise; -function handleResponse(modules, serverResponse, incomingParams) { - var _incomingParams$chann3 = incomingParams.channels, - channels = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3, - _incomingParams$chann4 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4; - var channelsResponse = {}; + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } - if (channels.length === 1 && channelGroups.length === 0) { - channelsResponse[channels[0]] = serverResponse.payload; - } else { - channelsResponse = serverResponse.payload; + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; } - return { - channels: channelsResponse + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + exports.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { + if (PromiseImpl === void 0) PromiseImpl = Promise; + + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList), + PromiseImpl + ); + + return exports.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); }; -} -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; -"use strict"; + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } -var _flow_interfaces = __webpack_require__(1); + context.method = method; + context.arg = arg; -var _operations = _interopRequireDefault(__webpack_require__(0)); + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } -var _utils = _interopRequireDefault(__webpack_require__(2)); + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } -function getOperation() { - return _operations["default"].PNSetStateOperation; -} + context.dispatchException(context.arg); -function validateParams(modules, incomingParams) { - var config = modules.config; - var state = incomingParams.state, - _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, - _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; - if (!state) return 'Missing State'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; - if (channels.length === 0 && channelGroups.length === 0) return 'Please provide a list of channels and/or channel-groups'; -} + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$chann3 = incomingParams.channels, - channels = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v2/presence/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels), "/uuid/").concat(config.UUID, "/data"); -} + state = GenStateExecuting; -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; -function isAuthSupported() { - return true; -} + if (record.arg === ContinueSentinel) { + continue; + } -function prepareParams(modules, incomingParams) { - var state = incomingParams.state, - _incomingParams$chann4 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4; - var params = {}; - params.state = JSON.stringify(state); + return { + value: record.arg, + done: context.done + }; - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; } - return params; -} - -function handleResponse(modules, serverResponse) { - return { - state: serverResponse.payload - }; -} + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } -"use strict"; + return ContinueSentinel; + } + var record = tryCatch(method, delegate.iterator, context.arg); -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } -var _flow_interfaces = __webpack_require__(1); + var info = record.arg; -var _operations = _interopRequireDefault(__webpack_require__(0)); + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } -var _utils = _interopRequireDefault(__webpack_require__(2)); + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + } else { + // Re-yield the result returned by the delegate method. + return info; + } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } -function getOperation() { - return _operations["default"].PNHereNowOperation; -} + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} + Gp[toStringTagSymbol] = "Generator"; -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, - _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2; - var baseURL = "/v2/presence/sub-key/".concat(config.subscribeKey); + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; - if (channels.length > 0 || channelGroups.length > 0) { - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - baseURL += "/channel/".concat(_utils["default"].encodeString(stringifiedChannels)); - } + Gp.toString = function() { + return "[object Generator]"; + }; - return baseURL; -} + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + if (1 in locs) { + entry.catchLoc = locs[1]; + } -function isAuthSupported() { - return true; -} + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } -function prepareParams(modules, incomingParams) { - var _incomingParams$chann3 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann3 === void 0 ? [] : _incomingParams$chann3, - _incomingParams$inclu = incomingParams.includeUUIDs, - includeUUIDs = _incomingParams$inclu === void 0 ? true : _incomingParams$inclu, - _incomingParams$inclu2 = incomingParams.includeState, - includeState = _incomingParams$inclu2 === void 0 ? false : _incomingParams$inclu2, - _incomingParams$query = incomingParams.queryParameters, - queryParameters = _incomingParams$query === void 0 ? {} : _incomingParams$query; - var params = {}; - if (!includeUUIDs) params.disable_uuids = 1; - if (includeState) params.state = 1; + this.tryEntries.push(entry); + } - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; } - params = _objectSpread({}, params, {}, queryParameters); - return params; -} + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } -function handleResponse(modules, serverResponse, incomingParams) { - var _incomingParams$chann4 = incomingParams.channels, - channels = _incomingParams$chann4 === void 0 ? [] : _incomingParams$chann4, - _incomingParams$chann5 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann5 === void 0 ? [] : _incomingParams$chann5, - _incomingParams$inclu3 = incomingParams.includeUUIDs, - includeUUIDs = _incomingParams$inclu3 === void 0 ? true : _incomingParams$inclu3, - _incomingParams$inclu4 = incomingParams.includeState, - includeState = _incomingParams$inclu4 === void 0 ? false : _incomingParams$inclu4; + exports.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } - var prepareSingularChannel = function prepareSingularChannel() { - var response = {}; - var occupantsList = []; - response.totalChannels = 1; - response.totalOccupancy = serverResponse.occupancy; - response.channels = {}; - response.channels[channels[0]] = { - occupants: occupantsList, - name: channels[0], - occupancy: serverResponse.occupancy + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; }; + }; - if (includeUUIDs && serverResponse.uuids) { - serverResponse.uuids.forEach(function (uuidEntry) { - if (includeState) { - occupantsList.push({ - state: uuidEntry.state, - uuid: uuidEntry.uuid - }); - } else { - occupantsList.push({ - state: null, - uuid: uuidEntry - }); - } - }); + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } } - return response; - }; + // Return an iterator with no values. + return { next: doneResult }; + } + exports.values = values; - var prepareMultipleChannel = function prepareMultipleChannel() { - var response = {}; - response.totalChannels = serverResponse.payload.total_channels; - response.totalOccupancy = serverResponse.payload.total_occupancy; - response.channels = {}; - Object.keys(serverResponse.payload.channels).forEach(function (channelName) { - var channelEntry = serverResponse.payload.channels[channelName]; - var occupantsList = []; - response.channels[channelName] = { - occupants: occupantsList, - name: channelName, - occupancy: channelEntry.occupancy - }; + function doneResult() { + return { value: undefined, done: true }; + } - if (includeUUIDs) { - channelEntry.uuids.forEach(function (uuidEntry) { - if (includeState) { - occupantsList.push({ - state: uuidEntry.state, - uuid: uuidEntry.uuid - }); - } else { - occupantsList.push({ - state: null, - uuid: uuidEntry - }); + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; } - }); + } } + }, - return response; - }); - return response; - }; + stop: function() { + this.done = true; - var response; + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } - if (channels.length > 1 || channelGroups.length > 0 || channelGroups.length === 0 && channels.length === 0) { - response = prepareMultipleChannel(); - } else { - response = prepareSingularChannel(); - } + return this.rval; + }, - return response; -} + dispatchException: function(exception) { + if (this.done) { + throw exception; + } -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } -"use strict"; + return !! caught; + } + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.usePost = usePost; -exports.postURL = postURL; -exports.getRequestTimeout = getRequestTimeout; -exports.getRequestHeaders = getRequestHeaders; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.postPayload = postPayload; -exports.handleResponse = handleResponse; + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } -var _flow_interfaces = __webpack_require__(1); + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); -var _operations = _interopRequireDefault(__webpack_require__(0)); + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } -function getOperation() { - return _operations["default"].PNAddMessageActionOperation; -} + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } -function validateParams(_ref, incomingParams) { - var config = _ref.config; - var action = incomingParams.action, - channel = incomingParams.channel, - messageTimetoken = incomingParams.messageTimetoken; - if (!messageTimetoken) return 'Missing message timetoken'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; - if (!channel) return 'Missing message channel'; - if (!action) return 'Missing Action'; - if (!action.value) return 'Missing Action.value'; - if (!action.type) return 'Missing Action.type'; - if (action.type.length > 15) return 'Action.type value exceed maximum length of 15'; -} + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, -function usePost() { - return true; -} + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } -function postURL(_ref2, incomingParams) { - var config = _ref2.config; - var channel = incomingParams.channel, - messageTimetoken = incomingParams.messageTimetoken; - return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel, "/message/").concat(messageTimetoken); -} + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } -function getRequestTimeout(_ref3) { - var config = _ref3.config; - return config.getTransactionTimeout(); -} + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; -function getRequestHeaders() { - return { - 'Content-Type': 'application/json' - }; -} + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } -function isAuthSupported() { - return true; -} + return this.complete(record); + }, -function prepareParams() { - return {}; -} + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } -function postPayload(modules, incomingParams) { - return incomingParams.action; -} + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } -function handleResponse(modules, addMessageActionResponse) { - return { - data: addMessageActionResponse.data + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } }; + + // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + return exports; + +}( + // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + true ? module.exports : undefined +)); + +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + Function("r", "regeneratorRuntime = r")(runtime); } + /***/ }), -/* 39 */ +/* 73 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6973,166 +10782,226 @@ function handleResponse(modules, addMessageActionResponse) { Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.useDelete = useDelete; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +exports["default"] = void 0; -var _flow_interfaces = __webpack_require__(1); +var _endpoint = __webpack_require__(18); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _default = function _default(_ref, _ref2) { + var config = _ref.config; + var channel = _ref2.channel, + id = _ref2.id, + name = _ref2.name; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + if (!channel) { + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("channel can't be empty")); + } -function getOperation() { - return _operations["default"].PNRemoveMessageActionOperation; -} + if (!id) { + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("file id can't be empty")); + } -function validateParams(_ref, incomingParams) { - var config = _ref.config; - var channel = incomingParams.channel, - actionTimetoken = incomingParams.actionTimetoken, - messageTimetoken = incomingParams.messageTimetoken; - if (!messageTimetoken) return 'Missing message timetoken'; - if (!actionTimetoken) return 'Missing action timetoken'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; - if (!channel) return 'Missing message channel'; -} + if (!name) { + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("file name can't be empty")); + } -function useDelete() { - return true; -} + return "".concat(config.origin, "/v1/files/").concat(config.subscribeKey, "/channels/").concat(channel, "/files/").concat(id, "/").concat(name); +}; -function getURL(_ref2, incomingParams) { - var config = _ref2.config; - var channel = incomingParams.channel, - actionTimetoken = incomingParams.actionTimetoken, - messageTimetoken = incomingParams.messageTimetoken; - return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel, "/message/").concat(messageTimetoken, "/action/").concat(actionTimetoken); -} +exports["default"] = _default; +module.exports = exports.default; -function getRequestTimeout(_ref3) { - var config = _ref3.config; - return config.getTransactionTimeout(); -} +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { -function isAuthSupported() { - return true; -} +"use strict"; -function prepareParams() { - return {}; -} -function handleResponse(modules, removeMessageActionResponse) { - return { - data: removeMessageActionResponse.data - }; -} +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _regenerator = _interopRequireDefault(__webpack_require__(10)); + +var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(11)); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNDownloadFileOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return "channel can't be empty"; + } + + if (!(params === null || params === void 0 ? void 0 : params.name)) { + return "name can't be empty"; + } + + if (!(params === null || params === void 0 ? void 0 : params.id)) { + return "id can't be empty"; + } + }, + getURL: function getURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/files/").concat(params.id, "/").concat(params.name); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + ignoreBody: function ignoreBody() { + return true; + }, + forceBuffered: function forceBuffered() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function () { + var _handleResponse = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(_ref4, res, params) { + var _res$response$name; + + var PubNubFile, config, cryptography, body, _params$cipherKey; + + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + PubNubFile = _ref4.PubNubFile, config = _ref4.config, cryptography = _ref4.cryptography; + body = res.response.body; + + if (!config.cipherKey) { + _context.next = 6; + break; + } + + _context.next = 5; + return cryptography.decrypt((_params$cipherKey = params.cipherKey) !== null && _params$cipherKey !== void 0 ? _params$cipherKey : config.cipherKey, body); + + case 5: + body = _context.sent; + + case 6: + return _context.abrupt("return", PubNubFile.create({ + data: body, + name: (_res$response$name = res.response.name) !== null && _res$response$name !== void 0 ? _res$response$name : params.name, + mimeType: res.response.type + })); + + case 7: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + function handleResponse(_x, _x2, _x3) { + return _handleResponse.apply(this, arguments); + } + + return handleResponse; + }() +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 40 */ +/* 75 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; - -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function getOperation() { - return _operations["default"].PNGetMessageActionsOperation; -} - -function validateParams(_ref, incomingParams) { - var config = _ref.config; - var channel = incomingParams.channel; - if (!config.subscribeKey) return 'Missing Subscribe Key'; - if (!channel) return 'Missing message channel'; -} - -function getURL(_ref2, incomingParams) { - var config = _ref2.config; - var channel = incomingParams.channel; - return "/v1/message-actions/".concat(config.subscribeKey, "/channel/").concat(channel); -} - -function getRequestTimeout(_ref3) { - var config = _ref3.config; - return config.getTransactionTimeout(); -} +exports["default"] = void 0; -function isAuthSupported() { - return true; -} +var _operations = _interopRequireDefault(__webpack_require__(1)); -function prepareParams(modules, incomingParams) { - var limit = incomingParams.limit, - start = incomingParams.start, - end = incomingParams.end; - var outgoingParams = {}; - if (limit) outgoingParams.limit = limit; - if (start) outgoingParams.start = start; - if (end) outgoingParams.end = end; - return outgoingParams; -} +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNListFilesOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return "channel can't be empty"; + } -function handleResponse(modules, getMessageActionsResponse) { - var response = { - data: getMessageActionsResponse.data, - start: null, - end: null - }; + if (!(params === null || params === void 0 ? void 0 : params.id)) { + return "file id can't be empty"; + } - if (response.data.length) { - response.end = response.data[response.data.length - 1].actionTimetoken; - response.start = response.data[0].actionTimetoken; + if (!(params === null || params === void 0 ? void 0 : params.name)) { + return "file name can't be empty"; + } + }, + useDelete: function useDelete() { + return true; + }, + getURL: function getURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/files/").concat(params.id, "/").concat(params.name); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function handleResponse(_, response) { + return { + status: response.status + }; } - - return response; -} +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 41 */ +/* 76 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7160,7 +11029,7 @@ var endpoint = { var queryParams = {}; if (params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) { - queryParams.include = ['custom']; + queryParams.include = 'custom'; } if (params === null || params === void 0 ? void 0 : (_params$include2 = params.include) === null || _params$include2 === void 0 ? void 0 : _params$include2.totalCount) { @@ -7191,7 +11060,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref4) { - var _ref5 = _slicedToArray(_ref4, 2), + var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2), key = _ref5[0], value = _ref5[1]; @@ -7220,20 +11089,106 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 42 */ +/* 77 */ +/***/ (function(module, exports) { + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +module.exports = _arrayWithHoles; + +/***/ }), +/* 78 */ +/***/ (function(module, exports) { + +function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +module.exports = _iterableToArrayLimit; + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayLikeToArray = __webpack_require__(80); + +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); +} + +module.exports = _unsupportedIterableToArray; + +/***/ }), +/* 80 */ +/***/ (function(module, exports) { + +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; +} + +module.exports = _arrayLikeToArray; + +/***/ }), +/* 81 */ +/***/ (function(module, exports) { + +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."); +} + +module.exports = _nonIterableRest; + +/***/ }), +/* 82 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7263,7 +11218,7 @@ var endpoint = { var config = _ref5.config; return { uuid: (_ref6 = params === null || params === void 0 ? void 0 : params.uuid) !== null && _ref6 !== void 0 ? _ref6 : config.getUUID(), - include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && ['custom'] + include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { @@ -7278,20 +11233,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 43 */ +/* 83 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7331,7 +11286,7 @@ var endpoint = { var config = _ref5.config; return { uuid: (_ref6 = params === null || params === void 0 ? void 0 : params.uuid) !== null && _ref6 !== void 0 ? _ref6 : config.getUUID(), - include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && ['custom'] + include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { @@ -7346,20 +11301,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 44 */ +/* 84 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7406,28 +11361,22 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 45 */ +/* 85 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7455,7 +11404,7 @@ var endpoint = { var queryParams = {}; if (params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) { - queryParams.include = ['custom']; + queryParams.include = 'custom'; } if (params === null || params === void 0 ? void 0 : (_params$include2 = params.include) === null || _params$include2 === void 0 ? void 0 : _params$include2.totalCount) { @@ -7488,7 +11437,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref4) { - var _ref5 = _slicedToArray(_ref4, 2), + var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2), key = _ref5[0], value = _ref5[1]; @@ -7517,20 +11466,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 46 */ +/* 86 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7560,7 +11509,7 @@ var endpoint = { var _ref4, _params$include; return { - include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && ['custom'] + include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { @@ -7575,20 +11524,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 47 */ +/* 87 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7628,7 +11577,7 @@ var endpoint = { var _ref4, _params$include; return { - include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && ['custom'] + include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { @@ -7643,20 +11592,20 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 48 */ +/* 88 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7700,28 +11649,22 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 49 */ +/* 89 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7768,6 +11711,8 @@ var endpoint = { if ((_ref4 = (_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.UUIDFields) !== null && _ref4 !== void 0 ? _ref4 : true) { queryParams.include.push('uuid'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -7798,7 +11743,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref6) { - var _ref7 = _slicedToArray(_ref6, 2), + var _ref7 = (0, _slicedToArray2["default"])(_ref6, 2), key = _ref7[0], value = _ref7[1]; @@ -7827,30 +11772,24 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 50 */ +/* 90 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -7873,7 +11812,7 @@ var endpoint = { return "/v2/objects/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/uuids"); }, patchPayload: function patchPayload(_, params) { - return _defineProperty({ + return (0, _defineProperty2["default"])({ set: [], remove: [] }, params.type, params.uuids.map(function (uuid) { @@ -7925,6 +11864,8 @@ var endpoint = { if ((_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.UUIDFields) { queryParams.include.push('uuid'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -7955,7 +11896,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), + var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2), key = _ref6[0], value = _ref6[1]; @@ -7984,28 +11925,22 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 51 */ +/* 91 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -8052,6 +11987,8 @@ var endpoint = { if ((_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.channelFields) { queryParams.include.push('channel'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -8082,7 +12019,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), + var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2), key = _ref6[0], value = _ref6[1]; @@ -8111,30 +12048,24 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 52 */ +/* 92 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _operations = _interopRequireDefault(__webpack_require__(1)); var endpoint = { getOperation: function getOperation() { @@ -8155,7 +12086,7 @@ var endpoint = { return "/v2/objects/".concat(config.subscribeKey, "/uuids/").concat((_params$uuid = params.uuid) !== null && _params$uuid !== void 0 ? _params$uuid : config.getUUID(), "/channels"); }, patchPayload: function patchPayload(_, params) { - return _defineProperty({ + return (0, _defineProperty2["default"])({ set: [], remove: [] }, params.type, params.channels.map(function (channel) { @@ -8207,6 +12138,8 @@ var endpoint = { if ((_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.channelFields) { queryParams.include.push('channel'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -8237,7 +12170,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), + var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2), key = _ref6[0], value = _ref6[1]; @@ -8266,12 +12199,14 @@ exports["default"] = _default; module.exports = exports.default; /***/ }), -/* 53 */ +/* 93 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8287,11 +12222,9 @@ exports.prepareParams = prepareParams; exports.postPayload = postPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { return incomingParams; @@ -8385,12 +12318,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 54 */ +/* 94 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8406,11 +12341,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { return incomingParams; @@ -8506,12 +12439,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 55 */ +/* 95 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8525,11 +12460,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNDeleteUserOperation; @@ -8573,12 +12506,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 56 */ +/* 96 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8591,11 +12526,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetUserOperation; @@ -8659,12 +12592,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 57 */ +/* 97 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8677,11 +12612,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetUsersOperation; @@ -8759,12 +12692,14 @@ function handleResponse(modules, usersResponse) { } /***/ }), -/* 58 */ +/* 98 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8780,11 +12715,9 @@ exports.prepareParams = prepareParams; exports.postPayload = postPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { return incomingParams; @@ -8878,12 +12811,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 59 */ +/* 99 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -8899,11 +12834,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { return incomingParams; @@ -8999,12 +12932,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 60 */ +/* 100 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9018,11 +12953,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNDeleteSpaceOperation; @@ -9066,12 +12999,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 61 */ +/* 101 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9084,11 +13019,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetSpacesOperation; @@ -9166,12 +13099,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 62 */ +/* 102 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9184,11 +13119,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetSpaceOperation; @@ -9252,12 +13185,14 @@ function handleResponse(modules, spacesResponse) { } /***/ }), -/* 63 */ +/* 103 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9270,11 +13205,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetMembersOperation; @@ -9363,12 +13296,14 @@ function handleResponse(modules, membersResponse) { } /***/ }), -/* 64 */ +/* 104 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9384,11 +13319,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var users = incomingParams.users; @@ -9509,12 +13442,14 @@ function handleResponse(modules, membersResponse) { } /***/ }), -/* 65 */ +/* 105 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9530,11 +13465,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var addMembers = incomingParams.addMembers, @@ -9697,12 +13630,14 @@ function handleResponse(modules, membersResponse) { } /***/ }), -/* 66 */ +/* 106 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9718,11 +13653,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var users = incomingParams.users; @@ -9837,12 +13770,14 @@ function handleResponse(modules, membersResponse) { } /***/ }), -/* 67 */ +/* 107 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9855,11 +13790,9 @@ exports.getAuthToken = getAuthToken; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNGetMembershipsOperation; @@ -9948,12 +13881,14 @@ function handleResponse(modules, membershipsResponse) { } /***/ }), -/* 68 */ +/* 108 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -9969,11 +13904,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var addMemberships = incomingParams.addMemberships, @@ -10136,12 +14069,14 @@ function handleResponse(modules, membershipsResponse) { } /***/ }), -/* 69 */ +/* 109 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10157,11 +14092,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var spaces = incomingParams.spaces; @@ -10282,12 +14215,14 @@ function handleResponse(modules, membershipsResponse) { } /***/ }), -/* 70 */ +/* 110 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10303,11 +14238,9 @@ exports.prepareParams = prepareParams; exports.patchPayload = patchPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function prepareMessagePayload(modules, incomingParams) { var spaces = incomingParams.spaces; @@ -10422,12 +14355,14 @@ function handleResponse(modules, membershipsResponse) { } /***/ }), -/* 71 */ +/* 111 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10439,11 +14374,9 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNAccessManagerAudit; @@ -10495,12 +14428,14 @@ function handleResponse(modules, serverResponse) { } /***/ }), -/* 72 */ +/* 112 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10512,11 +14447,9 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNAccessManagerGrant; @@ -10588,12 +14521,14 @@ function handleResponse() { } /***/ }), -/* 73 */ +/* 113 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10608,11 +14543,9 @@ exports.prepareParams = prepareParams; exports.postPayload = postPayload; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); +var _flow_interfaces = __webpack_require__(2); -var _operations = _interopRequireDefault(__webpack_require__(0)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); function getOperation() { return _operations["default"].PNAccessManagerGrantToken; @@ -10757,12 +14690,14 @@ function handleResponse(modules, response) { } /***/ }), -/* 74 */ +/* 114 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10777,15 +14712,13 @@ exports.postPayload = postPayload; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _flow_interfaces = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _operations = _interopRequireDefault(__webpack_require__(1)); -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); } +var _utils = _interopRequireDefault(__webpack_require__(3)); function prepareMessagePayload(modules, messagePayload) { var crypto = modules.crypto, @@ -10871,26 +14804,287 @@ function prepareParams(modules, incomingParams) { params.norep = 'true'; } - if (meta && _typeof(meta) === 'object') { - params.meta = JSON.stringify(meta); - } + if (meta && (0, _typeof2["default"])(meta) === 'object') { + params.meta = JSON.stringify(meta); + } + + return params; +} + +function handleResponse(modules, serverResponse) { + return { + timetoken: serverResponse[2] + }; +} + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function prepareMessagePayload(modules, messagePayload) { + var stringifiedPayload = JSON.stringify(messagePayload); + return stringifiedPayload; +} + +function getOperation() { + return _operations["default"].PNSignalOperation; +} + +function validateParams(_ref, incomingParams) { + var config = _ref.config; + var message = incomingParams.message, + channel = incomingParams.channel; + if (!channel) return 'Missing Channel'; + if (!message) return 'Missing Message'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules, incomingParams) { + var config = modules.config; + var channel = incomingParams.channel, + message = incomingParams.message; + var stringifiedPayload = prepareMessagePayload(modules, message); + return "/signal/".concat(config.publishKey, "/").concat(config.subscribeKey, "/0/").concat(_utils["default"].encodeString(channel), "/0/").concat(_utils["default"].encodeString(stringifiedPayload)); +} + +function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); +} + +function isAuthSupported() { + return true; +} + +function prepareParams() { + var params = {}; + return params; +} + +function handleResponse(modules, serverResponse) { + return { + timetoken: serverResponse[2] + }; +} + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function __processMessage(modules, message) { + var config = modules.config, + crypto = modules.crypto; + if (!config.cipherKey) return message; + + try { + return crypto.decrypt(message); + } catch (e) { + return message; + } +} + +function getOperation() { + return _operations["default"].PNHistoryOperation; +} + +function validateParams(modules, incomingParams) { + var channel = incomingParams.channel; + var config = modules.config; + if (!channel) return 'Missing channel'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules, incomingParams) { + var channel = incomingParams.channel; + var config = modules.config; + return "/v2/history/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(channel)); +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function isAuthSupported() { + return true; +} + +function prepareParams(modules, incomingParams) { + var start = incomingParams.start, + end = incomingParams.end, + reverse = incomingParams.reverse, + _incomingParams$count = incomingParams.count, + count = _incomingParams$count === void 0 ? 100 : _incomingParams$count, + _incomingParams$strin = incomingParams.stringifiedTimeToken, + stringifiedTimeToken = _incomingParams$strin === void 0 ? false : _incomingParams$strin, + _incomingParams$inclu = incomingParams.includeMeta, + includeMeta = _incomingParams$inclu === void 0 ? false : _incomingParams$inclu, + _incomingParams$inclu2 = incomingParams.includeUuid, + includeUuid = _incomingParams$inclu2 === void 0 ? true : _incomingParams$inclu2, + _incomingParams$inclu3 = incomingParams.includeMessageType, + includeMessageType = _incomingParams$inclu3 === void 0 ? true : _incomingParams$inclu3; + var outgoingParams = { + include_token: 'true' + }; + outgoingParams.count = count; + if (start) outgoingParams.start = start; + if (end) outgoingParams.end = end; + if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; + if (reverse != null) outgoingParams.reverse = reverse.toString(); + if (includeMeta) outgoingParams.include_meta = 'true'; + if (includeUuid) outgoingParams.include_uuid = 'true'; + if (includeMessageType) outgoingParams.include_message_type = 'true'; + return outgoingParams; +} + +function handleResponse(modules, serverResponse) { + var response = { + messages: [], + startTimeToken: serverResponse[1], + endTimeToken: serverResponse[2] + }; + + if (Array.isArray(serverResponse[0])) { + serverResponse[0].forEach(function (serverHistoryItem) { + var item = { + timetoken: serverHistoryItem.timetoken, + entry: __processMessage(modules, serverHistoryItem.message) + }; + + if (serverHistoryItem.meta) { + item.meta = serverHistoryItem.meta; + } + + response.messages.push(item); + }); + } + + return response; +} + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.useDelete = useDelete; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function getOperation() { + return _operations["default"].PNDeleteMessagesOperation; +} + +function validateParams(modules, incomingParams) { + var channel = incomingParams.channel; + var config = modules.config; + if (!channel) return 'Missing channel'; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function useDelete() { + return true; +} + +function getURL(modules, incomingParams) { + var channel = incomingParams.channel; + var config = modules.config; + return "/v3/history/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(channel)); +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getTransactionTimeout(); +} + +function isAuthSupported() { + return true; +} - return params; +function prepareParams(modules, incomingParams) { + var start = incomingParams.start, + end = incomingParams.end; + var outgoingParams = {}; + if (start) outgoingParams.start = start; + if (end) outgoingParams.end = end; + return outgoingParams; } function handleResponse(modules, serverResponse) { - return { - timetoken: serverResponse[2] - }; + return serverResponse.payload; } /***/ }), -/* 75 */ +/* 118 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10902,42 +15096,36 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _slicedToArray2 = _interopRequireDefault(__webpack_require__(9)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function prepareMessagePayload(modules, messagePayload) { - var stringifiedPayload = JSON.stringify(messagePayload); - return stringifiedPayload; -} +var _utils = _interopRequireDefault(__webpack_require__(3)); function getOperation() { - return _operations["default"].PNSignalOperation; + return _operations["default"].PNMessageCounts; } -function validateParams(_ref, incomingParams) { - var config = _ref.config; - var message = incomingParams.message, - channel = incomingParams.channel; - if (!channel) return 'Missing Channel'; - if (!message) return 'Missing Message'; +function validateParams(modules, incomingParams) { + var channels = incomingParams.channels, + timetoken = incomingParams.timetoken, + channelTimetokens = incomingParams.channelTimetokens; + var config = modules.config; + if (!channels) return 'Missing channel'; + if (timetoken && channelTimetokens) return 'timetoken and channelTimetokens are incompatible together'; + if (timetoken && channelTimetokens && channelTimetokens.length > 1 && channels.length !== channelTimetokens.length) return 'Length of channelTimetokens and channels do not match'; if (!config.subscribeKey) return 'Missing Subscribe Key'; } function getURL(modules, incomingParams) { + var channels = incomingParams.channels; var config = modules.config; - var channel = incomingParams.channel, - message = incomingParams.message; - var stringifiedPayload = prepareMessagePayload(modules, message); - return "/signal/".concat(config.publishKey, "/").concat(config.subscribeKey, "/0/").concat(_utils["default"].encodeString(channel), "/0/").concat(_utils["default"].encodeString(stringifiedPayload)); + var stringifiedChannels = channels.join(','); + return "/v3/history/sub-key/".concat(config.subscribeKey, "/message-counts/").concat(_utils["default"].encodeString(stringifiedChannels)); } -function getRequestTimeout(_ref2) { - var config = _ref2.config; +function getRequestTimeout(_ref) { + var config = _ref.config; return config.getTransactionTimeout(); } @@ -10945,24 +15133,40 @@ function isAuthSupported() { return true; } -function prepareParams() { - var params = {}; - return params; +function prepareParams(modules, incomingParams) { + var timetoken = incomingParams.timetoken, + channelTimetokens = incomingParams.channelTimetokens; + var outgoingParams = {}; + + if (channelTimetokens && channelTimetokens.length === 1) { + var _channelTimetokens = (0, _slicedToArray2["default"])(channelTimetokens, 1), + tt = _channelTimetokens[0]; + + outgoingParams.timetoken = tt; + } else if (channelTimetokens) { + outgoingParams.channelsTimetoken = channelTimetokens.join(','); + } else if (timetoken) { + outgoingParams.timetoken = timetoken; + } + + return outgoingParams; } function handleResponse(modules, serverResponse) { return { - timetoken: serverResponse[2] + channels: serverResponse.channels }; } /***/ }), -/* 76 */ +/* 119 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -10974,13 +15178,11 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; -var _flow_interfaces = __webpack_require__(1); - -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _flow_interfaces = __webpack_require__(2); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _operations = _interopRequireDefault(__webpack_require__(1)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _utils = _interopRequireDefault(__webpack_require__(3)); function __processMessage(modules, message) { var config = modules.config, @@ -10995,20 +15197,31 @@ function __processMessage(modules, message) { } function getOperation() { - return _operations["default"].PNHistoryOperation; + return _operations["default"].PNFetchMessagesOperation; } function validateParams(modules, incomingParams) { - var channel = incomingParams.channel; + var channels = incomingParams.channels, + _incomingParams$inclu = incomingParams.includeMessageActions, + includeMessageActions = _incomingParams$inclu === void 0 ? false : _incomingParams$inclu; var config = modules.config; - if (!channel) return 'Missing channel'; + if (!channels || channels.length === 0) return 'Missing channels'; if (!config.subscribeKey) return 'Missing Subscribe Key'; + + if (includeMessageActions && channels.length > 1) { + throw new TypeError('History can return actions data for a single channel only. Either pass a single channel or disable the includeMessageActions flag.'); + } } function getURL(modules, incomingParams) { - var channel = incomingParams.channel; + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, + _incomingParams$inclu2 = incomingParams.includeMessageActions, + includeMessageActions = _incomingParams$inclu2 === void 0 ? false : _incomingParams$inclu2; var config = modules.config; - return "/v2/history/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(channel)); + var endpoint = !includeMessageActions ? 'history' : 'history-with-actions'; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v3/".concat(endpoint, "/sub-key/").concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels)); } function getRequestTimeout(_ref) { @@ -11023,122 +15236,338 @@ function isAuthSupported() { function prepareParams(modules, incomingParams) { var start = incomingParams.start, end = incomingParams.end, - reverse = incomingParams.reverse, - _incomingParams$count = incomingParams.count, - count = _incomingParams$count === void 0 ? 100 : _incomingParams$count, + count = incomingParams.count, _incomingParams$strin = incomingParams.stringifiedTimeToken, stringifiedTimeToken = _incomingParams$strin === void 0 ? false : _incomingParams$strin, - _incomingParams$inclu = incomingParams.includeMeta, - includeMeta = _incomingParams$inclu === void 0 ? false : _incomingParams$inclu; - var outgoingParams = { - include_token: 'true' - }; - outgoingParams.count = count; + _incomingParams$inclu3 = incomingParams.includeMeta, + includeMeta = _incomingParams$inclu3 === void 0 ? false : _incomingParams$inclu3, + _incomingParams$inclu4 = incomingParams.includeUuid, + includeUuid = _incomingParams$inclu4 === void 0 ? true : _incomingParams$inclu4, + _incomingParams$inclu5 = incomingParams.includeMessageType, + includeMessageType = _incomingParams$inclu5 === void 0 ? true : _incomingParams$inclu5; + var outgoingParams = {}; + if (count) outgoingParams.max = count; if (start) outgoingParams.start = start; if (end) outgoingParams.end = end; if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; - if (reverse != null) outgoingParams.reverse = reverse.toString(); if (includeMeta) outgoingParams.include_meta = 'true'; + if (includeUuid) outgoingParams.include_uuid = 'true'; + if (includeMessageType) outgoingParams.include_message_type = 'true'; return outgoingParams; } function handleResponse(modules, serverResponse) { var response = { - messages: [], - startTimeToken: serverResponse[1], - endTimeToken: serverResponse[2] + channels: {} }; + Object.keys(serverResponse.channels || {}).forEach(function (channelName) { + response.channels[channelName] = []; + (serverResponse.channels[channelName] || []).forEach(function (messageEnvelope) { + var announce = {}; + announce.channel = channelName; + announce.timetoken = messageEnvelope.timetoken; + announce.message = __processMessage(modules, messageEnvelope.message); + announce.messageType = messageEnvelope.message_type; + announce.uuid = messageEnvelope.uuid; - if (Array.isArray(serverResponse[0])) { - serverResponse[0].forEach(function (serverHistoryItem) { - var item = { - timetoken: serverHistoryItem.timetoken, - entry: __processMessage(modules, serverHistoryItem.message) - }; + if (messageEnvelope.actions) { + announce.actions = messageEnvelope.actions; + announce.data = messageEnvelope.actions; + } - if (serverHistoryItem.meta) { - item.meta = serverHistoryItem.meta; + if (messageEnvelope.meta) { + announce.meta = messageEnvelope.meta; } - response.messages.push(item); + response.channels[channelName].push(announce); }); + }); + return response; +} + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.getOperation = getOperation; +exports.validateParams = validateParams; +exports.getURL = getURL; +exports.getRequestTimeout = getRequestTimeout; +exports.isAuthSupported = isAuthSupported; +exports.prepareParams = prepareParams; +exports.handleResponse = handleResponse; + +var _flow_interfaces = __webpack_require__(2); + +var _operations = _interopRequireDefault(__webpack_require__(1)); + +var _utils = _interopRequireDefault(__webpack_require__(3)); + +function getOperation() { + return _operations["default"].PNSubscribeOperation; +} + +function validateParams(modules) { + var config = modules.config; + if (!config.subscribeKey) return 'Missing Subscribe Key'; +} + +function getURL(modules, incomingParams) { + var config = modules.config; + var _incomingParams$chann = incomingParams.channels, + channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; + var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; + return "/v2/subscribe/".concat(config.subscribeKey, "/").concat(_utils["default"].encodeString(stringifiedChannels), "/0"); +} + +function getRequestTimeout(_ref) { + var config = _ref.config; + return config.getSubscribeTimeout(); +} + +function isAuthSupported() { + return true; +} + +function prepareParams(_ref2, incomingParams) { + var config = _ref2.config; + var state = incomingParams.state, + _incomingParams$chann2 = incomingParams.channelGroups, + channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2, + timetoken = incomingParams.timetoken, + filterExpression = incomingParams.filterExpression, + region = incomingParams.region; + var params = { + heartbeat: config.getPresenceTimeout() + }; + + if (channelGroups.length > 0) { + params['channel-group'] = channelGroups.join(','); } - return response; + if (filterExpression && filterExpression.length > 0) { + params['filter-expr'] = filterExpression; + } + + if (Object.keys(state).length) { + params.state = JSON.stringify(state); + } + + if (timetoken) { + params.tt = timetoken; + } + + if (region) { + params.tr = region; + } + + return params; +} + +function handleResponse(modules, serverResponse) { + var messages = []; + serverResponse.m.forEach(function (rawMessage) { + var publishMetaData = { + publishTimetoken: rawMessage.p.t, + region: rawMessage.p.r + }; + var parsedMessage = { + shard: parseInt(rawMessage.a, 10), + subscriptionMatch: rawMessage.b, + channel: rawMessage.c, + messageType: rawMessage.e, + payload: rawMessage.d, + flags: rawMessage.f, + issuingClientId: rawMessage.i, + subscribeKey: rawMessage.k, + originationTimetoken: rawMessage.o, + userMetadata: rawMessage.u, + publishMetaData: publishMetaData + }; + messages.push(parsedMessage); + }); + var metadata = { + timetoken: serverResponse.t.t, + region: serverResponse.t.r + }; + return { + messages: messages, + metadata: metadata + }; } /***/ }), -/* 77 */ +/* 121 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.useDelete = useDelete; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +exports["default"] = void 0; -var _flow_interfaces = __webpack_require__(1); +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _config = _interopRequireDefault(__webpack_require__(8)); -function getOperation() { - return _operations["default"].PNDeleteMessagesOperation; -} +var _categories = _interopRequireDefault(__webpack_require__(13)); -function validateParams(modules, incomingParams) { - var channel = incomingParams.channel; - var config = modules.config; - if (!channel) return 'Missing channel'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} +var _flow_interfaces = __webpack_require__(2); -function useDelete() { - return true; -} +var _default = function () { + function _default(modules) { + var _this = this; -function getURL(modules, incomingParams) { - var channel = incomingParams.channel; - var config = modules.config; - return "/v3/history/sub-key/".concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(channel)); -} + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_modules", void 0); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_maxSubDomain", void 0); + (0, _defineProperty2["default"])(this, "_currentSubDomain", void 0); + (0, _defineProperty2["default"])(this, "_standardOrigin", void 0); + (0, _defineProperty2["default"])(this, "_subscribeOrigin", void 0); + (0, _defineProperty2["default"])(this, "_providedFQDN", void 0); + (0, _defineProperty2["default"])(this, "_requestTimeout", void 0); + (0, _defineProperty2["default"])(this, "_coreParams", void 0); + this._modules = {}; + Object.keys(modules).forEach(function (key) { + _this._modules[key] = modules[key].bind(_this); + }); + } -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + (0, _createClass2["default"])(_default, [{ + key: "init", + value: function init(config) { + this._config = config; + this._maxSubDomain = 20; + this._currentSubDomain = Math.floor(Math.random() * this._maxSubDomain); + this._providedFQDN = (this._config.secure ? 'https://' : 'http://') + this._config.origin; + this._coreParams = {}; + this.shiftStandardOrigin(); + } + }, { + key: "nextOrigin", + value: function nextOrigin() { + if (!this._providedFQDN.match(/ps\.pndsn\.com$/i)) { + return this._providedFQDN; + } -function isAuthSupported() { - return true; -} + var newSubDomain; + this._currentSubDomain += 1; -function prepareParams(modules, incomingParams) { - var start = incomingParams.start, - end = incomingParams.end; - var outgoingParams = {}; - if (start) outgoingParams.start = start; - if (end) outgoingParams.end = end; - return outgoingParams; -} + if (this._currentSubDomain >= this._maxSubDomain) { + this._currentSubDomain = 1; + } -function handleResponse(modules, serverResponse) { - return serverResponse.payload; -} + newSubDomain = this._currentSubDomain.toString(); + return this._providedFQDN.replace('ps.pndsn.com', "ps".concat(newSubDomain, ".pndsn.com")); + } + }, { + key: "hasModule", + value: function hasModule(name) { + return name in this._modules; + } + }, { + key: "shiftStandardOrigin", + value: function shiftStandardOrigin() { + this._standardOrigin = this.nextOrigin(); + return this._standardOrigin; + } + }, { + key: "getStandardOrigin", + value: function getStandardOrigin() { + return this._standardOrigin; + } + }, { + key: "FILE", + value: function FILE(url, fields, file) { + return this._modules.file(url, fields, file); + } + }, { + key: "POST", + value: function POST(params, body, endpoint, callback) { + return this._modules.post(params, body, endpoint, callback); + } + }, { + key: "PATCH", + value: function PATCH(params, body, endpoint, callback) { + return this._modules.patch(params, body, endpoint, callback); + } + }, { + key: "GET", + value: function GET(params, endpoint, callback) { + return this._modules.get(params, endpoint, callback); + } + }, { + key: "DELETE", + value: function DELETE(params, endpoint, callback) { + return this._modules.del(params, endpoint, callback); + } + }, { + key: "_detectErrorCategory", + value: function _detectErrorCategory(err) { + if (err.code === 'ENOTFOUND') { + return _categories["default"].PNNetworkIssuesCategory; + } + + if (err.code === 'ECONNREFUSED') { + return _categories["default"].PNNetworkIssuesCategory; + } + + if (err.code === 'ECONNRESET') { + return _categories["default"].PNNetworkIssuesCategory; + } + + if (err.code === 'EAI_AGAIN') { + return _categories["default"].PNNetworkIssuesCategory; + } + + if (err.status === 0 || err.hasOwnProperty('status') && typeof err.status === 'undefined') { + return _categories["default"].PNNetworkIssuesCategory; + } + + if (err.timeout) return _categories["default"].PNTimeoutCategory; + + if (err.code === 'ETIMEDOUT') { + return _categories["default"].PNNetworkIssuesCategory; + } + + if (err.response) { + if (err.response.badRequest) { + return _categories["default"].PNBadRequestCategory; + } + + if (err.response.forbidden) { + return _categories["default"].PNAccessDeniedCategory; + } + } + + return _categories["default"].PNUnknownCategory; + } + }]); + return _default; +}(); + +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 78 */ +/* 122 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11147,2770 +15576,4121 @@ function handleResponse(modules, serverResponse) { Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +exports["default"] = void 0; +var _default = { + get: function get(key) { + try { + return localStorage.getItem(key); + } catch (e) { + return null; + } + }, + set: function set(key, data) { + try { + return localStorage.setItem(key, data); + } catch (e) { + return null; + } + } +}; +exports["default"] = _default; +module.exports = exports.default; -var _operations = _interopRequireDefault(__webpack_require__(0)); +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { -var _utils = _interopRequireDefault(__webpack_require__(2)); +"use strict"; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _interopRequireDefault = __webpack_require__(0); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } +var _typeof2 = _interopRequireDefault(__webpack_require__(7)); -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -function getOperation() { - return _operations["default"].PNMessageCounts; -} +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -function validateParams(modules, incomingParams) { - var channels = incomingParams.channels, - timetoken = incomingParams.timetoken, - channelTimetokens = incomingParams.channelTimetokens; - var config = modules.config; - if (!channels) return 'Missing channel'; - if (timetoken && channelTimetokens) return 'timetoken and channelTimetokens are incompatible together'; - if (timetoken && channelTimetokens && channelTimetokens.length > 1 && channels.length !== channelTimetokens.length) return 'Length of channelTimetokens and channels do not match'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function getURL(modules, incomingParams) { - var channels = incomingParams.channels; - var config = modules.config; - var stringifiedChannels = channels.join(','); - return "/v3/history/sub-key/".concat(config.subscribeKey, "/message-counts/").concat(_utils["default"].encodeString(stringifiedChannels)); -} +var _default = function () { + function _default(decode, base64ToBinary) { + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_base64ToBinary", void 0); + (0, _defineProperty2["default"])(this, "_cborReader", void 0); + this._base64ToBinary = base64ToBinary; + this._decode = decode; + } -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); -} + (0, _createClass2["default"])(_default, [{ + key: "decodeToken", + value: function decodeToken(tokenString) { + var padding = ''; -function isAuthSupported() { - return true; -} + if (tokenString.length % 4 === 3) { + padding = '='; + } else if (tokenString.length % 4 === 2) { + padding = '=='; + } -function prepareParams(modules, incomingParams) { - var timetoken = incomingParams.timetoken, - channelTimetokens = incomingParams.channelTimetokens; - var outgoingParams = {}; + var cleaned = tokenString.replace(/-/gi, '+').replace(/_/gi, '/') + padding; - if (channelTimetokens && channelTimetokens.length === 1) { - var _channelTimetokens = _slicedToArray(channelTimetokens, 1), - tt = _channelTimetokens[0]; + var result = this._decode(this._base64ToBinary(cleaned)); - outgoingParams.timetoken = tt; - } else if (channelTimetokens) { - outgoingParams.channelsTimetoken = channelTimetokens.join(','); - } else if (timetoken) { - outgoingParams.timetoken = timetoken; - } + if ((0, _typeof2["default"])(result) === 'object') { + return result; + } - return outgoingParams; -} + return undefined; + } + }]); + return _default; +}(); -function handleResponse(modules, serverResponse) { - return { - channels: serverResponse.channels - }; -} +exports["default"] = _default; +module.exports = exports.default; /***/ }), -/* 79 */ +/* 124 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +var _interopRequireDefault = __webpack_require__(0); + Object.defineProperty(exports, "__esModule", { value: true }); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +exports.file = file; +exports.get = get; +exports.post = post; +exports.patch = patch; +exports.del = del; -var _flow_interfaces = __webpack_require__(1); +var _regenerator = _interopRequireDefault(__webpack_require__(10)); -var _operations = _interopRequireDefault(__webpack_require__(0)); +var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(11)); -var _utils = _interopRequireDefault(__webpack_require__(2)); +var _superagent = _interopRequireDefault(__webpack_require__(125)); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _flow_interfaces = __webpack_require__(2); -function __processMessage(modules, message) { - var config = modules.config, - crypto = modules.crypto; - if (!config.cipherKey) return message; +function log(req) { + var _pickLogger = function _pickLogger() { + if (console && console.log) return console; + if (window && window.console && window.console.log) return window.console; + return console; + }; - try { - return crypto.decrypt(message); - } catch (e) { - return message; - } -} + var start = new Date().getTime(); + var timestamp = new Date().toISOString(); -function getOperation() { - return _operations["default"].PNFetchMessagesOperation; + var logger = _pickLogger(); + + logger.log('<<<<<'); + logger.log("[".concat(timestamp, "]"), '\n', req.url, '\n', req.qs); + logger.log('-----'); + req.on('response', function (res) { + var now = new Date().getTime(); + var elapsed = now - start; + var timestampDone = new Date().toISOString(); + logger.log('>>>>>>'); + logger.log("[".concat(timestampDone, " / ").concat(elapsed, "]"), '\n', req.url, '\n', req.qs, '\n', res.text); + logger.log('-----'); + }); } -function validateParams(modules, incomingParams) { - var channels = incomingParams.channels, - _incomingParams$inclu = incomingParams.includeMessageActions, - includeMessageActions = _incomingParams$inclu === void 0 ? false : _incomingParams$inclu; - var config = modules.config; - if (!channels || channels.length === 0) return 'Missing channels'; - if (!config.subscribeKey) return 'Missing Subscribe Key'; +function xdr(superagentConstruct, endpoint, callback) { + var _this = this; - if (includeMessageActions && channels.length > 1) { - throw new TypeError('History can return actions data for a single channel only. Either pass a single channel or disable the includeMessageActions flag.'); + if (this._config.logVerbosity) { + superagentConstruct = superagentConstruct.use(log); + } + + if (this._config.proxy && this._modules.proxy) { + superagentConstruct = this._modules.proxy.call(this, superagentConstruct); + } + + if (this._config.keepAlive && this._modules.keepAlive) { + superagentConstruct = this._modules.keepAlive(superagentConstruct); + } + + var sc = superagentConstruct; + + if (endpoint.forceBuffered === true) { + if (typeof Blob === 'undefined') { + sc = sc.buffer().responseType('arraybuffer'); + } else { + sc = sc.responseType('arraybuffer'); + } + } else if (endpoint.forceBuffered === false) { + sc = sc.buffer(false); } + + return sc.timeout(endpoint.timeout).end(function (err, resp) { + var parsedResponse; + var status = {}; + status.error = err !== null; + status.operation = endpoint.operation; + + if (resp && resp.status) { + status.statusCode = resp.status; + } + + if (err) { + if (err.response && err.response.text && !_this._config.logVerbosity) { + try { + status.errorData = JSON.parse(err.response.text); + } catch (e) { + status.errorData = err; + } + } else { + status.errorData = err; + } + + status.category = _this._detectErrorCategory(err); + return callback(status, null); + } + + if (endpoint.ignoreBody) { + parsedResponse = { + headers: resp.headers, + redirects: resp.redirects, + response: resp + }; + } else { + try { + parsedResponse = JSON.parse(resp.text); + } catch (e) { + status.errorData = resp; + status.error = true; + return callback(status, null); + } + } + + if (parsedResponse.error && parsedResponse.error === 1 && parsedResponse.status && parsedResponse.message && parsedResponse.service) { + status.errorData = parsedResponse; + status.statusCode = parsedResponse.status; + status.error = true; + status.category = _this._detectErrorCategory(status); + return callback(status, null); + } else if (parsedResponse.error && parsedResponse.error.message) { + status.errorData = parsedResponse.error; + } + + return callback(status, parsedResponse); + }); } -function getURL(modules, incomingParams) { - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann, - _incomingParams$inclu2 = incomingParams.includeMessageActions, - includeMessageActions = _incomingParams$inclu2 === void 0 ? false : _incomingParams$inclu2; - var config = modules.config; - var endpoint = !includeMessageActions ? 'history' : 'history-with-actions'; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v3/".concat(endpoint, "/sub-key/").concat(config.subscribeKey, "/channel/").concat(_utils["default"].encodeString(stringifiedChannels)); +function file(_x, _x2, _x3) { + return _file.apply(this, arguments); } -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getTransactionTimeout(); +function _file() { + _file = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(url, fields, fileInput) { + var agent, result; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + agent = _superagent["default"].post(url); + fields.forEach(function (_ref) { + var key = _ref.key, + value = _ref.value; + agent = agent.field(key, value); + }); + agent.attach('file', fileInput, { + contentType: 'application/octet-stream' + }); + _context.next = 5; + return agent; + + case 5: + result = _context.sent; + return _context.abrupt("return", result); + + case 7: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + return _file.apply(this, arguments); } -function isAuthSupported() { - return true; +function get(params, endpoint, callback) { + var superagentConstruct = _superagent["default"].get(this.getStandardOrigin() + endpoint.url).set(endpoint.headers).query(params); + + return xdr.call(this, superagentConstruct, endpoint, callback); } -function prepareParams(modules, incomingParams) { - var start = incomingParams.start, - end = incomingParams.end, - count = incomingParams.count, - _incomingParams$strin = incomingParams.stringifiedTimeToken, - stringifiedTimeToken = _incomingParams$strin === void 0 ? false : _incomingParams$strin, - _incomingParams$inclu3 = incomingParams.includeMeta, - includeMeta = _incomingParams$inclu3 === void 0 ? false : _incomingParams$inclu3; - var outgoingParams = {}; - if (count) outgoingParams.max = count; - if (start) outgoingParams.start = start; - if (end) outgoingParams.end = end; - if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; - if (includeMeta) outgoingParams.include_meta = 'true'; - return outgoingParams; +function post(params, body, endpoint, callback) { + var superagentConstruct = _superagent["default"].post(this.getStandardOrigin() + endpoint.url).query(params).set(endpoint.headers).send(body); + + return xdr.call(this, superagentConstruct, endpoint, callback); } -function handleResponse(modules, serverResponse) { - var response = { - channels: {} - }; - Object.keys(serverResponse.channels || {}).forEach(function (channelName) { - response.channels[channelName] = []; - (serverResponse.channels[channelName] || []).forEach(function (messageEnvelope) { - var announce = {}; - announce.channel = channelName; - announce.timetoken = messageEnvelope.timetoken; - announce.message = __processMessage(modules, messageEnvelope.message); +function patch(params, body, endpoint, callback) { + var superagentConstruct = _superagent["default"].patch(this.getStandardOrigin() + endpoint.url).query(params).set(endpoint.headers).send(body); - if (messageEnvelope.actions) { - announce.actions = messageEnvelope.actions; - announce.data = messageEnvelope.actions; - } + return xdr.call(this, superagentConstruct, endpoint, callback); +} - if (messageEnvelope.meta) { - announce.meta = messageEnvelope.meta; - } +function del(params, endpoint, callback) { + var superagentConstruct = _superagent["default"]["delete"](this.getStandardOrigin() + endpoint.url).set(endpoint.headers).query(params); - response.channels[channelName].push(announce); - }); - }); - return response; + return xdr.call(this, superagentConstruct, endpoint, callback); } /***/ }), -/* 80 */ +/* 125 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; +/** + * Root reference for iframes. + */ + +var root; +if (typeof window !== 'undefined') { // Browser window + root = window; +} else if (typeof self !== 'undefined') { // Web Worker + root = self; +} else { // Other environments + console.warn("Using browser-only version of superagent in non-browser environment"); + root = this; +} +var Emitter = __webpack_require__(126); +var RequestBase = __webpack_require__(127); +var isObject = __webpack_require__(27); +var ResponseBase = __webpack_require__(128); +var Agent = __webpack_require__(130); -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getOperation = getOperation; -exports.validateParams = validateParams; -exports.getURL = getURL; -exports.getRequestTimeout = getRequestTimeout; -exports.isAuthSupported = isAuthSupported; -exports.prepareParams = prepareParams; -exports.handleResponse = handleResponse; +/** + * Noop. + */ -var _flow_interfaces = __webpack_require__(1); +function noop(){}; + +/** + * Expose `request`. + */ + +var request = exports = module.exports = function(method, url) { + // callback + if ('function' == typeof url) { + return new exports.Request('GET', method).end(url); + } + + // url first + if (1 == arguments.length) { + return new exports.Request('GET', method); + } -var _operations = _interopRequireDefault(__webpack_require__(0)); + return new exports.Request(method, url); +} + +exports.Request = Request; + +/** + * Determine XHR. + */ -var _utils = _interopRequireDefault(__webpack_require__(2)); +request.getXHR = function () { + if (root.XMLHttpRequest + && (!root.location || 'file:' != root.location.protocol + || !root.ActiveXObject)) { + return new XMLHttpRequest; + } else { + try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {} + try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {} + } + throw Error("Browser-only version of superagent could not find XHR"); +}; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +/** + * Removes leading and trailing whitespace, added to support IE. + * + * @param {String} s + * @return {String} + * @api private + */ -function getOperation() { - return _operations["default"].PNSubscribeOperation; -} +var trim = ''.trim + ? function(s) { return s.trim(); } + : function(s) { return s.replace(/(^\s*|\s*$)/g, ''); }; -function validateParams(modules) { - var config = modules.config; - if (!config.subscribeKey) return 'Missing Subscribe Key'; -} +/** + * Serialize the given `obj`. + * + * @param {Object} obj + * @return {String} + * @api private + */ -function getURL(modules, incomingParams) { - var config = modules.config; - var _incomingParams$chann = incomingParams.channels, - channels = _incomingParams$chann === void 0 ? [] : _incomingParams$chann; - var stringifiedChannels = channels.length > 0 ? channels.join(',') : ','; - return "/v2/subscribe/".concat(config.subscribeKey, "/").concat(_utils["default"].encodeString(stringifiedChannels), "/0"); +function serialize(obj) { + if (!isObject(obj)) return obj; + var pairs = []; + for (var key in obj) { + pushEncodedKeyValuePair(pairs, key, obj[key]); + } + return pairs.join('&'); } -function getRequestTimeout(_ref) { - var config = _ref.config; - return config.getSubscribeTimeout(); -} +/** + * Helps 'serialize' with serializing arrays. + * Mutates the pairs array. + * + * @param {Array} pairs + * @param {String} key + * @param {Mixed} val + */ -function isAuthSupported() { - return true; +function pushEncodedKeyValuePair(pairs, key, val) { + if (val != null) { + if (Array.isArray(val)) { + val.forEach(function(v) { + pushEncodedKeyValuePair(pairs, key, v); + }); + } else if (isObject(val)) { + for(var subkey in val) { + pushEncodedKeyValuePair(pairs, key + '[' + subkey + ']', val[subkey]); + } + } else { + pairs.push(encodeURIComponent(key) + + '=' + encodeURIComponent(val)); + } + } else if (val === null) { + pairs.push(encodeURIComponent(key)); + } } -function prepareParams(_ref2, incomingParams) { - var config = _ref2.config; - var state = incomingParams.state, - _incomingParams$chann2 = incomingParams.channelGroups, - channelGroups = _incomingParams$chann2 === void 0 ? [] : _incomingParams$chann2, - timetoken = incomingParams.timetoken, - filterExpression = incomingParams.filterExpression, - region = incomingParams.region; - var params = { - heartbeat: config.getPresenceTimeout() - }; - - if (channelGroups.length > 0) { - params['channel-group'] = channelGroups.join(','); - } +/** + * Expose serialization method. + */ - if (filterExpression && filterExpression.length > 0) { - params['filter-expr'] = filterExpression; - } +request.serializeObject = serialize; - if (Object.keys(state).length) { - params.state = JSON.stringify(state); - } +/** + * Parse the given x-www-form-urlencoded `str`. + * + * @param {String} str + * @return {Object} + * @api private + */ - if (timetoken) { - params.tt = timetoken; - } +function parseString(str) { + var obj = {}; + var pairs = str.split('&'); + var pair; + var pos; - if (region) { - params.tr = region; + for (var i = 0, len = pairs.length; i < len; ++i) { + pair = pairs[i]; + pos = pair.indexOf('='); + if (pos == -1) { + obj[decodeURIComponent(pair)] = ''; + } else { + obj[decodeURIComponent(pair.slice(0, pos))] = + decodeURIComponent(pair.slice(pos + 1)); + } } - return params; + return obj; } -function handleResponse(modules, serverResponse) { - var messages = []; - serverResponse.m.forEach(function (rawMessage) { - var publishMetaData = { - publishTimetoken: rawMessage.p.t, - region: rawMessage.p.r - }; - var parsedMessage = { - shard: parseInt(rawMessage.a, 10), - subscriptionMatch: rawMessage.b, - channel: rawMessage.c, - messageType: rawMessage.e, - payload: rawMessage.d, - flags: rawMessage.f, - issuingClientId: rawMessage.i, - subscribeKey: rawMessage.k, - originationTimetoken: rawMessage.o, - userMetadata: rawMessage.u, - publishMetaData: publishMetaData - }; - messages.push(parsedMessage); - }); - var metadata = { - timetoken: serverResponse.t.t, - region: serverResponse.t.r - }; - return { - messages: messages, - metadata: metadata - }; -} +/** + * Expose parser. + */ -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { +request.parseString = parseString; -"use strict"; +/** + * Default MIME type map. + * + * superagent.types.xml = 'application/xml'; + * + */ + +request.types = { + html: 'text/html', + json: 'application/json', + xml: 'text/xml', + urlencoded: 'application/x-www-form-urlencoded', + 'form': 'application/x-www-form-urlencoded', + 'form-data': 'application/x-www-form-urlencoded' +}; +/** + * Default serialization map. + * + * superagent.serialize['application/xml'] = function(obj){ + * return 'generated xml here'; + * }; + * + */ -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; +request.serialize = { + 'application/x-www-form-urlencoded': serialize, + 'application/json': JSON.stringify +}; -var _config = _interopRequireDefault(__webpack_require__(3)); +/** + * Default parsers. + * + * superagent.parse['application/xml'] = function(str){ + * return { object parsed from str }; + * }; + * + */ -var _categories = _interopRequireDefault(__webpack_require__(4)); +request.parse = { + 'application/x-www-form-urlencoded': parseString, + 'application/json': JSON.parse +}; -var _flow_interfaces = __webpack_require__(1); +/** + * Parse the given header `str` into + * an object containing the mapped fields. + * + * @param {String} str + * @return {Object} + * @api private + */ -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +function parseHeader(str) { + var lines = str.split(/\r?\n/); + var fields = {}; + var index; + var line; + var field; + var val; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + for (var i = 0, len = lines.length; i < len; ++i) { + line = lines[i]; + index = line.indexOf(':'); + if (index === -1) { // could be empty line, just skip it + continue; + } + field = line.slice(0, index).toLowerCase(); + val = trim(line.slice(index + 1)); + fields[field] = val; + } -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, descriptor.key, descriptor); } } + return fields; +} -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +/** + * Check if `mime` is json or has +json structured syntax suffix. + * + * @param {String} mime + * @return {Boolean} + * @api private + */ -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function isJSON(mime) { + // should match /json or +json + // but not /json-seq + return /[\/+]json($|[^-\w])/.test(mime); +} -var _default = function () { - function _default(modules) { - var _this = this; +/** + * Initialize a new `Response` with the given `xhr`. + * + * - set flags (.ok, .error, etc) + * - parse header + * + * Examples: + * + * Aliasing `superagent` as `request` is nice: + * + * request = superagent; + * + * We can use the promise-like API, or pass callbacks: + * + * request.get('/').end(function(res){}); + * request.get('/', function(res){}); + * + * Sending data can be chained: + * + * request + * .post('/user') + * .send({ name: 'tj' }) + * .end(function(res){}); + * + * Or passed to `.send()`: + * + * request + * .post('/user') + * .send({ name: 'tj' }, function(res){}); + * + * Or passed to `.post()`: + * + * request + * .post('/user', { name: 'tj' }) + * .end(function(res){}); + * + * Or further reduced to a single call for simple cases: + * + * request + * .post('/user', { name: 'tj' }, function(res){}); + * + * @param {XMLHTTPRequest} xhr + * @param {Object} options + * @api private + */ - _classCallCheck(this, _default); +function Response(req) { + this.req = req; + this.xhr = this.req.xhr; + // responseText is accessible only if responseType is '' or 'text' and on older browsers + this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined') + ? this.xhr.responseText + : null; + this.statusText = this.req.xhr.statusText; + var status = this.xhr.status; + // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request + if (status === 1223) { + status = 204; + } + this._setStatusProperties(status); + this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders()); + // getAllResponseHeaders sometimes falsely returns "" for CORS requests, but + // getResponseHeader still works. so we get content-type even if getting + // other headers fails. + this.header['content-type'] = this.xhr.getResponseHeader('content-type'); + this._setHeaderProperties(this.header); - _defineProperty(this, "_modules", void 0); + if (null === this.text && req._responseType) { + this.body = this.xhr.response; + } else { + this.body = this.req.method != 'HEAD' + ? this._parseBody(this.text ? this.text : this.xhr.response) + : null; + } +} - _defineProperty(this, "_config", void 0); +ResponseBase(Response.prototype); - _defineProperty(this, "_maxSubDomain", void 0); +/** + * Parse the given body `str`. + * + * Used for auto-parsing of bodies. Parsers + * are defined on the `superagent.parse` object. + * + * @param {String} str + * @return {Mixed} + * @api private + */ - _defineProperty(this, "_currentSubDomain", void 0); +Response.prototype._parseBody = function(str) { + var parse = request.parse[this.type]; + if (this.req._parser) { + return this.req._parser(this, str); + } + if (!parse && isJSON(this.type)) { + parse = request.parse['application/json']; + } + return parse && str && (str.length || str instanceof Object) + ? parse(str) + : null; +}; - _defineProperty(this, "_standardOrigin", void 0); +/** + * Return an `Error` representative of this response. + * + * @return {Error} + * @api public + */ - _defineProperty(this, "_subscribeOrigin", void 0); +Response.prototype.toError = function(){ + var req = this.req; + var method = req.method; + var url = req.url; - _defineProperty(this, "_providedFQDN", void 0); + var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')'; + var err = new Error(msg); + err.status = this.status; + err.method = method; + err.url = url; - _defineProperty(this, "_requestTimeout", void 0); + return err; +}; - _defineProperty(this, "_coreParams", void 0); +/** + * Expose `Response`. + */ - this._modules = {}; - Object.keys(modules).forEach(function (key) { - _this._modules[key] = modules[key].bind(_this); - }); - } +request.Response = Response; - _createClass(_default, [{ - key: "init", - value: function init(config) { - this._config = config; - this._maxSubDomain = 20; - this._currentSubDomain = Math.floor(Math.random() * this._maxSubDomain); - this._providedFQDN = (this._config.secure ? 'https://' : 'http://') + this._config.origin; - this._coreParams = {}; - this.shiftStandardOrigin(); - } - }, { - key: "nextOrigin", - value: function nextOrigin() { - if (!this._providedFQDN.match(/ps\.pndsn\.com$/i)) { - return this._providedFQDN; - } +/** + * Initialize a new `Request` with the given `method` and `url`. + * + * @param {String} method + * @param {String} url + * @api public + */ - var newSubDomain; - this._currentSubDomain += 1; +function Request(method, url) { + var self = this; + this._query = this._query || []; + this.method = method; + this.url = url; + this.header = {}; // preserves header name case + this._header = {}; // coerces header names to lowercase + this.on('end', function(){ + var err = null; + var res = null; - if (this._currentSubDomain >= this._maxSubDomain) { - this._currentSubDomain = 1; + try { + res = new Response(self); + } catch(e) { + err = new Error('Parser is unable to parse the response'); + err.parse = true; + err.original = e; + // issue #675: return the raw response if the response parsing fails + if (self.xhr) { + // ie9 doesn't have 'response' property + err.rawResponse = typeof self.xhr.responseType == 'undefined' ? self.xhr.responseText : self.xhr.response; + // issue #876: return the http status code if the response parsing fails + err.status = self.xhr.status ? self.xhr.status : null; + err.statusCode = err.status; // backwards-compat only + } else { + err.rawResponse = null; + err.status = null; } - newSubDomain = this._currentSubDomain.toString(); - return this._providedFQDN.replace('ps.pndsn.com', "ps".concat(newSubDomain, ".pndsn.com")); - } - }, { - key: "hasModule", - value: function hasModule(name) { - return name in this._modules; - } - }, { - key: "shiftStandardOrigin", - value: function shiftStandardOrigin() { - this._standardOrigin = this.nextOrigin(); - return this._standardOrigin; - } - }, { - key: "getStandardOrigin", - value: function getStandardOrigin() { - return this._standardOrigin; - } - }, { - key: "POST", - value: function POST(params, body, endpoint, callback) { - return this._modules.post(params, body, endpoint, callback); - } - }, { - key: "PATCH", - value: function PATCH(params, body, endpoint, callback) { - return this._modules.patch(params, body, endpoint, callback); - } - }, { - key: "GET", - value: function GET(params, endpoint, callback) { - return this._modules.get(params, endpoint, callback); - } - }, { - key: "DELETE", - value: function DELETE(params, endpoint, callback) { - return this._modules.del(params, endpoint, callback); + return self.callback(err); } - }, { - key: "_detectErrorCategory", - value: function _detectErrorCategory(err) { - if (err.code === 'ENOTFOUND') { - return _categories["default"].PNNetworkIssuesCategory; - } - - if (err.code === 'ECONNREFUSED') { - return _categories["default"].PNNetworkIssuesCategory; - } - - if (err.code === 'ECONNRESET') { - return _categories["default"].PNNetworkIssuesCategory; - } - - if (err.code === 'EAI_AGAIN') { - return _categories["default"].PNNetworkIssuesCategory; - } - - if (err.status === 0 || err.hasOwnProperty('status') && typeof err.status === 'undefined') { - return _categories["default"].PNNetworkIssuesCategory; - } - - if (err.timeout) return _categories["default"].PNTimeoutCategory; - - if (err.code === 'ETIMEDOUT') { - return _categories["default"].PNNetworkIssuesCategory; - } - if (err.response) { - if (err.response.badRequest) { - return _categories["default"].PNBadRequestCategory; - } + self.emit('response', res); - if (err.response.forbidden) { - return _categories["default"].PNAccessDeniedCategory; - } + var new_err; + try { + if (!self._isResponseOK(res)) { + new_err = new Error(res.statusText || 'Unsuccessful HTTP response'); } + } catch(custom_err) { + new_err = custom_err; // ok() callback can throw + } - return _categories["default"].PNUnknownCategory; + // #1000 don't catch errors from the callback to avoid double calling it + if (new_err) { + new_err.original = err; + new_err.response = res; + new_err.status = res.status; + self.callback(new_err, res); + } else { + self.callback(null, res); } - }]); + }); +} - return _default; -}(); +/** + * Mixin `Emitter` and `RequestBase`. + */ -exports["default"] = _default; -module.exports = exports.default; +Emitter(Request.prototype); +RequestBase(Request.prototype); -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { +/** + * Set Content-Type to `type`, mapping values from `request.types`. + * + * Examples: + * + * superagent.types.xml = 'application/xml'; + * + * request.post('/') + * .type('xml') + * .send(xmlstring) + * .end(callback); + * + * request.post('/') + * .type('application/xml') + * .send(xmlstring) + * .end(callback); + * + * @param {String} type + * @return {Request} for chaining + * @api public + */ -"use strict"; +Request.prototype.type = function(type){ + this.set('Content-Type', request.types[type] || type); + return this; +}; +/** + * Set Accept to `type`, mapping values from `request.types`. + * + * Examples: + * + * superagent.types.json = 'application/json'; + * + * request.get('/agent') + * .accept('json') + * .end(callback); + * + * request.get('/agent') + * .accept('application/json') + * .end(callback); + * + * @param {String} accept + * @return {Request} for chaining + * @api public + */ -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; -var _default = { - get: function get(key) { - try { - return localStorage.getItem(key); - } catch (e) { - return null; - } - }, - set: function set(key, data) { - try { - return localStorage.setItem(key, data); - } catch (e) { - return null; - } - } +Request.prototype.accept = function(type){ + this.set('Accept', request.types[type] || type); + return this; }; -exports["default"] = _default; -module.exports = exports.default; -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { +/** + * Set Authorization field value with `user` and `pass`. + * + * @param {String} user + * @param {String} [pass] optional in case of using 'bearer' as type + * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic') + * @return {Request} for chaining + * @api public + */ -"use strict"; +Request.prototype.auth = function(user, pass, options){ + if (1 === arguments.length) pass = ''; + if (typeof pass === 'object' && pass !== null) { // pass is optional and can be replaced with options + options = pass; + pass = ''; + } + if (!options) { + options = { + type: 'function' === typeof btoa ? 'basic' : 'auto', + }; + } + + var encoder = function(string) { + if ('function' === typeof btoa) { + return btoa(string); + } + throw new Error('Cannot use basic auth, btoa is not a function'); + }; + return this._auth(user, pass, options, encoder); +}; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = void 0; +/** + * Add query-string `val`. + * + * Examples: + * + * request.get('/shoes') + * .query('size=10') + * .query({ color: 'blue' }) + * + * @param {Object|String} val + * @return {Request} for chaining + * @api public + */ -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); } +Request.prototype.query = function(val){ + if ('string' != typeof val) val = serialize(val); + if (val) this._query.push(val); + return this; +}; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +/** + * Queue the given `file` as an attachment to the specified `field`, + * with optional `options` (or filename). + * + * ``` js + * request.post('/upload') + * .attach('content', new Blob(['hey!'], { type: "text/html"})) + * .end(callback); + * ``` + * + * @param {String} field + * @param {Blob|File} file + * @param {String|Object} options + * @return {Request} for chaining + * @api public + */ -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, descriptor.key, descriptor); } } +Request.prototype.attach = function(field, file, options){ + if (file) { + if (this._data) { + throw Error("superagent can't mix .send() and .attach()"); + } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + this._getFormData().append(field, file, options || file.name); + } + return this; +}; -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +Request.prototype._getFormData = function(){ + if (!this._formData) { + this._formData = new root.FormData(); + } + return this._formData; +}; -var _default = function () { - function _default(decode, base64ToBinary) { - _classCallCheck(this, _default); +/** + * Invoke the callback with `err` and `res` + * and handle arity check. + * + * @param {Error} err + * @param {Response} res + * @api private + */ - _defineProperty(this, "_base64ToBinary", void 0); +Request.prototype.callback = function(err, res){ + if (this._shouldRetry(err, res)) { + return this._retry(); + } - _defineProperty(this, "_cborReader", void 0); + var fn = this._callback; + this.clearTimeout(); - this._base64ToBinary = base64ToBinary; - this._decode = decode; + if (err) { + if (this._maxRetries) err.retries = this._retries - 1; + this.emit('error', err); } - _createClass(_default, [{ - key: "decodeToken", - value: function decodeToken(tokenString) { - var padding = ''; + fn(err, res); +}; - if (tokenString.length % 4 === 3) { - padding = '='; - } else if (tokenString.length % 4 === 2) { - padding = '=='; - } +/** + * Invoke callback with x-domain error. + * + * @api private + */ - var cleaned = tokenString.replace(/-/gi, '+').replace(/_/gi, '/') + padding; +Request.prototype.crossDomainError = function(){ + var err = new Error('Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.'); + err.crossDomain = true; - var result = this._decode(this._base64ToBinary(cleaned)); + err.status = this.status; + err.method = this.method; + err.url = this.url; - if (_typeof(result) === 'object') { - return result; - } + this.callback(err); +}; - return undefined; - } - }]); +// This only warns, because the request is still likely to work +Request.prototype.buffer = Request.prototype.ca = Request.prototype.agent = function(){ + console.warn("This is not supported in browser version of superagent"); + return this; +}; - return _default; -}(); +// This throws, because it can't send/receive data as expected +Request.prototype.pipe = Request.prototype.write = function(){ + throw Error("Streaming is not supported in browser version of superagent"); +}; + +/** + * Check if `obj` is a host object, + * we don't want to serialize these :) + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ +Request.prototype._isHost = function _isHost(obj) { + // Native objects stringify to [object File], [object Blob], [object FormData], etc. + return obj && 'object' === typeof obj && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]'; +} + +/** + * Initiate request, invoking callback `fn(res)` + * with an instanceof `Response`. + * + * @param {Function} fn + * @return {Request} for chaining + * @api public + */ -exports["default"] = _default; -module.exports = exports.default; +Request.prototype.end = function(fn){ + if (this._endCalled) { + console.warn("Warning: .end() was called twice. This is not supported in superagent"); + } + this._endCalled = true; -/***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { + // store callback + this._callback = fn || noop; -"use strict"; + // querystring + this._finalizeQueryString(); + return this._end(); +}; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.get = get; -exports.post = post; -exports.patch = patch; -exports.del = del; +Request.prototype._end = function() { + var self = this; + var xhr = (this.xhr = request.getXHR()); + var data = this._formData || this._data; -var _superagent = _interopRequireDefault(__webpack_require__(85)); + this._setTimeouts(); -var _flow_interfaces = __webpack_require__(1); + // state change + xhr.onreadystatechange = function(){ + var readyState = xhr.readyState; + if (readyState >= 2 && self._responseTimeoutTimer) { + clearTimeout(self._responseTimeoutTimer); + } + if (4 != readyState) { + return; + } -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + // In IE9, reads to any property (e.g. status) off of an aborted XHR will + // result in the error "Could not complete the operation due to error c00c023f" + var status; + try { status = xhr.status } catch(e) { status = 0; } -function log(req) { - var _pickLogger = function _pickLogger() { - if (console && console.log) return console; - if (window && window.console && window.console.log) return window.console; - return console; + if (!status) { + if (self.timedout || self._aborted) return; + return self.crossDomainError(); + } + self.emit('end'); }; - var start = new Date().getTime(); - var timestamp = new Date().toISOString(); - - var logger = _pickLogger(); + // progress + var handleProgress = function(direction, e) { + if (e.total > 0) { + e.percent = e.loaded / e.total * 100; + } + e.direction = direction; + self.emit('progress', e); + }; + if (this.hasListeners('progress')) { + try { + xhr.onprogress = handleProgress.bind(null, 'download'); + if (xhr.upload) { + xhr.upload.onprogress = handleProgress.bind(null, 'upload'); + } + } catch(e) { + // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist. + // Reported here: + // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context + } + } - logger.log('<<<<<'); - logger.log("[".concat(timestamp, "]"), '\n', req.url, '\n', req.qs); - logger.log('-----'); - req.on('response', function (res) { - var now = new Date().getTime(); - var elapsed = now - start; - var timestampDone = new Date().toISOString(); - logger.log('>>>>>>'); - logger.log("[".concat(timestampDone, " / ").concat(elapsed, "]"), '\n', req.url, '\n', req.qs, '\n', res.text); - logger.log('-----'); - }); -} + // initiate request + try { + if (this.username && this.password) { + xhr.open(this.method, this.url, true, this.username, this.password); + } else { + xhr.open(this.method, this.url, true); + } + } catch (err) { + // see #1149 + return this.callback(err); + } -function xdr(superagentConstruct, endpoint, callback) { - var _this = this; + // CORS + if (this._withCredentials) xhr.withCredentials = true; - if (this._config.logVerbosity) { - superagentConstruct = superagentConstruct.use(log); + // body + if (!this._formData && 'GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) { + // serialize stuff + var contentType = this._header['content-type']; + var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : '']; + if (!serialize && isJSON(contentType)) { + serialize = request.serialize['application/json']; + } + if (serialize) data = serialize(data); } - if (this._config.proxy && this._modules.proxy) { - superagentConstruct = this._modules.proxy.call(this, superagentConstruct); - } + // set header fields + for (var field in this.header) { + if (null == this.header[field]) continue; - if (this._config.keepAlive && this._modules.keepAlive) { - superagentConstruct = this._modules.keepAlive(superagentConstruct); + if (this.header.hasOwnProperty(field)) + xhr.setRequestHeader(field, this.header[field]); } - return superagentConstruct.timeout(endpoint.timeout).end(function (err, resp) { - var parsedResponse; - var status = {}; - status.error = err !== null; - status.operation = endpoint.operation; - - if (resp && resp.status) { - status.statusCode = resp.status; - } + if (this._responseType) { + xhr.responseType = this._responseType; + } - if (err) { - if (err.response && err.response.text && !_this._config.logVerbosity) { - try { - status.errorData = JSON.parse(err.response.text); - } catch (e) { - status.errorData = err; - } - } else { - status.errorData = err; - } + // send stuff + this.emit('request', this); - status.category = _this._detectErrorCategory(err); - return callback(status, null); - } + // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing) + // We need null here if data is undefined + xhr.send(typeof data !== 'undefined' ? data : null); + return this; +}; - try { - parsedResponse = JSON.parse(resp.text); - } catch (e) { - status.errorData = resp; - status.error = true; - return callback(status, null); - } +request.agent = function() { + return new Agent(); +}; - if (parsedResponse.error && parsedResponse.error === 1 && parsedResponse.status && parsedResponse.message && parsedResponse.service) { - status.errorData = parsedResponse; - status.statusCode = parsedResponse.status; - status.error = true; - status.category = _this._detectErrorCategory(status); - return callback(status, null); - } else if (parsedResponse.error && parsedResponse.error.message) { - status.errorData = parsedResponse.error; +["GET", "POST", "OPTIONS", "PATCH", "PUT", "DELETE"].forEach(function(method) { + Agent.prototype[method.toLowerCase()] = function(url, fn) { + var req = new request.Request(method, url); + this._setDefaults(req); + if (fn) { + req.end(fn); } + return req; + }; +}); - return callback(status, parsedResponse); - }); -} +Agent.prototype.del = Agent.prototype['delete']; -function get(params, endpoint, callback) { - var superagentConstruct = _superagent["default"].get(this.getStandardOrigin() + endpoint.url).set(endpoint.headers).query(params); +/** + * GET `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} [data] or fn + * @param {Function} [fn] + * @return {Request} + * @api public + */ - return xdr.call(this, superagentConstruct, endpoint, callback); -} +request.get = function(url, data, fn) { + var req = request('GET', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.query(data); + if (fn) req.end(fn); + return req; +}; -function post(params, body, endpoint, callback) { - var superagentConstruct = _superagent["default"].post(this.getStandardOrigin() + endpoint.url).query(params).set(endpoint.headers).send(body); +/** + * HEAD `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} [data] or fn + * @param {Function} [fn] + * @return {Request} + * @api public + */ - return xdr.call(this, superagentConstruct, endpoint, callback); -} +request.head = function(url, data, fn) { + var req = request('HEAD', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.query(data); + if (fn) req.end(fn); + return req; +}; -function patch(params, body, endpoint, callback) { - var superagentConstruct = _superagent["default"].patch(this.getStandardOrigin() + endpoint.url).query(params).set(endpoint.headers).send(body); +/** + * OPTIONS query to `url` with optional callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} [data] or fn + * @param {Function} [fn] + * @return {Request} + * @api public + */ - return xdr.call(this, superagentConstruct, endpoint, callback); -} +request.options = function(url, data, fn) { + var req = request('OPTIONS', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; -function del(params, endpoint, callback) { - var superagentConstruct = _superagent["default"]["delete"](this.getStandardOrigin() + endpoint.url).set(endpoint.headers).query(params); +/** + * DELETE `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} [data] + * @param {Function} [fn] + * @return {Request} + * @api public + */ - return xdr.call(this, superagentConstruct, endpoint, callback); +function del(url, data, fn) { + var req = request('DELETE', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; } -/***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { +request['del'] = del; +request['delete'] = del; /** - * Root reference for iframes. + * PATCH `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} [data] + * @param {Function} [fn] + * @return {Request} + * @api public */ -var root; -if (typeof window !== 'undefined') { // Browser window - root = window; -} else if (typeof self !== 'undefined') { // Web Worker - root = self; -} else { // Other environments - console.warn("Using browser-only version of superagent in non-browser environment"); - root = this; -} - -var Emitter = __webpack_require__(86); -var RequestBase = __webpack_require__(87); -var isObject = __webpack_require__(10); -var ResponseBase = __webpack_require__(88); -var Agent = __webpack_require__(90); +request.patch = function(url, data, fn) { + var req = request('PATCH', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; /** - * Noop. + * POST `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed} [data] + * @param {Function} [fn] + * @return {Request} + * @api public */ -function noop(){}; +request.post = function(url, data, fn) { + var req = request('POST', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; /** - * Expose `request`. + * PUT `url` with optional `data` and callback `fn(res)`. + * + * @param {String} url + * @param {Mixed|Function} [data] or fn + * @param {Function} [fn] + * @return {Request} + * @api public */ -var request = exports = module.exports = function(method, url) { - // callback - if ('function' == typeof url) { - return new exports.Request('GET', method).end(url); - } +request.put = function(url, data, fn) { + var req = request('PUT', url); + if ('function' == typeof data) (fn = data), (data = null); + if (data) req.send(data); + if (fn) req.end(fn); + return req; +}; - // url first - if (1 == arguments.length) { - return new exports.Request('GET', method); - } - return new exports.Request(method, url); -} +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + + +/** + * Expose `Emitter`. + */ + +if (true) { + module.exports = Emitter; +} + +/** + * Initialize a new `Emitter`. + * + * @api public + */ + +function Emitter(obj) { + if (obj) return mixin(obj); +}; + +/** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; +} + +/** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.on = +Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks['$' + event] = this._callbacks['$' + event] || []) + .push(fn); + return this; +}; + +/** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.once = function(event, fn){ + function on() { + this.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; +}; + +/** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.off = +Emitter.prototype.removeListener = +Emitter.prototype.removeAllListeners = +Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks['$' + event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks['$' + event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + + // Remove event specific arrays for event types that no + // one is subscribed for to avoid memory leak. + if (callbacks.length === 0) { + delete this._callbacks['$' + event]; + } + + return this; +}; + +/** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + +Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + + var args = new Array(arguments.length - 1) + , callbacks = this._callbacks['$' + event]; + + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; +}; + +/** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + +Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks['$' + event] || []; +}; + +/** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + +Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; +}; + -exports.Request = Request; +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { -/** - * Determine XHR. - */ +"use strict"; -request.getXHR = function () { - if (root.XMLHttpRequest - && (!root.location || 'file:' != root.location.protocol - || !root.ActiveXObject)) { - return new XMLHttpRequest; - } else { - try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) {} - try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {} - try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {} - try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) {} - } - throw Error("Browser-only version of superagent could not find XHR"); -}; /** - * Removes leading and trailing whitespace, added to support IE. - * - * @param {String} s - * @return {String} - * @api private + * Module of mixed-in functions shared between node and client code */ - -var trim = ''.trim - ? function(s) { return s.trim(); } - : function(s) { return s.replace(/(^\s*|\s*$)/g, ''); }; +var isObject = __webpack_require__(27); /** - * Serialize the given `obj`. - * - * @param {Object} obj - * @return {String} - * @api private + * Expose `RequestBase`. */ -function serialize(obj) { - if (!isObject(obj)) return obj; - var pairs = []; - for (var key in obj) { - pushEncodedKeyValuePair(pairs, key, obj[key]); - } - return pairs.join('&'); -} +module.exports = RequestBase; /** - * Helps 'serialize' with serializing arrays. - * Mutates the pairs array. + * Initialize a new `RequestBase`. * - * @param {Array} pairs - * @param {String} key - * @param {Mixed} val + * @api public */ -function pushEncodedKeyValuePair(pairs, key, val) { - if (val != null) { - if (Array.isArray(val)) { - val.forEach(function(v) { - pushEncodedKeyValuePair(pairs, key, v); - }); - } else if (isObject(val)) { - for(var subkey in val) { - pushEncodedKeyValuePair(pairs, key + '[' + subkey + ']', val[subkey]); - } - } else { - pairs.push(encodeURIComponent(key) - + '=' + encodeURIComponent(val)); - } - } else if (val === null) { - pairs.push(encodeURIComponent(key)); - } +function RequestBase(obj) { + if (obj) return mixin(obj); } /** - * Expose serialization method. + * Mixin the prototype properties. + * + * @param {Object} obj + * @return {Object} + * @api private */ -request.serializeObject = serialize; - -/** - * Parse the given x-www-form-urlencoded `str`. - * - * @param {String} str - * @return {Object} - * @api private - */ - -function parseString(str) { - var obj = {}; - var pairs = str.split('&'); - var pair; - var pos; - - for (var i = 0, len = pairs.length; i < len; ++i) { - pair = pairs[i]; - pos = pair.indexOf('='); - if (pos == -1) { - obj[decodeURIComponent(pair)] = ''; - } else { - obj[decodeURIComponent(pair.slice(0, pos))] = - decodeURIComponent(pair.slice(pos + 1)); - } +function mixin(obj) { + for (var key in RequestBase.prototype) { + obj[key] = RequestBase.prototype[key]; } - return obj; } /** - * Expose parser. + * Clear previous timeout. + * + * @return {Request} for chaining + * @api public */ -request.parseString = parseString; +RequestBase.prototype.clearTimeout = function _clearTimeout(){ + clearTimeout(this._timer); + clearTimeout(this._responseTimeoutTimer); + delete this._timer; + delete this._responseTimeoutTimer; + return this; +}; /** - * Default MIME type map. + * Override default response body parser * - * superagent.types.xml = 'application/xml'; + * This function will be called to convert incoming data into request.body * + * @param {Function} + * @api public */ -request.types = { - html: 'text/html', - json: 'application/json', - xml: 'text/xml', - urlencoded: 'application/x-www-form-urlencoded', - 'form': 'application/x-www-form-urlencoded', - 'form-data': 'application/x-www-form-urlencoded' +RequestBase.prototype.parse = function parse(fn){ + this._parser = fn; + return this; }; /** - * Default serialization map. + * Set format of binary response body. + * In browser valid formats are 'blob' and 'arraybuffer', + * which return Blob and ArrayBuffer, respectively. * - * superagent.serialize['application/xml'] = function(obj){ - * return 'generated xml here'; - * }; + * In Node all values result in Buffer. + * + * Examples: + * + * req.get('/') + * .responseType('blob') + * .end(callback); * + * @param {String} val + * @return {Request} for chaining + * @api public */ -request.serialize = { - 'application/x-www-form-urlencoded': serialize, - 'application/json': JSON.stringify -}; - -/** - * Default parsers. - * - * superagent.parse['application/xml'] = function(str){ - * return { object parsed from str }; - * }; - * - */ - -request.parse = { - 'application/x-www-form-urlencoded': parseString, - 'application/json': JSON.parse +RequestBase.prototype.responseType = function(val){ + this._responseType = val; + return this; }; /** - * Parse the given header `str` into - * an object containing the mapped fields. + * Override default request body serializer * - * @param {String} str - * @return {Object} - * @api private - */ - -function parseHeader(str) { - var lines = str.split(/\r?\n/); - var fields = {}; - var index; - var line; - var field; - var val; - - for (var i = 0, len = lines.length; i < len; ++i) { - line = lines[i]; - index = line.indexOf(':'); - if (index === -1) { // could be empty line, just skip it - continue; - } - field = line.slice(0, index).toLowerCase(); - val = trim(line.slice(index + 1)); - fields[field] = val; - } - - return fields; -} - -/** - * Check if `mime` is json or has +json structured syntax suffix. + * This function will be called to convert data set via .send or .attach into payload to send * - * @param {String} mime - * @return {Boolean} - * @api private + * @param {Function} + * @api public */ -function isJSON(mime) { - // should match /json or +json - // but not /json-seq - return /[\/+]json($|[^-\w])/.test(mime); -} - -/** - * Initialize a new `Response` with the given `xhr`. - * - * - set flags (.ok, .error, etc) - * - parse header - * - * Examples: - * - * Aliasing `superagent` as `request` is nice: - * - * request = superagent; - * - * We can use the promise-like API, or pass callbacks: - * - * request.get('/').end(function(res){}); - * request.get('/', function(res){}); - * - * Sending data can be chained: - * - * request - * .post('/user') - * .send({ name: 'tj' }) - * .end(function(res){}); - * - * Or passed to `.send()`: - * - * request - * .post('/user') - * .send({ name: 'tj' }, function(res){}); - * - * Or passed to `.post()`: - * - * request - * .post('/user', { name: 'tj' }) - * .end(function(res){}); +RequestBase.prototype.serialize = function serialize(fn){ + this._serializer = fn; + return this; +}; + +/** + * Set timeouts. * - * Or further reduced to a single call for simple cases: + * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time. + * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections. * - * request - * .post('/user', { name: 'tj' }, function(res){}); + * Value of 0 or false means no timeout. * - * @param {XMLHTTPRequest} xhr - * @param {Object} options - * @api private + * @param {Number|Object} ms or {response, deadline} + * @return {Request} for chaining + * @api public */ -function Response(req) { - this.req = req; - this.xhr = this.req.xhr; - // responseText is accessible only if responseType is '' or 'text' and on older browsers - this.text = ((this.req.method !='HEAD' && (this.xhr.responseType === '' || this.xhr.responseType === 'text')) || typeof this.xhr.responseType === 'undefined') - ? this.xhr.responseText - : null; - this.statusText = this.req.xhr.statusText; - var status = this.xhr.status; - // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request - if (status === 1223) { - status = 204; +RequestBase.prototype.timeout = function timeout(options){ + if (!options || 'object' !== typeof options) { + this._timeout = options; + this._responseTimeout = 0; + return this; } - this._setStatusProperties(status); - this.header = this.headers = parseHeader(this.xhr.getAllResponseHeaders()); - // getAllResponseHeaders sometimes falsely returns "" for CORS requests, but - // getResponseHeader still works. so we get content-type even if getting - // other headers fails. - this.header['content-type'] = this.xhr.getResponseHeader('content-type'); - this._setHeaderProperties(this.header); - if (null === this.text && req._responseType) { - this.body = this.xhr.response; - } else { - this.body = this.req.method != 'HEAD' - ? this._parseBody(this.text ? this.text : this.xhr.response) - : null; + for(var option in options) { + switch(option) { + case 'deadline': + this._timeout = options.deadline; + break; + case 'response': + this._responseTimeout = options.response; + break; + default: + console.warn("Unknown timeout option", option); + } } -} - -ResponseBase(Response.prototype); + return this; +}; /** - * Parse the given body `str`. + * Set number of retry attempts on error. * - * Used for auto-parsing of bodies. Parsers - * are defined on the `superagent.parse` object. + * Failed requests will be retried 'count' times if timeout or err.code >= 500. * - * @param {String} str - * @return {Mixed} - * @api private + * @param {Number} count + * @param {Function} [fn] + * @return {Request} for chaining + * @api public */ -Response.prototype._parseBody = function(str) { - var parse = request.parse[this.type]; - if (this.req._parser) { - return this.req._parser(this, str); +RequestBase.prototype.retry = function retry(count, fn){ + // Default to 1 if no count passed or true + if (arguments.length === 0 || count === true) count = 1; + if (count <= 0) count = 0; + this._maxRetries = count; + this._retries = 0; + this._retryCallback = fn; + return this; +}; + +var ERROR_CODES = [ + 'ECONNRESET', + 'ETIMEDOUT', + 'EADDRINFO', + 'ESOCKETTIMEDOUT' +]; + +/** + * Determine if a request should be retried. + * (Borrowed from segmentio/superagent-retry) + * + * @param {Error} err + * @param {Response} [res] + * @returns {Boolean} + */ +RequestBase.prototype._shouldRetry = function(err, res) { + if (!this._maxRetries || this._retries++ >= this._maxRetries) { + return false; } - if (!parse && isJSON(this.type)) { - parse = request.parse['application/json']; + if (this._retryCallback) { + try { + var override = this._retryCallback(err, res); + if (override === true) return true; + if (override === false) return false; + // undefined falls back to defaults + } catch(e) { + console.error(e); + } } - return parse && str && (str.length || str instanceof Object) - ? parse(str) - : null; + if (res && res.status && res.status >= 500 && res.status != 501) return true; + if (err) { + if (err.code && ~ERROR_CODES.indexOf(err.code)) return true; + // Superagent timeout + if (err.timeout && err.code == 'ECONNABORTED') return true; + if (err.crossDomain) return true; + } + return false; }; /** - * Return an `Error` representative of this response. + * Retry request * - * @return {Error} - * @api public + * @return {Request} for chaining + * @api private */ -Response.prototype.toError = function(){ - var req = this.req; - var method = req.method; - var url = req.url; +RequestBase.prototype._retry = function() { - var msg = 'cannot ' + method + ' ' + url + ' (' + this.status + ')'; - var err = new Error(msg); - err.status = this.status; - err.method = method; - err.url = url; + this.clearTimeout(); - return err; + // node + if (this.req) { + this.req = null; + this.req = this.request(); + } + + this._aborted = false; + this.timedout = false; + + return this._end(); }; /** - * Expose `Response`. + * Promise support + * + * @param {Function} resolve + * @param {Function} [reject] + * @return {Request} */ -request.Response = Response; +RequestBase.prototype.then = function then(resolve, reject) { + if (!this._fullfilledPromise) { + var self = this; + if (this._endCalled) { + console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"); + } + this._fullfilledPromise = new Promise(function(innerResolve, innerReject) { + self.end(function(err, res) { + if (err) innerReject(err); + else innerResolve(res); + }); + }); + } + return this._fullfilledPromise.then(resolve, reject); +}; + +RequestBase.prototype['catch'] = function(cb) { + return this.then(undefined, cb); +}; /** - * Initialize a new `Request` with the given `method` and `url`. - * - * @param {String} method - * @param {String} url - * @api public + * Allow for extension */ -function Request(method, url) { - var self = this; - this._query = this._query || []; - this.method = method; - this.url = url; - this.header = {}; // preserves header name case - this._header = {}; // coerces header names to lowercase - this.on('end', function(){ - var err = null; - var res = null; - - try { - res = new Response(self); - } catch(e) { - err = new Error('Parser is unable to parse the response'); - err.parse = true; - err.original = e; - // issue #675: return the raw response if the response parsing fails - if (self.xhr) { - // ie9 doesn't have 'response' property - err.rawResponse = typeof self.xhr.responseType == 'undefined' ? self.xhr.responseText : self.xhr.response; - // issue #876: return the http status code if the response parsing fails - err.status = self.xhr.status ? self.xhr.status : null; - err.statusCode = err.status; // backwards-compat only - } else { - err.rawResponse = null; - err.status = null; - } +RequestBase.prototype.use = function use(fn) { + fn(this); + return this; +}; - return self.callback(err); - } +RequestBase.prototype.ok = function(cb) { + if ('function' !== typeof cb) throw Error("Callback required"); + this._okCallback = cb; + return this; +}; - self.emit('response', res); +RequestBase.prototype._isResponseOK = function(res) { + if (!res) { + return false; + } - var new_err; - try { - if (!self._isResponseOK(res)) { - new_err = new Error(res.statusText || 'Unsuccessful HTTP response'); - } - } catch(custom_err) { - new_err = custom_err; // ok() callback can throw - } + if (this._okCallback) { + return this._okCallback(res); + } - // #1000 don't catch errors from the callback to avoid double calling it - if (new_err) { - new_err.original = err; - new_err.response = res; - new_err.status = res.status; - self.callback(new_err, res); - } else { - self.callback(null, res); - } - }); -} + return res.status >= 200 && res.status < 300; +}; /** - * Mixin `Emitter` and `RequestBase`. + * Get request header `field`. + * Case-insensitive. + * + * @param {String} field + * @return {String} + * @api public */ -Emitter(Request.prototype); -RequestBase(Request.prototype); +RequestBase.prototype.get = function(field){ + return this._header[field.toLowerCase()]; +}; /** - * Set Content-Type to `type`, mapping values from `request.types`. + * Get case-insensitive header `field` value. + * This is a deprecated internal API. Use `.get(field)` instead. * - * Examples: + * (getHeader is no longer used internally by the superagent code base) * - * superagent.types.xml = 'application/xml'; + * @param {String} field + * @return {String} + * @api private + * @deprecated + */ + +RequestBase.prototype.getHeader = RequestBase.prototype.get; + +/** + * Set header `field` to `val`, or multiple fields with one object. + * Case-insensitive. * - * request.post('/') - * .type('xml') - * .send(xmlstring) + * Examples: + * + * req.get('/') + * .set('Accept', 'application/json') + * .set('X-API-Key', 'foobar') * .end(callback); * - * request.post('/') - * .type('application/xml') - * .send(xmlstring) + * req.get('/') + * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' }) * .end(callback); * - * @param {String} type + * @param {String|Object} field + * @param {String} val * @return {Request} for chaining * @api public */ -Request.prototype.type = function(type){ - this.set('Content-Type', request.types[type] || type); +RequestBase.prototype.set = function(field, val){ + if (isObject(field)) { + for (var key in field) { + this.set(key, field[key]); + } + return this; + } + this._header[field.toLowerCase()] = val; + this.header[field] = val; return this; }; /** - * Set Accept to `type`, mapping values from `request.types`. - * - * Examples: - * - * superagent.types.json = 'application/json'; + * Remove header `field`. + * Case-insensitive. * - * request.get('/agent') - * .accept('json') - * .end(callback); + * Example: * - * request.get('/agent') - * .accept('application/json') + * req.get('/') + * .unset('User-Agent') * .end(callback); * - * @param {String} accept - * @return {Request} for chaining - * @api public + * @param {String} field */ - -Request.prototype.accept = function(type){ - this.set('Accept', request.types[type] || type); +RequestBase.prototype.unset = function(field){ + delete this._header[field.toLowerCase()]; + delete this.header[field]; return this; }; /** - * Set Authorization field value with `user` and `pass`. + * Write the field `name` and `val`, or multiple fields with one object + * for "multipart/form-data" request bodies. * - * @param {String} user - * @param {String} [pass] optional in case of using 'bearer' as type - * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic') + * ``` js + * request.post('/upload') + * .field('foo', 'bar') + * .end(callback); + * + * request.post('/upload') + * .field({ foo: 'bar', baz: 'qux' }) + * .end(callback); + * ``` + * + * @param {String|Object} name + * @param {String|Blob|File|Buffer|fs.ReadStream} val * @return {Request} for chaining * @api public */ +RequestBase.prototype.field = function(name, val) { + // name should be either a string or an object. + if (null === name || undefined === name) { + throw new Error('.field(name, val) name can not be empty'); + } -Request.prototype.auth = function(user, pass, options){ - if (1 === arguments.length) pass = ''; - if (typeof pass === 'object' && pass !== null) { // pass is optional and can be replaced with options - options = pass; - pass = ''; + if (this._data) { + console.error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()"); } - if (!options) { - options = { - type: 'function' === typeof btoa ? 'basic' : 'auto', - }; + + if (isObject(name)) { + for (var key in name) { + this.field(key, name[key]); + } + return this; } - var encoder = function(string) { - if ('function' === typeof btoa) { - return btoa(string); + if (Array.isArray(val)) { + for (var i in val) { + this.field(name, val[i]); } - throw new Error('Cannot use basic auth, btoa is not a function'); - }; + return this; + } - return this._auth(user, pass, options, encoder); + // val should be defined now + if (null === val || undefined === val) { + throw new Error('.field(name, val) val can not be empty'); + } + if ('boolean' === typeof val) { + val = '' + val; + } + this._getFormData().append(name, val); + return this; }; /** - * Add query-string `val`. + * Abort the request, and clear potential timeout. * - * Examples: + * @return {Request} + * @api public + */ +RequestBase.prototype.abort = function(){ + if (this._aborted) { + return this; + } + this._aborted = true; + this.xhr && this.xhr.abort(); // browser + this.req && this.req.abort(); // node + this.clearTimeout(); + this.emit('abort'); + return this; +}; + +RequestBase.prototype._auth = function(user, pass, options, base64Encoder) { + switch (options.type) { + case 'basic': + this.set('Authorization', 'Basic ' + base64Encoder(user + ':' + pass)); + break; + + case 'auto': + this.username = user; + this.password = pass; + break; + + case 'bearer': // usage would be .auth(accessToken, { type: 'bearer' }) + this.set('Authorization', 'Bearer ' + user); + break; + } + return this; +}; + +/** + * Enable transmission of cookies with x-domain requests. * - * request.get('/shoes') - * .query('size=10') - * .query({ color: 'blue' }) + * Note that for this to work the origin must not be + * using "Access-Control-Allow-Origin" with a wildcard, + * and also must set "Access-Control-Allow-Credentials" + * to "true". * - * @param {Object|String} val + * @api public + */ + +RequestBase.prototype.withCredentials = function(on) { + // This is browser-only functionality. Node side is no-op. + if (on == undefined) on = true; + this._withCredentials = on; + return this; +}; + +/** + * Set the max redirects to `n`. Does noting in browser XHR implementation. + * + * @param {Number} n * @return {Request} for chaining * @api public */ -Request.prototype.query = function(val){ - if ('string' != typeof val) val = serialize(val); - if (val) this._query.push(val); +RequestBase.prototype.redirects = function(n){ + this._maxRedirects = n; return this; }; /** - * Queue the given `file` as an attachment to the specified `field`, - * with optional `options` (or filename). + * Maximum size of buffered response body, in bytes. Counts uncompressed size. + * Default 200MB. + * + * @param {Number} n + * @return {Request} for chaining + */ +RequestBase.prototype.maxResponseSize = function(n){ + if ('number' !== typeof n) { + throw TypeError("Invalid argument"); + } + this._maxResponseSize = n; + return this; +}; + +/** + * Convert to a plain javascript object (not JSON string) of scalar properties. + * Note as this method is designed to return a useful non-this value, + * it cannot be chained. + * + * @return {Object} describing method, url, and data of this request + * @api public + */ + +RequestBase.prototype.toJSON = function() { + return { + method: this.method, + url: this.url, + data: this._data, + headers: this._header, + }; +}; + +/** + * Send `data` as the request body, defaulting the `.type()` to "json" when + * an object is given. + * + * Examples: + * + * // manual json + * request.post('/user') + * .type('json') + * .send('{"name":"tj"}') + * .end(callback) + * + * // auto json + * request.post('/user') + * .send({ name: 'tj' }) + * .end(callback) * - * ``` js - * request.post('/upload') - * .attach('content', new Blob(['hey!'], { type: "text/html"})) - * .end(callback); - * ``` + * // manual x-www-form-urlencoded + * request.post('/user') + * .type('form') + * .send('name=tj') + * .end(callback) * - * @param {String} field - * @param {Blob|File} file - * @param {String|Object} options + * // auto x-www-form-urlencoded + * request.post('/user') + * .type('form') + * .send({ name: 'tj' }) + * .end(callback) + * + * // defaults to x-www-form-urlencoded + * request.post('/user') + * .send('name=tobi') + * .send('species=ferret') + * .end(callback) + * + * @param {String|Object} data * @return {Request} for chaining * @api public */ -Request.prototype.attach = function(field, file, options){ - if (file) { - if (this._data) { - throw Error("superagent can't mix .send() and .attach()"); - } +RequestBase.prototype.send = function(data){ + var isObj = isObject(data); + var type = this._header['content-type']; - this._getFormData().append(field, file, options || file.name); + if (this._formData) { + console.error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()"); } - return this; -}; -Request.prototype._getFormData = function(){ - if (!this._formData) { - this._formData = new root.FormData(); + if (isObj && !this._data) { + if (Array.isArray(data)) { + this._data = []; + } else if (!this._isHost(data)) { + this._data = {}; + } + } else if (data && this._data && this._isHost(this._data)) { + throw Error("Can't merge these send calls"); } - return this._formData; -}; - -/** - * Invoke the callback with `err` and `res` - * and handle arity check. - * - * @param {Error} err - * @param {Response} res - * @api private - */ -Request.prototype.callback = function(err, res){ - if (this._shouldRetry(err, res)) { - return this._retry(); + // merge + if (isObj && isObject(this._data)) { + for (var key in data) { + this._data[key] = data[key]; + } + } else if ('string' == typeof data) { + // default to x-www-form-urlencoded + if (!type) this.type('form'); + type = this._header['content-type']; + if ('application/x-www-form-urlencoded' == type) { + this._data = this._data + ? this._data + '&' + data + : data; + } else { + this._data = (this._data || '') + data; + } + } else { + this._data = data; } - var fn = this._callback; - this.clearTimeout(); - - if (err) { - if (this._maxRetries) err.retries = this._retries - 1; - this.emit('error', err); + if (!isObj || this._isHost(data)) { + return this; } - fn(err, res); + // default to json + if (!type) this.type('json'); + return this; }; /** - * Invoke callback with x-domain error. + * Sort `querystring` by the sort function * - * @api private + * + * Examples: + * + * // default order + * request.get('/user') + * .query('name=Nick') + * .query('search=Manny') + * .sortQuery() + * .end(callback) + * + * // customized sort function + * request.get('/user') + * .query('name=Nick') + * .query('search=Manny') + * .sortQuery(function(a, b){ + * return a.length - b.length; + * }) + * .end(callback) + * + * + * @param {Function} sort + * @return {Request} for chaining + * @api public */ -Request.prototype.crossDomainError = function(){ - var err = new Error('Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.'); - err.crossDomain = true; - - err.status = this.status; - err.method = this.method; - err.url = this.url; - - this.callback(err); -}; - -// This only warns, because the request is still likely to work -Request.prototype.buffer = Request.prototype.ca = Request.prototype.agent = function(){ - console.warn("This is not supported in browser version of superagent"); +RequestBase.prototype.sortQuery = function(sort) { + // _sort default to true but otherwise can be a function or boolean + this._sort = typeof sort === 'undefined' ? true : sort; return this; }; -// This throws, because it can't send/receive data as expected -Request.prototype.pipe = Request.prototype.write = function(){ - throw Error("Streaming is not supported in browser version of superagent"); -}; - /** - * Check if `obj` is a host object, - * we don't want to serialize these :) + * Compose querystring to append to req.url * - * @param {Object} obj - * @return {Boolean} * @api private */ -Request.prototype._isHost = function _isHost(obj) { - // Native objects stringify to [object File], [object Blob], [object FormData], etc. - return obj && 'object' === typeof obj && !Array.isArray(obj) && Object.prototype.toString.call(obj) !== '[object Object]'; -} - -/** - * Initiate request, invoking callback `fn(res)` - * with an instanceof `Response`. - * - * @param {Function} fn - * @return {Request} for chaining - * @api public - */ - -Request.prototype.end = function(fn){ - if (this._endCalled) { - console.warn("Warning: .end() was called twice. This is not supported in superagent"); - } - this._endCalled = true; - - // store callback - this._callback = fn || noop; - - // querystring - this._finalizeQueryString(); - - return this._end(); -}; - -Request.prototype._end = function() { - var self = this; - var xhr = (this.xhr = request.getXHR()); - var data = this._formData || this._data; - - this._setTimeouts(); - - // state change - xhr.onreadystatechange = function(){ - var readyState = xhr.readyState; - if (readyState >= 2 && self._responseTimeoutTimer) { - clearTimeout(self._responseTimeoutTimer); - } - if (4 != readyState) { - return; - } - - // In IE9, reads to any property (e.g. status) off of an aborted XHR will - // result in the error "Could not complete the operation due to error c00c023f" - var status; - try { status = xhr.status } catch(e) { status = 0; } - - if (!status) { - if (self.timedout || self._aborted) return; - return self.crossDomainError(); - } - self.emit('end'); - }; - - // progress - var handleProgress = function(direction, e) { - if (e.total > 0) { - e.percent = e.loaded / e.total * 100; - } - e.direction = direction; - self.emit('progress', e); - }; - if (this.hasListeners('progress')) { - try { - xhr.onprogress = handleProgress.bind(null, 'download'); - if (xhr.upload) { - xhr.upload.onprogress = handleProgress.bind(null, 'upload'); - } - } catch(e) { - // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist. - // Reported here: - // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context - } - } - - // initiate request - try { - if (this.username && this.password) { - xhr.open(this.method, this.url, true, this.username, this.password); - } else { - xhr.open(this.method, this.url, true); - } - } catch (err) { - // see #1149 - return this.callback(err); +RequestBase.prototype._finalizeQueryString = function(){ + var query = this._query.join('&'); + if (query) { + this.url += (this.url.indexOf('?') >= 0 ? '&' : '?') + query; } + this._query.length = 0; // Makes the call idempotent - // CORS - if (this._withCredentials) xhr.withCredentials = true; - - // body - if (!this._formData && 'GET' != this.method && 'HEAD' != this.method && 'string' != typeof data && !this._isHost(data)) { - // serialize stuff - var contentType = this._header['content-type']; - var serialize = this._serializer || request.serialize[contentType ? contentType.split(';')[0] : '']; - if (!serialize && isJSON(contentType)) { - serialize = request.serialize['application/json']; + if (this._sort) { + var index = this.url.indexOf('?'); + if (index >= 0) { + var queryArr = this.url.substring(index + 1).split('&'); + if ('function' === typeof this._sort) { + queryArr.sort(this._sort); + } else { + queryArr.sort(); + } + this.url = this.url.substring(0, index) + '?' + queryArr.join('&'); } - if (serialize) data = serialize(data); } +}; - // set header fields - for (var field in this.header) { - if (null == this.header[field]) continue; +// For backwards compat only +RequestBase.prototype._appendQueryString = function() {console.trace("Unsupported");} - if (this.header.hasOwnProperty(field)) - xhr.setRequestHeader(field, this.header[field]); - } +/** + * Invoke callback with timeout error. + * + * @api private + */ - if (this._responseType) { - xhr.responseType = this._responseType; +RequestBase.prototype._timeoutError = function(reason, timeout, errno){ + if (this._aborted) { + return; } + var err = new Error(reason + timeout + 'ms exceeded'); + err.timeout = timeout; + err.code = 'ECONNABORTED'; + err.errno = errno; + this.timedout = true; + this.abort(); + this.callback(err); +}; - // send stuff - this.emit('request', this); +RequestBase.prototype._setTimeouts = function() { + var self = this; - // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing) - // We need null here if data is undefined - xhr.send(typeof data !== 'undefined' ? data : null); - return this; + // deadline + if (this._timeout && !this._timer) { + this._timer = setTimeout(function(){ + self._timeoutError('Timeout of ', self._timeout, 'ETIME'); + }, this._timeout); + } + // response timeout + if (this._responseTimeout && !this._responseTimeoutTimer) { + this._responseTimeoutTimer = setTimeout(function(){ + self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT'); + }, this._responseTimeout); + } }; -request.agent = function() { - return new Agent(); -}; -["GET", "POST", "OPTIONS", "PATCH", "PUT", "DELETE"].forEach(function(method) { - Agent.prototype[method.toLowerCase()] = function(url, fn) { - var req = new request.Request(method, url); - this._setDefaults(req); - if (fn) { - req.end(fn); - } - return req; - }; -}); +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; -Agent.prototype.del = Agent.prototype['delete']; /** - * GET `url` with optional callback `fn(res)`. + * Module dependencies. + */ + +var utils = __webpack_require__(129); + +/** + * Expose `ResponseBase`. + */ + +module.exports = ResponseBase; + +/** + * Initialize a new `ResponseBase`. * - * @param {String} url - * @param {Mixed|Function} [data] or fn - * @param {Function} [fn] - * @return {Request} * @api public */ -request.get = function(url, data, fn) { - var req = request('GET', url); - if ('function' == typeof data) (fn = data), (data = null); - if (data) req.query(data); - if (fn) req.end(fn); - return req; -}; +function ResponseBase(obj) { + if (obj) return mixin(obj); +} /** - * HEAD `url` with optional callback `fn(res)`. + * Mixin the prototype properties. * - * @param {String} url - * @param {Mixed|Function} [data] or fn - * @param {Function} [fn] - * @return {Request} + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in ResponseBase.prototype) { + obj[key] = ResponseBase.prototype[key]; + } + return obj; +} + +/** + * Get case-insensitive `field` value. + * + * @param {String} field + * @return {String} * @api public */ -request.head = function(url, data, fn) { - var req = request('HEAD', url); - if ('function' == typeof data) (fn = data), (data = null); - if (data) req.query(data); - if (fn) req.end(fn); - return req; +ResponseBase.prototype.get = function(field) { + return this.header[field.toLowerCase()]; }; /** - * OPTIONS query to `url` with optional callback `fn(res)`. + * Set header related properties: * - * @param {String} url - * @param {Mixed|Function} [data] or fn - * @param {Function} [fn] - * @return {Request} - * @api public + * - `.type` the content type without params + * + * A response of "Content-Type: text/plain; charset=utf-8" + * will provide you with a `.type` of "text/plain". + * + * @param {Object} header + * @api private */ -request.options = function(url, data, fn) { - var req = request('OPTIONS', url); - if ('function' == typeof data) (fn = data), (data = null); - if (data) req.send(data); - if (fn) req.end(fn); - return req; +ResponseBase.prototype._setHeaderProperties = function(header){ + // TODO: moar! + // TODO: make this a util + + // content-type + var ct = header['content-type'] || ''; + this.type = utils.type(ct); + + // params + var params = utils.params(ct); + for (var key in params) this[key] = params[key]; + + this.links = {}; + + // links + try { + if (header.link) { + this.links = utils.parseLinks(header.link); + } + } catch (err) { + // ignore + } }; /** - * DELETE `url` with optional `data` and callback `fn(res)`. + * Set flags such as `.ok` based on `status`. * - * @param {String} url - * @param {Mixed} [data] - * @param {Function} [fn] - * @return {Request} - * @api public + * For example a 2xx response will give you a `.ok` of __true__ + * whereas 5xx will be __false__ and `.error` will be __true__. The + * `.clientError` and `.serverError` are also available to be more + * specific, and `.statusType` is the class of error ranging from 1..5 + * sometimes useful for mapping respond colors etc. + * + * "sugar" properties are also defined for common cases. Currently providing: + * + * - .noContent + * - .badRequest + * - .unauthorized + * - .notAcceptable + * - .notFound + * + * @param {Number} status + * @api private */ -function del(url, data, fn) { - var req = request('DELETE', url); - if ('function' == typeof data) (fn = data), (data = null); - if (data) req.send(data); - if (fn) req.end(fn); - return req; -} +ResponseBase.prototype._setStatusProperties = function(status){ + var type = status / 100 | 0; + + // status / class + this.status = this.statusCode = status; + this.statusType = type; + + // basics + this.info = 1 == type; + this.ok = 2 == type; + this.redirect = 3 == type; + this.clientError = 4 == type; + this.serverError = 5 == type; + this.error = (4 == type || 5 == type) + ? this.toError() + : false; + + // sugar + this.created = 201 == status; + this.accepted = 202 == status; + this.noContent = 204 == status; + this.badRequest = 400 == status; + this.unauthorized = 401 == status; + this.notAcceptable = 406 == status; + this.forbidden = 403 == status; + this.notFound = 404 == status; + this.unprocessableEntity = 422 == status; +}; + + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; -request['del'] = del; -request['delete'] = del; /** - * PATCH `url` with optional `data` and callback `fn(res)`. + * Return the mime type for the given `str`. * - * @param {String} url - * @param {Mixed} [data] - * @param {Function} [fn] - * @return {Request} - * @api public + * @param {String} str + * @return {String} + * @api private + */ + +exports.type = function(str){ + return str.split(/ *; */).shift(); +}; + +/** + * Return header field parameters. + * + * @param {String} str + * @return {Object} + * @api private */ -request.patch = function(url, data, fn) { - var req = request('PATCH', url); - if ('function' == typeof data) (fn = data), (data = null); - if (data) req.send(data); - if (fn) req.end(fn); - return req; +exports.params = function(str){ + return str.split(/ *; */).reduce(function(obj, str){ + var parts = str.split(/ *= */); + var key = parts.shift(); + var val = parts.shift(); + + if (key && val) obj[key] = val; + return obj; + }, {}); }; /** - * POST `url` with optional `data` and callback `fn(res)`. + * Parse Link header fields. * - * @param {String} url - * @param {Mixed} [data] - * @param {Function} [fn] - * @return {Request} - * @api public + * @param {String} str + * @return {Object} + * @api private */ -request.post = function(url, data, fn) { - var req = request('POST', url); - if ('function' == typeof data) (fn = data), (data = null); - if (data) req.send(data); - if (fn) req.end(fn); - return req; +exports.parseLinks = function(str){ + return str.split(/ *, */).reduce(function(obj, str){ + var parts = str.split(/ *; */); + var url = parts[0].slice(1, -1); + var rel = parts[1].split(/ *= */)[1].slice(1, -1); + obj[rel] = url; + return obj; + }, {}); }; /** - * PUT `url` with optional `data` and callback `fn(res)`. + * Strip content related fields from `header`. * - * @param {String} url - * @param {Mixed|Function} [data] or fn - * @param {Function} [fn] - * @return {Request} - * @api public + * @param {Object} header + * @return {Object} header + * @api private */ -request.put = function(url, data, fn) { - var req = request('PUT', url); - if ('function' == typeof data) (fn = data), (data = null); - if (data) req.send(data); - if (fn) req.end(fn); - return req; +exports.cleanHeader = function(header, changesOrigin){ + delete header['content-type']; + delete header['content-length']; + delete header['transfer-encoding']; + delete header['host']; + // secuirty + if (changesOrigin) { + delete header['authorization']; + delete header['cookie']; + } + return header; }; /***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { +/* 130 */ +/***/ (function(module, exports) { - -/** - * Expose `Emitter`. - */ - -if (true) { - module.exports = Emitter; -} - -/** - * Initialize a new `Emitter`. - * - * @api public - */ - -function Emitter(obj) { - if (obj) return mixin(obj); -}; - -/** - * Mixin the emitter properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - -function mixin(obj) { - for (var key in Emitter.prototype) { - obj[key] = Emitter.prototype[key]; - } - return obj; -} - -/** - * Listen on the given `event` with `fn`. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.on = -Emitter.prototype.addEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - (this._callbacks['$' + event] = this._callbacks['$' + event] || []) - .push(fn); - return this; -}; - -/** - * Adds an `event` listener that will be invoked a single - * time then automatically removed. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.once = function(event, fn){ - function on() { - this.off(event, on); - fn.apply(this, arguments); - } - - on.fn = fn; - this.on(event, on); - return this; -}; - -/** - * Remove the given callback for `event` or all - * registered callbacks. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.off = -Emitter.prototype.removeListener = -Emitter.prototype.removeAllListeners = -Emitter.prototype.removeEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - - // all - if (0 == arguments.length) { - this._callbacks = {}; - return this; - } - - // specific event - var callbacks = this._callbacks['$' + event]; - if (!callbacks) return this; - - // remove all handlers - if (1 == arguments.length) { - delete this._callbacks['$' + event]; - return this; - } - - // remove specific handler - var cb; - for (var i = 0; i < callbacks.length; i++) { - cb = callbacks[i]; - if (cb === fn || cb.fn === fn) { - callbacks.splice(i, 1); - break; - } - } - - // Remove event specific arrays for event types that no - // one is subscribed for to avoid memory leak. - if (callbacks.length === 0) { - delete this._callbacks['$' + event]; - } - - return this; -}; - -/** - * Emit `event` with the given args. - * - * @param {String} event - * @param {Mixed} ... - * @return {Emitter} - */ - -Emitter.prototype.emit = function(event){ - this._callbacks = this._callbacks || {}; - - var args = new Array(arguments.length - 1) - , callbacks = this._callbacks['$' + event]; - - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - - if (callbacks) { - callbacks = callbacks.slice(0); - for (var i = 0, len = callbacks.length; i < len; ++i) { - callbacks[i].apply(this, args); - } - } - - return this; -}; - -/** - * Return array of callbacks for `event`. - * - * @param {String} event - * @return {Array} - * @api public - */ - -Emitter.prototype.listeners = function(event){ - this._callbacks = this._callbacks || {}; - return this._callbacks['$' + event] || []; -}; - -/** - * Check if this emitter has `event` handlers. - * - * @param {String} event - * @return {Boolean} - * @api public - */ - -Emitter.prototype.hasListeners = function(event){ - return !! this.listeners(event).length; -}; +function Agent() { + this._defaults = []; +} + +["use", "on", "once", "set", "query", "type", "accept", "auth", "withCredentials", "sortQuery", "retry", "ok", "redirects", + "timeout", "buffer", "serialize", "parse", "ca", "key", "pfx", "cert"].forEach(function(fn) { + /** Default setting for all requests from this agent */ + Agent.prototype[fn] = function(/*varargs*/) { + this._defaults.push({fn:fn, arguments:arguments}); + return this; + } +}); + +Agent.prototype._setDefaults = function(req) { + this._defaults.forEach(function(def) { + req[def.fn].apply(req, def.arguments); + }); +}; + +module.exports = Agent; /***/ }), -/* 87 */ +/* 131 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/* WEBPACK VAR INJECTION */(function(Buffer) { +var _interopRequireDefault = __webpack_require__(0); -/** - * Module of mixed-in functions shared between node and client code - */ -var isObject = __webpack_require__(10); +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; -/** - * Expose `RequestBase`. - */ +var _regenerator = _interopRequireDefault(__webpack_require__(10)); -module.exports = RequestBase; +var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(11)); -/** - * Initialize a new `RequestBase`. - * - * @api public - */ +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); -function RequestBase(obj) { - if (obj) return mixin(obj); -} +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); -/** - * Mixin the prototype properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -function mixin(obj) { - for (var key in RequestBase.prototype) { - obj[key] = RequestBase.prototype[key]; - } - return obj; +var _isomorphicWebcrypto = _interopRequireDefault(__webpack_require__(137)); + +function concatArrayBuffer(ab1, ab2) { + var tmp = new Uint8Array(ab1.byteLength + ab2.byteLength); + tmp.set(new Uint8Array(ab1), 0); + tmp.set(new Uint8Array(ab2), ab1.byteLength); + return tmp.buffer; } -/** - * Clear previous timeout. - * - * @return {Request} for chaining - * @api public - */ +var WebCryptography = function () { + function WebCryptography() { + (0, _classCallCheck2["default"])(this, WebCryptography); + } -RequestBase.prototype.clearTimeout = function _clearTimeout(){ - clearTimeout(this._timer); - clearTimeout(this._responseTimeoutTimer); - delete this._timer; - delete this._responseTimeoutTimer; - return this; -}; + (0, _createClass2["default"])(WebCryptography, [{ + key: "encrypt", + value: function () { + var _encrypt = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(key, input) { + var cKey; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.getKey(key); + + case 2: + cKey = _context.sent; + + if (!(input instanceof ArrayBuffer)) { + _context.next = 7; + break; + } + + return _context.abrupt("return", this.encryptArrayBuffer(cKey, input)); + + case 7: + if (!(typeof input === 'string')) { + _context.next = 11; + break; + } + + return _context.abrupt("return", this.encryptString(cKey, input)); + + case 11: + throw new Error('Cannot encrypt this file. In browsers file encryption supports only string or ArrayBuffer'); + + case 12: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); -/** - * Override default response body parser - * - * This function will be called to convert incoming data into request.body - * - * @param {Function} - * @api public - */ + function encrypt(_x, _x2) { + return _encrypt.apply(this, arguments); + } -RequestBase.prototype.parse = function parse(fn){ - this._parser = fn; - return this; -}; + return encrypt; + }() + }, { + key: "decrypt", + value: function () { + var _decrypt = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(key, input) { + var cKey; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this.getKey(key); + + case 2: + cKey = _context2.sent; + + if (!(input instanceof ArrayBuffer)) { + _context2.next = 7; + break; + } + + return _context2.abrupt("return", this.decryptArrayBuffer(cKey, input)); + + case 7: + if (!(typeof input === 'string')) { + _context2.next = 11; + break; + } + + return _context2.abrupt("return", this.decryptString(cKey, input)); + + case 11: + throw new Error('Cannot decrypt this file. In browsers file decryption supports only string or ArrayBuffer'); + + case 12: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); -/** - * Set format of binary response body. - * In browser valid formats are 'blob' and 'arraybuffer', - * which return Blob and ArrayBuffer, respectively. - * - * In Node all values result in Buffer. - * - * Examples: - * - * req.get('/') - * .responseType('blob') - * .end(callback); - * - * @param {String} val - * @return {Request} for chaining - * @api public - */ + function decrypt(_x3, _x4) { + return _decrypt.apply(this, arguments); + } -RequestBase.prototype.responseType = function(val){ - this._responseType = val; - return this; -}; + return decrypt; + }() + }, { + key: "encryptFile", + value: function () { + var _encryptFile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(key, file, File) { + var bKey, abPlaindata, abCipherdata; + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return this.getKey(key); + + case 2: + bKey = _context3.sent; + _context3.next = 5; + return file.toArrayBuffer(); + + case 5: + abPlaindata = _context3.sent; + _context3.next = 8; + return this.encryptArrayBuffer(bKey, abPlaindata); + + case 8: + abCipherdata = _context3.sent; + return _context3.abrupt("return", File.create({ + name: file.name, + mimeType: 'application/octet-stream', + data: abCipherdata + })); + + case 10: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); -/** - * Override default request body serializer - * - * This function will be called to convert data set via .send or .attach into payload to send - * - * @param {Function} - * @api public - */ + function encryptFile(_x5, _x6, _x7) { + return _encryptFile.apply(this, arguments); + } -RequestBase.prototype.serialize = function serialize(fn){ - this._serializer = fn; - return this; -}; + return encryptFile; + }() + }, { + key: "decryptFile", + value: function () { + var _decryptFile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(key, file, File) { + var bKey, abCipherdata, abPlaindata; + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return this.getKey(key); + + case 2: + bKey = _context4.sent; + _context4.next = 5; + return file.toArrayBuffer(); + + case 5: + abCipherdata = _context4.sent; + _context4.next = 8; + return this.decryptArrayBuffer(bKey, abCipherdata); + + case 8: + abPlaindata = _context4.sent; + + if (!(file.data instanceof ArrayBuffer)) { + _context4.next = 13; + break; + } + + return _context4.abrupt("return", File.create({ + name: file.name, + data: abPlaindata + })); + + case 13: + throw new Error('Cannot decrypt this file. In browser environment file decryption supports only ArrayBuffer.'); + + case 14: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); -/** - * Set timeouts. - * - * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time. - * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections. - * - * Value of 0 or false means no timeout. - * - * @param {Number|Object} ms or {response, deadline} - * @return {Request} for chaining - * @api public - */ + function decryptFile(_x8, _x9, _x10) { + return _decryptFile.apply(this, arguments); + } -RequestBase.prototype.timeout = function timeout(options){ - if (!options || 'object' !== typeof options) { - this._timeout = options; - this._responseTimeout = 0; - return this; - } + return decryptFile; + }() + }, { + key: "getKey", + value: function () { + var _getKey = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(key) { + var bKey, abHash, abKey; + return _regenerator["default"].wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + bKey = Buffer.from(key); + _context5.next = 3; + return _isomorphicWebcrypto["default"].subtle.digest('SHA-256', bKey.buffer); + + case 3: + abHash = _context5.sent; + abKey = Buffer.from(Buffer.from(abHash).toString('hex').slice(0, 32), 'utf8').buffer; + return _context5.abrupt("return", _isomorphicWebcrypto["default"].subtle.importKey('raw', abKey, 'AES-CBC', true, ['encrypt', 'decrypt'])); + + case 6: + case "end": + return _context5.stop(); + } + } + }, _callee5); + })); - for(var option in options) { - switch(option) { - case 'deadline': - this._timeout = options.deadline; - break; - case 'response': - this._responseTimeout = options.response; - break; - default: - console.warn("Unknown timeout option", option); - } - } - return this; -}; + function getKey(_x11) { + return _getKey.apply(this, arguments); + } -/** - * Set number of retry attempts on error. - * - * Failed requests will be retried 'count' times if timeout or err.code >= 500. - * - * @param {Number} count - * @param {Function} [fn] - * @return {Request} for chaining - * @api public - */ + return getKey; + }() + }, { + key: "encryptArrayBuffer", + value: function () { + var _encryptArrayBuffer = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(key, plaintext) { + var abIv; + return _regenerator["default"].wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + abIv = _isomorphicWebcrypto["default"].getRandomValues(new Uint8Array(16)); + _context6.t0 = concatArrayBuffer; + _context6.t1 = abIv.buffer; + _context6.next = 5; + return _isomorphicWebcrypto["default"].subtle.encrypt({ + name: 'AES-CBC', + iv: abIv + }, key, plaintext); + + case 5: + _context6.t2 = _context6.sent; + return _context6.abrupt("return", (0, _context6.t0)(_context6.t1, _context6.t2)); + + case 7: + case "end": + return _context6.stop(); + } + } + }, _callee6); + })); -RequestBase.prototype.retry = function retry(count, fn){ - // Default to 1 if no count passed or true - if (arguments.length === 0 || count === true) count = 1; - if (count <= 0) count = 0; - this._maxRetries = count; - this._retries = 0; - this._retryCallback = fn; - return this; -}; + function encryptArrayBuffer(_x12, _x13) { + return _encryptArrayBuffer.apply(this, arguments); + } -var ERROR_CODES = [ - 'ECONNRESET', - 'ETIMEDOUT', - 'EADDRINFO', - 'ESOCKETTIMEDOUT' -]; + return encryptArrayBuffer; + }() + }, { + key: "decryptArrayBuffer", + value: function () { + var _decryptArrayBuffer = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(key, ciphertext) { + var abIv; + return _regenerator["default"].wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + abIv = ciphertext.slice(0, 16); + return _context7.abrupt("return", _isomorphicWebcrypto["default"].subtle.decrypt({ + name: 'AES-CBC', + iv: abIv + }, key, ciphertext.slice(16))); + + case 2: + case "end": + return _context7.stop(); + } + } + }, _callee7); + })); -/** - * Determine if a request should be retried. - * (Borrowed from segmentio/superagent-retry) - * - * @param {Error} err - * @param {Response} [res] - * @returns {Boolean} - */ -RequestBase.prototype._shouldRetry = function(err, res) { - if (!this._maxRetries || this._retries++ >= this._maxRetries) { - return false; - } - if (this._retryCallback) { - try { - var override = this._retryCallback(err, res); - if (override === true) return true; - if (override === false) return false; - // undefined falls back to defaults - } catch(e) { - console.error(e); + function decryptArrayBuffer(_x14, _x15) { + return _decryptArrayBuffer.apply(this, arguments); + } + + return decryptArrayBuffer; + }() + }, { + key: "encryptString", + value: function () { + var _encryptString = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(key, plaintext) { + var abIv, abPlaintext, abPayload, ciphertext; + return _regenerator["default"].wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + abIv = _isomorphicWebcrypto["default"].getRandomValues(new Uint8Array(16)); + abPlaintext = Buffer.from(plaintext).buffer; + _context8.next = 4; + return _isomorphicWebcrypto["default"].subtle.encrypt({ + name: 'AES-CBC', + iv: abIv + }, key, abPlaintext); + + case 4: + abPayload = _context8.sent; + ciphertext = concatArrayBuffer(abIv.buffer, abPayload); + return _context8.abrupt("return", Buffer.from(ciphertext).toString('utf8')); + + case 7: + case "end": + return _context8.stop(); + } + } + }, _callee8); + })); + + function encryptString(_x16, _x17) { + return _encryptString.apply(this, arguments); + } + + return encryptString; + }() + }, { + key: "decryptString", + value: function () { + var _decryptString = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(key, ciphertext) { + var abCiphertext, abIv, abPayload, abPlaintext; + return _regenerator["default"].wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + abCiphertext = Buffer.from(ciphertext); + abIv = abCiphertext.slice(0, 16); + abPayload = abCiphertext.slice(16); + _context9.next = 5; + return _isomorphicWebcrypto["default"].subtle.decrypt({ + name: 'AES-CBC', + iv: abIv + }, key, abPayload); + + case 5: + abPlaintext = _context9.sent; + return _context9.abrupt("return", Buffer.from(abPlaintext).toString('utf8')); + + case 7: + case "end": + return _context9.stop(); + } + } + }, _callee9); + })); + + function decryptString(_x18, _x19) { + return _decryptString.apply(this, arguments); + } + + return decryptString; + }() + }, { + key: "algo", + get: function get() { + return 'aes-256-cbc'; } - } - if (res && res.status && res.status >= 500 && res.status != 501) return true; - if (err) { - if (err.code && ~ERROR_CODES.indexOf(err.code)) return true; - // Superagent timeout - if (err.timeout && err.code == 'ECONNABORTED') return true; - if (err.crossDomain) return true; - } - return false; -}; + }]); + return WebCryptography; +}(); -/** - * Retry request - * - * @return {Request} for chaining - * @api private - */ +exports["default"] = WebCryptography; +(0, _defineProperty2["default"])(WebCryptography, "IV_LENGTH", 16); +module.exports = exports.default; +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(21).Buffer)) + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(0); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; -RequestBase.prototype._retry = function() { +var _regenerator = _interopRequireDefault(__webpack_require__(10)); - this.clearTimeout(); +var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(11)); - // node - if (this.req) { - this.req = null; - this.req = this.request(); - } +var _classCallCheck2 = _interopRequireDefault(__webpack_require__(5)); - this._aborted = false; - this.timedout = false; +var _createClass2 = _interopRequireDefault(__webpack_require__(6)); - return this._end(); -}; +var _defineProperty2 = _interopRequireDefault(__webpack_require__(4)); -/** - * Promise support - * - * @param {Function} resolve - * @param {Function} [reject] - * @return {Request} - */ +var _mimeTypes = __webpack_require__(133); -RequestBase.prototype.then = function then(resolve, reject) { - if (!this._fullfilledPromise) { - var self = this; - if (this._endCalled) { - console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"); +var _ = __webpack_require__(26); + +var _class, _temp; + +var PubNubFile = (_temp = _class = function () { + (0, _createClass2["default"])(PubNubFile, null, [{ + key: "create", + value: function create(config) { + return new this(config); } - this._fullfilledPromise = new Promise(function(innerResolve, innerReject) { - self.end(function(err, res) { - if (err) innerReject(err); - else innerResolve(res); + }]); + + function PubNubFile(config) { + (0, _classCallCheck2["default"])(this, PubNubFile); + (0, _defineProperty2["default"])(this, "data", void 0); + (0, _defineProperty2["default"])(this, "name", void 0); + (0, _defineProperty2["default"])(this, "mimeType", void 0); + + if (config instanceof File) { + this.data = config; + this.name = this.data.name; + this.mimeType = this.data.type; + } else if (config.data) { + var contents = config.data; + this.data = new File([contents], config.name, { + type: config.mimeType }); - }); + this.name = config.name; + + if (config.mimeType) { + this.mimeType = config.mimeType; + } else { + this.mimeType = (0, _mimeTypes.lookup)(this.name); + } + } + + if (this.data === undefined) { + throw new Error("Couldn't construct a file out of supplied options."); + } + + if (this.name === undefined) { + throw new Error("Couldn't guess filename out of the options. Please provide one."); + } } - return this._fullfilledPromise.then(resolve, reject); -}; -RequestBase.prototype['catch'] = function(cb) { - return this.then(undefined, cb); -}; + (0, _createClass2["default"])(PubNubFile, [{ + key: "toBuffer", + value: function () { + var _toBuffer = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() { + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + throw new Error('This feature is only supported in Node.js environments.'); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee); + })); -/** - * Allow for extension - */ + function toBuffer() { + return _toBuffer.apply(this, arguments); + } -RequestBase.prototype.use = function use(fn) { - fn(this); - return this; -}; + return toBuffer; + }() + }, { + key: "toStream", + value: function () { + var _toStream = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() { + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + throw new Error('This feature is only supported in Node.js environments.'); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); -RequestBase.prototype.ok = function(cb) { - if ('function' !== typeof cb) throw Error("Callback required"); - this._okCallback = cb; - return this; -}; + function toStream() { + return _toStream.apply(this, arguments); + } -RequestBase.prototype._isResponseOK = function(res) { - if (!res) { - return false; - } + return toStream; + }() + }, { + key: "toArrayBuffer", + value: function () { + var _toArrayBuffer = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() { + var _this = this; + + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + return _context3.abrupt("return", new Promise(function (resolve, reject) { + var reader = new FileReader(); + reader.addEventListener('load', function () { + if (reader.result instanceof ArrayBuffer) { + return resolve(reader.result); + } + }); + reader.addEventListener('error', function () { + reject(reader.error); + }); + reader.readAsArrayBuffer(_this.data); + })); + + case 1: + case "end": + return _context3.stop(); + } + } + }, _callee3); + })); - if (this._okCallback) { - return this._okCallback(res); - } + function toArrayBuffer() { + return _toArrayBuffer.apply(this, arguments); + } - return res.status >= 200 && res.status < 300; -}; + return toArrayBuffer; + }() + }, { + key: "toString", + value: function () { + var _toString = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() { + var _this2 = this; + + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + return _context4.abrupt("return", new Promise(function (resolve, reject) { + var reader = new FileReader(); + reader.addEventListener('load', function () { + if (typeof reader.result === 'string') { + return resolve(reader.result); + } + }); + reader.addEventListener('error', function () { + reject(reader.error); + }); + reader.readAsBinaryString(_this2.data); + })); + + case 1: + case "end": + return _context4.stop(); + } + } + }, _callee4); + })); -/** - * Get request header `field`. - * Case-insensitive. - * - * @param {String} field - * @return {String} - * @api public + function toString() { + return _toString.apply(this, arguments); + } + + return toString; + }() + }, { + key: "toFile", + value: function () { + var _toFile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() { + return _regenerator["default"].wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + return _context5.abrupt("return", this.data); + + case 1: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + + function toFile() { + return _toFile.apply(this, arguments); + } + + return toFile; + }() + }]); + return PubNubFile; +}(), (0, _defineProperty2["default"])(_class, "supportsFile", typeof File !== 'undefined'), (0, _defineProperty2["default"])(_class, "supportsArrayBuffer", true), (0, _defineProperty2["default"])(_class, "supportsBuffer", false), (0, _defineProperty2["default"])(_class, "supportsStream", false), (0, _defineProperty2["default"])(_class, "supportsString", true), _temp); +var _default = PubNubFile; +exports["default"] = _default; +module.exports = exports.default; + +/***/ }), +/* 133 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed */ -RequestBase.prototype.get = function(field){ - return this._header[field.toLowerCase()]; -}; + /** - * Get case-insensitive header `field` value. - * This is a deprecated internal API. Use `.get(field)` instead. - * - * (getHeader is no longer used internally by the superagent code base) - * - * @param {String} field - * @return {String} - * @api private - * @deprecated + * Module dependencies. + * @private */ -RequestBase.prototype.getHeader = RequestBase.prototype.get; +var db = __webpack_require__(134) +var extname = __webpack_require__(136).extname /** - * Set header `field` to `val`, or multiple fields with one object. - * Case-insensitive. - * - * Examples: - * - * req.get('/') - * .set('Accept', 'application/json') - * .set('X-API-Key', 'foobar') - * .end(callback); - * - * req.get('/') - * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' }) - * .end(callback); - * - * @param {String|Object} field - * @param {String} val - * @return {Request} for chaining - * @api public + * Module variables. + * @private */ -RequestBase.prototype.set = function(field, val){ - if (isObject(field)) { - for (var key in field) { - this.set(key, field[key]); - } - return this; - } - this._header[field.toLowerCase()] = val; - this.header[field] = val; - return this; -}; +var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/ +var TEXT_TYPE_REGEXP = /^text\//i /** - * Remove header `field`. - * Case-insensitive. - * - * Example: - * - * req.get('/') - * .unset('User-Agent') - * .end(callback); - * - * @param {String} field + * Module exports. + * @public */ -RequestBase.prototype.unset = function(field){ - delete this._header[field.toLowerCase()]; - delete this.header[field]; - return this; -}; + +exports.charset = charset +exports.charsets = { lookup: charset } +exports.contentType = contentType +exports.extension = extension +exports.extensions = Object.create(null) +exports.lookup = lookup +exports.types = Object.create(null) + +// Populate the extensions/types maps +populateMaps(exports.extensions, exports.types) /** - * Write the field `name` and `val`, or multiple fields with one object - * for "multipart/form-data" request bodies. - * - * ``` js - * request.post('/upload') - * .field('foo', 'bar') - * .end(callback); - * - * request.post('/upload') - * .field({ foo: 'bar', baz: 'qux' }) - * .end(callback); - * ``` + * Get the default charset for a MIME type. * - * @param {String|Object} name - * @param {String|Blob|File|Buffer|fs.ReadStream} val - * @return {Request} for chaining - * @api public + * @param {string} type + * @return {boolean|string} */ -RequestBase.prototype.field = function(name, val) { - // name should be either a string or an object. - if (null === name || undefined === name) { - throw new Error('.field(name, val) name can not be empty'); - } - if (this._data) { - console.error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()"); +function charset (type) { + if (!type || typeof type !== 'string') { + return false } - if (isObject(name)) { - for (var key in name) { - this.field(key, name[key]); - } - return this; - } + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + var mime = match && db[match[1].toLowerCase()] - if (Array.isArray(val)) { - for (var i in val) { - this.field(name, val[i]); - } - return this; + if (mime && mime.charset) { + return mime.charset } - // val should be defined now - if (null === val || undefined === val) { - throw new Error('.field(name, val) val can not be empty'); - } - if ('boolean' === typeof val) { - val = '' + val; + // default text/* to utf-8 + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return 'UTF-8' } - this._getFormData().append(name, val); - return this; -}; + + return false +} /** - * Abort the request, and clear potential timeout. + * Create a full Content-Type header given a MIME type or extension. * - * @return {Request} - * @api public + * @param {string} str + * @return {boolean|string} */ -RequestBase.prototype.abort = function(){ - if (this._aborted) { - return this; - } - this._aborted = true; - this.xhr && this.xhr.abort(); // browser - this.req && this.req.abort(); // node - this.clearTimeout(); - this.emit('abort'); - return this; -}; -RequestBase.prototype._auth = function(user, pass, options, base64Encoder) { - switch (options.type) { - case 'basic': - this.set('Authorization', 'Basic ' + base64Encoder(user + ':' + pass)); - break; +function contentType (str) { + // TODO: should this even be in this module? + if (!str || typeof str !== 'string') { + return false + } - case 'auto': - this.username = user; - this.password = pass; - break; + var mime = str.indexOf('/') === -1 + ? exports.lookup(str) + : str - case 'bearer': // usage would be .auth(accessToken, { type: 'bearer' }) - this.set('Authorization', 'Bearer ' + user); - break; + if (!mime) { + return false } - return this; -}; - -/** - * Enable transmission of cookies with x-domain requests. - * - * Note that for this to work the origin must not be - * using "Access-Control-Allow-Origin" with a wildcard, - * and also must set "Access-Control-Allow-Credentials" - * to "true". - * - * @api public - */ -RequestBase.prototype.withCredentials = function(on) { - // This is browser-only functionality. Node side is no-op. - if (on == undefined) on = true; - this._withCredentials = on; - return this; -}; + // TODO: use content-type or other module + if (mime.indexOf('charset') === -1) { + var charset = exports.charset(mime) + if (charset) mime += '; charset=' + charset.toLowerCase() + } + + return mime +} /** - * Set the max redirects to `n`. Does noting in browser XHR implementation. + * Get the default extension for a MIME type. * - * @param {Number} n - * @return {Request} for chaining - * @api public + * @param {string} type + * @return {boolean|string} */ -RequestBase.prototype.redirects = function(n){ - this._maxRedirects = n; - return this; -}; +function extension (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + + // get extensions + var exts = match && exports.extensions[match[1].toLowerCase()] + + if (!exts || !exts.length) { + return false + } + + return exts[0] +} /** - * Maximum size of buffered response body, in bytes. Counts uncompressed size. - * Default 200MB. + * Lookup the MIME type for a file path/extension. * - * @param {Number} n - * @return {Request} for chaining + * @param {string} path + * @return {boolean|string} */ -RequestBase.prototype.maxResponseSize = function(n){ - if ('number' !== typeof n) { - throw TypeError("Invalid argument"); + +function lookup (path) { + if (!path || typeof path !== 'string') { + return false } - this._maxResponseSize = n; - return this; -}; + + // get the extension ("ext" or ".ext" or full path) + var extension = extname('x.' + path) + .toLowerCase() + .substr(1) + + if (!extension) { + return false + } + + return exports.types[extension] || false +} /** - * Convert to a plain javascript object (not JSON string) of scalar properties. - * Note as this method is designed to return a useful non-this value, - * it cannot be chained. - * - * @return {Object} describing method, url, and data of this request - * @api public + * Populate the extensions and types maps. + * @private */ -RequestBase.prototype.toJSON = function() { - return { - method: this.method, - url: this.url, - data: this._data, - headers: this._header, - }; -}; +function populateMaps (extensions, types) { + // source preference (least -> most) + var preference = ['nginx', 'apache', undefined, 'iana'] + + Object.keys(db).forEach(function forEachMimeType (type) { + var mime = db[type] + var exts = mime.extensions + + if (!exts || !exts.length) { + return + } + + // mime -> extensions + extensions[type] = exts + + // extension -> mime + for (var i = 0; i < exts.length; i++) { + var extension = exts[i] + + if (types[extension]) { + var from = preference.indexOf(db[types[extension]].source) + var to = preference.indexOf(mime.source) + + if (types[extension] !== 'application/octet-stream' && + (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) { + // skip the remapping + continue + } + } + + // set the extension -> mime + types[extension] = type + } + }) +} + + +/***/ }), +/* 134 */ +/***/ (function(module, exports, __webpack_require__) { + +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * MIT Licensed + */ /** - * Send `data` as the request body, defaulting the `.type()` to "json" when - * an object is given. - * - * Examples: - * - * // manual json - * request.post('/user') - * .type('json') - * .send('{"name":"tj"}') - * .end(callback) - * - * // auto json - * request.post('/user') - * .send({ name: 'tj' }) - * .end(callback) - * - * // manual x-www-form-urlencoded - * request.post('/user') - * .type('form') - * .send('name=tj') - * .end(callback) - * - * // auto x-www-form-urlencoded - * request.post('/user') - * .type('form') - * .send({ name: 'tj' }) - * .end(callback) - * - * // defaults to x-www-form-urlencoded - * request.post('/user') - * .send('name=tobi') - * .send('species=ferret') - * .end(callback) - * - * @param {String|Object} data - * @return {Request} for chaining - * @api public + * Module exports. */ -RequestBase.prototype.send = function(data){ - var isObj = isObject(data); - var type = this._header['content-type']; +module.exports = __webpack_require__(135) - if (this._formData) { - console.error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()"); - } - if (isObj && !this._data) { - if (Array.isArray(data)) { - this._data = []; - } else if (!this._isHost(data)) { - this._data = {}; +/***/ }), +/* 135 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"application/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"application/3gpdash-qoe-report+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/3gpp-ims+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/a2l\":{\"source\":\"iana\"},\"application/activemessage\":{\"source\":\"iana\"},\"application/activity+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-costmap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-costmapfilter+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-directory+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointcost+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointcostparams+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointprop+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-endpointpropparams+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-error+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-networkmap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-networkmapfilter+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-updatestreamcontrol+json\":{\"source\":\"iana\",\"compressible\":true},\"application/alto-updatestreamparams+json\":{\"source\":\"iana\",\"compressible\":true},\"application/aml\":{\"source\":\"iana\"},\"application/andrew-inset\":{\"source\":\"iana\",\"extensions\":[\"ez\"]},\"application/applefile\":{\"source\":\"iana\"},\"application/applixware\":{\"source\":\"apache\",\"extensions\":[\"aw\"]},\"application/atf\":{\"source\":\"iana\"},\"application/atfx\":{\"source\":\"iana\"},\"application/atom+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"atom\"]},\"application/atomcat+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"atomcat\"]},\"application/atomdeleted+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"atomdeleted\"]},\"application/atomicmail\":{\"source\":\"iana\"},\"application/atomsvc+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"atomsvc\"]},\"application/atsc-dwd+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dwd\"]},\"application/atsc-dynamic-event-message\":{\"source\":\"iana\"},\"application/atsc-held+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"held\"]},\"application/atsc-rdt+json\":{\"source\":\"iana\",\"compressible\":true},\"application/atsc-rsat+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rsat\"]},\"application/atxml\":{\"source\":\"iana\"},\"application/auth-policy+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/bacnet-xdd+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/batch-smtp\":{\"source\":\"iana\"},\"application/bdoc\":{\"compressible\":false,\"extensions\":[\"bdoc\"]},\"application/beep+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/calendar+json\":{\"source\":\"iana\",\"compressible\":true},\"application/calendar+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xcs\"]},\"application/call-completion\":{\"source\":\"iana\"},\"application/cals-1840\":{\"source\":\"iana\"},\"application/cap+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/cbor\":{\"source\":\"iana\"},\"application/cbor-seq\":{\"source\":\"iana\"},\"application/cccex\":{\"source\":\"iana\"},\"application/ccmp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/ccxml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ccxml\"]},\"application/cdfx+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"cdfx\"]},\"application/cdmi-capability\":{\"source\":\"iana\",\"extensions\":[\"cdmia\"]},\"application/cdmi-container\":{\"source\":\"iana\",\"extensions\":[\"cdmic\"]},\"application/cdmi-domain\":{\"source\":\"iana\",\"extensions\":[\"cdmid\"]},\"application/cdmi-object\":{\"source\":\"iana\",\"extensions\":[\"cdmio\"]},\"application/cdmi-queue\":{\"source\":\"iana\",\"extensions\":[\"cdmiq\"]},\"application/cdni\":{\"source\":\"iana\"},\"application/cea\":{\"source\":\"iana\"},\"application/cea-2018+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cellml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cfw\":{\"source\":\"iana\"},\"application/clue+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/clue_info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cms\":{\"source\":\"iana\"},\"application/cnrp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/coap-group+json\":{\"source\":\"iana\",\"compressible\":true},\"application/coap-payload\":{\"source\":\"iana\"},\"application/commonground\":{\"source\":\"iana\"},\"application/conference-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cose\":{\"source\":\"iana\"},\"application/cose-key\":{\"source\":\"iana\"},\"application/cose-key-set\":{\"source\":\"iana\"},\"application/cpl+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/csrattrs\":{\"source\":\"iana\"},\"application/csta+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/cstadata+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/csvm+json\":{\"source\":\"iana\",\"compressible\":true},\"application/cu-seeme\":{\"source\":\"apache\",\"extensions\":[\"cu\"]},\"application/cwt\":{\"source\":\"iana\"},\"application/cybercash\":{\"source\":\"iana\"},\"application/dart\":{\"compressible\":true},\"application/dash+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mpd\"]},\"application/dashdelta\":{\"source\":\"iana\"},\"application/davmount+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"davmount\"]},\"application/dca-rft\":{\"source\":\"iana\"},\"application/dcd\":{\"source\":\"iana\"},\"application/dec-dx\":{\"source\":\"iana\"},\"application/dialog-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/dicom\":{\"source\":\"iana\"},\"application/dicom+json\":{\"source\":\"iana\",\"compressible\":true},\"application/dicom+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/dii\":{\"source\":\"iana\"},\"application/dit\":{\"source\":\"iana\"},\"application/dns\":{\"source\":\"iana\"},\"application/dns+json\":{\"source\":\"iana\",\"compressible\":true},\"application/dns-message\":{\"source\":\"iana\"},\"application/docbook+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"dbk\"]},\"application/dots+cbor\":{\"source\":\"iana\"},\"application/dskpp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/dssc+der\":{\"source\":\"iana\",\"extensions\":[\"dssc\"]},\"application/dssc+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xdssc\"]},\"application/dvcs\":{\"source\":\"iana\"},\"application/ecmascript\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ecma\",\"es\"]},\"application/edi-consent\":{\"source\":\"iana\"},\"application/edi-x12\":{\"source\":\"iana\",\"compressible\":false},\"application/edifact\":{\"source\":\"iana\",\"compressible\":false},\"application/efi\":{\"source\":\"iana\"},\"application/emergencycalldata.comment+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.control+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.deviceinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.ecall.msd\":{\"source\":\"iana\"},\"application/emergencycalldata.providerinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.serviceinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.subscriberinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emergencycalldata.veds+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/emma+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"emma\"]},\"application/emotionml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"emotionml\"]},\"application/encaprtp\":{\"source\":\"iana\"},\"application/epp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/epub+zip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"epub\"]},\"application/eshop\":{\"source\":\"iana\"},\"application/exi\":{\"source\":\"iana\",\"extensions\":[\"exi\"]},\"application/expect-ct-report+json\":{\"source\":\"iana\",\"compressible\":true},\"application/fastinfoset\":{\"source\":\"iana\"},\"application/fastsoap\":{\"source\":\"iana\"},\"application/fdt+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"fdt\"]},\"application/fhir+json\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/fhir+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/fido.trusted-apps+json\":{\"compressible\":true},\"application/fits\":{\"source\":\"iana\"},\"application/flexfec\":{\"source\":\"iana\"},\"application/font-sfnt\":{\"source\":\"iana\"},\"application/font-tdpfr\":{\"source\":\"iana\",\"extensions\":[\"pfr\"]},\"application/font-woff\":{\"source\":\"iana\",\"compressible\":false},\"application/framework-attributes+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/geo+json\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"geojson\"]},\"application/geo+json-seq\":{\"source\":\"iana\"},\"application/geopackage+sqlite3\":{\"source\":\"iana\"},\"application/geoxacml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/gltf-buffer\":{\"source\":\"iana\"},\"application/gml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"gml\"]},\"application/gpx+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"gpx\"]},\"application/gxf\":{\"source\":\"apache\",\"extensions\":[\"gxf\"]},\"application/gzip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"gz\"]},\"application/h224\":{\"source\":\"iana\"},\"application/held+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/hjson\":{\"extensions\":[\"hjson\"]},\"application/http\":{\"source\":\"iana\"},\"application/hyperstudio\":{\"source\":\"iana\",\"extensions\":[\"stk\"]},\"application/ibe-key-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/ibe-pkg-reply+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/ibe-pp-data\":{\"source\":\"iana\"},\"application/iges\":{\"source\":\"iana\"},\"application/im-iscomposing+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/index\":{\"source\":\"iana\"},\"application/index.cmd\":{\"source\":\"iana\"},\"application/index.obj\":{\"source\":\"iana\"},\"application/index.response\":{\"source\":\"iana\"},\"application/index.vnd\":{\"source\":\"iana\"},\"application/inkml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ink\",\"inkml\"]},\"application/iotp\":{\"source\":\"iana\"},\"application/ipfix\":{\"source\":\"iana\",\"extensions\":[\"ipfix\"]},\"application/ipp\":{\"source\":\"iana\"},\"application/isup\":{\"source\":\"iana\"},\"application/its+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"its\"]},\"application/java-archive\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"jar\",\"war\",\"ear\"]},\"application/java-serialized-object\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"ser\"]},\"application/java-vm\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"class\"]},\"application/javascript\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"js\",\"mjs\"]},\"application/jf2feed+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jose\":{\"source\":\"iana\"},\"application/jose+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jrd+json\":{\"source\":\"iana\",\"compressible\":true},\"application/json\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"json\",\"map\"]},\"application/json-patch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/json-seq\":{\"source\":\"iana\"},\"application/json5\":{\"extensions\":[\"json5\"]},\"application/jsonml+json\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"jsonml\"]},\"application/jwk+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jwk-set+json\":{\"source\":\"iana\",\"compressible\":true},\"application/jwt\":{\"source\":\"iana\"},\"application/kpml-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/kpml-response+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/ld+json\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"jsonld\"]},\"application/lgr+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"lgr\"]},\"application/link-format\":{\"source\":\"iana\"},\"application/load-control+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/lost+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"lostxml\"]},\"application/lostsync+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/lpf+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/lxf\":{\"source\":\"iana\"},\"application/mac-binhex40\":{\"source\":\"iana\",\"extensions\":[\"hqx\"]},\"application/mac-compactpro\":{\"source\":\"apache\",\"extensions\":[\"cpt\"]},\"application/macwriteii\":{\"source\":\"iana\"},\"application/mads+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mads\"]},\"application/manifest+json\":{\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"webmanifest\"]},\"application/marc\":{\"source\":\"iana\",\"extensions\":[\"mrc\"]},\"application/marcxml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mrcx\"]},\"application/mathematica\":{\"source\":\"iana\",\"extensions\":[\"ma\",\"nb\",\"mb\"]},\"application/mathml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mathml\"]},\"application/mathml-content+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mathml-presentation+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-associated-procedure-description+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-deregister+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-envelope+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-msk+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-msk-response+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-protection-description+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-reception-report+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-register+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-register-response+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-schedule+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbms-user-service-description+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mbox\":{\"source\":\"iana\",\"extensions\":[\"mbox\"]},\"application/media-policy-dataset+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/media_control+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/mediaservercontrol+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mscml\"]},\"application/merge-patch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/metalink+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"metalink\"]},\"application/metalink4+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"meta4\"]},\"application/mets+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mets\"]},\"application/mf4\":{\"source\":\"iana\"},\"application/mikey\":{\"source\":\"iana\"},\"application/mipc\":{\"source\":\"iana\"},\"application/mmt-aei+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"maei\"]},\"application/mmt-usd+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"musd\"]},\"application/mods+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mods\"]},\"application/moss-keys\":{\"source\":\"iana\"},\"application/moss-signature\":{\"source\":\"iana\"},\"application/mosskey-data\":{\"source\":\"iana\"},\"application/mosskey-request\":{\"source\":\"iana\"},\"application/mp21\":{\"source\":\"iana\",\"extensions\":[\"m21\",\"mp21\"]},\"application/mp4\":{\"source\":\"iana\",\"extensions\":[\"mp4s\",\"m4p\"]},\"application/mpeg4-generic\":{\"source\":\"iana\"},\"application/mpeg4-iod\":{\"source\":\"iana\"},\"application/mpeg4-iod-xmt\":{\"source\":\"iana\"},\"application/mrb-consumer+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xdf\"]},\"application/mrb-publish+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xdf\"]},\"application/msc-ivr+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/msc-mixer+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/msword\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"doc\",\"dot\"]},\"application/mud+json\":{\"source\":\"iana\",\"compressible\":true},\"application/multipart-core\":{\"source\":\"iana\"},\"application/mxf\":{\"source\":\"iana\",\"extensions\":[\"mxf\"]},\"application/n-quads\":{\"source\":\"iana\",\"extensions\":[\"nq\"]},\"application/n-triples\":{\"source\":\"iana\",\"extensions\":[\"nt\"]},\"application/nasdata\":{\"source\":\"iana\"},\"application/news-checkgroups\":{\"source\":\"iana\",\"charset\":\"US-ASCII\"},\"application/news-groupinfo\":{\"source\":\"iana\",\"charset\":\"US-ASCII\"},\"application/news-transmission\":{\"source\":\"iana\"},\"application/nlsml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/node\":{\"source\":\"iana\",\"extensions\":[\"cjs\"]},\"application/nss\":{\"source\":\"iana\"},\"application/ocsp-request\":{\"source\":\"iana\"},\"application/ocsp-response\":{\"source\":\"iana\"},\"application/octet-stream\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]},\"application/oda\":{\"source\":\"iana\",\"extensions\":[\"oda\"]},\"application/odm+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/odx\":{\"source\":\"iana\"},\"application/oebps-package+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"opf\"]},\"application/ogg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ogx\"]},\"application/omdoc+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"omdoc\"]},\"application/onenote\":{\"source\":\"apache\",\"extensions\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]},\"application/oscore\":{\"source\":\"iana\"},\"application/oxps\":{\"source\":\"iana\",\"extensions\":[\"oxps\"]},\"application/p2p-overlay+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"relo\"]},\"application/parityfec\":{\"source\":\"iana\"},\"application/passport\":{\"source\":\"iana\"},\"application/patch-ops-error+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xer\"]},\"application/pdf\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"pdf\"]},\"application/pdx\":{\"source\":\"iana\"},\"application/pem-certificate-chain\":{\"source\":\"iana\"},\"application/pgp-encrypted\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"pgp\"]},\"application/pgp-keys\":{\"source\":\"iana\"},\"application/pgp-signature\":{\"source\":\"iana\",\"extensions\":[\"asc\",\"sig\"]},\"application/pics-rules\":{\"source\":\"apache\",\"extensions\":[\"prf\"]},\"application/pidf+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/pidf-diff+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/pkcs10\":{\"source\":\"iana\",\"extensions\":[\"p10\"]},\"application/pkcs12\":{\"source\":\"iana\"},\"application/pkcs7-mime\":{\"source\":\"iana\",\"extensions\":[\"p7m\",\"p7c\"]},\"application/pkcs7-signature\":{\"source\":\"iana\",\"extensions\":[\"p7s\"]},\"application/pkcs8\":{\"source\":\"iana\",\"extensions\":[\"p8\"]},\"application/pkcs8-encrypted\":{\"source\":\"iana\"},\"application/pkix-attr-cert\":{\"source\":\"iana\",\"extensions\":[\"ac\"]},\"application/pkix-cert\":{\"source\":\"iana\",\"extensions\":[\"cer\"]},\"application/pkix-crl\":{\"source\":\"iana\",\"extensions\":[\"crl\"]},\"application/pkix-pkipath\":{\"source\":\"iana\",\"extensions\":[\"pkipath\"]},\"application/pkixcmp\":{\"source\":\"iana\",\"extensions\":[\"pki\"]},\"application/pls+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"pls\"]},\"application/poc-settings+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/postscript\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ai\",\"eps\",\"ps\"]},\"application/ppsp-tracker+json\":{\"source\":\"iana\",\"compressible\":true},\"application/problem+json\":{\"source\":\"iana\",\"compressible\":true},\"application/problem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/provenance+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"provx\"]},\"application/prs.alvestrand.titrax-sheet\":{\"source\":\"iana\"},\"application/prs.cww\":{\"source\":\"iana\",\"extensions\":[\"cww\"]},\"application/prs.hpub+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/prs.nprend\":{\"source\":\"iana\"},\"application/prs.plucker\":{\"source\":\"iana\"},\"application/prs.rdf-xml-crypt\":{\"source\":\"iana\"},\"application/prs.xsf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/pskc+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"pskcxml\"]},\"application/pvd+json\":{\"source\":\"iana\",\"compressible\":true},\"application/qsig\":{\"source\":\"iana\"},\"application/raml+yaml\":{\"compressible\":true,\"extensions\":[\"raml\"]},\"application/raptorfec\":{\"source\":\"iana\"},\"application/rdap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/rdf+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rdf\",\"owl\"]},\"application/reginfo+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rif\"]},\"application/relax-ng-compact-syntax\":{\"source\":\"iana\",\"extensions\":[\"rnc\"]},\"application/remote-printing\":{\"source\":\"iana\"},\"application/reputon+json\":{\"source\":\"iana\",\"compressible\":true},\"application/resource-lists+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rl\"]},\"application/resource-lists-diff+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rld\"]},\"application/rfc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/riscos\":{\"source\":\"iana\"},\"application/rlmi+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/rls-services+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rs\"]},\"application/route-apd+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rapd\"]},\"application/route-s-tsid+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"sls\"]},\"application/route-usd+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rusd\"]},\"application/rpki-ghostbusters\":{\"source\":\"iana\",\"extensions\":[\"gbr\"]},\"application/rpki-manifest\":{\"source\":\"iana\",\"extensions\":[\"mft\"]},\"application/rpki-publication\":{\"source\":\"iana\"},\"application/rpki-roa\":{\"source\":\"iana\",\"extensions\":[\"roa\"]},\"application/rpki-updown\":{\"source\":\"iana\"},\"application/rsd+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"rsd\"]},\"application/rss+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"rss\"]},\"application/rtf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rtf\"]},\"application/rtploopback\":{\"source\":\"iana\"},\"application/rtx\":{\"source\":\"iana\"},\"application/samlassertion+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/samlmetadata+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sbe\":{\"source\":\"iana\"},\"application/sbml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"sbml\"]},\"application/scaip+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/scim+json\":{\"source\":\"iana\",\"compressible\":true},\"application/scvp-cv-request\":{\"source\":\"iana\",\"extensions\":[\"scq\"]},\"application/scvp-cv-response\":{\"source\":\"iana\",\"extensions\":[\"scs\"]},\"application/scvp-vp-request\":{\"source\":\"iana\",\"extensions\":[\"spq\"]},\"application/scvp-vp-response\":{\"source\":\"iana\",\"extensions\":[\"spp\"]},\"application/sdp\":{\"source\":\"iana\",\"extensions\":[\"sdp\"]},\"application/secevent+jwt\":{\"source\":\"iana\"},\"application/senml+cbor\":{\"source\":\"iana\"},\"application/senml+json\":{\"source\":\"iana\",\"compressible\":true},\"application/senml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"senmlx\"]},\"application/senml-etch+cbor\":{\"source\":\"iana\"},\"application/senml-etch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/senml-exi\":{\"source\":\"iana\"},\"application/sensml+cbor\":{\"source\":\"iana\"},\"application/sensml+json\":{\"source\":\"iana\",\"compressible\":true},\"application/sensml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"sensmlx\"]},\"application/sensml-exi\":{\"source\":\"iana\"},\"application/sep+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sep-exi\":{\"source\":\"iana\"},\"application/session-info\":{\"source\":\"iana\"},\"application/set-payment\":{\"source\":\"iana\"},\"application/set-payment-initiation\":{\"source\":\"iana\",\"extensions\":[\"setpay\"]},\"application/set-registration\":{\"source\":\"iana\"},\"application/set-registration-initiation\":{\"source\":\"iana\",\"extensions\":[\"setreg\"]},\"application/sgml\":{\"source\":\"iana\"},\"application/sgml-open-catalog\":{\"source\":\"iana\"},\"application/shf+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"shf\"]},\"application/sieve\":{\"source\":\"iana\",\"extensions\":[\"siv\",\"sieve\"]},\"application/simple-filter+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/simple-message-summary\":{\"source\":\"iana\"},\"application/simplesymbolcontainer\":{\"source\":\"iana\"},\"application/sipc\":{\"source\":\"iana\"},\"application/slate\":{\"source\":\"iana\"},\"application/smil\":{\"source\":\"iana\"},\"application/smil+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"smi\",\"smil\"]},\"application/smpte336m\":{\"source\":\"iana\"},\"application/soap+fastinfoset\":{\"source\":\"iana\"},\"application/soap+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sparql-query\":{\"source\":\"iana\",\"extensions\":[\"rq\"]},\"application/sparql-results+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"srx\"]},\"application/spirits-event+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/sql\":{\"source\":\"iana\"},\"application/srgs\":{\"source\":\"iana\",\"extensions\":[\"gram\"]},\"application/srgs+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"grxml\"]},\"application/sru+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"sru\"]},\"application/ssdl+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"ssdl\"]},\"application/ssml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ssml\"]},\"application/stix+json\":{\"source\":\"iana\",\"compressible\":true},\"application/swid+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"swidtag\"]},\"application/tamp-apex-update\":{\"source\":\"iana\"},\"application/tamp-apex-update-confirm\":{\"source\":\"iana\"},\"application/tamp-community-update\":{\"source\":\"iana\"},\"application/tamp-community-update-confirm\":{\"source\":\"iana\"},\"application/tamp-error\":{\"source\":\"iana\"},\"application/tamp-sequence-adjust\":{\"source\":\"iana\"},\"application/tamp-sequence-adjust-confirm\":{\"source\":\"iana\"},\"application/tamp-status-query\":{\"source\":\"iana\"},\"application/tamp-status-response\":{\"source\":\"iana\"},\"application/tamp-update\":{\"source\":\"iana\"},\"application/tamp-update-confirm\":{\"source\":\"iana\"},\"application/tar\":{\"compressible\":true},\"application/taxii+json\":{\"source\":\"iana\",\"compressible\":true},\"application/td+json\":{\"source\":\"iana\",\"compressible\":true},\"application/tei+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"tei\",\"teicorpus\"]},\"application/tetra_isi\":{\"source\":\"iana\"},\"application/thraud+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"tfi\"]},\"application/timestamp-query\":{\"source\":\"iana\"},\"application/timestamp-reply\":{\"source\":\"iana\"},\"application/timestamped-data\":{\"source\":\"iana\",\"extensions\":[\"tsd\"]},\"application/tlsrpt+gzip\":{\"source\":\"iana\"},\"application/tlsrpt+json\":{\"source\":\"iana\",\"compressible\":true},\"application/tnauthlist\":{\"source\":\"iana\"},\"application/toml\":{\"compressible\":true,\"extensions\":[\"toml\"]},\"application/trickle-ice-sdpfrag\":{\"source\":\"iana\"},\"application/trig\":{\"source\":\"iana\"},\"application/ttml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ttml\"]},\"application/tve-trigger\":{\"source\":\"iana\"},\"application/tzif\":{\"source\":\"iana\"},\"application/tzif-leap\":{\"source\":\"iana\"},\"application/ulpfec\":{\"source\":\"iana\"},\"application/urc-grpsheet+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/urc-ressheet+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rsheet\"]},\"application/urc-targetdesc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/urc-uisocketdesc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vcard+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vcard+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vemmi\":{\"source\":\"iana\"},\"application/vividence.scriptfile\":{\"source\":\"apache\"},\"application/vnd.1000minds.decision-model+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"1km\"]},\"application/vnd.3gpp-prose+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp-prose-pc3ch+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp-v2x-local-service-information\":{\"source\":\"iana\"},\"application/vnd.3gpp.access-transfer-events+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.bsf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.gmop+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mc-signalling-ear\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcdata-affiliation-command+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcdata-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcdata-payload\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcdata-service-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcdata-signalling\":{\"source\":\"iana\"},\"application/vnd.3gpp.mcdata-ue-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcdata-user-profile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-affiliation-command+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-floor-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-location-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-mbms-usage-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-service-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-signed+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-ue-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-ue-init-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcptt-user-profile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-affiliation-command+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-affiliation-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-location-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-service-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-transmission-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-ue-config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mcvideo-user-profile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.mid-call+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.pic-bw-large\":{\"source\":\"iana\",\"extensions\":[\"plb\"]},\"application/vnd.3gpp.pic-bw-small\":{\"source\":\"iana\",\"extensions\":[\"psb\"]},\"application/vnd.3gpp.pic-bw-var\":{\"source\":\"iana\",\"extensions\":[\"pvb\"]},\"application/vnd.3gpp.sms\":{\"source\":\"iana\"},\"application/vnd.3gpp.sms+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.srvcc-ext+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.srvcc-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.state-and-event-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp.ussd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp2.bcmcsinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.3gpp2.sms\":{\"source\":\"iana\"},\"application/vnd.3gpp2.tcap\":{\"source\":\"iana\",\"extensions\":[\"tcap\"]},\"application/vnd.3lightssoftware.imagescal\":{\"source\":\"iana\"},\"application/vnd.3m.post-it-notes\":{\"source\":\"iana\",\"extensions\":[\"pwn\"]},\"application/vnd.accpac.simply.aso\":{\"source\":\"iana\",\"extensions\":[\"aso\"]},\"application/vnd.accpac.simply.imp\":{\"source\":\"iana\",\"extensions\":[\"imp\"]},\"application/vnd.acucobol\":{\"source\":\"iana\",\"extensions\":[\"acu\"]},\"application/vnd.acucorp\":{\"source\":\"iana\",\"extensions\":[\"atc\",\"acutc\"]},\"application/vnd.adobe.air-application-installer-package+zip\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"air\"]},\"application/vnd.adobe.flash.movie\":{\"source\":\"iana\"},\"application/vnd.adobe.formscentral.fcdt\":{\"source\":\"iana\",\"extensions\":[\"fcdt\"]},\"application/vnd.adobe.fxp\":{\"source\":\"iana\",\"extensions\":[\"fxp\",\"fxpl\"]},\"application/vnd.adobe.partial-upload\":{\"source\":\"iana\"},\"application/vnd.adobe.xdp+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xdp\"]},\"application/vnd.adobe.xfdf\":{\"source\":\"iana\",\"extensions\":[\"xfdf\"]},\"application/vnd.aether.imp\":{\"source\":\"iana\"},\"application/vnd.afpc.afplinedata\":{\"source\":\"iana\"},\"application/vnd.afpc.afplinedata-pagedef\":{\"source\":\"iana\"},\"application/vnd.afpc.foca-charset\":{\"source\":\"iana\"},\"application/vnd.afpc.foca-codedfont\":{\"source\":\"iana\"},\"application/vnd.afpc.foca-codepage\":{\"source\":\"iana\"},\"application/vnd.afpc.modca\":{\"source\":\"iana\"},\"application/vnd.afpc.modca-formdef\":{\"source\":\"iana\"},\"application/vnd.afpc.modca-mediummap\":{\"source\":\"iana\"},\"application/vnd.afpc.modca-objectcontainer\":{\"source\":\"iana\"},\"application/vnd.afpc.modca-overlay\":{\"source\":\"iana\"},\"application/vnd.afpc.modca-pagesegment\":{\"source\":\"iana\"},\"application/vnd.ah-barcode\":{\"source\":\"iana\"},\"application/vnd.ahead.space\":{\"source\":\"iana\",\"extensions\":[\"ahead\"]},\"application/vnd.airzip.filesecure.azf\":{\"source\":\"iana\",\"extensions\":[\"azf\"]},\"application/vnd.airzip.filesecure.azs\":{\"source\":\"iana\",\"extensions\":[\"azs\"]},\"application/vnd.amadeus+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.amazon.ebook\":{\"source\":\"apache\",\"extensions\":[\"azw\"]},\"application/vnd.amazon.mobi8-ebook\":{\"source\":\"iana\"},\"application/vnd.americandynamics.acc\":{\"source\":\"iana\",\"extensions\":[\"acc\"]},\"application/vnd.amiga.ami\":{\"source\":\"iana\",\"extensions\":[\"ami\"]},\"application/vnd.amundsen.maze+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.android.ota\":{\"source\":\"iana\"},\"application/vnd.android.package-archive\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"apk\"]},\"application/vnd.anki\":{\"source\":\"iana\"},\"application/vnd.anser-web-certificate-issue-initiation\":{\"source\":\"iana\",\"extensions\":[\"cii\"]},\"application/vnd.anser-web-funds-transfer-initiation\":{\"source\":\"apache\",\"extensions\":[\"fti\"]},\"application/vnd.antix.game-component\":{\"source\":\"iana\",\"extensions\":[\"atx\"]},\"application/vnd.apache.thrift.binary\":{\"source\":\"iana\"},\"application/vnd.apache.thrift.compact\":{\"source\":\"iana\"},\"application/vnd.apache.thrift.json\":{\"source\":\"iana\"},\"application/vnd.api+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.aplextor.warrp+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.apothekende.reservation+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.apple.installer+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mpkg\"]},\"application/vnd.apple.keynote\":{\"source\":\"iana\",\"extensions\":[\"keynote\"]},\"application/vnd.apple.mpegurl\":{\"source\":\"iana\",\"extensions\":[\"m3u8\"]},\"application/vnd.apple.numbers\":{\"source\":\"iana\",\"extensions\":[\"numbers\"]},\"application/vnd.apple.pages\":{\"source\":\"iana\",\"extensions\":[\"pages\"]},\"application/vnd.apple.pkpass\":{\"compressible\":false,\"extensions\":[\"pkpass\"]},\"application/vnd.arastra.swi\":{\"source\":\"iana\"},\"application/vnd.aristanetworks.swi\":{\"source\":\"iana\",\"extensions\":[\"swi\"]},\"application/vnd.artisan+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.artsquare\":{\"source\":\"iana\"},\"application/vnd.astraea-software.iota\":{\"source\":\"iana\",\"extensions\":[\"iota\"]},\"application/vnd.audiograph\":{\"source\":\"iana\",\"extensions\":[\"aep\"]},\"application/vnd.autopackage\":{\"source\":\"iana\"},\"application/vnd.avalon+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.avistar+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.balsamiq.bmml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"bmml\"]},\"application/vnd.balsamiq.bmpr\":{\"source\":\"iana\"},\"application/vnd.banana-accounting\":{\"source\":\"iana\"},\"application/vnd.bbf.usp.error\":{\"source\":\"iana\"},\"application/vnd.bbf.usp.msg\":{\"source\":\"iana\"},\"application/vnd.bbf.usp.msg+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.bekitzur-stech+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.bint.med-content\":{\"source\":\"iana\"},\"application/vnd.biopax.rdf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.blink-idb-value-wrapper\":{\"source\":\"iana\"},\"application/vnd.blueice.multipass\":{\"source\":\"iana\",\"extensions\":[\"mpm\"]},\"application/vnd.bluetooth.ep.oob\":{\"source\":\"iana\"},\"application/vnd.bluetooth.le.oob\":{\"source\":\"iana\"},\"application/vnd.bmi\":{\"source\":\"iana\",\"extensions\":[\"bmi\"]},\"application/vnd.bpf\":{\"source\":\"iana\"},\"application/vnd.bpf3\":{\"source\":\"iana\"},\"application/vnd.businessobjects\":{\"source\":\"iana\",\"extensions\":[\"rep\"]},\"application/vnd.byu.uapi+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cab-jscript\":{\"source\":\"iana\"},\"application/vnd.canon-cpdl\":{\"source\":\"iana\"},\"application/vnd.canon-lips\":{\"source\":\"iana\"},\"application/vnd.capasystems-pg+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cendio.thinlinc.clientconf\":{\"source\":\"iana\"},\"application/vnd.century-systems.tcp_stream\":{\"source\":\"iana\"},\"application/vnd.chemdraw+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"cdxml\"]},\"application/vnd.chess-pgn\":{\"source\":\"iana\"},\"application/vnd.chipnuts.karaoke-mmd\":{\"source\":\"iana\",\"extensions\":[\"mmd\"]},\"application/vnd.ciedi\":{\"source\":\"iana\"},\"application/vnd.cinderella\":{\"source\":\"iana\",\"extensions\":[\"cdy\"]},\"application/vnd.cirpack.isdn-ext\":{\"source\":\"iana\"},\"application/vnd.citationstyles.style+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"csl\"]},\"application/vnd.claymore\":{\"source\":\"iana\",\"extensions\":[\"cla\"]},\"application/vnd.cloanto.rp9\":{\"source\":\"iana\",\"extensions\":[\"rp9\"]},\"application/vnd.clonk.c4group\":{\"source\":\"iana\",\"extensions\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]},\"application/vnd.cluetrust.cartomobile-config\":{\"source\":\"iana\",\"extensions\":[\"c11amc\"]},\"application/vnd.cluetrust.cartomobile-config-pkg\":{\"source\":\"iana\",\"extensions\":[\"c11amz\"]},\"application/vnd.coffeescript\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.document\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.document-template\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.presentation\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.presentation-template\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.spreadsheet\":{\"source\":\"iana\"},\"application/vnd.collabio.xodocuments.spreadsheet-template\":{\"source\":\"iana\"},\"application/vnd.collection+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.collection.doc+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.collection.next+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.comicbook+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.comicbook-rar\":{\"source\":\"iana\"},\"application/vnd.commerce-battelle\":{\"source\":\"iana\"},\"application/vnd.commonspace\":{\"source\":\"iana\",\"extensions\":[\"csp\"]},\"application/vnd.contact.cmsg\":{\"source\":\"iana\",\"extensions\":[\"cdbcmsg\"]},\"application/vnd.coreos.ignition+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cosmocaller\":{\"source\":\"iana\",\"extensions\":[\"cmc\"]},\"application/vnd.crick.clicker\":{\"source\":\"iana\",\"extensions\":[\"clkx\"]},\"application/vnd.crick.clicker.keyboard\":{\"source\":\"iana\",\"extensions\":[\"clkk\"]},\"application/vnd.crick.clicker.palette\":{\"source\":\"iana\",\"extensions\":[\"clkp\"]},\"application/vnd.crick.clicker.template\":{\"source\":\"iana\",\"extensions\":[\"clkt\"]},\"application/vnd.crick.clicker.wordbank\":{\"source\":\"iana\",\"extensions\":[\"clkw\"]},\"application/vnd.criticaltools.wbs+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"wbs\"]},\"application/vnd.cryptii.pipe+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.crypto-shade-file\":{\"source\":\"iana\"},\"application/vnd.ctc-posml\":{\"source\":\"iana\",\"extensions\":[\"pml\"]},\"application/vnd.ctct.ws+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cups-pdf\":{\"source\":\"iana\"},\"application/vnd.cups-postscript\":{\"source\":\"iana\"},\"application/vnd.cups-ppd\":{\"source\":\"iana\",\"extensions\":[\"ppd\"]},\"application/vnd.cups-raster\":{\"source\":\"iana\"},\"application/vnd.cups-raw\":{\"source\":\"iana\"},\"application/vnd.curl\":{\"source\":\"iana\"},\"application/vnd.curl.car\":{\"source\":\"apache\",\"extensions\":[\"car\"]},\"application/vnd.curl.pcurl\":{\"source\":\"apache\",\"extensions\":[\"pcurl\"]},\"application/vnd.cyan.dean.root+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.cybank\":{\"source\":\"iana\"},\"application/vnd.d2l.coursepackage1p0+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.dart\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dart\"]},\"application/vnd.data-vision.rdz\":{\"source\":\"iana\",\"extensions\":[\"rdz\"]},\"application/vnd.datapackage+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dataresource+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dbf\":{\"source\":\"iana\"},\"application/vnd.debian.binary-package\":{\"source\":\"iana\"},\"application/vnd.dece.data\":{\"source\":\"iana\",\"extensions\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]},\"application/vnd.dece.ttml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"uvt\",\"uvvt\"]},\"application/vnd.dece.unspecified\":{\"source\":\"iana\",\"extensions\":[\"uvx\",\"uvvx\"]},\"application/vnd.dece.zip\":{\"source\":\"iana\",\"extensions\":[\"uvz\",\"uvvz\"]},\"application/vnd.denovo.fcselayout-link\":{\"source\":\"iana\",\"extensions\":[\"fe_launch\"]},\"application/vnd.desmume.movie\":{\"source\":\"iana\"},\"application/vnd.dir-bi.plate-dl-nosuffix\":{\"source\":\"iana\"},\"application/vnd.dm.delegation+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dna\":{\"source\":\"iana\",\"extensions\":[\"dna\"]},\"application/vnd.document+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dolby.mlp\":{\"source\":\"apache\",\"extensions\":[\"mlp\"]},\"application/vnd.dolby.mobile.1\":{\"source\":\"iana\"},\"application/vnd.dolby.mobile.2\":{\"source\":\"iana\"},\"application/vnd.doremir.scorecloud-binary-document\":{\"source\":\"iana\"},\"application/vnd.dpgraph\":{\"source\":\"iana\",\"extensions\":[\"dpg\"]},\"application/vnd.dreamfactory\":{\"source\":\"iana\",\"extensions\":[\"dfac\"]},\"application/vnd.drive+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ds-keypoint\":{\"source\":\"apache\",\"extensions\":[\"kpxx\"]},\"application/vnd.dtg.local\":{\"source\":\"iana\"},\"application/vnd.dtg.local.flash\":{\"source\":\"iana\"},\"application/vnd.dtg.local.html\":{\"source\":\"iana\"},\"application/vnd.dvb.ait\":{\"source\":\"iana\",\"extensions\":[\"ait\"]},\"application/vnd.dvb.dvbisl+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.dvbj\":{\"source\":\"iana\"},\"application/vnd.dvb.esgcontainer\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcdftnotifaccess\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcesgaccess\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcesgaccess2\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcesgpdd\":{\"source\":\"iana\"},\"application/vnd.dvb.ipdcroaming\":{\"source\":\"iana\"},\"application/vnd.dvb.iptv.alfec-base\":{\"source\":\"iana\"},\"application/vnd.dvb.iptv.alfec-enhancement\":{\"source\":\"iana\"},\"application/vnd.dvb.notif-aggregate-root+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-container+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-generic+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-ia-msglist+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-ia-registration-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-ia-registration-response+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.notif-init+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.dvb.pfr\":{\"source\":\"iana\"},\"application/vnd.dvb.service\":{\"source\":\"iana\",\"extensions\":[\"svc\"]},\"application/vnd.dxr\":{\"source\":\"iana\"},\"application/vnd.dynageo\":{\"source\":\"iana\",\"extensions\":[\"geo\"]},\"application/vnd.dzr\":{\"source\":\"iana\"},\"application/vnd.easykaraoke.cdgdownload\":{\"source\":\"iana\"},\"application/vnd.ecdis-update\":{\"source\":\"iana\"},\"application/vnd.ecip.rlp\":{\"source\":\"iana\"},\"application/vnd.ecowin.chart\":{\"source\":\"iana\",\"extensions\":[\"mag\"]},\"application/vnd.ecowin.filerequest\":{\"source\":\"iana\"},\"application/vnd.ecowin.fileupdate\":{\"source\":\"iana\"},\"application/vnd.ecowin.series\":{\"source\":\"iana\"},\"application/vnd.ecowin.seriesrequest\":{\"source\":\"iana\"},\"application/vnd.ecowin.seriesupdate\":{\"source\":\"iana\"},\"application/vnd.efi.img\":{\"source\":\"iana\"},\"application/vnd.efi.iso\":{\"source\":\"iana\"},\"application/vnd.emclient.accessrequest+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.enliven\":{\"source\":\"iana\",\"extensions\":[\"nml\"]},\"application/vnd.enphase.envoy\":{\"source\":\"iana\"},\"application/vnd.eprints.data+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.epson.esf\":{\"source\":\"iana\",\"extensions\":[\"esf\"]},\"application/vnd.epson.msf\":{\"source\":\"iana\",\"extensions\":[\"msf\"]},\"application/vnd.epson.quickanime\":{\"source\":\"iana\",\"extensions\":[\"qam\"]},\"application/vnd.epson.salt\":{\"source\":\"iana\",\"extensions\":[\"slt\"]},\"application/vnd.epson.ssf\":{\"source\":\"iana\",\"extensions\":[\"ssf\"]},\"application/vnd.ericsson.quickcall\":{\"source\":\"iana\"},\"application/vnd.espass-espass+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.eszigno3+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"es3\",\"et3\"]},\"application/vnd.etsi.aoc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.asic-e+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.etsi.asic-s+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.etsi.cug+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvcommand+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvdiscovery+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvprofile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvsad-bc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvsad-cod+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvsad-npvr+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvservice+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvsync+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.iptvueprofile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.mcid+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.mheg5\":{\"source\":\"iana\"},\"application/vnd.etsi.overload-control-policy-dataset+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.pstn+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.sci+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.simservs+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.timestamp-token\":{\"source\":\"iana\"},\"application/vnd.etsi.tsl+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.etsi.tsl.der\":{\"source\":\"iana\"},\"application/vnd.eudora.data\":{\"source\":\"iana\"},\"application/vnd.evolv.ecig.profile\":{\"source\":\"iana\"},\"application/vnd.evolv.ecig.settings\":{\"source\":\"iana\"},\"application/vnd.evolv.ecig.theme\":{\"source\":\"iana\"},\"application/vnd.exstream-empower+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.exstream-package\":{\"source\":\"iana\"},\"application/vnd.ezpix-album\":{\"source\":\"iana\",\"extensions\":[\"ez2\"]},\"application/vnd.ezpix-package\":{\"source\":\"iana\",\"extensions\":[\"ez3\"]},\"application/vnd.f-secure.mobile\":{\"source\":\"iana\"},\"application/vnd.fastcopy-disk-image\":{\"source\":\"iana\"},\"application/vnd.fdf\":{\"source\":\"iana\",\"extensions\":[\"fdf\"]},\"application/vnd.fdsn.mseed\":{\"source\":\"iana\",\"extensions\":[\"mseed\"]},\"application/vnd.fdsn.seed\":{\"source\":\"iana\",\"extensions\":[\"seed\",\"dataless\"]},\"application/vnd.ffsns\":{\"source\":\"iana\"},\"application/vnd.ficlab.flb+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.filmit.zfc\":{\"source\":\"iana\"},\"application/vnd.fints\":{\"source\":\"iana\"},\"application/vnd.firemonkeys.cloudcell\":{\"source\":\"iana\"},\"application/vnd.flographit\":{\"source\":\"iana\",\"extensions\":[\"gph\"]},\"application/vnd.fluxtime.clip\":{\"source\":\"iana\",\"extensions\":[\"ftc\"]},\"application/vnd.font-fontforge-sfd\":{\"source\":\"iana\"},\"application/vnd.framemaker\":{\"source\":\"iana\",\"extensions\":[\"fm\",\"frame\",\"maker\",\"book\"]},\"application/vnd.frogans.fnc\":{\"source\":\"iana\",\"extensions\":[\"fnc\"]},\"application/vnd.frogans.ltf\":{\"source\":\"iana\",\"extensions\":[\"ltf\"]},\"application/vnd.fsc.weblaunch\":{\"source\":\"iana\",\"extensions\":[\"fsc\"]},\"application/vnd.fujitsu.oasys\":{\"source\":\"iana\",\"extensions\":[\"oas\"]},\"application/vnd.fujitsu.oasys2\":{\"source\":\"iana\",\"extensions\":[\"oa2\"]},\"application/vnd.fujitsu.oasys3\":{\"source\":\"iana\",\"extensions\":[\"oa3\"]},\"application/vnd.fujitsu.oasysgp\":{\"source\":\"iana\",\"extensions\":[\"fg5\"]},\"application/vnd.fujitsu.oasysprs\":{\"source\":\"iana\",\"extensions\":[\"bh2\"]},\"application/vnd.fujixerox.art-ex\":{\"source\":\"iana\"},\"application/vnd.fujixerox.art4\":{\"source\":\"iana\"},\"application/vnd.fujixerox.ddd\":{\"source\":\"iana\",\"extensions\":[\"ddd\"]},\"application/vnd.fujixerox.docuworks\":{\"source\":\"iana\",\"extensions\":[\"xdw\"]},\"application/vnd.fujixerox.docuworks.binder\":{\"source\":\"iana\",\"extensions\":[\"xbd\"]},\"application/vnd.fujixerox.docuworks.container\":{\"source\":\"iana\"},\"application/vnd.fujixerox.hbpl\":{\"source\":\"iana\"},\"application/vnd.fut-misnet\":{\"source\":\"iana\"},\"application/vnd.futoin+cbor\":{\"source\":\"iana\"},\"application/vnd.futoin+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.fuzzysheet\":{\"source\":\"iana\",\"extensions\":[\"fzs\"]},\"application/vnd.genomatix.tuxedo\":{\"source\":\"iana\",\"extensions\":[\"txd\"]},\"application/vnd.gentics.grd+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.geo+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.geocube+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.geogebra.file\":{\"source\":\"iana\",\"extensions\":[\"ggb\"]},\"application/vnd.geogebra.tool\":{\"source\":\"iana\",\"extensions\":[\"ggt\"]},\"application/vnd.geometry-explorer\":{\"source\":\"iana\",\"extensions\":[\"gex\",\"gre\"]},\"application/vnd.geonext\":{\"source\":\"iana\",\"extensions\":[\"gxt\"]},\"application/vnd.geoplan\":{\"source\":\"iana\",\"extensions\":[\"g2w\"]},\"application/vnd.geospace\":{\"source\":\"iana\",\"extensions\":[\"g3w\"]},\"application/vnd.gerber\":{\"source\":\"iana\"},\"application/vnd.globalplatform.card-content-mgt\":{\"source\":\"iana\"},\"application/vnd.globalplatform.card-content-mgt-response\":{\"source\":\"iana\"},\"application/vnd.gmx\":{\"source\":\"iana\",\"extensions\":[\"gmx\"]},\"application/vnd.google-apps.document\":{\"compressible\":false,\"extensions\":[\"gdoc\"]},\"application/vnd.google-apps.presentation\":{\"compressible\":false,\"extensions\":[\"gslides\"]},\"application/vnd.google-apps.spreadsheet\":{\"compressible\":false,\"extensions\":[\"gsheet\"]},\"application/vnd.google-earth.kml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"kml\"]},\"application/vnd.google-earth.kmz\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"kmz\"]},\"application/vnd.gov.sk.e-form+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.gov.sk.e-form+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.gov.sk.xmldatacontainer+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.grafeq\":{\"source\":\"iana\",\"extensions\":[\"gqf\",\"gqs\"]},\"application/vnd.gridmp\":{\"source\":\"iana\"},\"application/vnd.groove-account\":{\"source\":\"iana\",\"extensions\":[\"gac\"]},\"application/vnd.groove-help\":{\"source\":\"iana\",\"extensions\":[\"ghf\"]},\"application/vnd.groove-identity-message\":{\"source\":\"iana\",\"extensions\":[\"gim\"]},\"application/vnd.groove-injector\":{\"source\":\"iana\",\"extensions\":[\"grv\"]},\"application/vnd.groove-tool-message\":{\"source\":\"iana\",\"extensions\":[\"gtm\"]},\"application/vnd.groove-tool-template\":{\"source\":\"iana\",\"extensions\":[\"tpl\"]},\"application/vnd.groove-vcard\":{\"source\":\"iana\",\"extensions\":[\"vcg\"]},\"application/vnd.hal+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hal+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"hal\"]},\"application/vnd.handheld-entertainment+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"zmm\"]},\"application/vnd.hbci\":{\"source\":\"iana\",\"extensions\":[\"hbci\"]},\"application/vnd.hc+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hcl-bireports\":{\"source\":\"iana\"},\"application/vnd.hdt\":{\"source\":\"iana\"},\"application/vnd.heroku+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hhe.lesson-player\":{\"source\":\"iana\",\"extensions\":[\"les\"]},\"application/vnd.hp-hpgl\":{\"source\":\"iana\",\"extensions\":[\"hpgl\"]},\"application/vnd.hp-hpid\":{\"source\":\"iana\",\"extensions\":[\"hpid\"]},\"application/vnd.hp-hps\":{\"source\":\"iana\",\"extensions\":[\"hps\"]},\"application/vnd.hp-jlyt\":{\"source\":\"iana\",\"extensions\":[\"jlt\"]},\"application/vnd.hp-pcl\":{\"source\":\"iana\",\"extensions\":[\"pcl\"]},\"application/vnd.hp-pclxl\":{\"source\":\"iana\",\"extensions\":[\"pclxl\"]},\"application/vnd.httphone\":{\"source\":\"iana\"},\"application/vnd.hydrostatix.sof-data\":{\"source\":\"iana\",\"extensions\":[\"sfd-hdstx\"]},\"application/vnd.hyper+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hyper-item+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hyperdrive+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.hzn-3d-crossword\":{\"source\":\"iana\"},\"application/vnd.ibm.afplinedata\":{\"source\":\"iana\"},\"application/vnd.ibm.electronic-media\":{\"source\":\"iana\"},\"application/vnd.ibm.minipay\":{\"source\":\"iana\",\"extensions\":[\"mpy\"]},\"application/vnd.ibm.modcap\":{\"source\":\"iana\",\"extensions\":[\"afp\",\"listafp\",\"list3820\"]},\"application/vnd.ibm.rights-management\":{\"source\":\"iana\",\"extensions\":[\"irm\"]},\"application/vnd.ibm.secure-container\":{\"source\":\"iana\",\"extensions\":[\"sc\"]},\"application/vnd.iccprofile\":{\"source\":\"iana\",\"extensions\":[\"icc\",\"icm\"]},\"application/vnd.ieee.1905\":{\"source\":\"iana\"},\"application/vnd.igloader\":{\"source\":\"iana\",\"extensions\":[\"igl\"]},\"application/vnd.imagemeter.folder+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.imagemeter.image+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.immervision-ivp\":{\"source\":\"iana\",\"extensions\":[\"ivp\"]},\"application/vnd.immervision-ivu\":{\"source\":\"iana\",\"extensions\":[\"ivu\"]},\"application/vnd.ims.imsccv1p1\":{\"source\":\"iana\"},\"application/vnd.ims.imsccv1p2\":{\"source\":\"iana\"},\"application/vnd.ims.imsccv1p3\":{\"source\":\"iana\"},\"application/vnd.ims.lis.v2.result+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolconsumerprofile+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolproxy+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolproxy.id+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolsettings+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ims.lti.v2.toolsettings.simple+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.informedcontrol.rms+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.informix-visionary\":{\"source\":\"iana\"},\"application/vnd.infotech.project\":{\"source\":\"iana\"},\"application/vnd.infotech.project+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.innopath.wamp.notification\":{\"source\":\"iana\"},\"application/vnd.insors.igm\":{\"source\":\"iana\",\"extensions\":[\"igm\"]},\"application/vnd.intercon.formnet\":{\"source\":\"iana\",\"extensions\":[\"xpw\",\"xpx\"]},\"application/vnd.intergeo\":{\"source\":\"iana\",\"extensions\":[\"i2g\"]},\"application/vnd.intertrust.digibox\":{\"source\":\"iana\"},\"application/vnd.intertrust.nncp\":{\"source\":\"iana\"},\"application/vnd.intu.qbo\":{\"source\":\"iana\",\"extensions\":[\"qbo\"]},\"application/vnd.intu.qfx\":{\"source\":\"iana\",\"extensions\":[\"qfx\"]},\"application/vnd.iptc.g2.catalogitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.conceptitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.knowledgeitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.newsitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.newsmessage+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.packageitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.iptc.g2.planningitem+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ipunplugged.rcprofile\":{\"source\":\"iana\",\"extensions\":[\"rcprofile\"]},\"application/vnd.irepository.package+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"irp\"]},\"application/vnd.is-xpr\":{\"source\":\"iana\",\"extensions\":[\"xpr\"]},\"application/vnd.isac.fcs\":{\"source\":\"iana\",\"extensions\":[\"fcs\"]},\"application/vnd.iso11783-10+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.jam\":{\"source\":\"iana\",\"extensions\":[\"jam\"]},\"application/vnd.japannet-directory-service\":{\"source\":\"iana\"},\"application/vnd.japannet-jpnstore-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-payment-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-registration\":{\"source\":\"iana\"},\"application/vnd.japannet-registration-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-setstore-wakeup\":{\"source\":\"iana\"},\"application/vnd.japannet-verification\":{\"source\":\"iana\"},\"application/vnd.japannet-verification-wakeup\":{\"source\":\"iana\"},\"application/vnd.jcp.javame.midlet-rms\":{\"source\":\"iana\",\"extensions\":[\"rms\"]},\"application/vnd.jisp\":{\"source\":\"iana\",\"extensions\":[\"jisp\"]},\"application/vnd.joost.joda-archive\":{\"source\":\"iana\",\"extensions\":[\"joda\"]},\"application/vnd.jsk.isdn-ngn\":{\"source\":\"iana\"},\"application/vnd.kahootz\":{\"source\":\"iana\",\"extensions\":[\"ktz\",\"ktr\"]},\"application/vnd.kde.karbon\":{\"source\":\"iana\",\"extensions\":[\"karbon\"]},\"application/vnd.kde.kchart\":{\"source\":\"iana\",\"extensions\":[\"chrt\"]},\"application/vnd.kde.kformula\":{\"source\":\"iana\",\"extensions\":[\"kfo\"]},\"application/vnd.kde.kivio\":{\"source\":\"iana\",\"extensions\":[\"flw\"]},\"application/vnd.kde.kontour\":{\"source\":\"iana\",\"extensions\":[\"kon\"]},\"application/vnd.kde.kpresenter\":{\"source\":\"iana\",\"extensions\":[\"kpr\",\"kpt\"]},\"application/vnd.kde.kspread\":{\"source\":\"iana\",\"extensions\":[\"ksp\"]},\"application/vnd.kde.kword\":{\"source\":\"iana\",\"extensions\":[\"kwd\",\"kwt\"]},\"application/vnd.kenameaapp\":{\"source\":\"iana\",\"extensions\":[\"htke\"]},\"application/vnd.kidspiration\":{\"source\":\"iana\",\"extensions\":[\"kia\"]},\"application/vnd.kinar\":{\"source\":\"iana\",\"extensions\":[\"kne\",\"knp\"]},\"application/vnd.koan\":{\"source\":\"iana\",\"extensions\":[\"skp\",\"skd\",\"skt\",\"skm\"]},\"application/vnd.kodak-descriptor\":{\"source\":\"iana\",\"extensions\":[\"sse\"]},\"application/vnd.las\":{\"source\":\"iana\"},\"application/vnd.las.las+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.las.las+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"lasxml\"]},\"application/vnd.laszip\":{\"source\":\"iana\"},\"application/vnd.leap+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.liberty-request+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.llamagraphics.life-balance.desktop\":{\"source\":\"iana\",\"extensions\":[\"lbd\"]},\"application/vnd.llamagraphics.life-balance.exchange+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"lbe\"]},\"application/vnd.logipipe.circuit+zip\":{\"source\":\"iana\",\"compressible\":false},\"application/vnd.loom\":{\"source\":\"iana\"},\"application/vnd.lotus-1-2-3\":{\"source\":\"iana\",\"extensions\":[\"123\"]},\"application/vnd.lotus-approach\":{\"source\":\"iana\",\"extensions\":[\"apr\"]},\"application/vnd.lotus-freelance\":{\"source\":\"iana\",\"extensions\":[\"pre\"]},\"application/vnd.lotus-notes\":{\"source\":\"iana\",\"extensions\":[\"nsf\"]},\"application/vnd.lotus-organizer\":{\"source\":\"iana\",\"extensions\":[\"org\"]},\"application/vnd.lotus-screencam\":{\"source\":\"iana\",\"extensions\":[\"scm\"]},\"application/vnd.lotus-wordpro\":{\"source\":\"iana\",\"extensions\":[\"lwp\"]},\"application/vnd.macports.portpkg\":{\"source\":\"iana\",\"extensions\":[\"portpkg\"]},\"application/vnd.mapbox-vector-tile\":{\"source\":\"iana\"},\"application/vnd.marlin.drm.actiontoken+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.marlin.drm.conftoken+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.marlin.drm.license+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.marlin.drm.mdcf\":{\"source\":\"iana\"},\"application/vnd.mason+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.maxmind.maxmind-db\":{\"source\":\"iana\"},\"application/vnd.mcd\":{\"source\":\"iana\",\"extensions\":[\"mcd\"]},\"application/vnd.medcalcdata\":{\"source\":\"iana\",\"extensions\":[\"mc1\"]},\"application/vnd.mediastation.cdkey\":{\"source\":\"iana\",\"extensions\":[\"cdkey\"]},\"application/vnd.meridian-slingshot\":{\"source\":\"iana\"},\"application/vnd.mfer\":{\"source\":\"iana\",\"extensions\":[\"mwf\"]},\"application/vnd.mfmp\":{\"source\":\"iana\",\"extensions\":[\"mfm\"]},\"application/vnd.micro+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.micrografx.flo\":{\"source\":\"iana\",\"extensions\":[\"flo\"]},\"application/vnd.micrografx.igx\":{\"source\":\"iana\",\"extensions\":[\"igx\"]},\"application/vnd.microsoft.portable-executable\":{\"source\":\"iana\"},\"application/vnd.microsoft.windows.thumbnail-cache\":{\"source\":\"iana\"},\"application/vnd.miele+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.mif\":{\"source\":\"iana\",\"extensions\":[\"mif\"]},\"application/vnd.minisoft-hp3000-save\":{\"source\":\"iana\"},\"application/vnd.mitsubishi.misty-guard.trustweb\":{\"source\":\"iana\"},\"application/vnd.mobius.daf\":{\"source\":\"iana\",\"extensions\":[\"daf\"]},\"application/vnd.mobius.dis\":{\"source\":\"iana\",\"extensions\":[\"dis\"]},\"application/vnd.mobius.mbk\":{\"source\":\"iana\",\"extensions\":[\"mbk\"]},\"application/vnd.mobius.mqy\":{\"source\":\"iana\",\"extensions\":[\"mqy\"]},\"application/vnd.mobius.msl\":{\"source\":\"iana\",\"extensions\":[\"msl\"]},\"application/vnd.mobius.plc\":{\"source\":\"iana\",\"extensions\":[\"plc\"]},\"application/vnd.mobius.txf\":{\"source\":\"iana\",\"extensions\":[\"txf\"]},\"application/vnd.mophun.application\":{\"source\":\"iana\",\"extensions\":[\"mpn\"]},\"application/vnd.mophun.certificate\":{\"source\":\"iana\",\"extensions\":[\"mpc\"]},\"application/vnd.motorola.flexsuite\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.adsi\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.fis\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.gotap\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.kmr\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.ttc\":{\"source\":\"iana\"},\"application/vnd.motorola.flexsuite.wem\":{\"source\":\"iana\"},\"application/vnd.motorola.iprm\":{\"source\":\"iana\"},\"application/vnd.mozilla.xul+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xul\"]},\"application/vnd.ms-3mfdocument\":{\"source\":\"iana\"},\"application/vnd.ms-artgalry\":{\"source\":\"iana\",\"extensions\":[\"cil\"]},\"application/vnd.ms-asf\":{\"source\":\"iana\"},\"application/vnd.ms-cab-compressed\":{\"source\":\"iana\",\"extensions\":[\"cab\"]},\"application/vnd.ms-color.iccprofile\":{\"source\":\"apache\"},\"application/vnd.ms-excel\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]},\"application/vnd.ms-excel.addin.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xlam\"]},\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xlsb\"]},\"application/vnd.ms-excel.sheet.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xlsm\"]},\"application/vnd.ms-excel.template.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"xltm\"]},\"application/vnd.ms-fontobject\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"eot\"]},\"application/vnd.ms-htmlhelp\":{\"source\":\"iana\",\"extensions\":[\"chm\"]},\"application/vnd.ms-ims\":{\"source\":\"iana\",\"extensions\":[\"ims\"]},\"application/vnd.ms-lrm\":{\"source\":\"iana\",\"extensions\":[\"lrm\"]},\"application/vnd.ms-office.activex+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ms-officetheme\":{\"source\":\"iana\",\"extensions\":[\"thmx\"]},\"application/vnd.ms-opentype\":{\"source\":\"apache\",\"compressible\":true},\"application/vnd.ms-outlook\":{\"compressible\":false,\"extensions\":[\"msg\"]},\"application/vnd.ms-package.obfuscated-opentype\":{\"source\":\"apache\"},\"application/vnd.ms-pki.seccat\":{\"source\":\"apache\",\"extensions\":[\"cat\"]},\"application/vnd.ms-pki.stl\":{\"source\":\"apache\",\"extensions\":[\"stl\"]},\"application/vnd.ms-playready.initiator+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ms-powerpoint\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ppt\",\"pps\",\"pot\"]},\"application/vnd.ms-powerpoint.addin.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"ppam\"]},\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"pptm\"]},\"application/vnd.ms-powerpoint.slide.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"sldm\"]},\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"ppsm\"]},\"application/vnd.ms-powerpoint.template.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"potm\"]},\"application/vnd.ms-printdevicecapabilities+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ms-printing.printticket+xml\":{\"source\":\"apache\",\"compressible\":true},\"application/vnd.ms-printschematicket+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.ms-project\":{\"source\":\"iana\",\"extensions\":[\"mpp\",\"mpt\"]},\"application/vnd.ms-tnef\":{\"source\":\"iana\"},\"application/vnd.ms-windows.devicepairing\":{\"source\":\"iana\"},\"application/vnd.ms-windows.nwprinting.oob\":{\"source\":\"iana\"},\"application/vnd.ms-windows.printerpairing\":{\"source\":\"iana\"},\"application/vnd.ms-windows.wsd.oob\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.lic-chlg-req\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.lic-resp\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.meter-chlg-req\":{\"source\":\"iana\"},\"application/vnd.ms-wmdrm.meter-resp\":{\"source\":\"iana\"},\"application/vnd.ms-word.document.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"docm\"]},\"application/vnd.ms-word.template.macroenabled.12\":{\"source\":\"iana\",\"extensions\":[\"dotm\"]},\"application/vnd.ms-works\":{\"source\":\"iana\",\"extensions\":[\"wps\",\"wks\",\"wcm\",\"wdb\"]},\"application/vnd.ms-wpl\":{\"source\":\"iana\",\"extensions\":[\"wpl\"]},\"application/vnd.ms-xpsdocument\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"xps\"]},\"application/vnd.msa-disk-image\":{\"source\":\"iana\"},\"application/vnd.mseq\":{\"source\":\"iana\",\"extensions\":[\"mseq\"]},\"application/vnd.msign\":{\"source\":\"iana\"},\"application/vnd.multiad.creator\":{\"source\":\"iana\"},\"application/vnd.multiad.creator.cif\":{\"source\":\"iana\"},\"application/vnd.music-niff\":{\"source\":\"iana\"},\"application/vnd.musician\":{\"source\":\"iana\",\"extensions\":[\"mus\"]},\"application/vnd.muvee.style\":{\"source\":\"iana\",\"extensions\":[\"msty\"]},\"application/vnd.mynfc\":{\"source\":\"iana\",\"extensions\":[\"taglet\"]},\"application/vnd.ncd.control\":{\"source\":\"iana\"},\"application/vnd.ncd.reference\":{\"source\":\"iana\"},\"application/vnd.nearst.inv+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nervana\":{\"source\":\"iana\"},\"application/vnd.netfpx\":{\"source\":\"iana\"},\"application/vnd.neurolanguage.nlu\":{\"source\":\"iana\",\"extensions\":[\"nlu\"]},\"application/vnd.nimn\":{\"source\":\"iana\"},\"application/vnd.nintendo.nitro.rom\":{\"source\":\"iana\"},\"application/vnd.nintendo.snes.rom\":{\"source\":\"iana\"},\"application/vnd.nitf\":{\"source\":\"iana\",\"extensions\":[\"ntf\",\"nitf\"]},\"application/vnd.noblenet-directory\":{\"source\":\"iana\",\"extensions\":[\"nnd\"]},\"application/vnd.noblenet-sealer\":{\"source\":\"iana\",\"extensions\":[\"nns\"]},\"application/vnd.noblenet-web\":{\"source\":\"iana\",\"extensions\":[\"nnw\"]},\"application/vnd.nokia.catalogs\":{\"source\":\"iana\"},\"application/vnd.nokia.conml+wbxml\":{\"source\":\"iana\"},\"application/vnd.nokia.conml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.iptv.config+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.isds-radio-presets\":{\"source\":\"iana\"},\"application/vnd.nokia.landmark+wbxml\":{\"source\":\"iana\"},\"application/vnd.nokia.landmark+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.landmarkcollection+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.n-gage.ac+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ac\"]},\"application/vnd.nokia.n-gage.data\":{\"source\":\"iana\",\"extensions\":[\"ngdat\"]},\"application/vnd.nokia.n-gage.symbian.install\":{\"source\":\"iana\",\"extensions\":[\"n-gage\"]},\"application/vnd.nokia.ncd\":{\"source\":\"iana\"},\"application/vnd.nokia.pcd+wbxml\":{\"source\":\"iana\"},\"application/vnd.nokia.pcd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.nokia.radio-preset\":{\"source\":\"iana\",\"extensions\":[\"rpst\"]},\"application/vnd.nokia.radio-presets\":{\"source\":\"iana\",\"extensions\":[\"rpss\"]},\"application/vnd.novadigm.edm\":{\"source\":\"iana\",\"extensions\":[\"edm\"]},\"application/vnd.novadigm.edx\":{\"source\":\"iana\",\"extensions\":[\"edx\"]},\"application/vnd.novadigm.ext\":{\"source\":\"iana\",\"extensions\":[\"ext\"]},\"application/vnd.ntt-local.content-share\":{\"source\":\"iana\"},\"application/vnd.ntt-local.file-transfer\":{\"source\":\"iana\"},\"application/vnd.ntt-local.ogw_remote-access\":{\"source\":\"iana\"},\"application/vnd.ntt-local.sip-ta_remote\":{\"source\":\"iana\"},\"application/vnd.ntt-local.sip-ta_tcp_stream\":{\"source\":\"iana\"},\"application/vnd.oasis.opendocument.chart\":{\"source\":\"iana\",\"extensions\":[\"odc\"]},\"application/vnd.oasis.opendocument.chart-template\":{\"source\":\"iana\",\"extensions\":[\"otc\"]},\"application/vnd.oasis.opendocument.database\":{\"source\":\"iana\",\"extensions\":[\"odb\"]},\"application/vnd.oasis.opendocument.formula\":{\"source\":\"iana\",\"extensions\":[\"odf\"]},\"application/vnd.oasis.opendocument.formula-template\":{\"source\":\"iana\",\"extensions\":[\"odft\"]},\"application/vnd.oasis.opendocument.graphics\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"odg\"]},\"application/vnd.oasis.opendocument.graphics-template\":{\"source\":\"iana\",\"extensions\":[\"otg\"]},\"application/vnd.oasis.opendocument.image\":{\"source\":\"iana\",\"extensions\":[\"odi\"]},\"application/vnd.oasis.opendocument.image-template\":{\"source\":\"iana\",\"extensions\":[\"oti\"]},\"application/vnd.oasis.opendocument.presentation\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"odp\"]},\"application/vnd.oasis.opendocument.presentation-template\":{\"source\":\"iana\",\"extensions\":[\"otp\"]},\"application/vnd.oasis.opendocument.spreadsheet\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ods\"]},\"application/vnd.oasis.opendocument.spreadsheet-template\":{\"source\":\"iana\",\"extensions\":[\"ots\"]},\"application/vnd.oasis.opendocument.text\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"odt\"]},\"application/vnd.oasis.opendocument.text-master\":{\"source\":\"iana\",\"extensions\":[\"odm\"]},\"application/vnd.oasis.opendocument.text-template\":{\"source\":\"iana\",\"extensions\":[\"ott\"]},\"application/vnd.oasis.opendocument.text-web\":{\"source\":\"iana\",\"extensions\":[\"oth\"]},\"application/vnd.obn\":{\"source\":\"iana\"},\"application/vnd.ocf+cbor\":{\"source\":\"iana\"},\"application/vnd.oci.image.manifest.v1+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oftn.l10n+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.contentaccessdownload+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.contentaccessstreaming+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.cspg-hexbinary\":{\"source\":\"iana\"},\"application/vnd.oipf.dae.svg+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.dae.xhtml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.mippvcontrolmessage+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.pae.gem\":{\"source\":\"iana\"},\"application/vnd.oipf.spdiscovery+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.spdlist+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.ueprofile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oipf.userprofile+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.olpc-sugar\":{\"source\":\"iana\",\"extensions\":[\"xo\"]},\"application/vnd.oma-scws-config\":{\"source\":\"iana\"},\"application/vnd.oma-scws-http-request\":{\"source\":\"iana\"},\"application/vnd.oma-scws-http-response\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.associated-procedure-parameter+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.drm-trigger+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.imd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.ltkm\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.notification+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.provisioningtrigger\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.sgboot\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.sgdd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.sgdu\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.simple-symbol-container\":{\"source\":\"iana\"},\"application/vnd.oma.bcast.smartcard-trigger+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.sprov+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.bcast.stkm\":{\"source\":\"iana\"},\"application/vnd.oma.cab-address-book+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.cab-feature-handler+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.cab-pcc+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.cab-subs-invite+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.cab-user-prefs+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.dcd\":{\"source\":\"iana\"},\"application/vnd.oma.dcdc\":{\"source\":\"iana\"},\"application/vnd.oma.dd2+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dd2\"]},\"application/vnd.oma.drm.risd+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.group-usage-list+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.lwm2m+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.lwm2m+tlv\":{\"source\":\"iana\"},\"application/vnd.oma.pal+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.detailed-progress-report+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.final-report+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.groups+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.invocation-descriptor+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.poc.optimized-progress-report+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.push\":{\"source\":\"iana\"},\"application/vnd.oma.scidm.messages+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oma.xcap-directory+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.omads-email+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/vnd.omads-file+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/vnd.omads-folder+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/vnd.omaloc-supl-init\":{\"source\":\"iana\"},\"application/vnd.onepager\":{\"source\":\"iana\"},\"application/vnd.onepagertamp\":{\"source\":\"iana\"},\"application/vnd.onepagertamx\":{\"source\":\"iana\"},\"application/vnd.onepagertat\":{\"source\":\"iana\"},\"application/vnd.onepagertatp\":{\"source\":\"iana\"},\"application/vnd.onepagertatx\":{\"source\":\"iana\"},\"application/vnd.openblox.game+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"obgx\"]},\"application/vnd.openblox.game-binary\":{\"source\":\"iana\"},\"application/vnd.openeye.oeb\":{\"source\":\"iana\"},\"application/vnd.openofficeorg.extension\":{\"source\":\"apache\",\"extensions\":[\"oxt\"]},\"application/vnd.openstreetmap.data+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"osm\"]},\"application/vnd.openxmlformats-officedocument.custom-properties+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawing+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.extended-properties+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"pptx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slide\":{\"source\":\"iana\",\"extensions\":[\"sldx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":{\"source\":\"iana\",\"extensions\":[\"ppsx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.template\":{\"source\":\"iana\",\"extensions\":[\"potx\"]},\"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"xlsx\"]},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":{\"source\":\"iana\",\"extensions\":[\"xltx\"]},\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.theme+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.themeoverride+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.vmldrawing\":{\"source\":\"iana\"},\"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"docx\"]},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":{\"source\":\"iana\",\"extensions\":[\"dotx\"]},\"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-package.core-properties+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.openxmlformats-package.relationships+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oracle.resource+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.orange.indata\":{\"source\":\"iana\"},\"application/vnd.osa.netdeploy\":{\"source\":\"iana\"},\"application/vnd.osgeo.mapguide.package\":{\"source\":\"iana\",\"extensions\":[\"mgp\"]},\"application/vnd.osgi.bundle\":{\"source\":\"iana\"},\"application/vnd.osgi.dp\":{\"source\":\"iana\",\"extensions\":[\"dp\"]},\"application/vnd.osgi.subsystem\":{\"source\":\"iana\",\"extensions\":[\"esa\"]},\"application/vnd.otps.ct-kip+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.oxli.countgraph\":{\"source\":\"iana\"},\"application/vnd.pagerduty+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.palm\":{\"source\":\"iana\",\"extensions\":[\"pdb\",\"pqa\",\"oprc\"]},\"application/vnd.panoply\":{\"source\":\"iana\"},\"application/vnd.paos.xml\":{\"source\":\"iana\"},\"application/vnd.patentdive\":{\"source\":\"iana\"},\"application/vnd.patientecommsdoc\":{\"source\":\"iana\"},\"application/vnd.pawaafile\":{\"source\":\"iana\",\"extensions\":[\"paw\"]},\"application/vnd.pcos\":{\"source\":\"iana\"},\"application/vnd.pg.format\":{\"source\":\"iana\",\"extensions\":[\"str\"]},\"application/vnd.pg.osasli\":{\"source\":\"iana\",\"extensions\":[\"ei6\"]},\"application/vnd.piaccess.application-licence\":{\"source\":\"iana\"},\"application/vnd.picsel\":{\"source\":\"iana\",\"extensions\":[\"efif\"]},\"application/vnd.pmi.widget\":{\"source\":\"iana\",\"extensions\":[\"wg\"]},\"application/vnd.poc.group-advertisement+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.pocketlearn\":{\"source\":\"iana\",\"extensions\":[\"plf\"]},\"application/vnd.powerbuilder6\":{\"source\":\"iana\",\"extensions\":[\"pbd\"]},\"application/vnd.powerbuilder6-s\":{\"source\":\"iana\"},\"application/vnd.powerbuilder7\":{\"source\":\"iana\"},\"application/vnd.powerbuilder7-s\":{\"source\":\"iana\"},\"application/vnd.powerbuilder75\":{\"source\":\"iana\"},\"application/vnd.powerbuilder75-s\":{\"source\":\"iana\"},\"application/vnd.preminet\":{\"source\":\"iana\"},\"application/vnd.previewsystems.box\":{\"source\":\"iana\",\"extensions\":[\"box\"]},\"application/vnd.proteus.magazine\":{\"source\":\"iana\",\"extensions\":[\"mgz\"]},\"application/vnd.psfs\":{\"source\":\"iana\"},\"application/vnd.publishare-delta-tree\":{\"source\":\"iana\",\"extensions\":[\"qps\"]},\"application/vnd.pvi.ptid1\":{\"source\":\"iana\",\"extensions\":[\"ptid\"]},\"application/vnd.pwg-multiplexed\":{\"source\":\"iana\"},\"application/vnd.pwg-xhtml-print+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.qualcomm.brew-app-res\":{\"source\":\"iana\"},\"application/vnd.quarantainenet\":{\"source\":\"iana\"},\"application/vnd.quark.quarkxpress\":{\"source\":\"iana\",\"extensions\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]},\"application/vnd.quobject-quoxdocument\":{\"source\":\"iana\"},\"application/vnd.radisys.moml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit-conf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit-conn+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit-dialog+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-audit-stream+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-conf+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-base+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-fax-detect+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-group+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-speech+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.radisys.msml-dialog-transform+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.rainstor.data\":{\"source\":\"iana\"},\"application/vnd.rapid\":{\"source\":\"iana\"},\"application/vnd.rar\":{\"source\":\"iana\"},\"application/vnd.realvnc.bed\":{\"source\":\"iana\",\"extensions\":[\"bed\"]},\"application/vnd.recordare.musicxml\":{\"source\":\"iana\",\"extensions\":[\"mxl\"]},\"application/vnd.recordare.musicxml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"musicxml\"]},\"application/vnd.renlearn.rlprint\":{\"source\":\"iana\"},\"application/vnd.restful+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.rig.cryptonote\":{\"source\":\"iana\",\"extensions\":[\"cryptonote\"]},\"application/vnd.rim.cod\":{\"source\":\"apache\",\"extensions\":[\"cod\"]},\"application/vnd.rn-realmedia\":{\"source\":\"apache\",\"extensions\":[\"rm\"]},\"application/vnd.rn-realmedia-vbr\":{\"source\":\"apache\",\"extensions\":[\"rmvb\"]},\"application/vnd.route66.link66+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"link66\"]},\"application/vnd.rs-274x\":{\"source\":\"iana\"},\"application/vnd.ruckus.download\":{\"source\":\"iana\"},\"application/vnd.s3sms\":{\"source\":\"iana\"},\"application/vnd.sailingtracker.track\":{\"source\":\"iana\",\"extensions\":[\"st\"]},\"application/vnd.sar\":{\"source\":\"iana\"},\"application/vnd.sbm.cid\":{\"source\":\"iana\"},\"application/vnd.sbm.mid2\":{\"source\":\"iana\"},\"application/vnd.scribus\":{\"source\":\"iana\"},\"application/vnd.sealed.3df\":{\"source\":\"iana\"},\"application/vnd.sealed.csf\":{\"source\":\"iana\"},\"application/vnd.sealed.doc\":{\"source\":\"iana\"},\"application/vnd.sealed.eml\":{\"source\":\"iana\"},\"application/vnd.sealed.mht\":{\"source\":\"iana\"},\"application/vnd.sealed.net\":{\"source\":\"iana\"},\"application/vnd.sealed.ppt\":{\"source\":\"iana\"},\"application/vnd.sealed.tiff\":{\"source\":\"iana\"},\"application/vnd.sealed.xls\":{\"source\":\"iana\"},\"application/vnd.sealedmedia.softseal.html\":{\"source\":\"iana\"},\"application/vnd.sealedmedia.softseal.pdf\":{\"source\":\"iana\"},\"application/vnd.seemail\":{\"source\":\"iana\",\"extensions\":[\"see\"]},\"application/vnd.sema\":{\"source\":\"iana\",\"extensions\":[\"sema\"]},\"application/vnd.semd\":{\"source\":\"iana\",\"extensions\":[\"semd\"]},\"application/vnd.semf\":{\"source\":\"iana\",\"extensions\":[\"semf\"]},\"application/vnd.shade-save-file\":{\"source\":\"iana\"},\"application/vnd.shana.informed.formdata\":{\"source\":\"iana\",\"extensions\":[\"ifm\"]},\"application/vnd.shana.informed.formtemplate\":{\"source\":\"iana\",\"extensions\":[\"itp\"]},\"application/vnd.shana.informed.interchange\":{\"source\":\"iana\",\"extensions\":[\"iif\"]},\"application/vnd.shana.informed.package\":{\"source\":\"iana\",\"extensions\":[\"ipk\"]},\"application/vnd.shootproof+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.shopkick+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.shp\":{\"source\":\"iana\"},\"application/vnd.shx\":{\"source\":\"iana\"},\"application/vnd.sigrok.session\":{\"source\":\"iana\"},\"application/vnd.simtech-mindmapper\":{\"source\":\"iana\",\"extensions\":[\"twd\",\"twds\"]},\"application/vnd.siren+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.smaf\":{\"source\":\"iana\",\"extensions\":[\"mmf\"]},\"application/vnd.smart.notebook\":{\"source\":\"iana\"},\"application/vnd.smart.teacher\":{\"source\":\"iana\",\"extensions\":[\"teacher\"]},\"application/vnd.snesdev-page-table\":{\"source\":\"iana\"},\"application/vnd.software602.filler.form+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"fo\"]},\"application/vnd.software602.filler.form-xml-zip\":{\"source\":\"iana\"},\"application/vnd.solent.sdkm+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"sdkm\",\"sdkd\"]},\"application/vnd.spotfire.dxp\":{\"source\":\"iana\",\"extensions\":[\"dxp\"]},\"application/vnd.spotfire.sfs\":{\"source\":\"iana\",\"extensions\":[\"sfs\"]},\"application/vnd.sqlite3\":{\"source\":\"iana\"},\"application/vnd.sss-cod\":{\"source\":\"iana\"},\"application/vnd.sss-dtf\":{\"source\":\"iana\"},\"application/vnd.sss-ntf\":{\"source\":\"iana\"},\"application/vnd.stardivision.calc\":{\"source\":\"apache\",\"extensions\":[\"sdc\"]},\"application/vnd.stardivision.draw\":{\"source\":\"apache\",\"extensions\":[\"sda\"]},\"application/vnd.stardivision.impress\":{\"source\":\"apache\",\"extensions\":[\"sdd\"]},\"application/vnd.stardivision.math\":{\"source\":\"apache\",\"extensions\":[\"smf\"]},\"application/vnd.stardivision.writer\":{\"source\":\"apache\",\"extensions\":[\"sdw\",\"vor\"]},\"application/vnd.stardivision.writer-global\":{\"source\":\"apache\",\"extensions\":[\"sgl\"]},\"application/vnd.stepmania.package\":{\"source\":\"iana\",\"extensions\":[\"smzip\"]},\"application/vnd.stepmania.stepchart\":{\"source\":\"iana\",\"extensions\":[\"sm\"]},\"application/vnd.street-stream\":{\"source\":\"iana\"},\"application/vnd.sun.wadl+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"wadl\"]},\"application/vnd.sun.xml.calc\":{\"source\":\"apache\",\"extensions\":[\"sxc\"]},\"application/vnd.sun.xml.calc.template\":{\"source\":\"apache\",\"extensions\":[\"stc\"]},\"application/vnd.sun.xml.draw\":{\"source\":\"apache\",\"extensions\":[\"sxd\"]},\"application/vnd.sun.xml.draw.template\":{\"source\":\"apache\",\"extensions\":[\"std\"]},\"application/vnd.sun.xml.impress\":{\"source\":\"apache\",\"extensions\":[\"sxi\"]},\"application/vnd.sun.xml.impress.template\":{\"source\":\"apache\",\"extensions\":[\"sti\"]},\"application/vnd.sun.xml.math\":{\"source\":\"apache\",\"extensions\":[\"sxm\"]},\"application/vnd.sun.xml.writer\":{\"source\":\"apache\",\"extensions\":[\"sxw\"]},\"application/vnd.sun.xml.writer.global\":{\"source\":\"apache\",\"extensions\":[\"sxg\"]},\"application/vnd.sun.xml.writer.template\":{\"source\":\"apache\",\"extensions\":[\"stw\"]},\"application/vnd.sus-calendar\":{\"source\":\"iana\",\"extensions\":[\"sus\",\"susp\"]},\"application/vnd.svd\":{\"source\":\"iana\",\"extensions\":[\"svd\"]},\"application/vnd.swiftview-ics\":{\"source\":\"iana\"},\"application/vnd.symbian.install\":{\"source\":\"apache\",\"extensions\":[\"sis\",\"sisx\"]},\"application/vnd.syncml+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"xsm\"]},\"application/vnd.syncml.dm+wbxml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"extensions\":[\"bdm\"]},\"application/vnd.syncml.dm+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"xdm\"]},\"application/vnd.syncml.dm.notification\":{\"source\":\"iana\"},\"application/vnd.syncml.dmddf+wbxml\":{\"source\":\"iana\"},\"application/vnd.syncml.dmddf+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"ddf\"]},\"application/vnd.syncml.dmtnds+wbxml\":{\"source\":\"iana\"},\"application/vnd.syncml.dmtnds+xml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true},\"application/vnd.syncml.ds.notification\":{\"source\":\"iana\"},\"application/vnd.tableschema+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.tao.intent-module-archive\":{\"source\":\"iana\",\"extensions\":[\"tao\"]},\"application/vnd.tcpdump.pcap\":{\"source\":\"iana\",\"extensions\":[\"pcap\",\"cap\",\"dmp\"]},\"application/vnd.think-cell.ppttc+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.tmd.mediaflex.api+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.tml\":{\"source\":\"iana\"},\"application/vnd.tmobile-livetv\":{\"source\":\"iana\",\"extensions\":[\"tmo\"]},\"application/vnd.tri.onesource\":{\"source\":\"iana\"},\"application/vnd.trid.tpt\":{\"source\":\"iana\",\"extensions\":[\"tpt\"]},\"application/vnd.triscape.mxs\":{\"source\":\"iana\",\"extensions\":[\"mxs\"]},\"application/vnd.trueapp\":{\"source\":\"iana\",\"extensions\":[\"tra\"]},\"application/vnd.truedoc\":{\"source\":\"iana\"},\"application/vnd.ubisoft.webplayer\":{\"source\":\"iana\"},\"application/vnd.ufdl\":{\"source\":\"iana\",\"extensions\":[\"ufd\",\"ufdl\"]},\"application/vnd.uiq.theme\":{\"source\":\"iana\",\"extensions\":[\"utz\"]},\"application/vnd.umajin\":{\"source\":\"iana\",\"extensions\":[\"umj\"]},\"application/vnd.unity\":{\"source\":\"iana\",\"extensions\":[\"unityweb\"]},\"application/vnd.uoml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"uoml\"]},\"application/vnd.uplanet.alert\":{\"source\":\"iana\"},\"application/vnd.uplanet.alert-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.bearer-choice\":{\"source\":\"iana\"},\"application/vnd.uplanet.bearer-choice-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.cacheop\":{\"source\":\"iana\"},\"application/vnd.uplanet.cacheop-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.channel\":{\"source\":\"iana\"},\"application/vnd.uplanet.channel-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.list\":{\"source\":\"iana\"},\"application/vnd.uplanet.list-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.listcmd\":{\"source\":\"iana\"},\"application/vnd.uplanet.listcmd-wbxml\":{\"source\":\"iana\"},\"application/vnd.uplanet.signal\":{\"source\":\"iana\"},\"application/vnd.uri-map\":{\"source\":\"iana\"},\"application/vnd.valve.source.material\":{\"source\":\"iana\"},\"application/vnd.vcx\":{\"source\":\"iana\",\"extensions\":[\"vcx\"]},\"application/vnd.vd-study\":{\"source\":\"iana\"},\"application/vnd.vectorworks\":{\"source\":\"iana\"},\"application/vnd.vel+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.verimatrix.vcas\":{\"source\":\"iana\"},\"application/vnd.veryant.thin\":{\"source\":\"iana\"},\"application/vnd.ves.encrypted\":{\"source\":\"iana\"},\"application/vnd.vidsoft.vidconference\":{\"source\":\"iana\"},\"application/vnd.visio\":{\"source\":\"iana\",\"extensions\":[\"vsd\",\"vst\",\"vss\",\"vsw\"]},\"application/vnd.visionary\":{\"source\":\"iana\",\"extensions\":[\"vis\"]},\"application/vnd.vividence.scriptfile\":{\"source\":\"iana\"},\"application/vnd.vsf\":{\"source\":\"iana\",\"extensions\":[\"vsf\"]},\"application/vnd.wap.sic\":{\"source\":\"iana\"},\"application/vnd.wap.slc\":{\"source\":\"iana\"},\"application/vnd.wap.wbxml\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"extensions\":[\"wbxml\"]},\"application/vnd.wap.wmlc\":{\"source\":\"iana\",\"extensions\":[\"wmlc\"]},\"application/vnd.wap.wmlscriptc\":{\"source\":\"iana\",\"extensions\":[\"wmlsc\"]},\"application/vnd.webturbo\":{\"source\":\"iana\",\"extensions\":[\"wtb\"]},\"application/vnd.wfa.p2p\":{\"source\":\"iana\"},\"application/vnd.wfa.wsc\":{\"source\":\"iana\"},\"application/vnd.windows.devicepairing\":{\"source\":\"iana\"},\"application/vnd.wmc\":{\"source\":\"iana\"},\"application/vnd.wmf.bootstrap\":{\"source\":\"iana\"},\"application/vnd.wolfram.mathematica\":{\"source\":\"iana\"},\"application/vnd.wolfram.mathematica.package\":{\"source\":\"iana\"},\"application/vnd.wolfram.player\":{\"source\":\"iana\",\"extensions\":[\"nbp\"]},\"application/vnd.wordperfect\":{\"source\":\"iana\",\"extensions\":[\"wpd\"]},\"application/vnd.wqd\":{\"source\":\"iana\",\"extensions\":[\"wqd\"]},\"application/vnd.wrq-hp3000-labelled\":{\"source\":\"iana\"},\"application/vnd.wt.stf\":{\"source\":\"iana\",\"extensions\":[\"stf\"]},\"application/vnd.wv.csp+wbxml\":{\"source\":\"iana\"},\"application/vnd.wv.csp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.wv.ssp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.xacml+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.xara\":{\"source\":\"iana\",\"extensions\":[\"xar\"]},\"application/vnd.xfdl\":{\"source\":\"iana\",\"extensions\":[\"xfdl\"]},\"application/vnd.xfdl.webform\":{\"source\":\"iana\"},\"application/vnd.xmi+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/vnd.xmpie.cpkg\":{\"source\":\"iana\"},\"application/vnd.xmpie.dpkg\":{\"source\":\"iana\"},\"application/vnd.xmpie.plan\":{\"source\":\"iana\"},\"application/vnd.xmpie.ppkg\":{\"source\":\"iana\"},\"application/vnd.xmpie.xlim\":{\"source\":\"iana\"},\"application/vnd.yamaha.hv-dic\":{\"source\":\"iana\",\"extensions\":[\"hvd\"]},\"application/vnd.yamaha.hv-script\":{\"source\":\"iana\",\"extensions\":[\"hvs\"]},\"application/vnd.yamaha.hv-voice\":{\"source\":\"iana\",\"extensions\":[\"hvp\"]},\"application/vnd.yamaha.openscoreformat\":{\"source\":\"iana\",\"extensions\":[\"osf\"]},\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"osfpvg\"]},\"application/vnd.yamaha.remote-setup\":{\"source\":\"iana\"},\"application/vnd.yamaha.smaf-audio\":{\"source\":\"iana\",\"extensions\":[\"saf\"]},\"application/vnd.yamaha.smaf-phrase\":{\"source\":\"iana\",\"extensions\":[\"spf\"]},\"application/vnd.yamaha.through-ngn\":{\"source\":\"iana\"},\"application/vnd.yamaha.tunnel-udpencap\":{\"source\":\"iana\"},\"application/vnd.yaoweme\":{\"source\":\"iana\"},\"application/vnd.yellowriver-custom-menu\":{\"source\":\"iana\",\"extensions\":[\"cmp\"]},\"application/vnd.youtube.yt\":{\"source\":\"iana\"},\"application/vnd.zul\":{\"source\":\"iana\",\"extensions\":[\"zir\",\"zirz\"]},\"application/vnd.zzazz.deck+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"zaz\"]},\"application/voicexml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"vxml\"]},\"application/voucher-cms+json\":{\"source\":\"iana\",\"compressible\":true},\"application/vq-rtcpxr\":{\"source\":\"iana\"},\"application/wasm\":{\"compressible\":true,\"extensions\":[\"wasm\"]},\"application/watcherinfo+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/webpush-options+json\":{\"source\":\"iana\",\"compressible\":true},\"application/whoispp-query\":{\"source\":\"iana\"},\"application/whoispp-response\":{\"source\":\"iana\"},\"application/widget\":{\"source\":\"iana\",\"extensions\":[\"wgt\"]},\"application/winhlp\":{\"source\":\"apache\",\"extensions\":[\"hlp\"]},\"application/wita\":{\"source\":\"iana\"},\"application/wordperfect5.1\":{\"source\":\"iana\"},\"application/wsdl+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"wsdl\"]},\"application/wspolicy+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"wspolicy\"]},\"application/x-7z-compressed\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"7z\"]},\"application/x-abiword\":{\"source\":\"apache\",\"extensions\":[\"abw\"]},\"application/x-ace-compressed\":{\"source\":\"apache\",\"extensions\":[\"ace\"]},\"application/x-amf\":{\"source\":\"apache\"},\"application/x-apple-diskimage\":{\"source\":\"apache\",\"extensions\":[\"dmg\"]},\"application/x-arj\":{\"compressible\":false,\"extensions\":[\"arj\"]},\"application/x-authorware-bin\":{\"source\":\"apache\",\"extensions\":[\"aab\",\"x32\",\"u32\",\"vox\"]},\"application/x-authorware-map\":{\"source\":\"apache\",\"extensions\":[\"aam\"]},\"application/x-authorware-seg\":{\"source\":\"apache\",\"extensions\":[\"aas\"]},\"application/x-bcpio\":{\"source\":\"apache\",\"extensions\":[\"bcpio\"]},\"application/x-bdoc\":{\"compressible\":false,\"extensions\":[\"bdoc\"]},\"application/x-bittorrent\":{\"source\":\"apache\",\"extensions\":[\"torrent\"]},\"application/x-blorb\":{\"source\":\"apache\",\"extensions\":[\"blb\",\"blorb\"]},\"application/x-bzip\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"bz\"]},\"application/x-bzip2\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"bz2\",\"boz\"]},\"application/x-cbr\":{\"source\":\"apache\",\"extensions\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]},\"application/x-cdlink\":{\"source\":\"apache\",\"extensions\":[\"vcd\"]},\"application/x-cfs-compressed\":{\"source\":\"apache\",\"extensions\":[\"cfs\"]},\"application/x-chat\":{\"source\":\"apache\",\"extensions\":[\"chat\"]},\"application/x-chess-pgn\":{\"source\":\"apache\",\"extensions\":[\"pgn\"]},\"application/x-chrome-extension\":{\"extensions\":[\"crx\"]},\"application/x-cocoa\":{\"source\":\"nginx\",\"extensions\":[\"cco\"]},\"application/x-compress\":{\"source\":\"apache\"},\"application/x-conference\":{\"source\":\"apache\",\"extensions\":[\"nsc\"]},\"application/x-cpio\":{\"source\":\"apache\",\"extensions\":[\"cpio\"]},\"application/x-csh\":{\"source\":\"apache\",\"extensions\":[\"csh\"]},\"application/x-deb\":{\"compressible\":false},\"application/x-debian-package\":{\"source\":\"apache\",\"extensions\":[\"deb\",\"udeb\"]},\"application/x-dgc-compressed\":{\"source\":\"apache\",\"extensions\":[\"dgc\"]},\"application/x-director\":{\"source\":\"apache\",\"extensions\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]},\"application/x-doom\":{\"source\":\"apache\",\"extensions\":[\"wad\"]},\"application/x-dtbncx+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"ncx\"]},\"application/x-dtbook+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"dtb\"]},\"application/x-dtbresource+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"res\"]},\"application/x-dvi\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"dvi\"]},\"application/x-envoy\":{\"source\":\"apache\",\"extensions\":[\"evy\"]},\"application/x-eva\":{\"source\":\"apache\",\"extensions\":[\"eva\"]},\"application/x-font-bdf\":{\"source\":\"apache\",\"extensions\":[\"bdf\"]},\"application/x-font-dos\":{\"source\":\"apache\"},\"application/x-font-framemaker\":{\"source\":\"apache\"},\"application/x-font-ghostscript\":{\"source\":\"apache\",\"extensions\":[\"gsf\"]},\"application/x-font-libgrx\":{\"source\":\"apache\"},\"application/x-font-linux-psf\":{\"source\":\"apache\",\"extensions\":[\"psf\"]},\"application/x-font-pcf\":{\"source\":\"apache\",\"extensions\":[\"pcf\"]},\"application/x-font-snf\":{\"source\":\"apache\",\"extensions\":[\"snf\"]},\"application/x-font-speedo\":{\"source\":\"apache\"},\"application/x-font-sunos-news\":{\"source\":\"apache\"},\"application/x-font-type1\":{\"source\":\"apache\",\"extensions\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"]},\"application/x-font-vfont\":{\"source\":\"apache\"},\"application/x-freearc\":{\"source\":\"apache\",\"extensions\":[\"arc\"]},\"application/x-futuresplash\":{\"source\":\"apache\",\"extensions\":[\"spl\"]},\"application/x-gca-compressed\":{\"source\":\"apache\",\"extensions\":[\"gca\"]},\"application/x-glulx\":{\"source\":\"apache\",\"extensions\":[\"ulx\"]},\"application/x-gnumeric\":{\"source\":\"apache\",\"extensions\":[\"gnumeric\"]},\"application/x-gramps-xml\":{\"source\":\"apache\",\"extensions\":[\"gramps\"]},\"application/x-gtar\":{\"source\":\"apache\",\"extensions\":[\"gtar\"]},\"application/x-gzip\":{\"source\":\"apache\"},\"application/x-hdf\":{\"source\":\"apache\",\"extensions\":[\"hdf\"]},\"application/x-httpd-php\":{\"compressible\":true,\"extensions\":[\"php\"]},\"application/x-install-instructions\":{\"source\":\"apache\",\"extensions\":[\"install\"]},\"application/x-iso9660-image\":{\"source\":\"apache\",\"extensions\":[\"iso\"]},\"application/x-java-archive-diff\":{\"source\":\"nginx\",\"extensions\":[\"jardiff\"]},\"application/x-java-jnlp-file\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"jnlp\"]},\"application/x-javascript\":{\"compressible\":true},\"application/x-keepass2\":{\"extensions\":[\"kdbx\"]},\"application/x-latex\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"latex\"]},\"application/x-lua-bytecode\":{\"extensions\":[\"luac\"]},\"application/x-lzh-compressed\":{\"source\":\"apache\",\"extensions\":[\"lzh\",\"lha\"]},\"application/x-makeself\":{\"source\":\"nginx\",\"extensions\":[\"run\"]},\"application/x-mie\":{\"source\":\"apache\",\"extensions\":[\"mie\"]},\"application/x-mobipocket-ebook\":{\"source\":\"apache\",\"extensions\":[\"prc\",\"mobi\"]},\"application/x-mpegurl\":{\"compressible\":false},\"application/x-ms-application\":{\"source\":\"apache\",\"extensions\":[\"application\"]},\"application/x-ms-shortcut\":{\"source\":\"apache\",\"extensions\":[\"lnk\"]},\"application/x-ms-wmd\":{\"source\":\"apache\",\"extensions\":[\"wmd\"]},\"application/x-ms-wmz\":{\"source\":\"apache\",\"extensions\":[\"wmz\"]},\"application/x-ms-xbap\":{\"source\":\"apache\",\"extensions\":[\"xbap\"]},\"application/x-msaccess\":{\"source\":\"apache\",\"extensions\":[\"mdb\"]},\"application/x-msbinder\":{\"source\":\"apache\",\"extensions\":[\"obd\"]},\"application/x-mscardfile\":{\"source\":\"apache\",\"extensions\":[\"crd\"]},\"application/x-msclip\":{\"source\":\"apache\",\"extensions\":[\"clp\"]},\"application/x-msdos-program\":{\"extensions\":[\"exe\"]},\"application/x-msdownload\":{\"source\":\"apache\",\"extensions\":[\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]},\"application/x-msmediaview\":{\"source\":\"apache\",\"extensions\":[\"mvb\",\"m13\",\"m14\"]},\"application/x-msmetafile\":{\"source\":\"apache\",\"extensions\":[\"wmf\",\"wmz\",\"emf\",\"emz\"]},\"application/x-msmoney\":{\"source\":\"apache\",\"extensions\":[\"mny\"]},\"application/x-mspublisher\":{\"source\":\"apache\",\"extensions\":[\"pub\"]},\"application/x-msschedule\":{\"source\":\"apache\",\"extensions\":[\"scd\"]},\"application/x-msterminal\":{\"source\":\"apache\",\"extensions\":[\"trm\"]},\"application/x-mswrite\":{\"source\":\"apache\",\"extensions\":[\"wri\"]},\"application/x-netcdf\":{\"source\":\"apache\",\"extensions\":[\"nc\",\"cdf\"]},\"application/x-ns-proxy-autoconfig\":{\"compressible\":true,\"extensions\":[\"pac\"]},\"application/x-nzb\":{\"source\":\"apache\",\"extensions\":[\"nzb\"]},\"application/x-perl\":{\"source\":\"nginx\",\"extensions\":[\"pl\",\"pm\"]},\"application/x-pilot\":{\"source\":\"nginx\",\"extensions\":[\"prc\",\"pdb\"]},\"application/x-pkcs12\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"p12\",\"pfx\"]},\"application/x-pkcs7-certificates\":{\"source\":\"apache\",\"extensions\":[\"p7b\",\"spc\"]},\"application/x-pkcs7-certreqresp\":{\"source\":\"apache\",\"extensions\":[\"p7r\"]},\"application/x-pki-message\":{\"source\":\"iana\"},\"application/x-rar-compressed\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"rar\"]},\"application/x-redhat-package-manager\":{\"source\":\"nginx\",\"extensions\":[\"rpm\"]},\"application/x-research-info-systems\":{\"source\":\"apache\",\"extensions\":[\"ris\"]},\"application/x-sea\":{\"source\":\"nginx\",\"extensions\":[\"sea\"]},\"application/x-sh\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"sh\"]},\"application/x-shar\":{\"source\":\"apache\",\"extensions\":[\"shar\"]},\"application/x-shockwave-flash\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"swf\"]},\"application/x-silverlight-app\":{\"source\":\"apache\",\"extensions\":[\"xap\"]},\"application/x-sql\":{\"source\":\"apache\",\"extensions\":[\"sql\"]},\"application/x-stuffit\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"sit\"]},\"application/x-stuffitx\":{\"source\":\"apache\",\"extensions\":[\"sitx\"]},\"application/x-subrip\":{\"source\":\"apache\",\"extensions\":[\"srt\"]},\"application/x-sv4cpio\":{\"source\":\"apache\",\"extensions\":[\"sv4cpio\"]},\"application/x-sv4crc\":{\"source\":\"apache\",\"extensions\":[\"sv4crc\"]},\"application/x-t3vm-image\":{\"source\":\"apache\",\"extensions\":[\"t3\"]},\"application/x-tads\":{\"source\":\"apache\",\"extensions\":[\"gam\"]},\"application/x-tar\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"tar\"]},\"application/x-tcl\":{\"source\":\"apache\",\"extensions\":[\"tcl\",\"tk\"]},\"application/x-tex\":{\"source\":\"apache\",\"extensions\":[\"tex\"]},\"application/x-tex-tfm\":{\"source\":\"apache\",\"extensions\":[\"tfm\"]},\"application/x-texinfo\":{\"source\":\"apache\",\"extensions\":[\"texinfo\",\"texi\"]},\"application/x-tgif\":{\"source\":\"apache\",\"extensions\":[\"obj\"]},\"application/x-ustar\":{\"source\":\"apache\",\"extensions\":[\"ustar\"]},\"application/x-virtualbox-hdd\":{\"compressible\":true,\"extensions\":[\"hdd\"]},\"application/x-virtualbox-ova\":{\"compressible\":true,\"extensions\":[\"ova\"]},\"application/x-virtualbox-ovf\":{\"compressible\":true,\"extensions\":[\"ovf\"]},\"application/x-virtualbox-vbox\":{\"compressible\":true,\"extensions\":[\"vbox\"]},\"application/x-virtualbox-vbox-extpack\":{\"compressible\":false,\"extensions\":[\"vbox-extpack\"]},\"application/x-virtualbox-vdi\":{\"compressible\":true,\"extensions\":[\"vdi\"]},\"application/x-virtualbox-vhd\":{\"compressible\":true,\"extensions\":[\"vhd\"]},\"application/x-virtualbox-vmdk\":{\"compressible\":true,\"extensions\":[\"vmdk\"]},\"application/x-wais-source\":{\"source\":\"apache\",\"extensions\":[\"src\"]},\"application/x-web-app-manifest+json\":{\"compressible\":true,\"extensions\":[\"webapp\"]},\"application/x-www-form-urlencoded\":{\"source\":\"iana\",\"compressible\":true},\"application/x-x509-ca-cert\":{\"source\":\"iana\",\"extensions\":[\"der\",\"crt\",\"pem\"]},\"application/x-x509-ca-ra-cert\":{\"source\":\"iana\"},\"application/x-x509-next-ca-cert\":{\"source\":\"iana\"},\"application/x-xfig\":{\"source\":\"apache\",\"extensions\":[\"fig\"]},\"application/x-xliff+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"xlf\"]},\"application/x-xpinstall\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"xpi\"]},\"application/x-xz\":{\"source\":\"apache\",\"extensions\":[\"xz\"]},\"application/x-zmachine\":{\"source\":\"apache\",\"extensions\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]},\"application/x400-bp\":{\"source\":\"iana\"},\"application/xacml+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xaml+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"xaml\"]},\"application/xcap-att+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xav\"]},\"application/xcap-caps+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xca\"]},\"application/xcap-diff+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xdf\"]},\"application/xcap-el+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xel\"]},\"application/xcap-error+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xer\"]},\"application/xcap-ns+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xns\"]},\"application/xcon-conference-info+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xcon-conference-info-diff+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xenc+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xenc\"]},\"application/xhtml+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xhtml\",\"xht\"]},\"application/xhtml-voice+xml\":{\"source\":\"apache\",\"compressible\":true},\"application/xliff+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xlf\"]},\"application/xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xml\",\"xsl\",\"xsd\",\"rng\"]},\"application/xml-dtd\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dtd\"]},\"application/xml-external-parsed-entity\":{\"source\":\"iana\"},\"application/xml-patch+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xmpp+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/xop+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xop\"]},\"application/xproc+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"xpl\"]},\"application/xslt+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xslt\"]},\"application/xspf+xml\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"xspf\"]},\"application/xv+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]},\"application/yang\":{\"source\":\"iana\",\"extensions\":[\"yang\"]},\"application/yang-data+json\":{\"source\":\"iana\",\"compressible\":true},\"application/yang-data+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/yang-patch+json\":{\"source\":\"iana\",\"compressible\":true},\"application/yang-patch+xml\":{\"source\":\"iana\",\"compressible\":true},\"application/yin+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"yin\"]},\"application/zip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"zip\"]},\"application/zlib\":{\"source\":\"iana\"},\"application/zstd\":{\"source\":\"iana\"},\"audio/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"audio/32kadpcm\":{\"source\":\"iana\"},\"audio/3gpp\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"3gpp\"]},\"audio/3gpp2\":{\"source\":\"iana\"},\"audio/aac\":{\"source\":\"iana\"},\"audio/ac3\":{\"source\":\"iana\"},\"audio/adpcm\":{\"source\":\"apache\",\"extensions\":[\"adp\"]},\"audio/amr\":{\"source\":\"iana\"},\"audio/amr-wb\":{\"source\":\"iana\"},\"audio/amr-wb+\":{\"source\":\"iana\"},\"audio/aptx\":{\"source\":\"iana\"},\"audio/asc\":{\"source\":\"iana\"},\"audio/atrac-advanced-lossless\":{\"source\":\"iana\"},\"audio/atrac-x\":{\"source\":\"iana\"},\"audio/atrac3\":{\"source\":\"iana\"},\"audio/basic\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"au\",\"snd\"]},\"audio/bv16\":{\"source\":\"iana\"},\"audio/bv32\":{\"source\":\"iana\"},\"audio/clearmode\":{\"source\":\"iana\"},\"audio/cn\":{\"source\":\"iana\"},\"audio/dat12\":{\"source\":\"iana\"},\"audio/dls\":{\"source\":\"iana\"},\"audio/dsr-es201108\":{\"source\":\"iana\"},\"audio/dsr-es202050\":{\"source\":\"iana\"},\"audio/dsr-es202211\":{\"source\":\"iana\"},\"audio/dsr-es202212\":{\"source\":\"iana\"},\"audio/dv\":{\"source\":\"iana\"},\"audio/dvi4\":{\"source\":\"iana\"},\"audio/eac3\":{\"source\":\"iana\"},\"audio/encaprtp\":{\"source\":\"iana\"},\"audio/evrc\":{\"source\":\"iana\"},\"audio/evrc-qcp\":{\"source\":\"iana\"},\"audio/evrc0\":{\"source\":\"iana\"},\"audio/evrc1\":{\"source\":\"iana\"},\"audio/evrcb\":{\"source\":\"iana\"},\"audio/evrcb0\":{\"source\":\"iana\"},\"audio/evrcb1\":{\"source\":\"iana\"},\"audio/evrcnw\":{\"source\":\"iana\"},\"audio/evrcnw0\":{\"source\":\"iana\"},\"audio/evrcnw1\":{\"source\":\"iana\"},\"audio/evrcwb\":{\"source\":\"iana\"},\"audio/evrcwb0\":{\"source\":\"iana\"},\"audio/evrcwb1\":{\"source\":\"iana\"},\"audio/evs\":{\"source\":\"iana\"},\"audio/flexfec\":{\"source\":\"iana\"},\"audio/fwdred\":{\"source\":\"iana\"},\"audio/g711-0\":{\"source\":\"iana\"},\"audio/g719\":{\"source\":\"iana\"},\"audio/g722\":{\"source\":\"iana\"},\"audio/g7221\":{\"source\":\"iana\"},\"audio/g723\":{\"source\":\"iana\"},\"audio/g726-16\":{\"source\":\"iana\"},\"audio/g726-24\":{\"source\":\"iana\"},\"audio/g726-32\":{\"source\":\"iana\"},\"audio/g726-40\":{\"source\":\"iana\"},\"audio/g728\":{\"source\":\"iana\"},\"audio/g729\":{\"source\":\"iana\"},\"audio/g7291\":{\"source\":\"iana\"},\"audio/g729d\":{\"source\":\"iana\"},\"audio/g729e\":{\"source\":\"iana\"},\"audio/gsm\":{\"source\":\"iana\"},\"audio/gsm-efr\":{\"source\":\"iana\"},\"audio/gsm-hr-08\":{\"source\":\"iana\"},\"audio/ilbc\":{\"source\":\"iana\"},\"audio/ip-mr_v2.5\":{\"source\":\"iana\"},\"audio/isac\":{\"source\":\"apache\"},\"audio/l16\":{\"source\":\"iana\"},\"audio/l20\":{\"source\":\"iana\"},\"audio/l24\":{\"source\":\"iana\",\"compressible\":false},\"audio/l8\":{\"source\":\"iana\"},\"audio/lpc\":{\"source\":\"iana\"},\"audio/melp\":{\"source\":\"iana\"},\"audio/melp1200\":{\"source\":\"iana\"},\"audio/melp2400\":{\"source\":\"iana\"},\"audio/melp600\":{\"source\":\"iana\"},\"audio/mhas\":{\"source\":\"iana\"},\"audio/midi\":{\"source\":\"apache\",\"extensions\":[\"mid\",\"midi\",\"kar\",\"rmi\"]},\"audio/mobile-xmf\":{\"source\":\"iana\",\"extensions\":[\"mxmf\"]},\"audio/mp3\":{\"compressible\":false,\"extensions\":[\"mp3\"]},\"audio/mp4\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"m4a\",\"mp4a\"]},\"audio/mp4a-latm\":{\"source\":\"iana\"},\"audio/mpa\":{\"source\":\"iana\"},\"audio/mpa-robust\":{\"source\":\"iana\"},\"audio/mpeg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]},\"audio/mpeg4-generic\":{\"source\":\"iana\"},\"audio/musepack\":{\"source\":\"apache\"},\"audio/ogg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"oga\",\"ogg\",\"spx\"]},\"audio/opus\":{\"source\":\"iana\"},\"audio/parityfec\":{\"source\":\"iana\"},\"audio/pcma\":{\"source\":\"iana\"},\"audio/pcma-wb\":{\"source\":\"iana\"},\"audio/pcmu\":{\"source\":\"iana\"},\"audio/pcmu-wb\":{\"source\":\"iana\"},\"audio/prs.sid\":{\"source\":\"iana\"},\"audio/qcelp\":{\"source\":\"iana\"},\"audio/raptorfec\":{\"source\":\"iana\"},\"audio/red\":{\"source\":\"iana\"},\"audio/rtp-enc-aescm128\":{\"source\":\"iana\"},\"audio/rtp-midi\":{\"source\":\"iana\"},\"audio/rtploopback\":{\"source\":\"iana\"},\"audio/rtx\":{\"source\":\"iana\"},\"audio/s3m\":{\"source\":\"apache\",\"extensions\":[\"s3m\"]},\"audio/silk\":{\"source\":\"apache\",\"extensions\":[\"sil\"]},\"audio/smv\":{\"source\":\"iana\"},\"audio/smv-qcp\":{\"source\":\"iana\"},\"audio/smv0\":{\"source\":\"iana\"},\"audio/sp-midi\":{\"source\":\"iana\"},\"audio/speex\":{\"source\":\"iana\"},\"audio/t140c\":{\"source\":\"iana\"},\"audio/t38\":{\"source\":\"iana\"},\"audio/telephone-event\":{\"source\":\"iana\"},\"audio/tetra_acelp\":{\"source\":\"iana\"},\"audio/tetra_acelp_bb\":{\"source\":\"iana\"},\"audio/tone\":{\"source\":\"iana\"},\"audio/uemclip\":{\"source\":\"iana\"},\"audio/ulpfec\":{\"source\":\"iana\"},\"audio/usac\":{\"source\":\"iana\"},\"audio/vdvi\":{\"source\":\"iana\"},\"audio/vmr-wb\":{\"source\":\"iana\"},\"audio/vnd.3gpp.iufp\":{\"source\":\"iana\"},\"audio/vnd.4sb\":{\"source\":\"iana\"},\"audio/vnd.audiokoz\":{\"source\":\"iana\"},\"audio/vnd.celp\":{\"source\":\"iana\"},\"audio/vnd.cisco.nse\":{\"source\":\"iana\"},\"audio/vnd.cmles.radio-events\":{\"source\":\"iana\"},\"audio/vnd.cns.anp1\":{\"source\":\"iana\"},\"audio/vnd.cns.inf1\":{\"source\":\"iana\"},\"audio/vnd.dece.audio\":{\"source\":\"iana\",\"extensions\":[\"uva\",\"uvva\"]},\"audio/vnd.digital-winds\":{\"source\":\"iana\",\"extensions\":[\"eol\"]},\"audio/vnd.dlna.adts\":{\"source\":\"iana\"},\"audio/vnd.dolby.heaac.1\":{\"source\":\"iana\"},\"audio/vnd.dolby.heaac.2\":{\"source\":\"iana\"},\"audio/vnd.dolby.mlp\":{\"source\":\"iana\"},\"audio/vnd.dolby.mps\":{\"source\":\"iana\"},\"audio/vnd.dolby.pl2\":{\"source\":\"iana\"},\"audio/vnd.dolby.pl2x\":{\"source\":\"iana\"},\"audio/vnd.dolby.pl2z\":{\"source\":\"iana\"},\"audio/vnd.dolby.pulse.1\":{\"source\":\"iana\"},\"audio/vnd.dra\":{\"source\":\"iana\",\"extensions\":[\"dra\"]},\"audio/vnd.dts\":{\"source\":\"iana\",\"extensions\":[\"dts\"]},\"audio/vnd.dts.hd\":{\"source\":\"iana\",\"extensions\":[\"dtshd\"]},\"audio/vnd.dts.uhd\":{\"source\":\"iana\"},\"audio/vnd.dvb.file\":{\"source\":\"iana\"},\"audio/vnd.everad.plj\":{\"source\":\"iana\"},\"audio/vnd.hns.audio\":{\"source\":\"iana\"},\"audio/vnd.lucent.voice\":{\"source\":\"iana\",\"extensions\":[\"lvp\"]},\"audio/vnd.ms-playready.media.pya\":{\"source\":\"iana\",\"extensions\":[\"pya\"]},\"audio/vnd.nokia.mobile-xmf\":{\"source\":\"iana\"},\"audio/vnd.nortel.vbk\":{\"source\":\"iana\"},\"audio/vnd.nuera.ecelp4800\":{\"source\":\"iana\",\"extensions\":[\"ecelp4800\"]},\"audio/vnd.nuera.ecelp7470\":{\"source\":\"iana\",\"extensions\":[\"ecelp7470\"]},\"audio/vnd.nuera.ecelp9600\":{\"source\":\"iana\",\"extensions\":[\"ecelp9600\"]},\"audio/vnd.octel.sbc\":{\"source\":\"iana\"},\"audio/vnd.presonus.multitrack\":{\"source\":\"iana\"},\"audio/vnd.qcelp\":{\"source\":\"iana\"},\"audio/vnd.rhetorex.32kadpcm\":{\"source\":\"iana\"},\"audio/vnd.rip\":{\"source\":\"iana\",\"extensions\":[\"rip\"]},\"audio/vnd.rn-realaudio\":{\"compressible\":false},\"audio/vnd.sealedmedia.softseal.mpeg\":{\"source\":\"iana\"},\"audio/vnd.vmx.cvsd\":{\"source\":\"iana\"},\"audio/vnd.wave\":{\"compressible\":false},\"audio/vorbis\":{\"source\":\"iana\",\"compressible\":false},\"audio/vorbis-config\":{\"source\":\"iana\"},\"audio/wav\":{\"compressible\":false,\"extensions\":[\"wav\"]},\"audio/wave\":{\"compressible\":false,\"extensions\":[\"wav\"]},\"audio/webm\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"weba\"]},\"audio/x-aac\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"aac\"]},\"audio/x-aiff\":{\"source\":\"apache\",\"extensions\":[\"aif\",\"aiff\",\"aifc\"]},\"audio/x-caf\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"caf\"]},\"audio/x-flac\":{\"source\":\"apache\",\"extensions\":[\"flac\"]},\"audio/x-m4a\":{\"source\":\"nginx\",\"extensions\":[\"m4a\"]},\"audio/x-matroska\":{\"source\":\"apache\",\"extensions\":[\"mka\"]},\"audio/x-mpegurl\":{\"source\":\"apache\",\"extensions\":[\"m3u\"]},\"audio/x-ms-wax\":{\"source\":\"apache\",\"extensions\":[\"wax\"]},\"audio/x-ms-wma\":{\"source\":\"apache\",\"extensions\":[\"wma\"]},\"audio/x-pn-realaudio\":{\"source\":\"apache\",\"extensions\":[\"ram\",\"ra\"]},\"audio/x-pn-realaudio-plugin\":{\"source\":\"apache\",\"extensions\":[\"rmp\"]},\"audio/x-realaudio\":{\"source\":\"nginx\",\"extensions\":[\"ra\"]},\"audio/x-tta\":{\"source\":\"apache\"},\"audio/x-wav\":{\"source\":\"apache\",\"extensions\":[\"wav\"]},\"audio/xm\":{\"source\":\"apache\",\"extensions\":[\"xm\"]},\"chemical/x-cdx\":{\"source\":\"apache\",\"extensions\":[\"cdx\"]},\"chemical/x-cif\":{\"source\":\"apache\",\"extensions\":[\"cif\"]},\"chemical/x-cmdf\":{\"source\":\"apache\",\"extensions\":[\"cmdf\"]},\"chemical/x-cml\":{\"source\":\"apache\",\"extensions\":[\"cml\"]},\"chemical/x-csml\":{\"source\":\"apache\",\"extensions\":[\"csml\"]},\"chemical/x-pdb\":{\"source\":\"apache\"},\"chemical/x-xyz\":{\"source\":\"apache\",\"extensions\":[\"xyz\"]},\"font/collection\":{\"source\":\"iana\",\"extensions\":[\"ttc\"]},\"font/otf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"otf\"]},\"font/sfnt\":{\"source\":\"iana\"},\"font/ttf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"ttf\"]},\"font/woff\":{\"source\":\"iana\",\"extensions\":[\"woff\"]},\"font/woff2\":{\"source\":\"iana\",\"extensions\":[\"woff2\"]},\"image/aces\":{\"source\":\"iana\",\"extensions\":[\"exr\"]},\"image/apng\":{\"compressible\":false,\"extensions\":[\"apng\"]},\"image/avci\":{\"source\":\"iana\"},\"image/avcs\":{\"source\":\"iana\"},\"image/bmp\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"bmp\"]},\"image/cgm\":{\"source\":\"iana\",\"extensions\":[\"cgm\"]},\"image/dicom-rle\":{\"source\":\"iana\",\"extensions\":[\"drle\"]},\"image/emf\":{\"source\":\"iana\",\"extensions\":[\"emf\"]},\"image/fits\":{\"source\":\"iana\",\"extensions\":[\"fits\"]},\"image/g3fax\":{\"source\":\"iana\",\"extensions\":[\"g3\"]},\"image/gif\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"gif\"]},\"image/heic\":{\"source\":\"iana\",\"extensions\":[\"heic\"]},\"image/heic-sequence\":{\"source\":\"iana\",\"extensions\":[\"heics\"]},\"image/heif\":{\"source\":\"iana\",\"extensions\":[\"heif\"]},\"image/heif-sequence\":{\"source\":\"iana\",\"extensions\":[\"heifs\"]},\"image/hej2k\":{\"source\":\"iana\",\"extensions\":[\"hej2\"]},\"image/hsj2\":{\"source\":\"iana\",\"extensions\":[\"hsj2\"]},\"image/ief\":{\"source\":\"iana\",\"extensions\":[\"ief\"]},\"image/jls\":{\"source\":\"iana\",\"extensions\":[\"jls\"]},\"image/jp2\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jp2\",\"jpg2\"]},\"image/jpeg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jpeg\",\"jpg\",\"jpe\"]},\"image/jph\":{\"source\":\"iana\",\"extensions\":[\"jph\"]},\"image/jphc\":{\"source\":\"iana\",\"extensions\":[\"jhc\"]},\"image/jpm\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jpm\"]},\"image/jpx\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"jpx\",\"jpf\"]},\"image/jxr\":{\"source\":\"iana\",\"extensions\":[\"jxr\"]},\"image/jxra\":{\"source\":\"iana\",\"extensions\":[\"jxra\"]},\"image/jxrs\":{\"source\":\"iana\",\"extensions\":[\"jxrs\"]},\"image/jxs\":{\"source\":\"iana\",\"extensions\":[\"jxs\"]},\"image/jxsc\":{\"source\":\"iana\",\"extensions\":[\"jxsc\"]},\"image/jxsi\":{\"source\":\"iana\",\"extensions\":[\"jxsi\"]},\"image/jxss\":{\"source\":\"iana\",\"extensions\":[\"jxss\"]},\"image/ktx\":{\"source\":\"iana\",\"extensions\":[\"ktx\"]},\"image/naplps\":{\"source\":\"iana\"},\"image/pjpeg\":{\"compressible\":false},\"image/png\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"png\"]},\"image/prs.btif\":{\"source\":\"iana\",\"extensions\":[\"btif\"]},\"image/prs.pti\":{\"source\":\"iana\",\"extensions\":[\"pti\"]},\"image/pwg-raster\":{\"source\":\"iana\"},\"image/sgi\":{\"source\":\"apache\",\"extensions\":[\"sgi\"]},\"image/svg+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"svg\",\"svgz\"]},\"image/t38\":{\"source\":\"iana\",\"extensions\":[\"t38\"]},\"image/tiff\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"tif\",\"tiff\"]},\"image/tiff-fx\":{\"source\":\"iana\",\"extensions\":[\"tfx\"]},\"image/vnd.adobe.photoshop\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"psd\"]},\"image/vnd.airzip.accelerator.azv\":{\"source\":\"iana\",\"extensions\":[\"azv\"]},\"image/vnd.cns.inf2\":{\"source\":\"iana\"},\"image/vnd.dece.graphic\":{\"source\":\"iana\",\"extensions\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]},\"image/vnd.djvu\":{\"source\":\"iana\",\"extensions\":[\"djvu\",\"djv\"]},\"image/vnd.dvb.subtitle\":{\"source\":\"iana\",\"extensions\":[\"sub\"]},\"image/vnd.dwg\":{\"source\":\"iana\",\"extensions\":[\"dwg\"]},\"image/vnd.dxf\":{\"source\":\"iana\",\"extensions\":[\"dxf\"]},\"image/vnd.fastbidsheet\":{\"source\":\"iana\",\"extensions\":[\"fbs\"]},\"image/vnd.fpx\":{\"source\":\"iana\",\"extensions\":[\"fpx\"]},\"image/vnd.fst\":{\"source\":\"iana\",\"extensions\":[\"fst\"]},\"image/vnd.fujixerox.edmics-mmr\":{\"source\":\"iana\",\"extensions\":[\"mmr\"]},\"image/vnd.fujixerox.edmics-rlc\":{\"source\":\"iana\",\"extensions\":[\"rlc\"]},\"image/vnd.globalgraphics.pgb\":{\"source\":\"iana\"},\"image/vnd.microsoft.icon\":{\"source\":\"iana\",\"extensions\":[\"ico\"]},\"image/vnd.mix\":{\"source\":\"iana\"},\"image/vnd.mozilla.apng\":{\"source\":\"iana\"},\"image/vnd.ms-dds\":{\"extensions\":[\"dds\"]},\"image/vnd.ms-modi\":{\"source\":\"iana\",\"extensions\":[\"mdi\"]},\"image/vnd.ms-photo\":{\"source\":\"apache\",\"extensions\":[\"wdp\"]},\"image/vnd.net-fpx\":{\"source\":\"iana\",\"extensions\":[\"npx\"]},\"image/vnd.radiance\":{\"source\":\"iana\"},\"image/vnd.sealed.png\":{\"source\":\"iana\"},\"image/vnd.sealedmedia.softseal.gif\":{\"source\":\"iana\"},\"image/vnd.sealedmedia.softseal.jpg\":{\"source\":\"iana\"},\"image/vnd.svf\":{\"source\":\"iana\"},\"image/vnd.tencent.tap\":{\"source\":\"iana\",\"extensions\":[\"tap\"]},\"image/vnd.valve.source.texture\":{\"source\":\"iana\",\"extensions\":[\"vtf\"]},\"image/vnd.wap.wbmp\":{\"source\":\"iana\",\"extensions\":[\"wbmp\"]},\"image/vnd.xiff\":{\"source\":\"iana\",\"extensions\":[\"xif\"]},\"image/vnd.zbrush.pcx\":{\"source\":\"iana\",\"extensions\":[\"pcx\"]},\"image/webp\":{\"source\":\"apache\",\"extensions\":[\"webp\"]},\"image/wmf\":{\"source\":\"iana\",\"extensions\":[\"wmf\"]},\"image/x-3ds\":{\"source\":\"apache\",\"extensions\":[\"3ds\"]},\"image/x-cmu-raster\":{\"source\":\"apache\",\"extensions\":[\"ras\"]},\"image/x-cmx\":{\"source\":\"apache\",\"extensions\":[\"cmx\"]},\"image/x-freehand\":{\"source\":\"apache\",\"extensions\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]},\"image/x-icon\":{\"source\":\"apache\",\"compressible\":true,\"extensions\":[\"ico\"]},\"image/x-jng\":{\"source\":\"nginx\",\"extensions\":[\"jng\"]},\"image/x-mrsid-image\":{\"source\":\"apache\",\"extensions\":[\"sid\"]},\"image/x-ms-bmp\":{\"source\":\"nginx\",\"compressible\":true,\"extensions\":[\"bmp\"]},\"image/x-pcx\":{\"source\":\"apache\",\"extensions\":[\"pcx\"]},\"image/x-pict\":{\"source\":\"apache\",\"extensions\":[\"pic\",\"pct\"]},\"image/x-portable-anymap\":{\"source\":\"apache\",\"extensions\":[\"pnm\"]},\"image/x-portable-bitmap\":{\"source\":\"apache\",\"extensions\":[\"pbm\"]},\"image/x-portable-graymap\":{\"source\":\"apache\",\"extensions\":[\"pgm\"]},\"image/x-portable-pixmap\":{\"source\":\"apache\",\"extensions\":[\"ppm\"]},\"image/x-rgb\":{\"source\":\"apache\",\"extensions\":[\"rgb\"]},\"image/x-tga\":{\"source\":\"apache\",\"extensions\":[\"tga\"]},\"image/x-xbitmap\":{\"source\":\"apache\",\"extensions\":[\"xbm\"]},\"image/x-xcf\":{\"compressible\":false},\"image/x-xpixmap\":{\"source\":\"apache\",\"extensions\":[\"xpm\"]},\"image/x-xwindowdump\":{\"source\":\"apache\",\"extensions\":[\"xwd\"]},\"message/cpim\":{\"source\":\"iana\"},\"message/delivery-status\":{\"source\":\"iana\"},\"message/disposition-notification\":{\"source\":\"iana\",\"extensions\":[\"disposition-notification\"]},\"message/external-body\":{\"source\":\"iana\"},\"message/feedback-report\":{\"source\":\"iana\"},\"message/global\":{\"source\":\"iana\",\"extensions\":[\"u8msg\"]},\"message/global-delivery-status\":{\"source\":\"iana\",\"extensions\":[\"u8dsn\"]},\"message/global-disposition-notification\":{\"source\":\"iana\",\"extensions\":[\"u8mdn\"]},\"message/global-headers\":{\"source\":\"iana\",\"extensions\":[\"u8hdr\"]},\"message/http\":{\"source\":\"iana\",\"compressible\":false},\"message/imdn+xml\":{\"source\":\"iana\",\"compressible\":true},\"message/news\":{\"source\":\"iana\"},\"message/partial\":{\"source\":\"iana\",\"compressible\":false},\"message/rfc822\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"eml\",\"mime\"]},\"message/s-http\":{\"source\":\"iana\"},\"message/sip\":{\"source\":\"iana\"},\"message/sipfrag\":{\"source\":\"iana\"},\"message/tracking-status\":{\"source\":\"iana\"},\"message/vnd.si.simp\":{\"source\":\"iana\"},\"message/vnd.wfa.wsc\":{\"source\":\"iana\",\"extensions\":[\"wsc\"]},\"model/3mf\":{\"source\":\"iana\",\"extensions\":[\"3mf\"]},\"model/gltf+json\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"gltf\"]},\"model/gltf-binary\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"glb\"]},\"model/iges\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"igs\",\"iges\"]},\"model/mesh\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"msh\",\"mesh\",\"silo\"]},\"model/mtl\":{\"source\":\"iana\",\"extensions\":[\"mtl\"]},\"model/obj\":{\"source\":\"iana\",\"extensions\":[\"obj\"]},\"model/stl\":{\"source\":\"iana\",\"extensions\":[\"stl\"]},\"model/vnd.collada+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"dae\"]},\"model/vnd.dwf\":{\"source\":\"iana\",\"extensions\":[\"dwf\"]},\"model/vnd.flatland.3dml\":{\"source\":\"iana\"},\"model/vnd.gdl\":{\"source\":\"iana\",\"extensions\":[\"gdl\"]},\"model/vnd.gs-gdl\":{\"source\":\"apache\"},\"model/vnd.gs.gdl\":{\"source\":\"iana\"},\"model/vnd.gtw\":{\"source\":\"iana\",\"extensions\":[\"gtw\"]},\"model/vnd.moml+xml\":{\"source\":\"iana\",\"compressible\":true},\"model/vnd.mts\":{\"source\":\"iana\",\"extensions\":[\"mts\"]},\"model/vnd.opengex\":{\"source\":\"iana\",\"extensions\":[\"ogex\"]},\"model/vnd.parasolid.transmit.binary\":{\"source\":\"iana\",\"extensions\":[\"x_b\"]},\"model/vnd.parasolid.transmit.text\":{\"source\":\"iana\",\"extensions\":[\"x_t\"]},\"model/vnd.rosette.annotated-data-model\":{\"source\":\"iana\"},\"model/vnd.usdz+zip\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"usdz\"]},\"model/vnd.valve.source.compiled-map\":{\"source\":\"iana\",\"extensions\":[\"bsp\"]},\"model/vnd.vtu\":{\"source\":\"iana\",\"extensions\":[\"vtu\"]},\"model/vrml\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"wrl\",\"vrml\"]},\"model/x3d+binary\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"x3db\",\"x3dbz\"]},\"model/x3d+fastinfoset\":{\"source\":\"iana\",\"extensions\":[\"x3db\"]},\"model/x3d+vrml\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"x3dv\",\"x3dvz\"]},\"model/x3d+xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"x3d\",\"x3dz\"]},\"model/x3d-vrml\":{\"source\":\"iana\",\"extensions\":[\"x3dv\"]},\"multipart/alternative\":{\"source\":\"iana\",\"compressible\":false},\"multipart/appledouble\":{\"source\":\"iana\"},\"multipart/byteranges\":{\"source\":\"iana\"},\"multipart/digest\":{\"source\":\"iana\"},\"multipart/encrypted\":{\"source\":\"iana\",\"compressible\":false},\"multipart/form-data\":{\"source\":\"iana\",\"compressible\":false},\"multipart/header-set\":{\"source\":\"iana\"},\"multipart/mixed\":{\"source\":\"iana\"},\"multipart/multilingual\":{\"source\":\"iana\"},\"multipart/parallel\":{\"source\":\"iana\"},\"multipart/related\":{\"source\":\"iana\",\"compressible\":false},\"multipart/report\":{\"source\":\"iana\"},\"multipart/signed\":{\"source\":\"iana\",\"compressible\":false},\"multipart/vnd.bint.med-plus\":{\"source\":\"iana\"},\"multipart/voice-message\":{\"source\":\"iana\"},\"multipart/x-mixed-replace\":{\"source\":\"iana\"},\"text/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"text/cache-manifest\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"appcache\",\"manifest\"]},\"text/calendar\":{\"source\":\"iana\",\"extensions\":[\"ics\",\"ifb\"]},\"text/calender\":{\"compressible\":true},\"text/cmd\":{\"compressible\":true},\"text/coffeescript\":{\"extensions\":[\"coffee\",\"litcoffee\"]},\"text/css\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"css\"]},\"text/csv\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"csv\"]},\"text/csv-schema\":{\"source\":\"iana\"},\"text/directory\":{\"source\":\"iana\"},\"text/dns\":{\"source\":\"iana\"},\"text/ecmascript\":{\"source\":\"iana\"},\"text/encaprtp\":{\"source\":\"iana\"},\"text/enriched\":{\"source\":\"iana\"},\"text/flexfec\":{\"source\":\"iana\"},\"text/fwdred\":{\"source\":\"iana\"},\"text/grammar-ref-list\":{\"source\":\"iana\"},\"text/html\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"html\",\"htm\",\"shtml\"]},\"text/jade\":{\"extensions\":[\"jade\"]},\"text/javascript\":{\"source\":\"iana\",\"compressible\":true},\"text/jcr-cnd\":{\"source\":\"iana\"},\"text/jsx\":{\"compressible\":true,\"extensions\":[\"jsx\"]},\"text/less\":{\"compressible\":true,\"extensions\":[\"less\"]},\"text/markdown\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"markdown\",\"md\"]},\"text/mathml\":{\"source\":\"nginx\",\"extensions\":[\"mml\"]},\"text/mdx\":{\"compressible\":true,\"extensions\":[\"mdx\"]},\"text/mizar\":{\"source\":\"iana\"},\"text/n3\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"n3\"]},\"text/parameters\":{\"source\":\"iana\",\"charset\":\"UTF-8\"},\"text/parityfec\":{\"source\":\"iana\"},\"text/plain\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]},\"text/provenance-notation\":{\"source\":\"iana\",\"charset\":\"UTF-8\"},\"text/prs.fallenstein.rst\":{\"source\":\"iana\"},\"text/prs.lines.tag\":{\"source\":\"iana\",\"extensions\":[\"dsc\"]},\"text/prs.prop.logic\":{\"source\":\"iana\"},\"text/raptorfec\":{\"source\":\"iana\"},\"text/red\":{\"source\":\"iana\"},\"text/rfc822-headers\":{\"source\":\"iana\"},\"text/richtext\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rtx\"]},\"text/rtf\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"rtf\"]},\"text/rtp-enc-aescm128\":{\"source\":\"iana\"},\"text/rtploopback\":{\"source\":\"iana\"},\"text/rtx\":{\"source\":\"iana\"},\"text/sgml\":{\"source\":\"iana\",\"extensions\":[\"sgml\",\"sgm\"]},\"text/shex\":{\"extensions\":[\"shex\"]},\"text/slim\":{\"extensions\":[\"slim\",\"slm\"]},\"text/strings\":{\"source\":\"iana\"},\"text/stylus\":{\"extensions\":[\"stylus\",\"styl\"]},\"text/t140\":{\"source\":\"iana\"},\"text/tab-separated-values\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"tsv\"]},\"text/troff\":{\"source\":\"iana\",\"extensions\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]},\"text/turtle\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"extensions\":[\"ttl\"]},\"text/ulpfec\":{\"source\":\"iana\"},\"text/uri-list\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"uri\",\"uris\",\"urls\"]},\"text/vcard\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"vcard\"]},\"text/vnd.a\":{\"source\":\"iana\"},\"text/vnd.abc\":{\"source\":\"iana\"},\"text/vnd.ascii-art\":{\"source\":\"iana\"},\"text/vnd.curl\":{\"source\":\"iana\",\"extensions\":[\"curl\"]},\"text/vnd.curl.dcurl\":{\"source\":\"apache\",\"extensions\":[\"dcurl\"]},\"text/vnd.curl.mcurl\":{\"source\":\"apache\",\"extensions\":[\"mcurl\"]},\"text/vnd.curl.scurl\":{\"source\":\"apache\",\"extensions\":[\"scurl\"]},\"text/vnd.debian.copyright\":{\"source\":\"iana\",\"charset\":\"UTF-8\"},\"text/vnd.dmclientscript\":{\"source\":\"iana\"},\"text/vnd.dvb.subtitle\":{\"source\":\"iana\",\"extensions\":[\"sub\"]},\"text/vnd.esmertec.theme-descriptor\":{\"source\":\"iana\",\"charset\":\"UTF-8\"},\"text/vnd.ficlab.flt\":{\"source\":\"iana\"},\"text/vnd.fly\":{\"source\":\"iana\",\"extensions\":[\"fly\"]},\"text/vnd.fmi.flexstor\":{\"source\":\"iana\",\"extensions\":[\"flx\"]},\"text/vnd.gml\":{\"source\":\"iana\"},\"text/vnd.graphviz\":{\"source\":\"iana\",\"extensions\":[\"gv\"]},\"text/vnd.hgl\":{\"source\":\"iana\"},\"text/vnd.in3d.3dml\":{\"source\":\"iana\",\"extensions\":[\"3dml\"]},\"text/vnd.in3d.spot\":{\"source\":\"iana\",\"extensions\":[\"spot\"]},\"text/vnd.iptc.newsml\":{\"source\":\"iana\"},\"text/vnd.iptc.nitf\":{\"source\":\"iana\"},\"text/vnd.latex-z\":{\"source\":\"iana\"},\"text/vnd.motorola.reflex\":{\"source\":\"iana\"},\"text/vnd.ms-mediapackage\":{\"source\":\"iana\"},\"text/vnd.net2phone.commcenter.command\":{\"source\":\"iana\"},\"text/vnd.radisys.msml-basic-layout\":{\"source\":\"iana\"},\"text/vnd.senx.warpscript\":{\"source\":\"iana\"},\"text/vnd.si.uricatalogue\":{\"source\":\"iana\"},\"text/vnd.sosi\":{\"source\":\"iana\"},\"text/vnd.sun.j2me.app-descriptor\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"extensions\":[\"jad\"]},\"text/vnd.trolltech.linguist\":{\"source\":\"iana\",\"charset\":\"UTF-8\"},\"text/vnd.wap.si\":{\"source\":\"iana\"},\"text/vnd.wap.sl\":{\"source\":\"iana\"},\"text/vnd.wap.wml\":{\"source\":\"iana\",\"extensions\":[\"wml\"]},\"text/vnd.wap.wmlscript\":{\"source\":\"iana\",\"extensions\":[\"wmls\"]},\"text/vtt\":{\"source\":\"iana\",\"charset\":\"UTF-8\",\"compressible\":true,\"extensions\":[\"vtt\"]},\"text/x-asm\":{\"source\":\"apache\",\"extensions\":[\"s\",\"asm\"]},\"text/x-c\":{\"source\":\"apache\",\"extensions\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]},\"text/x-component\":{\"source\":\"nginx\",\"extensions\":[\"htc\"]},\"text/x-fortran\":{\"source\":\"apache\",\"extensions\":[\"f\",\"for\",\"f77\",\"f90\"]},\"text/x-gwt-rpc\":{\"compressible\":true},\"text/x-handlebars-template\":{\"extensions\":[\"hbs\"]},\"text/x-java-source\":{\"source\":\"apache\",\"extensions\":[\"java\"]},\"text/x-jquery-tmpl\":{\"compressible\":true},\"text/x-lua\":{\"extensions\":[\"lua\"]},\"text/x-markdown\":{\"compressible\":true,\"extensions\":[\"mkd\"]},\"text/x-nfo\":{\"source\":\"apache\",\"extensions\":[\"nfo\"]},\"text/x-opml\":{\"source\":\"apache\",\"extensions\":[\"opml\"]},\"text/x-org\":{\"compressible\":true,\"extensions\":[\"org\"]},\"text/x-pascal\":{\"source\":\"apache\",\"extensions\":[\"p\",\"pas\"]},\"text/x-processing\":{\"compressible\":true,\"extensions\":[\"pde\"]},\"text/x-sass\":{\"extensions\":[\"sass\"]},\"text/x-scss\":{\"extensions\":[\"scss\"]},\"text/x-setext\":{\"source\":\"apache\",\"extensions\":[\"etx\"]},\"text/x-sfv\":{\"source\":\"apache\",\"extensions\":[\"sfv\"]},\"text/x-suse-ymp\":{\"compressible\":true,\"extensions\":[\"ymp\"]},\"text/x-uuencode\":{\"source\":\"apache\",\"extensions\":[\"uu\"]},\"text/x-vcalendar\":{\"source\":\"apache\",\"extensions\":[\"vcs\"]},\"text/x-vcard\":{\"source\":\"apache\",\"extensions\":[\"vcf\"]},\"text/xml\":{\"source\":\"iana\",\"compressible\":true,\"extensions\":[\"xml\"]},\"text/xml-external-parsed-entity\":{\"source\":\"iana\"},\"text/yaml\":{\"extensions\":[\"yaml\",\"yml\"]},\"video/1d-interleaved-parityfec\":{\"source\":\"iana\"},\"video/3gpp\":{\"source\":\"iana\",\"extensions\":[\"3gp\",\"3gpp\"]},\"video/3gpp-tt\":{\"source\":\"iana\"},\"video/3gpp2\":{\"source\":\"iana\",\"extensions\":[\"3g2\"]},\"video/bmpeg\":{\"source\":\"iana\"},\"video/bt656\":{\"source\":\"iana\"},\"video/celb\":{\"source\":\"iana\"},\"video/dv\":{\"source\":\"iana\"},\"video/encaprtp\":{\"source\":\"iana\"},\"video/flexfec\":{\"source\":\"iana\"},\"video/h261\":{\"source\":\"iana\",\"extensions\":[\"h261\"]},\"video/h263\":{\"source\":\"iana\",\"extensions\":[\"h263\"]},\"video/h263-1998\":{\"source\":\"iana\"},\"video/h263-2000\":{\"source\":\"iana\"},\"video/h264\":{\"source\":\"iana\",\"extensions\":[\"h264\"]},\"video/h264-rcdo\":{\"source\":\"iana\"},\"video/h264-svc\":{\"source\":\"iana\"},\"video/h265\":{\"source\":\"iana\"},\"video/iso.segment\":{\"source\":\"iana\"},\"video/jpeg\":{\"source\":\"iana\",\"extensions\":[\"jpgv\"]},\"video/jpeg2000\":{\"source\":\"iana\"},\"video/jpm\":{\"source\":\"apache\",\"extensions\":[\"jpm\",\"jpgm\"]},\"video/mj2\":{\"source\":\"iana\",\"extensions\":[\"mj2\",\"mjp2\"]},\"video/mp1s\":{\"source\":\"iana\"},\"video/mp2p\":{\"source\":\"iana\"},\"video/mp2t\":{\"source\":\"iana\",\"extensions\":[\"ts\"]},\"video/mp4\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"mp4\",\"mp4v\",\"mpg4\"]},\"video/mp4v-es\":{\"source\":\"iana\"},\"video/mpeg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]},\"video/mpeg4-generic\":{\"source\":\"iana\"},\"video/mpv\":{\"source\":\"iana\"},\"video/nv\":{\"source\":\"iana\"},\"video/ogg\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"ogv\"]},\"video/parityfec\":{\"source\":\"iana\"},\"video/pointer\":{\"source\":\"iana\"},\"video/quicktime\":{\"source\":\"iana\",\"compressible\":false,\"extensions\":[\"qt\",\"mov\"]},\"video/raptorfec\":{\"source\":\"iana\"},\"video/raw\":{\"source\":\"iana\"},\"video/rtp-enc-aescm128\":{\"source\":\"iana\"},\"video/rtploopback\":{\"source\":\"iana\"},\"video/rtx\":{\"source\":\"iana\"},\"video/smpte291\":{\"source\":\"iana\"},\"video/smpte292m\":{\"source\":\"iana\"},\"video/ulpfec\":{\"source\":\"iana\"},\"video/vc1\":{\"source\":\"iana\"},\"video/vc2\":{\"source\":\"iana\"},\"video/vnd.cctv\":{\"source\":\"iana\"},\"video/vnd.dece.hd\":{\"source\":\"iana\",\"extensions\":[\"uvh\",\"uvvh\"]},\"video/vnd.dece.mobile\":{\"source\":\"iana\",\"extensions\":[\"uvm\",\"uvvm\"]},\"video/vnd.dece.mp4\":{\"source\":\"iana\"},\"video/vnd.dece.pd\":{\"source\":\"iana\",\"extensions\":[\"uvp\",\"uvvp\"]},\"video/vnd.dece.sd\":{\"source\":\"iana\",\"extensions\":[\"uvs\",\"uvvs\"]},\"video/vnd.dece.video\":{\"source\":\"iana\",\"extensions\":[\"uvv\",\"uvvv\"]},\"video/vnd.directv.mpeg\":{\"source\":\"iana\"},\"video/vnd.directv.mpeg-tts\":{\"source\":\"iana\"},\"video/vnd.dlna.mpeg-tts\":{\"source\":\"iana\"},\"video/vnd.dvb.file\":{\"source\":\"iana\",\"extensions\":[\"dvb\"]},\"video/vnd.fvt\":{\"source\":\"iana\",\"extensions\":[\"fvt\"]},\"video/vnd.hns.video\":{\"source\":\"iana\"},\"video/vnd.iptvforum.1dparityfec-1010\":{\"source\":\"iana\"},\"video/vnd.iptvforum.1dparityfec-2005\":{\"source\":\"iana\"},\"video/vnd.iptvforum.2dparityfec-1010\":{\"source\":\"iana\"},\"video/vnd.iptvforum.2dparityfec-2005\":{\"source\":\"iana\"},\"video/vnd.iptvforum.ttsavc\":{\"source\":\"iana\"},\"video/vnd.iptvforum.ttsmpeg2\":{\"source\":\"iana\"},\"video/vnd.motorola.video\":{\"source\":\"iana\"},\"video/vnd.motorola.videop\":{\"source\":\"iana\"},\"video/vnd.mpegurl\":{\"source\":\"iana\",\"extensions\":[\"mxu\",\"m4u\"]},\"video/vnd.ms-playready.media.pyv\":{\"source\":\"iana\",\"extensions\":[\"pyv\"]},\"video/vnd.nokia.interleaved-multimedia\":{\"source\":\"iana\"},\"video/vnd.nokia.mp4vr\":{\"source\":\"iana\"},\"video/vnd.nokia.videovoip\":{\"source\":\"iana\"},\"video/vnd.objectvideo\":{\"source\":\"iana\"},\"video/vnd.radgamettools.bink\":{\"source\":\"iana\"},\"video/vnd.radgamettools.smacker\":{\"source\":\"iana\"},\"video/vnd.sealed.mpeg1\":{\"source\":\"iana\"},\"video/vnd.sealed.mpeg4\":{\"source\":\"iana\"},\"video/vnd.sealed.swf\":{\"source\":\"iana\"},\"video/vnd.sealedmedia.softseal.mov\":{\"source\":\"iana\"},\"video/vnd.uvvu.mp4\":{\"source\":\"iana\",\"extensions\":[\"uvu\",\"uvvu\"]},\"video/vnd.vivo\":{\"source\":\"iana\",\"extensions\":[\"viv\"]},\"video/vnd.youtube.yt\":{\"source\":\"iana\"},\"video/vp8\":{\"source\":\"iana\"},\"video/webm\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"webm\"]},\"video/x-f4v\":{\"source\":\"apache\",\"extensions\":[\"f4v\"]},\"video/x-fli\":{\"source\":\"apache\",\"extensions\":[\"fli\"]},\"video/x-flv\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"flv\"]},\"video/x-m4v\":{\"source\":\"apache\",\"extensions\":[\"m4v\"]},\"video/x-matroska\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"mkv\",\"mk3d\",\"mks\"]},\"video/x-mng\":{\"source\":\"apache\",\"extensions\":[\"mng\"]},\"video/x-ms-asf\":{\"source\":\"apache\",\"extensions\":[\"asf\",\"asx\"]},\"video/x-ms-vob\":{\"source\":\"apache\",\"extensions\":[\"vob\"]},\"video/x-ms-wm\":{\"source\":\"apache\",\"extensions\":[\"wm\"]},\"video/x-ms-wmv\":{\"source\":\"apache\",\"compressible\":false,\"extensions\":[\"wmv\"]},\"video/x-ms-wmx\":{\"source\":\"apache\",\"extensions\":[\"wmx\"]},\"video/x-ms-wvx\":{\"source\":\"apache\",\"extensions\":[\"wvx\"]},\"video/x-msvideo\":{\"source\":\"apache\",\"extensions\":[\"avi\"]},\"video/x-sgi-movie\":{\"source\":\"apache\",\"extensions\":[\"movie\"]},\"video/x-smv\":{\"source\":\"apache\",\"extensions\":[\"smv\"]},\"x-conference/x-cooltalk\":{\"source\":\"apache\",\"extensions\":[\"ice\"]},\"x-shader/x-fragment\":{\"compressible\":true},\"x-shader/x-vertex\":{\"compressible\":true}}"); + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(process) {// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1, +// backported and transplited with Babel, with backwards-compat fixes + +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// resolves . and .. elements in a path array with directory names there +// must be no slashes, empty elements, or device names (c:\) in the array +// (so also no leading and trailing slashes - it does not distinguish +// relative and absolute paths) +function normalizeArray(parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; } - } else if (data && this._data && this._isHost(this._data)) { - throw Error("Can't merge these send calls"); } - // merge - if (isObj && isObject(this._data)) { - for (var key in data) { - this._data[key] = data[key]; + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); } - } else if ('string' == typeof data) { - // default to x-www-form-urlencoded - if (!type) this.type('form'); - type = this._header['content-type']; - if ('application/x-www-form-urlencoded' == type) { - this._data = this._data - ? this._data + '&' + data - : data; - } else { - this._data = (this._data || '') + data; + } + + return parts; +} + +// path.resolve([from ...], to) +// posix version +exports.resolve = function() { + var resolvedPath = '', + resolvedAbsolute = false; + + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : process.cwd(); + + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + continue; } - } else { - this._data = data; + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; } - if (!isObj || this._isHost(data)) { - return this; + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; +}; + +// path.normalize(path) +// posix version +exports.normalize = function(path) { + var isAbsolute = exports.isAbsolute(path), + trailingSlash = substr(path, -1) === '/'; + + // Normalize the path + path = normalizeArray(filter(path.split('/'), function(p) { + return !!p; + }), !isAbsolute).join('/'); + + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; } - // default to json - if (!type) this.type('json'); - return this; + return (isAbsolute ? '/' : '') + path; }; -/** - * Sort `querystring` by the sort function - * - * - * Examples: - * - * // default order - * request.get('/user') - * .query('name=Nick') - * .query('search=Manny') - * .sortQuery() - * .end(callback) - * - * // customized sort function - * request.get('/user') - * .query('name=Nick') - * .query('search=Manny') - * .sortQuery(function(a, b){ - * return a.length - b.length; - * }) - * .end(callback) - * - * - * @param {Function} sort - * @return {Request} for chaining - * @api public - */ +// posix version +exports.isAbsolute = function(path) { + return path.charAt(0) === '/'; +}; -RequestBase.prototype.sortQuery = function(sort) { - // _sort default to true but otherwise can be a function or boolean - this._sort = typeof sort === 'undefined' ? true : sort; - return this; +// posix version +exports.join = function() { + var paths = Array.prototype.slice.call(arguments, 0); + return exports.normalize(filter(paths, function(p, index) { + if (typeof p !== 'string') { + throw new TypeError('Arguments to path.join must be strings'); + } + return p; + }).join('/')); }; -/** - * Compose querystring to append to req.url - * - * @api private - */ -RequestBase.prototype._finalizeQueryString = function(){ - var query = this._query.join('&'); - if (query) { - this.url += (this.url.indexOf('?') >= 0 ? '&' : '?') + query; - } - this._query.length = 0; // Makes the call idempotent - if (this._sort) { - var index = this.url.indexOf('?'); - if (index >= 0) { - var queryArr = this.url.substring(index + 1).split('&'); - if ('function' === typeof this._sort) { - queryArr.sort(this._sort); - } else { - queryArr.sort(); - } - this.url = this.url.substring(0, index) + '?' + queryArr.join('&'); +// path.relative(from, to) +// posix version +exports.relative = function(from, to) { + from = exports.resolve(from).substr(1); + to = exports.resolve(to).substr(1); + + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; } + + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + + if (start > end) return []; + return arr.slice(start, end - start + 1); } -}; -// For backwards compat only -RequestBase.prototype._appendQueryString = function() {console.trace("Unsupported");} + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); -/** - * Invoke callback with timeout error. - * - * @api private - */ + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } -RequestBase.prototype._timeoutError = function(reason, timeout, errno){ - if (this._aborted) { - return; + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); } - var err = new Error(reason + timeout + 'ms exceeded'); - err.timeout = timeout; - err.code = 'ECONNABORTED'; - err.errno = errno; - this.timedout = true; - this.abort(); - this.callback(err); -}; -RequestBase.prototype._setTimeouts = function() { - var self = this; + outputParts = outputParts.concat(toParts.slice(samePartsLength)); - // deadline - if (this._timeout && !this._timer) { - this._timer = setTimeout(function(){ - self._timeoutError('Timeout of ', self._timeout, 'ETIME'); - }, this._timeout); + return outputParts.join('/'); +}; + +exports.sep = '/'; +exports.delimiter = ':'; + +exports.dirname = function (path) { + if (typeof path !== 'string') path = path + ''; + if (path.length === 0) return '.'; + var code = path.charCodeAt(0); + var hasRoot = code === 47 /*/*/; + var end = -1; + var matchedSlash = true; + for (var i = path.length - 1; i >= 1; --i) { + code = path.charCodeAt(i); + if (code === 47 /*/*/) { + if (!matchedSlash) { + end = i; + break; + } + } else { + // We saw the first non-path separator + matchedSlash = false; + } } - // response timeout - if (this._responseTimeout && !this._responseTimeoutTimer) { - this._responseTimeoutTimer = setTimeout(function(){ - self._timeoutError('Response timeout of ', self._responseTimeout, 'ETIMEDOUT'); - }, this._responseTimeout); + + if (end === -1) return hasRoot ? '/' : '.'; + if (hasRoot && end === 1) { + // return '//'; + // Backwards-compat fix: + return '/'; } + return path.slice(0, end); }; +function basename(path) { + if (typeof path !== 'string') path = path + ''; -/***/ }), -/* 88 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - + var start = 0; + var end = -1; + var matchedSlash = true; + var i; -/** - * Module dependencies. - */ + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } -var utils = __webpack_require__(89); + if (end === -1) return ''; + return path.slice(start, end); +} -/** - * Expose `ResponseBase`. - */ +// Uses a mixed approach for backwards-compatibility, as ext behavior changed +// in new Node.js versions, so only basename() above is backported here +exports.basename = function (path, ext) { + var f = basename(path); + if (ext && f.substr(-1 * ext.length) === ext) { + f = f.substr(0, f.length - ext.length); + } + return f; +}; -module.exports = ResponseBase; +exports.extname = function (path) { + if (typeof path !== 'string') path = path + ''; + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + var preDotState = 0; + for (var i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === 46 /*.*/) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) + startDot = i; + else if (preDotState !== 1) + preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } -/** - * Initialize a new `ResponseBase`. - * - * @api public - */ + if (startDot === -1 || end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + return ''; + } + return path.slice(startDot, end); +}; -function ResponseBase(obj) { - if (obj) return mixin(obj); +function filter (xs, f) { + if (xs.filter) return xs.filter(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + if (f(xs[i], i, xs)) res.push(xs[i]); + } + return res; } -/** - * Mixin the prototype properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ +// String.prototype.substr - negative index don't work in IE8 +var substr = 'ab'.substr(-1) === 'b' + ? function (str, start, len) { return str.substr(start, len) } + : function (str, start, len) { + if (start < 0) start = str.length + start; + return str.substr(start, len); + } +; -function mixin(obj) { - for (var key in ResponseBase.prototype) { - obj[key] = ResponseBase.prototype[key]; - } - return obj; -} +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25))) -/** - * Get case-insensitive `field` value. - * - * @param {String} field - * @return {String} - * @api public - */ +/***/ }), +/* 137 */ +/***/ (function(__webpack_module__, __webpack_exports__, __webpack_require__) { -ResponseBase.prototype.get = function(field) { - return this.header[field.toLowerCase()]; -}; +"use strict"; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); +// CONCATENATED MODULE: ./node_modules/isomorphic-webcrypto/src/webcrypto-shim.mjs /** - * Set header related properties: - * - * - `.type` the content type without params - * - * A response of "Content-Type: text/plain; charset=utf-8" - * will provide you with a `.type` of "text/plain". - * - * @param {Object} header - * @api private + * @file Web Cryptography API shim + * @author Artem S Vybornov + * @license MIT */ +(function (global, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define([], function () { + return factory(global); + }); + } else if (typeof module === 'object' && module.exports) { + // CommonJS-like environments that support module.exports + module.exports = factory(global); + } else { + factory(global); + } +}(typeof self !== 'undefined' ? self : undefined, function (global) { + 'use strict'; + + if ( typeof Promise !== 'function' ) + throw "Promise support required"; + + var _crypto = global.crypto || global.msCrypto; + if ( !_crypto ) return; + + var _subtle = _crypto.subtle || _crypto.webkitSubtle; + if ( !_subtle ) return; + + var _Crypto = global.Crypto || _crypto.constructor || Object, + _SubtleCrypto = global.SubtleCrypto || _subtle.constructor || Object, + _CryptoKey = global.CryptoKey || global.Key || Object; + + var isEdge = global.navigator.userAgent.indexOf('Edge/') > -1; + var isIE = !!global.msCrypto && !isEdge; + var isWebkit = !_crypto.subtle && !!_crypto.webkitSubtle; + if ( !isIE && !isWebkit ) return; + + function s2a ( s ) { + return btoa(s).replace(/\=+$/, '').replace(/\+/g, '-').replace(/\//g, '_'); + } + + function a2s ( s ) { + s += '===', s = s.slice( 0, -s.length % 4 ); + return atob( s.replace(/-/g, '+').replace(/_/g, '/') ); + } + + function s2b ( s ) { + var b = new Uint8Array(s.length); + for ( var i = 0; i < s.length; i++ ) b[i] = s.charCodeAt(i); + return b; + } + + function b2s ( b ) { + if ( b instanceof ArrayBuffer ) b = new Uint8Array(b); + return String.fromCharCode.apply( String, b ); + } + + function alg ( a ) { + var r = { 'name': (a.name || a || '').toUpperCase().replace('V','v') }; + switch ( r.name ) { + case 'SHA-1': + case 'SHA-256': + case 'SHA-384': + case 'SHA-512': + break; + case 'AES-CBC': + case 'AES-GCM': + case 'AES-KW': + if ( a.length ) r['length'] = a.length; + break; + case 'HMAC': + if ( a.hash ) r['hash'] = alg(a.hash); + if ( a.length ) r['length'] = a.length; + break; + case 'RSAES-PKCS1-v1_5': + if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent); + if ( a.modulusLength ) r['modulusLength'] = a.modulusLength; + break; + case 'RSASSA-PKCS1-v1_5': + case 'RSA-OAEP': + if ( a.hash ) r['hash'] = alg(a.hash); + if ( a.publicExponent ) r['publicExponent'] = new Uint8Array(a.publicExponent); + if ( a.modulusLength ) r['modulusLength'] = a.modulusLength; + break; + default: + throw new SyntaxError("Bad algorithm name"); + } + return r; + }; -ResponseBase.prototype._setHeaderProperties = function(header){ - // TODO: moar! - // TODO: make this a util + function jwkAlg ( a ) { + return { + 'HMAC': { + 'SHA-1': 'HS1', + 'SHA-256': 'HS256', + 'SHA-384': 'HS384', + 'SHA-512': 'HS512', + }, + 'RSASSA-PKCS1-v1_5': { + 'SHA-1': 'RS1', + 'SHA-256': 'RS256', + 'SHA-384': 'RS384', + 'SHA-512': 'RS512', + }, + 'RSAES-PKCS1-v1_5': { + '': 'RSA1_5', + }, + 'RSA-OAEP': { + 'SHA-1': 'RSA-OAEP', + 'SHA-256': 'RSA-OAEP-256', + }, + 'AES-KW': { + '128': 'A128KW', + '192': 'A192KW', + '256': 'A256KW', + }, + 'AES-GCM': { + '128': 'A128GCM', + '192': 'A192GCM', + '256': 'A256GCM', + }, + 'AES-CBC': { + '128': 'A128CBC', + '192': 'A192CBC', + '256': 'A256CBC', + }, + }[a.name][ ( a.hash || {} ).name || a.length || '' ]; + } + + function b2jwk ( k ) { + if ( k instanceof ArrayBuffer || k instanceof Uint8Array ) k = JSON.parse( decodeURIComponent( escape( b2s(k) ) ) ); + var jwk = { 'kty': k.kty, 'alg': k.alg, 'ext': k.ext || k.extractable }; + switch ( jwk.kty ) { + case 'oct': + jwk.k = k.k; + case 'RSA': + [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi', 'oth' ].forEach( function ( x ) { if ( x in k ) jwk[x] = k[x] } ); + break; + default: + throw new TypeError("Unsupported key type"); + } + return jwk; + } + + function jwk2b ( k ) { + var jwk = b2jwk(k); + if ( isIE ) jwk['extractable'] = jwk.ext, delete jwk.ext; + return s2b( unescape( encodeURIComponent( JSON.stringify(jwk) ) ) ).buffer; + } + + function pkcs2jwk ( k ) { + var info = b2der(k), prv = false; + if ( info.length > 2 ) prv = true, info.shift(); // remove version from PKCS#8 PrivateKeyInfo structure + var jwk = { 'ext': true }; + switch ( info[0][0] ) { + case '1.2.840.113549.1.1.1': + var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ], + rsaKey = b2der( info[1] ); + if ( prv ) rsaKey.shift(); // remove version from PKCS#1 RSAPrivateKey structure + for ( var i = 0; i < rsaKey.length; i++ ) { + if ( !rsaKey[i][0] ) rsaKey[i] = rsaKey[i].subarray(1); + jwk[ rsaComp[i] ] = s2a( b2s( rsaKey[i] ) ); + } + jwk['kty'] = 'RSA'; + break; + default: + throw new TypeError("Unsupported key type"); + } + return jwk; + } + + function jwk2pkcs ( k ) { + var key, info = [ [ '', null ] ], prv = false; + switch ( k.kty ) { + case 'RSA': + var rsaComp = [ 'n', 'e', 'd', 'p', 'q', 'dp', 'dq', 'qi' ], + rsaKey = []; + for ( var i = 0; i < rsaComp.length; i++ ) { + if ( !( rsaComp[i] in k ) ) break; + var b = rsaKey[i] = s2b( a2s( k[ rsaComp[i] ] ) ); + if ( b[0] & 0x80 ) rsaKey[i] = new Uint8Array(b.length + 1), rsaKey[i].set( b, 1 ); + } + if ( rsaKey.length > 2 ) prv = true, rsaKey.unshift( new Uint8Array([0]) ); // add version to PKCS#1 RSAPrivateKey structure + info[0][0] = '1.2.840.113549.1.1.1'; + key = rsaKey; + break; + default: + throw new TypeError("Unsupported key type"); + } + info.push( new Uint8Array( der2b(key) ).buffer ); + if ( !prv ) info[1] = { 'tag': 0x03, 'value': info[1] }; + else info.unshift( new Uint8Array([0]) ); // add version to PKCS#8 PrivateKeyInfo structure + return new Uint8Array( der2b(info) ).buffer; + } - // content-type - var ct = header['content-type'] || ''; - this.type = utils.type(ct); + var oid2str = { 'KoZIhvcNAQEB': '1.2.840.113549.1.1.1' }, + str2oid = { '1.2.840.113549.1.1.1': 'KoZIhvcNAQEB' }; - // params - var params = utils.params(ct); - for (var key in params) this[key] = params[key]; + function b2der ( buf, ctx ) { + if ( buf instanceof ArrayBuffer ) buf = new Uint8Array(buf); + if ( !ctx ) ctx = { pos: 0, end: buf.length }; - this.links = {}; + if ( ctx.end - ctx.pos < 2 || ctx.end > buf.length ) throw new RangeError("Malformed DER"); - // links - try { - if (header.link) { - this.links = utils.parseLinks(header.link); - } - } catch (err) { - // ignore - } -}; + var tag = buf[ctx.pos++], + len = buf[ctx.pos++]; -/** - * Set flags such as `.ok` based on `status`. - * - * For example a 2xx response will give you a `.ok` of __true__ - * whereas 5xx will be __false__ and `.error` will be __true__. The - * `.clientError` and `.serverError` are also available to be more - * specific, and `.statusType` is the class of error ranging from 1..5 - * sometimes useful for mapping respond colors etc. - * - * "sugar" properties are also defined for common cases. Currently providing: - * - * - .noContent - * - .badRequest - * - .unauthorized - * - .notAcceptable - * - .notFound - * - * @param {Number} status - * @api private - */ + if ( len >= 0x80 ) { + len &= 0x7f; + if ( ctx.end - ctx.pos < len ) throw new RangeError("Malformed DER"); + for ( var xlen = 0; len--; ) xlen <<= 8, xlen |= buf[ctx.pos++]; + len = xlen; + } -ResponseBase.prototype._setStatusProperties = function(status){ - var type = status / 100 | 0; + if ( ctx.end - ctx.pos < len ) throw new RangeError("Malformed DER"); + + var rv; + + switch ( tag ) { + case 0x02: // Universal Primitive INTEGER + rv = buf.subarray( ctx.pos, ctx.pos += len ); + break; + case 0x03: // Universal Primitive BIT STRING + if ( buf[ctx.pos++] ) throw new Error( "Unsupported bit string" ); + len--; + case 0x04: // Universal Primitive OCTET STRING + rv = new Uint8Array( buf.subarray( ctx.pos, ctx.pos += len ) ).buffer; + break; + case 0x05: // Universal Primitive NULL + rv = null; + break; + case 0x06: // Universal Primitive OBJECT IDENTIFIER + var oid = btoa( b2s( buf.subarray( ctx.pos, ctx.pos += len ) ) ); + if ( !( oid in oid2str ) ) throw new Error( "Unsupported OBJECT ID " + oid ); + rv = oid2str[oid]; + break; + case 0x30: // Universal Constructed SEQUENCE + rv = []; + for ( var end = ctx.pos + len; ctx.pos < end; ) rv.push( b2der( buf, ctx ) ); + break; + default: + throw new Error( "Unsupported DER tag 0x" + tag.toString(16) ); + } - // status / class - this.status = this.statusCode = status; - this.statusType = type; + return rv; + } - // basics - this.info = 1 == type; - this.ok = 2 == type; - this.redirect = 3 == type; - this.clientError = 4 == type; - this.serverError = 5 == type; - this.error = (4 == type || 5 == type) - ? this.toError() - : false; + function der2b ( val, buf ) { + if ( !buf ) buf = []; - // sugar - this.created = 201 == status; - this.accepted = 202 == status; - this.noContent = 204 == status; - this.badRequest = 400 == status; - this.unauthorized = 401 == status; - this.notAcceptable = 406 == status; - this.forbidden = 403 == status; - this.notFound = 404 == status; - this.unprocessableEntity = 422 == status; -}; + var tag = 0, len = 0, + pos = buf.length + 2; + buf.push( 0, 0 ); // placeholder -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { + if ( val instanceof Uint8Array ) { // Universal Primitive INTEGER + tag = 0x02, len = val.length; + for ( var i = 0; i < len; i++ ) buf.push( val[i] ); + } + else if ( val instanceof ArrayBuffer ) { // Universal Primitive OCTET STRING + tag = 0x04, len = val.byteLength, val = new Uint8Array(val); + for ( var i = 0; i < len; i++ ) buf.push( val[i] ); + } + else if ( val === null ) { // Universal Primitive NULL + tag = 0x05, len = 0; + } + else if ( typeof val === 'string' && val in str2oid ) { // Universal Primitive OBJECT IDENTIFIER + var oid = s2b( atob( str2oid[val] ) ); + tag = 0x06, len = oid.length; + for ( var i = 0; i < len; i++ ) buf.push( oid[i] ); + } + else if ( val instanceof Array ) { // Universal Constructed SEQUENCE + for ( var i = 0; i < val.length; i++ ) der2b( val[i], buf ); + tag = 0x30, len = buf.length - pos; + } + else if ( typeof val === 'object' && val.tag === 0x03 && val.value instanceof ArrayBuffer ) { // Tag hint + val = new Uint8Array(val.value), tag = 0x03, len = val.byteLength; + buf.push(0); for ( var i = 0; i < len; i++ ) buf.push( val[i] ); + len++; + } + else { + throw new Error( "Unsupported DER value " + val ); + } -"use strict"; + if ( len >= 0x80 ) { + var xlen = len, len = 4; + buf.splice( pos, 0, (xlen >> 24) & 0xff, (xlen >> 16) & 0xff, (xlen >> 8) & 0xff, xlen & 0xff ); + while ( len > 1 && !(xlen >> 24) ) xlen <<= 8, len--; + if ( len < 4 ) buf.splice( pos, 4 - len ); + len |= 0x80; + } + buf.splice( pos - 2, 2, tag, len ); + + return buf; + } + + function CryptoKey ( key, alg, ext, use ) { + Object.defineProperties( this, { + _key: { + value: key + }, + type: { + value: key.type, + enumerable: true, + }, + extractable: { + value: (ext === undefined) ? key.extractable : ext, + enumerable: true, + }, + algorithm: { + value: (alg === undefined) ? key.algorithm : alg, + enumerable: true, + }, + usages: { + value: (use === undefined) ? key.usages : use, + enumerable: true, + }, + }); + } -/** - * Return the mime type for the given `str`. - * - * @param {String} str - * @return {String} - * @api private - */ + function isPubKeyUse ( u ) { + return u === 'verify' || u === 'encrypt' || u === 'wrapKey'; + } + + function isPrvKeyUse ( u ) { + return u === 'sign' || u === 'decrypt' || u === 'unwrapKey'; + } + + [ 'generateKey', 'importKey', 'unwrapKey' ] + .forEach( function ( m ) { + var _fn = _subtle[m]; + + _subtle[m] = function ( a, b, c ) { + var args = [].slice.call(arguments), + ka, kx, ku; + + switch ( m ) { + case 'generateKey': + ka = alg(a), kx = b, ku = c; + break; + case 'importKey': + ka = alg(c), kx = args[3], ku = args[4]; + if ( a === 'jwk' ) { + b = b2jwk(b); + if ( !b.alg ) b.alg = jwkAlg(ka); + if ( !b.key_ops ) b.key_ops = ( b.kty !== 'oct' ) ? ( 'd' in b ) ? ku.filter(isPrvKeyUse) : ku.filter(isPubKeyUse) : ku.slice(); + args[1] = jwk2b(b); + } + break; + case 'unwrapKey': + ka = args[4], kx = args[5], ku = args[6]; + args[2] = c._key; + break; + } + + if ( m === 'generateKey' && ka.name === 'HMAC' && ka.hash ) { + ka.length = ka.length || { 'SHA-1': 512, 'SHA-256': 512, 'SHA-384': 1024, 'SHA-512': 1024 }[ka.hash.name]; + return _subtle.importKey( 'raw', _crypto.getRandomValues( new Uint8Array( (ka.length+7)>>3 ) ), ka, kx, ku ); + } + + if ( isWebkit && m === 'generateKey' && ka.name === 'RSASSA-PKCS1-v1_5' && ( !ka.modulusLength || ka.modulusLength >= 2048 ) ) { + a = alg(a), a.name = 'RSAES-PKCS1-v1_5', delete a.hash; + return _subtle.generateKey( a, true, [ 'encrypt', 'decrypt' ] ) + .then( function ( k ) { + return Promise.all([ + _subtle.exportKey( 'jwk', k.publicKey ), + _subtle.exportKey( 'jwk', k.privateKey ), + ]); + }) + .then( function ( keys ) { + keys[0].alg = keys[1].alg = jwkAlg(ka); + keys[0].key_ops = ku.filter(isPubKeyUse), keys[1].key_ops = ku.filter(isPrvKeyUse); + return Promise.all([ + _subtle.importKey( 'jwk', keys[0], ka, true, keys[0].key_ops ), + _subtle.importKey( 'jwk', keys[1], ka, kx, keys[1].key_ops ), + ]); + }) + .then( function ( keys ) { + return { + publicKey: keys[0], + privateKey: keys[1], + }; + }); + } + + if ( ( isWebkit || ( isIE && ( ka.hash || {} ).name === 'SHA-1' ) ) + && m === 'importKey' && a === 'jwk' && ka.name === 'HMAC' && b.kty === 'oct' ) { + return _subtle.importKey( 'raw', s2b( a2s(b.k) ), c, args[3], args[4] ); + } + + if ( isWebkit && m === 'importKey' && ( a === 'spki' || a === 'pkcs8' ) ) { + return _subtle.importKey( 'jwk', pkcs2jwk(b), c, args[3], args[4] ); + } + + if ( isIE && m === 'unwrapKey' ) { + return _subtle.decrypt( args[3], c, b ) + .then( function ( k ) { + return _subtle.importKey( a, k, args[4], args[5], args[6] ); + }); + } + + var op; + try { + op = _fn.apply( _subtle, args ); + } + catch ( e ) { + return Promise.reject(e); + } + + if ( isIE ) { + op = new Promise( function ( res, rej ) { + op.onabort = + op.onerror = function ( e ) { rej(e) }; + op.oncomplete = function ( r ) { res(r.target.result) }; + }); + } + + op = op.then( function ( k ) { + if ( ka.name === 'HMAC' ) { + if ( !ka.length ) ka.length = 8 * k.algorithm.length; + } + if ( ka.name.search('RSA') == 0 ) { + if ( !ka.modulusLength ) ka.modulusLength = (k.publicKey || k).algorithm.modulusLength; + if ( !ka.publicExponent ) ka.publicExponent = (k.publicKey || k).algorithm.publicExponent; + } + if ( k.publicKey && k.privateKey ) { + k = { + publicKey: new CryptoKey( k.publicKey, ka, kx, ku.filter(isPubKeyUse) ), + privateKey: new CryptoKey( k.privateKey, ka, kx, ku.filter(isPrvKeyUse) ), + }; + } + else { + k = new CryptoKey( k, ka, kx, ku ); + } + return k; + }); + + return op; + } + }); -exports.type = function(str){ - return str.split(/ *; */).shift(); -}; + [ 'exportKey', 'wrapKey' ] + .forEach( function ( m ) { + var _fn = _subtle[m]; + + _subtle[m] = function ( a, b, c ) { + var args = [].slice.call(arguments); + + switch ( m ) { + case 'exportKey': + args[1] = b._key; + break; + case 'wrapKey': + args[1] = b._key, args[2] = c._key; + break; + } + + if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) ) + && m === 'exportKey' && a === 'jwk' && b.algorithm.name === 'HMAC' ) { + args[0] = 'raw'; + } + + if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) { + args[0] = 'jwk'; + } + + if ( isIE && m === 'wrapKey' ) { + return _subtle.exportKey( a, b ) + .then( function ( k ) { + if ( a === 'jwk' ) k = s2b( unescape( encodeURIComponent( JSON.stringify( b2jwk(k) ) ) ) ); + return _subtle.encrypt( args[3], c, k ); + }); + } + + var op; + try { + op = _fn.apply( _subtle, args ); + } + catch ( e ) { + return Promise.reject(e); + } + + if ( isIE ) { + op = new Promise( function ( res, rej ) { + op.onabort = + op.onerror = function ( e ) { rej(e) }; + op.oncomplete = function ( r ) { res(r.target.result) }; + }); + } + + if ( m === 'exportKey' && a === 'jwk' ) { + op = op.then( function ( k ) { + if ( ( isWebkit || ( isIE && ( b.algorithm.hash || {} ).name === 'SHA-1' ) ) + && b.algorithm.name === 'HMAC') { + return { 'kty': 'oct', 'alg': jwkAlg(b.algorithm), 'key_ops': b.usages.slice(), 'ext': true, 'k': s2a( b2s(k) ) }; + } + k = b2jwk(k); + if ( !k.alg ) k['alg'] = jwkAlg(b.algorithm); + if ( !k.key_ops ) k['key_ops'] = ( b.type === 'public' ) ? b.usages.filter(isPubKeyUse) : ( b.type === 'private' ) ? b.usages.filter(isPrvKeyUse) : b.usages.slice(); + return k; + }); + } + + if ( isWebkit && m === 'exportKey' && ( a === 'spki' || a === 'pkcs8' ) ) { + op = op.then( function ( k ) { + k = jwk2pkcs( b2jwk(k) ); + return k; + }); + } + + return op; + } + }); -/** - * Return header field parameters. - * - * @param {String} str - * @return {Object} - * @api private - */ + [ 'encrypt', 'decrypt', 'sign', 'verify' ] + .forEach( function ( m ) { + var _fn = _subtle[m]; + + _subtle[m] = function ( a, b, c, d ) { + if ( isIE && ( !c.byteLength || ( d && !d.byteLength ) ) ) + throw new Error("Empy input is not allowed"); + + var args = [].slice.call(arguments), + ka = alg(a); + + if ( isIE && m === 'decrypt' && ka.name === 'AES-GCM' ) { + var tl = a.tagLength >> 3; + args[2] = (c.buffer || c).slice( 0, c.byteLength - tl ), + a.tag = (c.buffer || c).slice( c.byteLength - tl ); + } + + args[1] = b._key; + + var op; + try { + op = _fn.apply( _subtle, args ); + } + catch ( e ) { + return Promise.reject(e); + } + + if ( isIE ) { + op = new Promise( function ( res, rej ) { + op.onabort = + op.onerror = function ( e ) { + rej(e); + }; + + op.oncomplete = function ( r ) { + var r = r.target.result; + + if ( m === 'encrypt' && r instanceof AesGcmEncryptResult ) { + var c = r.ciphertext, t = r.tag; + r = new Uint8Array( c.byteLength + t.byteLength ); + r.set( new Uint8Array(c), 0 ); + r.set( new Uint8Array(t), c.byteLength ); + r = r.buffer; + } + + res(r); + }; + }); + } + + return op; + } + }); -exports.params = function(str){ - return str.split(/ *; */).reduce(function(obj, str){ - var parts = str.split(/ *= */); - var key = parts.shift(); - var val = parts.shift(); + if ( isIE ) { + var _digest = _subtle.digest; - if (key && val) obj[key] = val; - return obj; - }, {}); -}; + _subtle['digest'] = function ( a, b ) { + if ( !b.byteLength ) + throw new Error("Empy input is not allowed"); -/** - * Parse Link header fields. - * - * @param {String} str - * @return {Object} - * @api private - */ + var op; + try { + op = _digest.call( _subtle, a, b ); + } + catch ( e ) { + return Promise.reject(e); + } -exports.parseLinks = function(str){ - return str.split(/ *, */).reduce(function(obj, str){ - var parts = str.split(/ *; */); - var url = parts[0].slice(1, -1); - var rel = parts[1].split(/ *= */)[1].slice(1, -1); - obj[rel] = url; - return obj; - }, {}); -}; + op = new Promise( function ( res, rej ) { + op.onabort = + op.onerror = function ( e ) { rej(e) }; + op.oncomplete = function ( r ) { res(r.target.result) }; + }); -/** - * Strip content related fields from `header`. - * - * @param {Object} header - * @return {Object} header - * @api private - */ + return op; + }; -exports.cleanHeader = function(header, changesOrigin){ - delete header['content-type']; - delete header['content-length']; - delete header['transfer-encoding']; - delete header['host']; - // secuirty - if (changesOrigin) { - delete header['authorization']; - delete header['cookie']; - } - return header; -}; + global.crypto = Object.create( _crypto, { + getRandomValues: { value: function ( a ) { return _crypto.getRandomValues(a) } }, + subtle: { value: _subtle }, + }); + global.CryptoKey = CryptoKey; + } -/***/ }), -/* 90 */ -/***/ (function(module, exports) { + if ( isWebkit ) { + _crypto.subtle = _subtle; -function Agent() { - this._defaults = []; -} + global.Crypto = _Crypto; + global.SubtleCrypto = _SubtleCrypto; + global.CryptoKey = CryptoKey; + } +})); -["use", "on", "once", "set", "query", "type", "accept", "auth", "withCredentials", "sortQuery", "retry", "ok", "redirects", - "timeout", "buffer", "serialize", "parse", "ca", "key", "pfx", "cert"].forEach(function(fn) { - /** Default setting for all requests from this agent */ - Agent.prototype[fn] = function(/*varargs*/) { - this._defaults.push({fn:fn, arguments:arguments}); - return this; - } -}); + /* harmony default export */ var webcrypto_shim = ({}); // section modified by isomorphic-webcrypto build -Agent.prototype._setDefaults = function(req) { - this._defaults.forEach(function(def) { - req[def.fn].apply(req, def.arguments); - }); -}; +// CONCATENATED MODULE: ./node_modules/isomorphic-webcrypto/src/browser.mjs -module.exports = Agent; +/* harmony default export */ var browser = __webpack_exports__["default"] = (window.crypto); /***/ }) diff --git a/dist/web/pubnub.min.js b/dist/web/pubnub.min.js index 6c14e4100..dabd789e7 100644 --- a/dist/web/pubnub.min.js +++ b/dist/web/pubnub.min.js @@ -1 +1,27 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PubNub=t():e.PubNub=t()}(window,function(){return r={},i.m=n=[function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={PNTimeOperation:"PNTimeOperation",PNHistoryOperation:"PNHistoryOperation",PNDeleteMessagesOperation:"PNDeleteMessagesOperation",PNFetchMessagesOperation:"PNFetchMessagesOperation",PNMessageCounts:"PNMessageCountsOperation",PNSubscribeOperation:"PNSubscribeOperation",PNUnsubscribeOperation:"PNUnsubscribeOperation",PNPublishOperation:"PNPublishOperation",PNSignalOperation:"PNSignalOperation",PNAddMessageActionOperation:"PNAddActionOperation",PNRemoveMessageActionOperation:"PNRemoveMessageActionOperation",PNGetMessageActionsOperation:"PNGetMessageActionsOperation",PNCreateUserOperation:"PNCreateUserOperation",PNUpdateUserOperation:"PNUpdateUserOperation",PNDeleteUserOperation:"PNDeleteUserOperation",PNGetUserOperation:"PNGetUsersOperation",PNGetUsersOperation:"PNGetUsersOperation",PNCreateSpaceOperation:"PNCreateSpaceOperation",PNUpdateSpaceOperation:"PNUpdateSpaceOperation",PNDeleteSpaceOperation:"PNDeleteSpaceOperation",PNGetSpaceOperation:"PNGetSpacesOperation",PNGetSpacesOperation:"PNGetSpacesOperation",PNGetMembersOperation:"PNGetMembersOperation",PNUpdateMembersOperation:"PNUpdateMembersOperation",PNGetMembershipsOperation:"PNGetMembershipsOperation",PNUpdateMembershipsOperation:"PNUpdateMembershipsOperation",PNGetAllUUIDMetadataOperation:"PNGetAllUUIDMetadataOperation",PNGetUUIDMetadataOperation:"PNGetUUIDMetadataOperation",PNSetUUIDMetadataOperation:"PNSetUUIDMetadataOperation",PNRemoveUUIDMetadataOperation:"PNRemoveUUIDMetadataOperation",PNGetAllChannelMetadataOperation:"PNGetAllChannelMetadataOperation",PNGetChannelMetadataOperation:"PNGetChannelMetadataOperation",PNSetChannelMetadataOperation:"PNSetChannelMetadataOperation",PNRemoveChannelMetadataOperation:"PNRemoveChannelMetadataOperation",PNSetMembersOperation:"PNSetMembersOperation",PNSetMembershipsOperation:"PNSetMembershipsOperation",PNPushNotificationEnabledChannelsOperation:"PNPushNotificationEnabledChannelsOperation",PNRemoveAllPushNotificationsOperation:"PNRemoveAllPushNotificationsOperation",PNWhereNowOperation:"PNWhereNowOperation",PNSetStateOperation:"PNSetStateOperation",PNHereNowOperation:"PNHereNowOperation",PNGetStateOperation:"PNGetStateOperation",PNHeartbeatOperation:"PNHeartbeatOperation",PNChannelGroupsOperation:"PNChannelGroupsOperation",PNRemoveGroupOperation:"PNRemoveGroupOperation",PNChannelsForGroupOperation:"PNChannelsForGroupOperation",PNAddChannelsToGroupOperation:"PNAddChannelsToGroupOperation",PNRemoveChannelsFromGroupOperation:"PNRemoveChannelsFromGroupOperation",PNAccessManagerGrant:"PNAccessManagerGrant",PNAccessManagerGrantToken:"PNAccessManagerGrantToken",PNAccessManagerAudit:"PNAccessManagerAudit"},e.exports=t.default},function(e,t,n){"use strict";e.exports={}},function(t,e,n){"use strict";(function(r){function n(e){return encodeURIComponent(e).replace(/[!~*'()]/g,function(e){return"%".concat(e.charCodeAt(0).toString(16).toUpperCase())})}function e(e){return function(e){var t=[];return Object.keys(e).forEach(function(e){return t.push(e)}),t}(e).sort()}t.exports={signPamFromParams:function(t){return e(t).map(function(e){return"".concat(e,"=").concat(n(t[e]))}).join("&")},endsWith:function(e,t){return-1!==e.indexOf(t,this.length-t.length)},createPromise:function(){var n,r;return{promise:new Promise(function(e,t){n=e,r=t}),reject:r,fulfill:n}},encodeString:n,deprecated:function(n){return function(){var e,t;void 0!==r&&"test"!==(null===(e=r)||void 0===e?void 0:null===(t=e.env)||void 0===t?void 0:"production")&&console.warn("The Objects v1 API has been deprecated.\nYou can learn more about Objects v2 API at https://www.pubnub.com/docs/web-javascript/api-reference-objects.\nIf you have questions about the Objects v2 API or require additional help with migrating to the new data model, please contact PubNub Support at support@pubnub.com.");return n.apply(void 0,arguments)}}}}).call(this,n(18))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(5))&&r.__esModule?r:{default:r};n(1);function o(e,t){for(var n=0;n>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=a.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new u.init(n,t/2)}},s=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new u.init(n,t)}},c=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(s.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return s.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new u.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=c.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,o=r/(4*i);if(e=(o=e?a.ceil(o):a.max((0|o)-this._minBufferSize,0))*i,r=a.min(4*e,r),e){for(var s=0;s>>7)^(d<<14|d>>>18)^d>>>3)+v[f-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+v[f-16]}d=l+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&u^~a&c)+h[f]+v[f],p=((r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22))+(r&i^r&o^i&o),l=c,c=u,u=a,a=s+d|0,s=o,o=i,i=r,r=d+p|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+o|0,n[3]=n[3]+s|0,n[4]=n[4]+a|0,n[5]=n[5]+u|0,n[6]=n[6]+c|0,n[7]=n[7]+l|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=i.floor(n/4294967296),t[15+(64+r>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA256=n._createHelper(r),e.HmacSHA256=n._createHmacHelper(r)}(Math),c=(r=j).enc.Utf8,r.algo.HMAC=r.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=c.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),o=this._iKey=t.clone(),s=i.words,a=o.words,u=0;u>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,s=0;s<4&&i+.75*s>>6*(3-s)&63));if(t=r.charAt(64))for(;e.length%4;)e.push(t);return e.join("")},parse:function(e){var t=e.length,n=this._map;!(r=n.charAt(64))||-1!=(r=e.indexOf(r))&&(t=r);for(var r=[],i=0,o=0;o>>6-o%4*2;r[i>>>2]|=(s|a)<<24-i%4*8,i++}return u.create(r,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(o){function O(e,t,n,r,i,o,s){return((e=e+(t&n|~t&r)+i+s)<>>32-o)+t}function T(e,t,n,r,i,o,s){return((e=e+(t&r|n&~r)+i+s)<>>32-o)+t}function M(e,t,n,r,i,o,s){return((e=e+(t^n^r)+i+s)<>>32-o)+t}function S(e,t,n,r,i,o,s){return((e=e+(n^(t|~r))+i+s)<>>32-o)+t}for(var e=j,t=(r=e.lib).WordArray,n=r.Hasher,r=e.algo,w=[],i=0;i<64;i++)w[i]=4294967296*o.abs(o.sin(i+1))|0;r=r.MD5=n.extend({_doReset:function(){this._hash=new t.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=e[s=t+n];e[s]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}n=this._hash.words;var i,o,s=e[t+0],a=(r=e[t+1],e[t+2]),u=e[t+3],c=e[t+4],l=e[t+5],f=e[t+6],d=e[t+7],p=e[t+8],h=e[t+9],v=e[t+10],g=e[t+11],y=e[t+12],b=e[t+13],m=e[t+14],_=e[t+15],k=n[0],P=S(P=S(P=S(P=S(P=M(P=M(P=M(P=M(P=T(P=T(P=T(P=T(P=O(P=O(P=O(P=O(P=n[1],o=O(o=n[2],i=O(i=n[3],k=O(k,P,o,i,s,7,w[0]),P,o,r,12,w[1]),k,P,a,17,w[2]),i,k,u,22,w[3]),o=O(o,i=O(i,k=O(k,P,o,i,c,7,w[4]),P,o,l,12,w[5]),k,P,f,17,w[6]),i,k,d,22,w[7]),o=O(o,i=O(i,k=O(k,P,o,i,p,7,w[8]),P,o,h,12,w[9]),k,P,v,17,w[10]),i,k,g,22,w[11]),o=O(o,i=O(i,k=O(k,P,o,i,y,7,w[12]),P,o,b,12,w[13]),k,P,m,17,w[14]),i,k,_,22,w[15]),o=T(o,i=T(i,k=T(k,P,o,i,r,5,w[16]),P,o,f,9,w[17]),k,P,g,14,w[18]),i,k,s,20,w[19]),o=T(o,i=T(i,k=T(k,P,o,i,l,5,w[20]),P,o,v,9,w[21]),k,P,_,14,w[22]),i,k,c,20,w[23]),o=T(o,i=T(i,k=T(k,P,o,i,h,5,w[24]),P,o,m,9,w[25]),k,P,u,14,w[26]),i,k,p,20,w[27]),o=T(o,i=T(i,k=T(k,P,o,i,b,5,w[28]),P,o,a,9,w[29]),k,P,d,14,w[30]),i,k,y,20,w[31]),o=M(o,i=M(i,k=M(k,P,o,i,l,4,w[32]),P,o,p,11,w[33]),k,P,g,16,w[34]),i,k,m,23,w[35]),o=M(o,i=M(i,k=M(k,P,o,i,r,4,w[36]),P,o,c,11,w[37]),k,P,d,16,w[38]),i,k,v,23,w[39]),o=M(o,i=M(i,k=M(k,P,o,i,b,4,w[40]),P,o,s,11,w[41]),k,P,u,16,w[42]),i,k,f,23,w[43]),o=M(o,i=M(i,k=M(k,P,o,i,h,4,w[44]),P,o,y,11,w[45]),k,P,_,16,w[46]),i,k,a,23,w[47]),o=S(o,i=S(i,k=S(k,P,o,i,s,6,w[48]),P,o,d,10,w[49]),k,P,m,15,w[50]),i,k,l,21,w[51]),o=S(o,i=S(i,k=S(k,P,o,i,y,6,w[52]),P,o,u,10,w[53]),k,P,v,15,w[54]),i,k,r,21,w[55]),o=S(o,i=S(i,k=S(k,P,o,i,p,6,w[56]),P,o,_,10,w[57]),k,P,f,15,w[58]),i,k,b,21,w[59]),o=S(o,i=S(i,k=S(k,P,o,i,c,6,w[60]),P,o,g,10,w[61]),k,P,a,15,w[62]),i,k,h,21,w[63]);n[0]=n[0]+k|0,n[1]=n[1]+P|0,n[2]=n[2]+o|0,n[3]=n[3]+i|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32;var i=o.floor(n/4294967296);for(t[15+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process(),t=(e=this._hash).words,n=0;n<4;n++)r=t[n],t[n]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8);return e},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),e.MD5=n._createHelper(r),e.HmacMD5=n._createHmacHelper(r)}(Math),a=(o=(s=j).lib).Base,l=o.WordArray,f=(o=s.algo).EvpKDF=a.extend({cfg:a.extend({keySize:4,hasher:o.MD5,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=(s=this.cfg).hasher.create(),r=l.create(),i=r.words,o=s.keySize,s=s.iterations;i.length>>2]}},e.BlockCipher=o.extend({cfg:o.cfg.extend({mode:u,padding:c}),reset:function(){o.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=t.createEncryptor;else n=t.createDecryptor,this._minBufferSize=1;this._mode=n.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var l=e.CipherParams=t.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),f=(u=(d.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?s.create([1398893684,1701076831]).concat(e).concat(t):t).toString(r)},parse:function(e){var t=(e=r.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var n=s.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return l.create({ciphertext:e,salt:n})}},e.SerializableCipher=t.extend({cfg:t.extend({format:u}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r);return t=i.finalize(t),i=i.cfg,l.create({ciphertext:t,key:n,iv:i.iv,algorithm:e,mode:i.mode,padding:i.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),d=(d.kdf={}).OpenSSL={execute:function(e,t,n,r){return r=r||s.random(8),e=i.create({keySize:t+n}).compute(e,r),n=s.create(e.words.slice(t),4*n),e.sigBytes=4*t,l.create({key:e,iv:n,salt:r})}},p=e.PasswordBasedCipher=f.extend({cfg:f.cfg.extend({kdf:d}),encrypt:function(e,t,n,r){return n=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize),r.iv=n.iv,(e=f.encrypt.call(this,e,t,n.key,r)).mixIn(n),e},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),n=r.kdf.execute(n,e.keySize,e.ivSize,t.salt),r.iv=n.iv,f.decrypt.call(this,e,t,n.key,r)}})}(),function(){for(var e=j,t=e.lib.BlockCipher,n=e.algo,s=[],r=[],i=[],o=[],a=[],u=[],c=[],l=[],f=[],d=[],p=[],h=0;h<256;h++)p[h]=h<128?h<<1:h<<1^283;var v=0,g=0;for(h=0;h<256;h++){var y=(y=g^g<<1^g<<2^g<<3^g<<4)>>>8^255&y^99;s[v]=y;var b=p[r[y]=v],m=p[b],_=p[m],k=257*p[y]^16843008*y;i[v]=k<<24|k>>>8,o[v]=k<<16|k>>>16,a[v]=k<<8|k>>>24,u[v]=k,k=16843009*_^65537*m^257*b^16843008*v,c[y]=k<<24|k>>>8,l[y]=k<<16|k>>>16,f[y]=k<<8|k>>>24,d[y]=k,v?(v=b^p[p[p[_^b]]],g^=p[p[g]]):v=g=1}var P=[0,1,2,4,8,16,32,64,128,27,54];n=n.AES=t.extend({_doReset:function(){for(var e=(n=this._key).words,t=n.sigBytes/4,n=4*((this._nRounds=t+6)+1),r=this._keySchedule=[],i=0;i>>24]<<24|s[o>>>16&255]<<16|s[o>>>8&255]<<8|s[255&o]):(o=s[(o=o<<8|o>>>24)>>>24]<<24|s[o>>>16&255]<<16|s[o>>>8&255]<<8|s[255&o],o^=P[i/t|0]<<24),r[i]=r[i-t]^o}for(e=this._invKeySchedule=[],t=0;t>>24]]^l[s[o>>>16&255]]^f[s[o>>>8&255]]^d[s[255&o]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,i,o,a,u,s)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,c,l,f,d,r),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,o,s,a){for(var u=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],f=e[t+2]^n[2],d=e[t+3]^n[3],p=4,h=1;h>>24]^i[l>>>16&255]^o[f>>>8&255]^s[255&d]^n[p++],g=r[l>>>24]^i[f>>>16&255]^o[d>>>8&255]^s[255&c]^n[p++],y=r[f>>>24]^i[d>>>16&255]^o[c>>>8&255]^s[255&l]^n[p++];d=r[d>>>24]^i[c>>>16&255]^o[l>>>8&255]^s[255&f]^n[p++],c=v,l=g,f=y}v=(a[c>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&d])^n[p++],g=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[d>>>8&255]<<8|a[255&c])^n[p++],y=(a[f>>>24]<<24|a[d>>>16&255]<<16|a[c>>>8&255]<<8|a[255&l])^n[p++],d=(a[d>>>24]<<24|a[c>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^n[p++],e[t]=v,e[t+1]=g,e[t+2]=y,e[t+3]=d},keySize:8});e.AES=t._createHelper(n)}(),j.mode.ECB=((d=j.lib.BlockCipherMode.extend()).Encryptor=d.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),d.Decryptor=d.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),d),e.exports=j},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;n(1);var r,i=(r=n(4))&&r.__esModule?r:{default:r};function o(e,t){for(var n=0;n>24,r[o+1]=(16711680&a)>>16,r[o+2]=(65280&a)>>8,r[o+3]=255&a}for(var u=o+3;o<=u;u-=1)0===r[u]&&(i+=1);return 0>2,o=0;o>6):(i<55296?r.push(224|i>>12):(i=(1023&i)<<10,i|=1023&t.charCodeAt(++n),i+=65536,r.push(240|i>>18),r.push(128|i>>12&63)),r.push(128|i>>6&63)),r.push(128|63&i))}return h(3,r.length),p(r);default:var o;if(Array.isArray(t))for(h(4,o=t.length),n=0;n>5!==e)throw"Invalid indefinite length element";return n}function T(e,t){for(var n=0;n>10),e.push(56320|1023&r))}}"function"!=typeof p&&(p=function(e){return e}),"function"!=typeof h&&(h=function(){return M});var e=function e(){var t,n,r=m(),i=r>>5,o=31&r;if(7==i)switch(o){case 25:return function(){var e=new ArrayBuffer(4),t=new DataView(e),n=_(),r=32768&n,i=31744&n,o=1023&n;if(31744===i)i=261120;else if(0!==i)i+=114688;else if(0!=o)return o*S;return t.setUint32(0,r<<16|i<<13|o<<13),t.getFloat32(0)}();case 26:return y(v.getFloat32(g),4);case 27:return y(v.getFloat64(g),8)}if((n=P(o))<0&&(i<2||6=o){var s={};s.category=a.default.PNRequestMessageCountExceededCategory,s.operation=t.operation,this._listenerManager.announceStatus(s)}r.forEach(function(e){var t=e.channel,n=e.subscriptionMatch,r=e.publishMetaData;if(t===n&&(n=null),l){if(c._dedupingManager.isDuplicate(e))return;c._dedupingManager.addEntry(e)}if(f.default.endsWith(e.channel,"-pnpres")){var i={channel:null,subscription:null};i.actualChannel=null!=n?t:null,i.subscribedChannel=null!=n?n:t,t&&(i.channel=t.substring(0,t.lastIndexOf("-pnpres"))),n&&(i.subscription=n.substring(0,n.lastIndexOf("-pnpres"))),i.action=e.payload.action,i.state=e.payload.data,i.timetoken=r.publishTimetoken,i.occupancy=e.payload.occupancy,i.uuid=e.payload.uuid,i.timestamp=e.payload.timestamp,e.payload.join&&(i.join=e.payload.join),e.payload.leave&&(i.leave=e.payload.leave),e.payload.timeout&&(i.timeout=e.payload.timeout),c._listenerManager.announcePresence(i)}else if(1===e.messageType){var o={channel:null,subscription:null};o.channel=t,o.subscription=n,o.timetoken=r.publishTimetoken,o.publisher=e.issuingClientId,e.userMetadata&&(o.userMetadata=e.userMetadata),o.message=e.payload,c._listenerManager.announceSignal(o)}else if(2===e.messageType){var s={channel:null,subscription:null};s.channel=t,s.subscription=n,s.timetoken=r.publishTimetoken,s.publisher=e.issuingClientId,e.userMetadata&&(s.userMetadata=e.userMetadata),s.message={event:e.payload.event,type:e.payload.type,data:e.payload.data},c._listenerManager.announceObjects(s),"user"===e.payload.type?c._listenerManager.announceUser(s):"space"===e.payload.type?c._listenerManager.announceSpace(s):"membership"===e.payload.type&&c._listenerManager.announceMembership(s)}else if(3===e.messageType){var a={};a.channel=t,a.subscription=n,a.timetoken=r.publishTimetoken,a.publisher=e.issuingClientId,a.data={messageTimetoken:e.payload.data.messageTimetoken,actionTimetoken:e.payload.data.actionTimetoken,type:e.payload.data.type,uuid:e.issuingClientId,value:e.payload.data.value},a.event=e.payload.event,c._listenerManager.announceMessageAction(a)}else{var u={channel:null,subscription:null};u.actualChannel=null!=n?t:null,u.subscribedChannel=null!=n?n:t,u.channel=t,u.subscription=n,u.timetoken=r.publishTimetoken,u.publisher=e.issuingClientId,e.userMetadata&&(u.userMetadata=e.userMetadata),c._config.cipherKey?u.message=c._crypto.decrypt(e.payload):u.message=e.payload,c._listenerManager.announceMessage(u)}}),this._region=e.metadata.region,this._startSubscribeLoop()}}},{key:"_stopSubscribeLoop",value:function(){this._subscribeCall&&("function"==typeof this._subscribeCall.abort&&this._subscribeCall.abort(),this._subscribeCall=null)}}])&&i(o.prototype,s),void(u&&i(o,u)),h);function h(e){var t=e.subscribeEndpoint,n=e.leaveEndpoint,r=e.heartbeatEndpoint,i=e.setStateEndpoint,o=e.timeEndpoint,s=e.config,a=e.crypto,u=e.listenerManager;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,h),d(this,"_crypto",void 0),d(this,"_config",void 0),d(this,"_listenerManager",void 0),d(this,"_reconnectionManager",void 0),d(this,"_leaveEndpoint",void 0),d(this,"_heartbeatEndpoint",void 0),d(this,"_setStateEndpoint",void 0),d(this,"_subscribeEndpoint",void 0),d(this,"_channels",void 0),d(this,"_presenceChannels",void 0),d(this,"_heartbeatChannels",void 0),d(this,"_heartbeatChannelGroups",void 0),d(this,"_channelGroups",void 0),d(this,"_presenceChannelGroups",void 0),d(this,"_currentTimetoken",void 0),d(this,"_lastTimetoken",void 0),d(this,"_storedTimetoken",void 0),d(this,"_region",void 0),d(this,"_subscribeCall",void 0),d(this,"_heartbeatTimer",void 0),d(this,"_subscriptionStatusAnnounced",void 0),d(this,"_autoNetworkDetection",void 0),d(this,"_isOnline",void 0),d(this,"_pendingChannelSubscriptions",void 0),d(this,"_pendingChannelGroupSubscriptions",void 0),d(this,"_dedupingManager",void 0),this._listenerManager=u,this._config=s,this._leaveEndpoint=n,this._heartbeatEndpoint=r,this._setStateEndpoint=i,this._subscribeEndpoint=t,this._crypto=a,this._channels={},this._presenceChannels={},this._heartbeatChannels={},this._heartbeatChannelGroups={},this._channelGroups={},this._presenceChannelGroups={},this._pendingChannelSubscriptions=[],this._pendingChannelGroupSubscriptions=[],this._currentTimetoken=0,this._lastTimetoken=0,this._storedTimetoken=null,this._subscriptionStatusAnnounced=!1,this._isOnline=!0,this._reconnectionManager=new c.default({timeEndpoint:o}),this._dedupingManager=new l.default({config:s})}t.default=p,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r;(r=n(9))&&r.__esModule,n(1);function i(e,t){for(var n=0;n=this._config.maximumCacheSize&&this.hashHistory.shift(),this.hashHistory.push(this.getKey(e))}},{key:"clearHistory",value:function(){this.hashHistory=[]}}])&&i(s.prototype,a),void(u&&i(s,u)),l);function l(e){var t=e.config;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),o(this,"_config",void 0),o(this,"hashHistory",void 0),this.hashHistory=[],this._config=t}t.default=c,e.exports=t.default},function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var u,c=[],l=!1,f=-1;function d(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&p())}function p(){if(!l){var e=a(d);l=!0;for(var t=c.length;t;){for(u=c,c=[];++fthis._maximumSamplesCount&&r.splice(0,r.length-this._maximumSamplesCount),delete this._trackedLatencies[t]}}},{key:"_averageLatency",value:function(e){return Math.floor(e.reduce(function(e,t){return e+t},0)/e.length)}},{key:"_endpointName",value:function(e){var t=null;switch(e){case o.default.PNPublishOperation:t="pub";break;case o.default.PNSignalOperation:t="sig";break;case o.default.PNHistoryOperation:case o.default.PNFetchMessagesOperation:case o.default.PNDeleteMessagesOperation:case o.default.PNMessageCounts:t="hist";break;case o.default.PNUnsubscribeOperation:case o.default.PNWhereNowOperation:case o.default.PNHereNowOperation:case o.default.PNHeartbeatOperation:case o.default.PNSetStateOperation:case o.default.PNGetStateOperation:t="pres";break;case o.default.PNAddChannelsToGroupOperation:case o.default.PNRemoveChannelsFromGroupOperation:case o.default.PNChannelGroupsOperation:case o.default.PNRemoveGroupOperation:case o.default.PNChannelsForGroupOperation:t="cg";break;case o.default.PNPushNotificationEnabledChannelsOperation:case o.default.PNRemoveAllPushNotificationsOperation:t="push";break;case o.default.PNCreateUserOperation:case o.default.PNUpdateUserOperation:case o.default.PNDeleteUserOperation:case o.default.PNGetUserOperation:case o.default.PNGetUsersOperation:case o.default.PNCreateSpaceOperation:case o.default.PNUpdateSpaceOperation:case o.default.PNDeleteSpaceOperation:case o.default.PNGetSpaceOperation:case o.default.PNGetSpacesOperation:case o.default.PNGetMembersOperation:case o.default.PNUpdateMembersOperation:case o.default.PNGetMembershipsOperation:case o.default.PNUpdateMembershipsOperation:t="obj";break;case o.default.PNAddMessageActionOperation:case o.default.PNRemoveMessageActionOperation:case o.default.PNGetMessageActionsOperation:t="msga";break;case o.default.PNAccessManagerGrant:case o.default.PNAccessManagerAudit:t="pam";break;case o.default.PNAccessManagerGrantToken:t="pam3";break;default:t="time"}return t}}])&&i(a.prototype,u),void(c&&i(a,c)),f);function f(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),s(this,"_maximumSamplesCount",100),s(this,"_trackedLatencies",{}),s(this,"_latencies",{}),this._maximumSamplesCount=e.maximumSamplesCount||this._maximumSamplesCount}t.default=l,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.FCMNotificationPayload=t.MPNSNotificationPayload=t.APNSNotificationPayload=void 0;n(1);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=this._maxSubDomain&&(this._currentSubDomain=1),e=this._currentSubDomain.toString(),this._providedFQDN.replace("ps.pndsn.com","ps".concat(e,".pndsn.com"))):this._providedFQDN;var e}},{key:"hasModule",value:function(e){return e in this._modules}},{key:"shiftStandardOrigin",value:function(){return this._standardOrigin=this.nextOrigin(),this._standardOrigin}},{key:"getStandardOrigin",value:function(){return this._standardOrigin}},{key:"POST",value:function(e,t,n,r){return this._modules.post(e,t,n,r)}},{key:"PATCH",value:function(e,t,n,r){return this._modules.patch(e,t,n,r)}},{key:"GET",value:function(e,t,n){return this._modules.get(e,t,n)}},{key:"DELETE",value:function(e,t,n){return this._modules.del(e,t,n)}},{key:"_detectErrorCategory",value:function(e){if("ENOTFOUND"===e.code)return r.default.PNNetworkIssuesCategory;if("ECONNREFUSED"===e.code)return r.default.PNNetworkIssuesCategory;if("ECONNRESET"===e.code)return r.default.PNNetworkIssuesCategory;if("EAI_AGAIN"===e.code)return r.default.PNNetworkIssuesCategory;if(0===e.status||e.hasOwnProperty("status")&&void 0===e.status)return r.default.PNNetworkIssuesCategory;if(e.timeout)return r.default.PNTimeoutCategory;if("ETIMEDOUT"===e.code)return r.default.PNNetworkIssuesCategory;if(e.response){if(e.response.badRequest)return r.default.PNBadRequestCategory;if(e.response.forbidden)return r.default.PNAccessDeniedCategory}return r.default.PNUnknownCategory}}])&&o(a.prototype,u),void(c&&o(a,c)),f);function f(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),s(this,"_modules",void 0),s(this,"_config",void 0),s(this,"_maxSubDomain",void 0),s(this,"_currentSubDomain",void 0),s(this,"_standardOrigin",void 0),s(this,"_subscribeOrigin",void 0),s(this,"_providedFQDN",void 0),s(this,"_requestTimeout",void 0),s(this,"_coreParams",void 0),this._modules={},Object.keys(t).forEach(function(e){n._modules[e]=t[e].bind(n)})}t.default=l,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={get:function(e){try{return localStorage.getItem(e)}catch(e){return null}},set:function(e,t){try{return localStorage.setItem(e,t)}catch(e){return null}}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){for(var n=0;n>>>>>"),o.log("[".concat(n," / ").concat(t,"]"),"\n",r.url,"\n",r.qs,"\n",e.text),o.log("-----")})}function s(e,i,o){var s=this;return this._config.logVerbosity&&(e=e.use(a)),this._config.proxy&&this._modules.proxy&&(e=this._modules.proxy.call(this,e)),this._config.keepAlive&&this._modules.keepAlive&&(e=this._modules.keepAlive(e)),e.timeout(i.timeout).end(function(t,n){var e,r={};if(r.error=null!==t,r.operation=i.operation,n&&n.status&&(r.statusCode=n.status),t){if(t.response&&t.response.text&&!s._config.logVerbosity)try{r.errorData=JSON.parse(t.response.text)}catch(e){r.errorData=t}else r.errorData=t;return r.category=s._detectErrorCategory(t),o(r,null)}try{e=JSON.parse(n.text)}catch(e){return r.errorData=n,r.error=!0,o(r,null)}return e.error&&1===e.error&&e.status&&e.message&&e.service?(r.errorData=e,r.statusCode=e.status,r.error=!0,r.category=s._detectErrorCategory(r),o(r,null)):(e.error&&e.error.message&&(r.errorData=e.error),o(r,e))})}},function(e,n,t){var r;r="undefined"!=typeof window?window:"undefined"!=typeof self?self:(console.warn("Using browser-only version of superagent in non-browser environment"),this);var i=t(86),o=t(87),s=t(10),a=t(88),u=t(90);function c(){}var l=n=e.exports=function(e,t){return"function"==typeof t?new n.Request("GET",e).end(t):1==arguments.length?new n.Request("GET",e):new n.Request(e,t)};n.Request=y,l.getXHR=function(){if(!(!r.XMLHttpRequest||r.location&&"file:"==r.location.protocol&&r.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw Error("Browser-only version of superagent could not find XHR")};var f="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};function d(e){if(!s(e))return e;var t=[];for(var n in e)p(t,n,e[n]);return t.join("&")}function p(t,n,e){if(null!=e)if(Array.isArray(e))e.forEach(function(e){p(t,n,e)});else if(s(e))for(var r in e)p(t,n+"["+r+"]",e[r]);else t.push(encodeURIComponent(n)+"="+encodeURIComponent(e));else null===e&&t.push(encodeURIComponent(n))}function h(e){for(var t,n,r={},i=e.split("&"),o=0,s=i.length;o=this._maxRetries)return!1;if(this._retryCallback)try{var n=this._retryCallback(e,t);if(!0===n)return!0;if(!1===n)return!1}catch(e){console.error(e)}if(t&&t.status&&500<=t.status&&501!=t.status)return!0;if(e){if(e.code&&~o.indexOf(e.code))return!0;if(e.timeout&&"ECONNABORTED"==e.code)return!0;if(e.crossDomain)return!0}return!1},r.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this._end()},r.prototype.then=function(e,t){if(!this._fullfilledPromise){var i=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise(function(n,r){i.end(function(e,t){e?r(e):n(t)})})}return this._fullfilledPromise.then(e,t)},r.prototype.catch=function(e){return this.then(void 0,e)},r.prototype.use=function(e){return e(this),this},r.prototype.ok=function(e){if("function"!=typeof e)throw Error("Callback required");return this._okCallback=e,this},r.prototype._isResponseOK=function(e){return!!e&&(this._okCallback?this._okCallback(e):200<=e.status&&e.status<300)},r.prototype.getHeader=r.prototype.get=function(e){return this._header[e.toLowerCase()]},r.prototype.set=function(e,t){if(i(e)){for(var n in e)this.set(n,e[n]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},r.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},r.prototype.field=function(e,t){if(null==e)throw new Error(".field(name, val) name can not be empty");if(this._data&&console.error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()"),i(e)){for(var n in e)this.field(n,e[n]);return this}if(Array.isArray(t)){for(var r in t)this.field(e,t[r]);return this}if(null==t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=""+t),this._getFormData().append(e,t),this},r.prototype.abort=function(){return this._aborted||(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort")),this},r.prototype._auth=function(e,t,n,r){switch(n.type){case"basic":this.set("Authorization","Basic "+r(e+":"+t));break;case"auto":this.username=e,this.password=t;break;case"bearer":this.set("Authorization","Bearer "+e)}return this},r.prototype.withCredentials=function(e){return null==e&&(e=!0),this._withCredentials=e,this},r.prototype.redirects=function(e){return this._maxRedirects=e,this},r.prototype.maxResponseSize=function(e){if("number"!=typeof e)throw TypeError("Invalid argument");return this._maxResponseSize=e,this},r.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},r.prototype.send=function(e){var t=i(e),n=this._header["content-type"];if(this._formData&&console.error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()"),t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw Error("Can't merge these send calls");if(t&&i(this._data))for(var r in e)this._data[r]=e[r];else"string"==typeof e?(n||this.type("form"),n=this._header["content-type"],this._data="application/x-www-form-urlencoded"==n?this._data?this._data+"&"+e:e:(this._data||"")+e):this._data=e;return!t||this._isHost(e)||n||this.type("json"),this},r.prototype.sortQuery=function(e){return this._sort=void 0===e||e,this},r.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(0<=this.url.indexOf("?")?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(0<=t){var n=this.url.substring(t+1).split("&");"function"==typeof this._sort?n.sort(this._sort):n.sort(),this.url=this.url.substring(0,t)+"?"+n.join("&")}}},r.prototype._appendQueryString=function(){console.trace("Unsupported")},r.prototype._timeoutError=function(e,t,n){if(!this._aborted){var r=new Error(e+t+"ms exceeded");r.timeout=t,r.code="ECONNABORTED",r.errno=n,this.timedout=!0,this.abort(),this.callback(r)}},r.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")},this._responseTimeout))}},function(e,t,n){"use strict";var i=n(89);function r(e){if(e)return function(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}(e)}(e.exports=r).prototype.get=function(e){return this.header[e.toLowerCase()]},r.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=i.type(t);var n=i.params(t);for(var r in n)this[r]=n[r];this.links={};try{e.link&&(this.links=i.parseLinks(e.link))}catch(e){}},r.prototype._setStatusProperties=function(e){var t=e/100|0;this.status=this.statusCode=e,this.statusType=t,this.info=1==t,this.ok=2==t,this.redirect=3==t,this.clientError=4==t,this.serverError=5==t,this.error=(4==t||5==t)&&this.toError(),this.created=201==e,this.accepted=202==e,this.noContent=204==e,this.badRequest=400==e,this.unauthorized=401==e,this.notAcceptable=406==e,this.forbidden=403==e,this.notFound=404==e,this.unprocessableEntity=422==e}},function(e,t,n){"use strict";t.type=function(e){return e.split(/ *; */).shift()},t.params=function(e){return e.split(/ *; */).reduce(function(e,t){var n=t.split(/ *= */),r=n.shift(),i=n.shift();return r&&i&&(e[r]=i),e},{})},t.parseLinks=function(e){return e.split(/ *, */).reduce(function(e,t){var n=t.split(/ *; */),r=n[0].slice(1,-1);return e[n[1].split(/ *= */)[1].slice(1,-1)]=r,e},{})},t.cleanHeader=function(e,t){return delete e["content-type"],delete e["content-length"],delete e["transfer-encoding"],delete e.host,t&&(delete e.authorization,delete e.cookie),e}},function(e,t){function n(){this._defaults=[]}["use","on","once","set","query","type","accept","auth","withCredentials","sortQuery","retry","ok","redirects","timeout","buffer","serialize","parse","ca","key","pfx","cert"].forEach(function(e){n.prototype[e]=function(){return this._defaults.push({fn:e,arguments:arguments}),this}}),n.prototype._setDefaults=function(t){this._defaults.forEach(function(e){t[e.fn].apply(t,e.arguments)})},e.exports=n}],i.c=r,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=11);function i(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}var n,r}); \ No newline at end of file +/*! 4.29.0 / Consumer */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.PubNub=t():e.PubNub=t()}(window,(function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(i,a,function(t){return e[t]}.bind(null,a));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=28)}([function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={PNTimeOperation:"PNTimeOperation",PNHistoryOperation:"PNHistoryOperation",PNDeleteMessagesOperation:"PNDeleteMessagesOperation",PNFetchMessagesOperation:"PNFetchMessagesOperation",PNMessageCounts:"PNMessageCountsOperation",PNSubscribeOperation:"PNSubscribeOperation",PNUnsubscribeOperation:"PNUnsubscribeOperation",PNPublishOperation:"PNPublishOperation",PNSignalOperation:"PNSignalOperation",PNAddMessageActionOperation:"PNAddActionOperation",PNRemoveMessageActionOperation:"PNRemoveMessageActionOperation",PNGetMessageActionsOperation:"PNGetMessageActionsOperation",PNCreateUserOperation:"PNCreateUserOperation",PNUpdateUserOperation:"PNUpdateUserOperation",PNDeleteUserOperation:"PNDeleteUserOperation",PNGetUserOperation:"PNGetUsersOperation",PNGetUsersOperation:"PNGetUsersOperation",PNCreateSpaceOperation:"PNCreateSpaceOperation",PNUpdateSpaceOperation:"PNUpdateSpaceOperation",PNDeleteSpaceOperation:"PNDeleteSpaceOperation",PNGetSpaceOperation:"PNGetSpacesOperation",PNGetSpacesOperation:"PNGetSpacesOperation",PNGetMembersOperation:"PNGetMembersOperation",PNUpdateMembersOperation:"PNUpdateMembersOperation",PNGetMembershipsOperation:"PNGetMembershipsOperation",PNUpdateMembershipsOperation:"PNUpdateMembershipsOperation",PNListFilesOperation:"PNListFilesOperation",PNGenerateUploadUrlOperation:"PNGenerateUploadUrlOperation",PNPublishFileOperation:"PNPublishFileOperation",PNGetFileUrlOperation:"PNGetFileUrlOperation",PNDownloadFileOperation:"PNDownloadFileOperation",PNGetAllUUIDMetadataOperation:"PNGetAllUUIDMetadataOperation",PNGetUUIDMetadataOperation:"PNGetUUIDMetadataOperation",PNSetUUIDMetadataOperation:"PNSetUUIDMetadataOperation",PNRemoveUUIDMetadataOperation:"PNRemoveUUIDMetadataOperation",PNGetAllChannelMetadataOperation:"PNGetAllChannelMetadataOperation",PNGetChannelMetadataOperation:"PNGetChannelMetadataOperation",PNSetChannelMetadataOperation:"PNSetChannelMetadataOperation",PNRemoveChannelMetadataOperation:"PNRemoveChannelMetadataOperation",PNSetMembersOperation:"PNSetMembersOperation",PNSetMembershipsOperation:"PNSetMembershipsOperation",PNPushNotificationEnabledChannelsOperation:"PNPushNotificationEnabledChannelsOperation",PNRemoveAllPushNotificationsOperation:"PNRemoveAllPushNotificationsOperation",PNWhereNowOperation:"PNWhereNowOperation",PNSetStateOperation:"PNSetStateOperation",PNHereNowOperation:"PNHereNowOperation",PNGetStateOperation:"PNGetStateOperation",PNHeartbeatOperation:"PNHeartbeatOperation",PNChannelGroupsOperation:"PNChannelGroupsOperation",PNRemoveGroupOperation:"PNRemoveGroupOperation",PNChannelsForGroupOperation:"PNChannelsForGroupOperation",PNAddChannelsToGroupOperation:"PNAddChannelsToGroupOperation",PNRemoveChannelsFromGroupOperation:"PNRemoveChannelsFromGroupOperation",PNAccessManagerGrant:"PNAccessManagerGrant",PNAccessManagerGrantToken:"PNAccessManagerGrantToken",PNAccessManagerAudit:"PNAccessManagerAudit"},e.exports=t.default},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";(function(t){function n(e){return encodeURIComponent(e).replace(/[!~*'()]/g,(function(e){return"%".concat(e.charCodeAt(0).toString(16).toUpperCase())}))}function i(e){return function(e){var t=[];return Object.keys(e).forEach((function(e){return t.push(e)})),t}(e).sort()}var a="The Objects v1 API has been deprecated.\nYou can learn more about Objects v2 API at https://www.pubnub.com/docs/web-javascript/api-reference-objects.\nIf you have questions about the Objects v2 API or require additional help with migrating to the new data model, please contact PubNub Support at support@pubnub.com.";e.exports={signPamFromParams:function(e){return i(e).map((function(t){return"".concat(t,"=").concat(n(e[t]))})).join("&")},endsWith:function(e,t){return-1!==e.indexOf(t,this.length-t.length)},createPromise:function(){var e,t;return{promise:new Promise((function(n,i){e=n,t=i})),reject:t,fulfill:e}},encodeString:n,deprecated:function(e){return function(){var n,i;void 0!==t&&("test"!==(null===(n=t)||void 0===n||null===(i=n.env)||void 0===i?void 0:"production")&&console.warn(a));return e.apply(void 0,arguments)}}}}).call(this,n(25))},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function n(e,t){for(var n=0;n=20?this._presenceTimeout=e:(this._presenceTimeout=20,console.log("WARNING: Presence timeout is less than the minimum. Using minimum value: ",this._presenceTimeout)),this.setHeartbeatInterval(this._presenceTimeout/2-1),this}},{key:"setProxy",value:function(e){this.proxy=e}},{key:"getHeartbeatInterval",value:function(){return this._heartbeatInterval}},{key:"setHeartbeatInterval",value:function(e){return this._heartbeatInterval=e,this}},{key:"getSubscribeTimeout",value:function(){return this._subscribeRequestTimeout}},{key:"setSubscribeTimeout",value:function(e){return this._subscribeRequestTimeout=e,this}},{key:"getTransactionTimeout",value:function(){return this._transactionalRequestTimeout}},{key:"setTransactionTimeout",value:function(e){return this._transactionalRequestTimeout=e,this}},{key:"isSendBeaconEnabled",value:function(){return this._useSendBeacon}},{key:"setSendBeaconConfig",value:function(e){return this._useSendBeacon=e,this}},{key:"getVersion",value:function(){return"4.29.0"}},{key:"_addPnsdkSuffix",value:function(e,t){this._PNSDKSuffix[e]=t}},{key:"_getPnsdkSuffix",value:function(e){var t=this;return Object.keys(this._PNSDKSuffix).reduce((function(n,i){return n+e+t._PNSDKSuffix[i]}),"")}},{key:"_decideUUID",value:function(e){return e||(this._db&&this._db.get&&this._db.get("".concat(this.subscribeKey,"uuid"))?this._db.get("".concat(this.subscribeKey,"uuid")):"pn-".concat(r.default.createUUID()))}}]),e}());t.default=c,e.exports=t.default},function(e,t,n){var i=n(77),a=n(78),o=n(79),s=n(81);e.exports=function(e,t){return i(e)||a(e,t)||o(e,t)||s()}},function(e,t,n){e.exports=n(72)},function(e,t){function n(e,t,n,i,a,o,s){try{var r=e[o](s),c=r.value}catch(e){return void n(e)}r.done?t(c):Promise.resolve(c).then(i,a)}e.exports=function(e){return function(){var t=this,i=arguments;return new Promise((function(a,o){var s=e.apply(t,i);function r(e){n(s,a,o,r,c,"next",e)}function c(e){n(s,a,o,r,c,"throw",e)}r(void 0)}))}}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={PNNetworkUpCategory:"PNNetworkUpCategory",PNNetworkDownCategory:"PNNetworkDownCategory",PNNetworkIssuesCategory:"PNNetworkIssuesCategory",PNTimeoutCategory:"PNTimeoutCategory",PNBadRequestCategory:"PNBadRequestCategory",PNAccessDeniedCategory:"PNAccessDeniedCategory",PNUnknownCategory:"PNUnknownCategory",PNReconnectedCategory:"PNReconnectedCategory",PNConnectedCategory:"PNConnectedCategory",PNRequestMessageCountExceededCategory:"PNRequestMessageCountExceededCategory"},e.exports=t.default},function(e,t,n){var i=n(7),a=n(19);e.exports=function(e,t){return!t||"object"!==i(t)&&"function"!=typeof t?a(e):t}},function(e,t,n){var i=n(16);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)}},function(e,t){function n(t,i){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,i)}e.exports=n},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(32)),o={createUUID:function(){return a.default.uuid?a.default.uuid():(0,a.default)()}};t.default=o,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.createValidationError=v,t.default=function(e,t){var n=e.networking,i=e.config,a=e.telemetryManager,o=p.default.createUUID(),s=null,r=null,c={};t.getOperation()===d.default.PNTimeOperation||t.getOperation()===d.default.PNChannelGroupsOperation?s=arguments.length<=2?void 0:arguments[2]:(c=arguments.length<=2?void 0:arguments[2],s=arguments.length<=3?void 0:arguments[3]);"undefined"==typeof Promise||s||(r=l.default.createPromise());var u=t.validateParams(e,c);if(u)return s?s(v(u)):r?(r.reject(new h("Validation failed, check status for details",v(u))),r.promise):void 0;var f,_=t.prepareParams(e,c),w=g(t,e,c),P={url:w,operation:t.getOperation(),timeout:t.getRequestTimeout(e),headers:t.getRequestHeaders?t.getRequestHeaders():{},ignoreBody:"function"==typeof t.ignoreBody&&t.ignoreBody(e),forceBuffered:"function"==typeof t.forceBuffered?t.forceBuffered(e,c):null};_.uuid=i.UUID,_.pnsdk=x(i);var T=a.operationsLatencyForRequest();Object.keys(T).length&&(_=m({},_,{},T));i.useInstanceId&&(_.instanceid=i.instanceId);i.useRequestId&&(_.requestid=o);if(t.isAuthSupported()){var O=b(t,e,c),j=O||i.getAuthKey();j&&(_.auth=j)}i.secretKey&&k(e,w,_,c,t);var S=function(n,i){if(n.error)s?s(n):r&&r.reject(new h("PubNub call failed, check status for details",n));else{a.stopLatencyMeasure(t.getOperation(),o);var u=t.handleResponse(e,i,c);"function"!=typeof u.then&&(u=Promise.resolve(u)),u.then((function(e){s?s(n,e):r&&r.fulfill(e)})).catch((function(e){s?s(e,null):r&&r.reject(new h("PubNub call failed, check status for details",e))}))}};if(a.startLatencyMeasure(t.getOperation(),o),"POST"===y(e,t,c)){var A=t.postPayload(e,c);f=n.POST(_,A,P,S)}else if("PATCH"===y(e,t,c)){var M=t.patchPayload(e,c);f=n.PATCH(_,M,P,S)}else f="DELETE"===y(e,t,c)?n.DELETE(_,P,S):n.GET(_,P,S);if(t.getOperation()===d.default.PNSubscribeOperation)return f;if(r)return r.promise},t.PubNubError=void 0;var a=i(n(4)),o=i(n(5)),s=i(n(14)),r=i(n(12)),c=i(n(15)),u=i(n(45)),p=i(n(17)),l=(n(2),i(n(3))),d=(i(n(8)),i(n(1)));function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function m(e){for(var t=1;t0&&(t+=n),t}function y(e,t,n){return t.usePost&&t.usePost(e,n)?"POST":t.usePatch&&t.usePatch(e,n)?"PATCH":t.useDelete&&t.useDelete(e,n)?"DELETE":"GET"}function k(e,t,n,i,a){var o=e.config,s=e.crypto,r=y(e,a,i);n.timestamp=Math.floor((new Date).getTime()/1e3);var c="".concat(r,"\n").concat(o.publishKey,"\n").concat(t,"\n").concat(l.default.signPamFromParams(n),"\n");if("POST"===r){var u=a.postPayload(e,i);c+="string"==typeof u?u:JSON.stringify(u)}else if("PATCH"===r){var p=a.patchPayload(e,i);c+="string"==typeof p?p:JSON.stringify(p)}var d="v2.".concat(s.HMACSHA256(c));d=(d=(d=d.replace(/\+/g,"-")).replace(/\//g,"_")).replace(/=+$/,""),n.signature=d}t.PubNubError=h},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,n){"use strict";(function(i){var a=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(5)),s=a(n(6)),r=a(n(4)),c=(a(n(8)),a(n(22)));function u(e){var t,n=[];for(t=0;t + * @license MIT + */ +var i=n(34),a=n(35),o=n(36);function s(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function r(e,t){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function m(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return L(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return q(e).length;default:if(i)return L(e).length;t=(""+t).toLowerCase(),i=!0}}function h(e,t,n){var i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return A(this,t,n);case"utf8":case"utf-8":return O(this,t,n);case"ascii":return j(this,t,n);case"latin1":case"binary":return S(this,t,n);case"base64":return T(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function v(e,t,n){var i=e[t];e[t]=e[n],e[n]=i}function g(e,t,n,i,a){if(0===e.length)return-1;if("string"==typeof n?(i=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=a?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(a)return-1;n=e.length-1}else if(n<0){if(!a)return-1;n=0}if("string"==typeof t&&(t=c.from(t,i)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,i,a);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?a?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,i,a);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,i,a){var o,s=1,r=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;s=2,r/=2,c/=2,n/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(a){var p=-1;for(o=n;or&&(n=r-c),o=n;o>=0;o--){for(var l=!0,d=0;da&&(i=a):i=a;var o=t.length;if(o%2!=0)throw new TypeError("Invalid hex string");i>o/2&&(i=o/2);for(var s=0;s>8,a=n%256,o.push(a),o.push(i);return o}(t,e.length-n),e,n,i)}function T(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function O(e,t,n){n=Math.min(e.length,n);for(var i=[],a=t;a239?4:u>223?3:u>191?2:1;if(a+l<=n)switch(l){case 1:u<128&&(p=u);break;case 2:128==(192&(o=e[a+1]))&&(c=(31&u)<<6|63&o)>127&&(p=c);break;case 3:o=e[a+1],s=e[a+2],128==(192&o)&&128==(192&s)&&(c=(15&u)<<12|(63&o)<<6|63&s)>2047&&(c<55296||c>57343)&&(p=c);break;case 4:o=e[a+1],s=e[a+2],r=e[a+3],128==(192&o)&&128==(192&s)&&128==(192&r)&&(c=(15&u)<<18|(63&o)<<12|(63&s)<<6|63&r)>65535&&c<1114112&&(p=c)}null===p?(p=65533,l=1):p>65535&&(p-=65536,i.push(p>>>10&1023|55296),p=56320|1023&p),i.push(p),a+=l}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",i=0;for(;i0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,i,a){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===a&&(a=this.length),t<0||n>e.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&t>=n)return 0;if(i>=a)return-1;if(t>=n)return 1;if(this===e)return 0;for(var o=(a>>>=0)-(i>>>=0),s=(n>>>=0)-(t>>>=0),r=Math.min(o,s),u=this.slice(i,a),p=e.slice(t,n),l=0;la)&&(n=a),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var o=!1;;)switch(i){case"hex":return x(this,e,t,n);case"utf8":case"utf-8":return y(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return _(this,e,t,n);case"base64":return w(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function j(e,t,n){var i="";n=Math.min(e.length,n);for(var a=t;ai)&&(n=i);for(var a="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function C(e,t,n,i,a,o){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>a||te.length)throw new RangeError("Index out of range")}function U(e,t,n,i){t<0&&(t=65535+t+1);for(var a=0,o=Math.min(e.length-n,2);a>>8*(i?a:1-a)}function R(e,t,n,i){t<0&&(t=4294967295+t+1);for(var a=0,o=Math.min(e.length-n,4);a>>8*(i?a:3-a)&255}function N(e,t,n,i,a,o){if(n+i>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function K(e,t,n,i,o){return o||N(e,0,n,4),a.write(e,t,n,i,23,4),n+4}function I(e,t,n,i,o){return o||N(e,0,n,8),a.write(e,t,n,i,52,8),n+8}c.prototype.slice=function(e,t){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t0&&(a*=256);)i+=this[e+--t]*a;return i},c.prototype.readUInt8=function(e,t){return t||E(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||E(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||E(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||E(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||E(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||E(e,t,this.length);for(var i=this[e],a=1,o=0;++o=(a*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||E(e,t,this.length);for(var i=t,a=1,o=this[e+--i];i>0&&(a*=256);)o+=this[e+--i]*a;return o>=(a*=128)&&(o-=Math.pow(2,8*t)),o},c.prototype.readInt8=function(e,t){return t||E(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||E(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||E(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||E(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||E(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||E(e,4,this.length),a.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||E(e,4,this.length),a.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||E(e,8,this.length),a.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||E(e,8,this.length),a.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,i){(e=+e,t|=0,n|=0,i)||C(this,e,t,n,Math.pow(2,8*n)-1,0);var a=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+a]=e/o&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,i){if(e=+e,t|=0,!i){var a=Math.pow(2,8*n-1);C(this,e,t,n,a-1,-a)}var o=0,s=1,r=0;for(this[t]=255&e;++o>0)-r&255;return t+n},c.prototype.writeIntBE=function(e,t,n,i){if(e=+e,t|=0,!i){var a=Math.pow(2,8*n-1);C(this,e,t,n,a-1,-a)}var o=n-1,s=1,r=0;for(this[t+o]=255&e;--o>=0&&(s*=256);)e<0&&0===r&&0!==this[t+o+1]&&(r=1),this[t+o]=(e/s>>0)-r&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):U(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):U(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||C(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return K(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return K(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return I(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return I(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,i){if(n||(n=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t=0;--a)e[a+t]=this[a+n];else if(o<1e3||!c.TYPED_ARRAY_SUPPORT)for(a=0;a>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o55295&&n<57344){if(!a){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===i){(t-=3)>-1&&o.push(239,191,189);continue}a=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),a=n;continue}n=65536+(a-55296<<10|n-56320)}else a&&(t-=3)>-1&&o.push(239,191,189);if(a=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function q(e){return i.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(D,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function B(e,t,n,i){for(var a=0;a=t.length||a>=e.length);++a)t[a+n]=e[a];return a}}).call(this,n(33))},function(e,t,n){"use strict";var i,a,o,s,r,c=c||function(e,t){var n={},i=n.lib={},a=function(){},o=i.Base={extend:function(e){a.prototype=this;var t=new a;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},s=i.WordArray=o.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||c).stringify(this)},concat:function(e){var t=this.words,n=e.words,i=this.sigBytes;if(e=e.sigBytes,this.clamp(),i%4)for(var a=0;a>>2]|=(n[a>>>2]>>>24-a%4*8&255)<<24-(i+a)%4*8;else if(65535>>2]=n[a>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var t=this.words,n=this.sigBytes;t[n>>>2]&=4294967295<<32-n%4*8,t.length=e.ceil(n/4)},clone:function(){var e=o.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var n=[],i=0;i>>2]>>>24-i%4*8&255;n.push((a>>>4).toString(16)),n.push((15&a).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new s.init(n,t/2)}},u=r.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],i=0;i>>2]>>>24-i%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],i=0;i>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new s.init(n,t)}},p=r.Utf8={stringify:function(e){try{return decodeURIComponent(escape(u.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return u.parse(unescape(encodeURIComponent(e)))}},l=i.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=p.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var n=this._data,i=n.words,a=n.sigBytes,o=this.blockSize,r=a/(4*o);if(t=(r=t?e.ceil(r):e.max((0|r)-this._minBufferSize,0))*o,a=e.min(4*t,a),t){for(var c=0;cp;){var l;e:{l=u;for(var d=e.sqrt(l),f=2;f<=d;f++)if(!(l%f)){l=!1;break e}l=!0}l&&(8>p&&(o[p]=r(e.pow(u,.5))),s[p]=r(e.pow(u,1/3)),p++),u++}var m=[];a=a.SHA256=i.extend({_doReset:function(){this._hash=new n.init(o.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,i=n[0],a=n[1],o=n[2],r=n[3],c=n[4],u=n[5],p=n[6],l=n[7],d=0;64>d;d++){if(16>d)m[d]=0|e[t+d];else{var f=m[d-15],h=m[d-2];m[d]=((f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3)+m[d-7]+((h<<15|h>>>17)^(h<<13|h>>>19)^h>>>10)+m[d-16]}f=l+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&u^~c&p)+s[d]+m[d],h=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&a^i&o^a&o),l=p,p=u,u=c,c=r+f|0,r=o,o=a,a=i,i=f+h|0}n[0]=n[0]+i|0,n[1]=n[1]+a|0,n[2]=n[2]+o|0,n[3]=n[3]+r|0,n[4]=n[4]+c|0,n[5]=n[5]+u|0,n[6]=n[6]+p|0,n[7]=n[7]+l|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,a=8*t.sigBytes;return n[a>>>5]|=128<<24-a%32,n[14+(a+64>>>9<<4)]=e.floor(i/4294967296),n[15+(a+64>>>9<<4)]=i,t.sigBytes=4*n.length,this._process(),this._hash},clone:function(){var e=i.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=i._createHelper(a),t.HmacSHA256=i._createHmacHelper(a)}(Math),a=(i=c).enc.Utf8,i.algo.HMAC=i.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=a.parse(t));var n=e.blockSize,i=4*n;t.sigBytes>i&&(t=e.finalize(t)),t.clamp();for(var o=this._oKey=t.clone(),s=this._iKey=t.clone(),r=o.words,c=s.words,u=0;u>>2]>>>24-a%4*8&255)<<16|(t[a+1>>>2]>>>24-(a+1)%4*8&255)<<8|t[a+2>>>2]>>>24-(a+2)%4*8&255,s=0;4>s&&a+.75*s>>6*(3-s)&63));if(t=i.charAt(64))for(;e.length%4;)e.push(t);return e.join("")},parse:function(e){var t=e.length,n=this._map;(i=n.charAt(64))&&-1!=(i=e.indexOf(i))&&(t=i);for(var i=[],a=0,o=0;o>>6-o%4*2;i[a>>>2]|=(r|c)<<24-a%4*8,a++}return s.create(i,a)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(e){function t(e,t,n,i,a,o,s){return((e=e+(t&n|~t&i)+a+s)<>>32-o)+t}function n(e,t,n,i,a,o,s){return((e=e+(t&i|n&~i)+a+s)<>>32-o)+t}function i(e,t,n,i,a,o,s){return((e=e+(t^n^i)+a+s)<>>32-o)+t}function a(e,t,n,i,a,o,s){return((e=e+(n^(t|~i))+a+s)<>>32-o)+t}for(var o=c,s=(u=o.lib).WordArray,r=u.Hasher,u=o.algo,p=[],l=0;64>l;l++)p[l]=4294967296*e.abs(e.sin(l+1))|0;u=u.MD5=r.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,o){for(var s=0;16>s;s++){var r=e[c=o+s];e[c]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}s=this._hash.words;var c=e[o+0],u=(r=e[o+1],e[o+2]),l=e[o+3],d=e[o+4],f=e[o+5],m=e[o+6],h=e[o+7],v=e[o+8],g=e[o+9],b=e[o+10],x=e[o+11],y=e[o+12],k=e[o+13],_=e[o+14],w=e[o+15],P=t(P=s[0],j=s[1],O=s[2],T=s[3],c,7,p[0]),T=t(T,P,j,O,r,12,p[1]),O=t(O,T,P,j,u,17,p[2]),j=t(j,O,T,P,l,22,p[3]);P=t(P,j,O,T,d,7,p[4]),T=t(T,P,j,O,f,12,p[5]),O=t(O,T,P,j,m,17,p[6]),j=t(j,O,T,P,h,22,p[7]),P=t(P,j,O,T,v,7,p[8]),T=t(T,P,j,O,g,12,p[9]),O=t(O,T,P,j,b,17,p[10]),j=t(j,O,T,P,x,22,p[11]),P=t(P,j,O,T,y,7,p[12]),T=t(T,P,j,O,k,12,p[13]),O=t(O,T,P,j,_,17,p[14]),P=n(P,j=t(j,O,T,P,w,22,p[15]),O,T,r,5,p[16]),T=n(T,P,j,O,m,9,p[17]),O=n(O,T,P,j,x,14,p[18]),j=n(j,O,T,P,c,20,p[19]),P=n(P,j,O,T,f,5,p[20]),T=n(T,P,j,O,b,9,p[21]),O=n(O,T,P,j,w,14,p[22]),j=n(j,O,T,P,d,20,p[23]),P=n(P,j,O,T,g,5,p[24]),T=n(T,P,j,O,_,9,p[25]),O=n(O,T,P,j,l,14,p[26]),j=n(j,O,T,P,v,20,p[27]),P=n(P,j,O,T,k,5,p[28]),T=n(T,P,j,O,u,9,p[29]),O=n(O,T,P,j,h,14,p[30]),P=i(P,j=n(j,O,T,P,y,20,p[31]),O,T,f,4,p[32]),T=i(T,P,j,O,v,11,p[33]),O=i(O,T,P,j,x,16,p[34]),j=i(j,O,T,P,_,23,p[35]),P=i(P,j,O,T,r,4,p[36]),T=i(T,P,j,O,d,11,p[37]),O=i(O,T,P,j,h,16,p[38]),j=i(j,O,T,P,b,23,p[39]),P=i(P,j,O,T,k,4,p[40]),T=i(T,P,j,O,c,11,p[41]),O=i(O,T,P,j,l,16,p[42]),j=i(j,O,T,P,m,23,p[43]),P=i(P,j,O,T,g,4,p[44]),T=i(T,P,j,O,y,11,p[45]),O=i(O,T,P,j,w,16,p[46]),P=a(P,j=i(j,O,T,P,u,23,p[47]),O,T,c,6,p[48]),T=a(T,P,j,O,h,10,p[49]),O=a(O,T,P,j,_,15,p[50]),j=a(j,O,T,P,f,21,p[51]),P=a(P,j,O,T,y,6,p[52]),T=a(T,P,j,O,l,10,p[53]),O=a(O,T,P,j,b,15,p[54]),j=a(j,O,T,P,r,21,p[55]),P=a(P,j,O,T,v,6,p[56]),T=a(T,P,j,O,w,10,p[57]),O=a(O,T,P,j,m,15,p[58]),j=a(j,O,T,P,k,21,p[59]),P=a(P,j,O,T,d,6,p[60]),T=a(T,P,j,O,x,10,p[61]),O=a(O,T,P,j,u,15,p[62]),j=a(j,O,T,P,g,21,p[63]);s[0]=s[0]+P|0,s[1]=s[1]+j|0,s[2]=s[2]+O|0,s[3]=s[3]+T|0},_doFinalize:function(){var t=this._data,n=t.words,i=8*this._nDataBytes,a=8*t.sigBytes;n[a>>>5]|=128<<24-a%32;var o=e.floor(i/4294967296);for(n[15+(a+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),n[14+(a+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(n.length+1),this._process(),n=(t=this._hash).words,i=0;4>i;i++)a=n[i],n[i]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8);return t},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}}),o.MD5=r._createHelper(u),o.HmacMD5=r._createHmacHelper(u)}(Math),function(){var e,t=c,n=(e=t.lib).Base,i=e.WordArray,a=(e=t.algo).EvpKDF=n.extend({cfg:n.extend({keySize:4,hasher:e.MD5,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=(r=this.cfg).hasher.create(),a=i.create(),o=a.words,s=r.keySize,r=r.iterations;o.length>>2]}},t.BlockCipher=r.extend({cfg:r.cfg.extend({mode:u,padding:l}),reset:function(){r.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=t.createEncryptor;else n=t.createDecryptor,this._minBufferSize=1;this._mode=n.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var d=t.CipherParams=n.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),f=(u=(m.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?i.create([1398893684,1701076831]).concat(e).concat(t):t).toString(o)},parse:function(e){var t=(e=o.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var n=i.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return d.create({ciphertext:e,salt:n})}},t.SerializableCipher=n.extend({cfg:n.extend({format:u}),encrypt:function(e,t,n,i){i=this.cfg.extend(i);var a=e.createEncryptor(n,i);return t=a.finalize(t),a=a.cfg,d.create({ciphertext:t,key:n,iv:a.iv,algorithm:e,mode:a.mode,padding:a.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,n,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),e.createDecryptor(n,i).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),m=(m.kdf={}).OpenSSL={execute:function(e,t,n,a){return a||(a=i.random(8)),e=s.create({keySize:t+n}).compute(e,a),n=i.create(e.words.slice(t),4*n),e.sigBytes=4*t,d.create({key:e,iv:n,salt:a})}},h=t.PasswordBasedCipher=f.extend({cfg:f.cfg.extend({kdf:m}),encrypt:function(e,t,n,i){return n=(i=this.cfg.extend(i)).kdf.execute(n,e.keySize,e.ivSize),i.iv=n.iv,(e=f.encrypt.call(this,e,t,n.key,i)).mixIn(n),e},decrypt:function(e,t,n,i){return i=this.cfg.extend(i),t=this._parse(t,i.format),n=i.kdf.execute(n,e.keySize,e.ivSize,t.salt),i.iv=n.iv,f.decrypt.call(this,e,t,n.key,i)}})}(),function(){for(var e=c,t=e.lib.BlockCipher,n=e.algo,i=[],a=[],o=[],s=[],r=[],u=[],p=[],l=[],d=[],f=[],m=[],h=0;256>h;h++)m[h]=128>h?h<<1:h<<1^283;var v=0,g=0;for(h=0;256>h;h++){var b=(b=g^g<<1^g<<2^g<<3^g<<4)>>>8^255&b^99;i[v]=b,a[b]=v;var x=m[v],y=m[x],k=m[y],_=257*m[b]^16843008*b;o[v]=_<<24|_>>>8,s[v]=_<<16|_>>>16,r[v]=_<<8|_>>>24,u[v]=_,_=16843009*k^65537*y^257*x^16843008*v,p[b]=_<<24|_>>>8,l[b]=_<<16|_>>>16,d[b]=_<<8|_>>>24,f[b]=_,v?(v=x^m[m[m[k^x]]],g^=m[m[g]]):v=g=1}var w=[0,1,2,4,8,16,32,64,128,27,54];n=n.AES=t.extend({_doReset:function(){for(var e=(n=this._key).words,t=n.sigBytes/4,n=4*((this._nRounds=t+6)+1),a=this._keySchedule=[],o=0;o>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s]):(s=i[(s=s<<8|s>>>24)>>>24]<<24|i[s>>>16&255]<<16|i[s>>>8&255]<<8|i[255&s],s^=w[o/t|0]<<24),a[o]=a[o-t]^s}for(e=this._invKeySchedule=[],t=0;tt||4>=o?s:p[i[s>>>24]]^l[i[s>>>16&255]]^d[i[s>>>8&255]]^f[i[255&s]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,r,u,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,p,l,d,f,a),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,i,a,o,s,r){for(var c=this._nRounds,u=e[t]^n[0],p=e[t+1]^n[1],l=e[t+2]^n[2],d=e[t+3]^n[3],f=4,m=1;m>>24]^a[p>>>16&255]^o[l>>>8&255]^s[255&d]^n[f++],v=i[p>>>24]^a[l>>>16&255]^o[d>>>8&255]^s[255&u]^n[f++],g=i[l>>>24]^a[d>>>16&255]^o[u>>>8&255]^s[255&p]^n[f++];d=i[d>>>24]^a[u>>>16&255]^o[p>>>8&255]^s[255&l]^n[f++],u=h,p=v,l=g}h=(r[u>>>24]<<24|r[p>>>16&255]<<16|r[l>>>8&255]<<8|r[255&d])^n[f++],v=(r[p>>>24]<<24|r[l>>>16&255]<<16|r[d>>>8&255]<<8|r[255&u])^n[f++],g=(r[l>>>24]<<24|r[d>>>16&255]<<16|r[u>>>8&255]<<8|r[255&p])^n[f++],d=(r[d>>>24]<<24|r[u>>>16&255]<<16|r[p>>>8&255]<<8|r[255&l])^n[f++],e[t]=h,e[t+1]=v,e[t+2]=g,e[t+3]=d},keySize:8});e.AES=t._createHelper(n)}(),c.mode.ECB=((r=c.lib.BlockCipherMode.extend()).Encryptor=r.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),r.Decryptor=r.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),r),e.exports=c},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(5)),o=i(n(6)),s=i(n(4)),r=(n(2),i(n(13))),c=function(){function e(){(0,a.default)(this,e),(0,s.default)(this,"_listeners",void 0),this._listeners=[]}return(0,o.default)(e,[{key:"addListener",value:function(e){this._listeners.push(e)}},{key:"removeListener",value:function(e){var t=[];this._listeners.forEach((function(n){n!==e&&t.push(n)})),this._listeners=t}},{key:"removeAllListeners",value:function(){this._listeners=[]}},{key:"announcePresence",value:function(e){this._listeners.forEach((function(t){t.presence&&t.presence(e)}))}},{key:"announceStatus",value:function(e){this._listeners.forEach((function(t){t.status&&t.status(e)}))}},{key:"announceMessage",value:function(e){this._listeners.forEach((function(t){t.message&&t.message(e)}))}},{key:"announceSignal",value:function(e){this._listeners.forEach((function(t){t.signal&&t.signal(e)}))}},{key:"announceMessageAction",value:function(e){this._listeners.forEach((function(t){t.messageAction&&t.messageAction(e)}))}},{key:"announceFile",value:function(e){this._listeners.forEach((function(t){t.file&&t.file(e)}))}},{key:"announceObjects",value:function(e){this._listeners.forEach((function(t){t.objects&&t.objects(e)}))}},{key:"announceUser",value:function(e){this._listeners.forEach((function(t){t.user&&t.user(e)}))}},{key:"announceSpace",value:function(e){this._listeners.forEach((function(t){t.space&&t.space(e)}))}},{key:"announceMembership",value:function(e){this._listeners.forEach((function(t){t.membership&&t.membership(e)}))}},{key:"announceNetworkUp",value:function(){var e={};e.category=r.default.PNNetworkUpCategory,this.announceStatus(e)}},{key:"announceNetworkDown",value:function(){var e={};e.category=r.default.PNNetworkDownCategory,this.announceStatus(e)}}]),e}();t.default=c,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNTimeOperation},t.getURL=function(){return"/time/0"},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.prepareParams=function(){return{}},t.isAuthSupported=function(){return!1},t.handleResponse=function(e,t){return{timetoken:t[0]}},t.validateParams=function(){};n(2);var a=i(n(1))},function(e,t){var n,i,a=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function r(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(e){i=s}}();var c,u=[],p=!1,l=-1;function d(){p&&c&&(p=!1,c.length?u=c.concat(u):l=-1,u.length&&f())}function f(){if(!p){var e=r(d);p=!0;for(var t=u.length;t;){for(c=u,u=[];++l1)for(var n=1;n>24,i[o+1]=(16711680&r)>>16,i[o+2]=(65280&r)>>8,i[o+3]=255&r}for(var c=o+3;c>=o;c-=1)0===i[c]&&(a+=1);return a>0?i.buffer.slice(0,i.byteLength-a):i.buffer}function y(e){var t=function(e){return e&&"object"===(0,c.default)(e)&&e.constructor===Object};if(!t(e))return e;var n={};return Object.keys(e).forEach((function(i){var a=function(e){return"string"==typeof e||e instanceof String}(i),o=i,s=e[i];Array.isArray(i)||a&&i.indexOf(",")>=0?o=(a?i.split(","):i).reduce((function(e,t){return e+=String.fromCharCode(t)}),""):(function(e){return"number"==typeof e&&isFinite(e)}(i)||a&&!isNaN(i))&&(o=String.fromCharCode(a?parseInt(i,10):10));n[o]=t(s)?y(s):s})),n}var k=function(e){function t(e){var n;(0,a.default)(this,t);var i=e.listenToBrowserNetworkEvents,r=void 0===i||i;return e.db=f.default,e.sdkFamily="Web",e.networking=new l.default({del:h.del,get:h.get,post:h.post,patch:h.patch,sendBeacon:b,file:h.file}),e.cbor=new m.default((function(e){return y(u.default.decode(e))}),x),e.PubNubFile=g.default,e.cryptography=new v.default,n=(0,o.default)(this,(0,s.default)(t).call(this,e)),r&&(window.addEventListener("offline",(function(){n.networkDownDetected()})),window.addEventListener("online",(function(){n.networkUpDetected()}))),n}return(0,r.default)(t,e),t}(p.default);t.default=k,e.exports=t.default},function(e,t,n){var i,a;!function(o,s){"use strict";var r=Math.pow(2,-24),c=Math.pow(2,32),u=Math.pow(2,53);void 0===(a="function"==typeof(i={encode:function(e){var t,n=new ArrayBuffer(256),i=new DataView(n),a=0;function o(e){for(var o=n.byteLength,s=a+e;o>2,u=0;u>6),i.push(128|63&c)):c<55296?(i.push(224|c>>12),i.push(128|c>>6&63),i.push(128|63&c)):(c=(1023&c)<<10,c|=1023&t.charCodeAt(++n),c+=65536,i.push(240|c>>18),i.push(128|c>>12&63),i.push(128|c>>6&63),i.push(128|63&c))}return l(3,i.length),p(i);default:var d;if(Array.isArray(t))for(l(4,d=t.length),n=0;n>5!==e)throw"Invalid indefinite length element";return n}function h(e,t){for(var n=0;n>10),e.push(56320|1023&i))}}"function"!=typeof t&&(t=function(e){return e}),"function"!=typeof n&&(n=function(){});var v=function e(){var c,l,v=u(),g=v>>5,b=31&v;if(7===g)switch(b){case 25:return function(){var e=new ArrayBuffer(4),t=new DataView(e),n=p(),i=32768&n,a=31744&n,o=1023&n;if(31744===a)a=261120;else if(0!==a)a+=114688;else if(0!==o)return o*r;return t.setUint32(0,i<<16|a<<13|o<<13),t.getFloat32(0)}();case 26:return o(i.getFloat32(a),4);case 27:return o(i.getFloat64(a),8)}if((l=f(b))<0&&(g<2||6=0;)y+=l,x.push(s(l));var k=new Uint8Array(y),_=0;for(c=0;c=0;)h(w,l);else h(w,l);return String.fromCharCode.apply(null,w);case 4:var P;if(l<0)for(P=[];!d();)P.push(e());else for(P=new Array(l),c=0;c1?t-1:0),a=1;a1?t-1:0),a=1;a1?t-1:0),a=1;a1?t-1:0),a=1;a0?s-4:s;for(n=0;n>16&255,c[p++]=t>>8&255,c[p++]=255&t;2===r&&(t=a[e.charCodeAt(n)]<<2|a[e.charCodeAt(n+1)]>>4,c[p++]=255&t);1===r&&(t=a[e.charCodeAt(n)]<<10|a[e.charCodeAt(n+1)]<<4|a[e.charCodeAt(n+2)]>>2,c[p++]=t>>8&255,c[p++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,a=n%3,o=[],s=0,r=n-a;sr?r:s+16383));1===a?(t=e[n-1],o.push(i[t>>2]+i[t<<4&63]+"==")):2===a&&(t=(e[n-2]<<8)+e[n-1],o.push(i[t>>10]+i[t>>4&63]+i[t<<2&63]+"="));return o.join("")};for(var i=[],a=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=0,c=s.length;r0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function p(e,t,n){for(var a,o,s=[],r=t;r>18&63]+i[o>>12&63]+i[o>>6&63]+i[63&o]);return s.join("")}a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,i,a){var o,s,r=8*a-i-1,c=(1<>1,p=-7,l=n?a-1:0,d=n?-1:1,f=e[t+l];for(l+=d,o=f&(1<<-p)-1,f>>=-p,p+=r;p>0;o=256*o+e[t+l],l+=d,p-=8);for(s=o&(1<<-p)-1,o>>=-p,p+=i;p>0;s=256*s+e[t+l],l+=d,p-=8);if(0===o)o=1-u;else{if(o===c)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,i),o-=u}return(f?-1:1)*s*Math.pow(2,o-i)},t.write=function(e,t,n,i,a,o){var s,r,c,u=8*o-a-1,p=(1<>1,d=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,f=i?0:o-1,m=i?1:-1,h=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(r=isNaN(t)?1:0,s=p):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+l>=1?d/c:d*Math.pow(2,1-l))*c>=2&&(s++,c/=2),s+l>=p?(r=0,s=p):s+l>=1?(r=(t*c-1)*Math.pow(2,a),s+=l):(r=t*Math.pow(2,l-1)*Math.pow(2,a),s=0));a>=8;e[n+f]=255&r,f+=m,r/=256,a-=8);for(s=s<0;e[n+f]=255&s,f+=m,s/=256,u-=8);e[n+f-m]|=128*h}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(7)),o=i(n(5)),s=i(n(6)),r=i(n(4)),c=(i(n(20)),i(n(8)),i(n(23)),i(n(38))),u=i(n(39)),p=i(n(3)),l=(n(2),i(n(13))),d=function(){function e(t){var n=t.subscribeEndpoint,i=t.leaveEndpoint,a=t.heartbeatEndpoint,s=t.setStateEndpoint,p=t.timeEndpoint,l=t.getFileUrl,d=t.config,f=t.crypto,m=t.listenerManager;(0,o.default)(this,e),(0,r.default)(this,"_crypto",void 0),(0,r.default)(this,"_config",void 0),(0,r.default)(this,"_listenerManager",void 0),(0,r.default)(this,"_reconnectionManager",void 0),(0,r.default)(this,"_leaveEndpoint",void 0),(0,r.default)(this,"_heartbeatEndpoint",void 0),(0,r.default)(this,"_setStateEndpoint",void 0),(0,r.default)(this,"_subscribeEndpoint",void 0),(0,r.default)(this,"_getFileUrl",void 0),(0,r.default)(this,"_channels",void 0),(0,r.default)(this,"_presenceChannels",void 0),(0,r.default)(this,"_heartbeatChannels",void 0),(0,r.default)(this,"_heartbeatChannelGroups",void 0),(0,r.default)(this,"_channelGroups",void 0),(0,r.default)(this,"_presenceChannelGroups",void 0),(0,r.default)(this,"_currentTimetoken",void 0),(0,r.default)(this,"_lastTimetoken",void 0),(0,r.default)(this,"_storedTimetoken",void 0),(0,r.default)(this,"_region",void 0),(0,r.default)(this,"_subscribeCall",void 0),(0,r.default)(this,"_heartbeatTimer",void 0),(0,r.default)(this,"_subscriptionStatusAnnounced",void 0),(0,r.default)(this,"_autoNetworkDetection",void 0),(0,r.default)(this,"_isOnline",void 0),(0,r.default)(this,"_pendingChannelSubscriptions",void 0),(0,r.default)(this,"_pendingChannelGroupSubscriptions",void 0),(0,r.default)(this,"_dedupingManager",void 0),this._listenerManager=m,this._config=d,this._leaveEndpoint=i,this._heartbeatEndpoint=a,this._setStateEndpoint=s,this._subscribeEndpoint=n,this._getFileUrl=l,this._crypto=f,this._channels={},this._presenceChannels={},this._heartbeatChannels={},this._heartbeatChannelGroups={},this._channelGroups={},this._presenceChannelGroups={},this._pendingChannelSubscriptions=[],this._pendingChannelGroupSubscriptions=[],this._currentTimetoken=0,this._lastTimetoken=0,this._storedTimetoken=null,this._subscriptionStatusAnnounced=!1,this._isOnline=!0,this._reconnectionManager=new c.default({timeEndpoint:p}),this._dedupingManager=new u.default({config:d})}return(0,s.default)(e,[{key:"adaptStateChange",value:function(e,t){var n=this,i=e.state,a=e.channels,o=void 0===a?[]:a,s=e.channelGroups,r=void 0===s?[]:s;return o.forEach((function(e){e in n._channels&&(n._channels[e].state=i)})),r.forEach((function(e){e in n._channelGroups&&(n._channelGroups[e].state=i)})),this._setStateEndpoint({state:i,channels:o,channelGroups:r},t)}},{key:"adaptPresenceChange",value:function(e){var t=this,n=e.connected,i=e.channels,a=void 0===i?[]:i,o=e.channelGroups,s=void 0===o?[]:o;n?(a.forEach((function(e){t._heartbeatChannels[e]={state:{}}})),s.forEach((function(e){t._heartbeatChannelGroups[e]={state:{}}}))):(a.forEach((function(e){e in t._heartbeatChannels&&delete t._heartbeatChannels[e]})),s.forEach((function(e){e in t._heartbeatChannelGroups&&delete t._heartbeatChannelGroups[e]})),!1===this._config.suppressLeaveEvents&&this._leaveEndpoint({channels:a,channelGroups:s},(function(e){t._listenerManager.announceStatus(e)}))),this.reconnect()}},{key:"adaptSubscribeChange",value:function(e){var t=this,n=e.timetoken,i=e.channels,a=void 0===i?[]:i,o=e.channelGroups,s=void 0===o?[]:o,r=e.withPresence,c=void 0!==r&&r,u=e.withHeartbeats,p=void 0!==u&&u;this._config.subscribeKey&&""!==this._config.subscribeKey?(n&&(this._lastTimetoken=this._currentTimetoken,this._currentTimetoken=n),"0"!==this._currentTimetoken&&0!==this._currentTimetoken&&(this._storedTimetoken=this._currentTimetoken,this._currentTimetoken=0),a.forEach((function(e){t._channels[e]={state:{}},c&&(t._presenceChannels[e]={}),(p||t._config.getHeartbeatInterval())&&(t._heartbeatChannels[e]={}),t._pendingChannelSubscriptions.push(e)})),s.forEach((function(e){t._channelGroups[e]={state:{}},c&&(t._presenceChannelGroups[e]={}),(p||t._config.getHeartbeatInterval())&&(t._heartbeatChannelGroups[e]={}),t._pendingChannelGroupSubscriptions.push(e)})),this._subscriptionStatusAnnounced=!1,this.reconnect()):console&&console.log&&console.log("subscribe key missing; aborting subscribe")}},{key:"adaptUnsubscribeChange",value:function(e,t){var n=this,i=e.channels,a=void 0===i?[]:i,o=e.channelGroups,s=void 0===o?[]:o,r=[],c=[];a.forEach((function(e){e in n._channels&&(delete n._channels[e],r.push(e),e in n._heartbeatChannels&&delete n._heartbeatChannels[e]),e in n._presenceChannels&&(delete n._presenceChannels[e],r.push(e))})),s.forEach((function(e){e in n._channelGroups&&(delete n._channelGroups[e],c.push(e),e in n._heartbeatChannelGroups&&delete n._heartbeatChannelGroups[e]),e in n._presenceChannelGroups&&(delete n._channelGroups[e],c.push(e))})),0===r.length&&0===c.length||(!1!==this._config.suppressLeaveEvents||t||this._leaveEndpoint({channels:r,channelGroups:c},(function(e){e.affectedChannels=r,e.affectedChannelGroups=c,e.currentTimetoken=n._currentTimetoken,e.lastTimetoken=n._lastTimetoken,n._listenerManager.announceStatus(e)})),0===Object.keys(this._channels).length&&0===Object.keys(this._presenceChannels).length&&0===Object.keys(this._channelGroups).length&&0===Object.keys(this._presenceChannelGroups).length&&(this._lastTimetoken=0,this._currentTimetoken=0,this._storedTimetoken=null,this._region=null,this._reconnectionManager.stopPolling()),this.reconnect())}},{key:"unsubscribeAll",value:function(e){this.adaptUnsubscribeChange({channels:this.getSubscribedChannels(),channelGroups:this.getSubscribedChannelGroups()},e)}},{key:"getHeartbeatChannels",value:function(){return Object.keys(this._heartbeatChannels)}},{key:"getHeartbeatChannelGroups",value:function(){return Object.keys(this._heartbeatChannelGroups)}},{key:"getSubscribedChannels",value:function(){return Object.keys(this._channels)}},{key:"getSubscribedChannelGroups",value:function(){return Object.keys(this._channelGroups)}},{key:"reconnect",value:function(){this._startSubscribeLoop(),this._registerHeartbeatTimer()}},{key:"disconnect",value:function(){this._stopSubscribeLoop(),this._stopHeartbeatTimer(),this._reconnectionManager.stopPolling()}},{key:"_registerHeartbeatTimer",value:function(){this._stopHeartbeatTimer(),0!==this._config.getHeartbeatInterval()&&void 0!==this._config.getHeartbeatInterval()&&(this._performHeartbeatLoop(),this._heartbeatTimer=setInterval(this._performHeartbeatLoop.bind(this),1e3*this._config.getHeartbeatInterval()))}},{key:"_stopHeartbeatTimer",value:function(){this._heartbeatTimer&&(clearInterval(this._heartbeatTimer),this._heartbeatTimer=null)}},{key:"_performHeartbeatLoop",value:function(){var e=this,t=this.getHeartbeatChannels(),n=this.getHeartbeatChannelGroups(),i={};if(0!==t.length||0!==n.length){this.getSubscribedChannels().forEach((function(t){var n=e._channels[t].state;Object.keys(n).length&&(i[t]=n)})),this.getSubscribedChannelGroups().forEach((function(t){var n=e._channelGroups[t].state;Object.keys(n).length&&(i[t]=n)}));this._heartbeatEndpoint({channels:t,channelGroups:n,state:i},function(t){t.error&&e._config.announceFailedHeartbeats&&e._listenerManager.announceStatus(t),t.error&&e._config.autoNetworkDetection&&e._isOnline&&(e._isOnline=!1,e.disconnect(),e._listenerManager.announceNetworkDown(),e.reconnect()),!t.error&&e._config.announceSuccessfulHeartbeats&&e._listenerManager.announceStatus(t)}.bind(this))}}},{key:"_startSubscribeLoop",value:function(){var e=this;this._stopSubscribeLoop();var t={},n=[],i=[];if(Object.keys(this._channels).forEach((function(i){var a=e._channels[i].state;Object.keys(a).length&&(t[i]=a),n.push(i)})),Object.keys(this._presenceChannels).forEach((function(e){n.push("".concat(e,"-pnpres"))})),Object.keys(this._channelGroups).forEach((function(n){var a=e._channelGroups[n].state;Object.keys(a).length&&(t[n]=a),i.push(n)})),Object.keys(this._presenceChannelGroups).forEach((function(e){i.push("".concat(e,"-pnpres"))})),0!==n.length||0!==i.length){var a={channels:n,channelGroups:i,state:t,timetoken:this._currentTimetoken,filterExpression:this._config.filterExpression,region:this._region};this._subscribeCall=this._subscribeEndpoint(a,this._processSubscribeResponse.bind(this))}}},{key:"_processSubscribeResponse",value:function(e,t){var n=this;if(e.error)e.category===l.default.PNTimeoutCategory?this._startSubscribeLoop():e.category===l.default.PNNetworkIssuesCategory?(this.disconnect(),e.error&&this._config.autoNetworkDetection&&this._isOnline&&(this._isOnline=!1,this._listenerManager.announceNetworkDown()),this._reconnectionManager.onReconnection((function(){n._config.autoNetworkDetection&&!n._isOnline&&(n._isOnline=!0,n._listenerManager.announceNetworkUp()),n.reconnect(),n._subscriptionStatusAnnounced=!0;var t={category:l.default.PNReconnectedCategory,operation:e.operation,lastTimetoken:n._lastTimetoken,currentTimetoken:n._currentTimetoken};n._listenerManager.announceStatus(t)})),this._reconnectionManager.startPolling(),this._listenerManager.announceStatus(e)):e.category===l.default.PNBadRequestCategory?(this._stopHeartbeatTimer(),this._listenerManager.announceStatus(e)):this._listenerManager.announceStatus(e);else{if(this._storedTimetoken?(this._currentTimetoken=this._storedTimetoken,this._storedTimetoken=null):(this._lastTimetoken=this._currentTimetoken,this._currentTimetoken=t.metadata.timetoken),!this._subscriptionStatusAnnounced){var i={};i.category=l.default.PNConnectedCategory,i.operation=e.operation,i.affectedChannels=this._pendingChannelSubscriptions,i.subscribedChannels=this.getSubscribedChannels(),i.affectedChannelGroups=this._pendingChannelGroupSubscriptions,i.lastTimetoken=this._lastTimetoken,i.currentTimetoken=this._currentTimetoken,this._subscriptionStatusAnnounced=!0,this._listenerManager.announceStatus(i),this._pendingChannelSubscriptions=[],this._pendingChannelGroupSubscriptions=[]}var o=t.messages||[],s=this._config,r=s.requestMessageCountThreshold,c=s.dedupeOnSubscribe;if(r&&o.length>=r){var u={};u.category=l.default.PNRequestMessageCountExceededCategory,u.operation=e.operation,this._listenerManager.announceStatus(u)}o.forEach((function(e){var t=e.channel,i=e.subscriptionMatch,o=e.publishMetaData;if(t===i&&(i=null),c){if(n._dedupingManager.isDuplicate(e))return;n._dedupingManager.addEntry(e)}if(p.default.endsWith(e.channel,"-pnpres")){var s={channel:null,subscription:null};s.actualChannel=null!=i?t:null,s.subscribedChannel=null!=i?i:t,t&&(s.channel=t.substring(0,t.lastIndexOf("-pnpres"))),i&&(s.subscription=i.substring(0,i.lastIndexOf("-pnpres"))),s.action=e.payload.action,s.state=e.payload.data,s.timetoken=o.publishTimetoken,s.occupancy=e.payload.occupancy,s.uuid=e.payload.uuid,s.timestamp=e.payload.timestamp,e.payload.join&&(s.join=e.payload.join),e.payload.leave&&(s.leave=e.payload.leave),e.payload.timeout&&(s.timeout=e.payload.timeout),n._listenerManager.announcePresence(s)}else if(1===e.messageType){var r={channel:null,subscription:null};r.channel=t,r.subscription=i,r.timetoken=o.publishTimetoken,r.publisher=e.issuingClientId,e.userMetadata&&(r.userMetadata=e.userMetadata),r.message=e.payload,n._listenerManager.announceSignal(r)}else if(2===e.messageType){var u={channel:null,subscription:null};u.channel=t,u.subscription=i,u.timetoken=o.publishTimetoken,u.publisher=e.issuingClientId,e.userMetadata&&(u.userMetadata=e.userMetadata),u.message={event:e.payload.event,type:e.payload.type,data:e.payload.data},n._listenerManager.announceObjects(u),"user"===e.payload.type?n._listenerManager.announceUser(u):"space"===e.payload.type?n._listenerManager.announceSpace(u):"membership"===e.payload.type&&n._listenerManager.announceMembership(u)}else if(3===e.messageType){var l={};l.channel=t,l.subscription=i,l.timetoken=o.publishTimetoken,l.publisher=e.issuingClientId,l.data={messageTimetoken:e.payload.data.messageTimetoken,actionTimetoken:e.payload.data.actionTimetoken,type:e.payload.data.type,uuid:e.issuingClientId,value:e.payload.data.value},l.event=e.payload.event,n._listenerManager.announceMessageAction(l)}else if(4===e.messageType){var d={};d.channel=t,d.subscription=i,d.timetoken=o.publishTimetoken,d.publisher=e.issuingClientId;var f=e.payload;if(n._config.cipherKey){var m=n._crypto.decrypt(e.payload);"object"===(0,a.default)(m)&&null!==m&&(f=m)}d.message=f.message,d.file={id:f.file.id,name:f.file.name,url:n._getFileUrl({id:f.file.id,name:f.file.name,channel:t})},n._listenerManager.announceFile(d)}else{var h={channel:null,subscription:null};h.actualChannel=null!=i?t:null,h.subscribedChannel=null!=i?i:t,h.channel=t,h.subscription=i,h.timetoken=o.publishTimetoken,h.publisher=e.issuingClientId,e.userMetadata&&(h.userMetadata=e.userMetadata),n._config.cipherKey?h.message=n._crypto.decrypt(e.payload):h.message=e.payload,n._listenerManager.announceMessage(h)}})),this._region=t.metadata.region,this._startSubscribeLoop()}}},{key:"_stopSubscribeLoop",value:function(){this._subscribeCall&&("function"==typeof this._subscribeCall.abort&&this._subscribeCall.abort(),this._subscribeCall=null)}}]),e}();t.default=d,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(5)),o=i(n(6)),s=i(n(4)),r=(i(n(24)),n(2),function(){function e(t){var n=t.timeEndpoint;(0,a.default)(this,e),(0,s.default)(this,"_reconnectionCallback",void 0),(0,s.default)(this,"_timeEndpoint",void 0),(0,s.default)(this,"_timeTimer",void 0),this._timeEndpoint=n}return(0,o.default)(e,[{key:"onReconnection",value:function(e){this._reconnectionCallback=e}},{key:"startPolling",value:function(){this._timeTimer=setInterval(this._performTimeLoop.bind(this),3e3)}},{key:"stopPolling",value:function(){clearInterval(this._timeTimer)}},{key:"_performTimeLoop",value:function(){var e=this;this._timeEndpoint((function(t){t.error||(clearInterval(e._timeTimer),e._reconnectionCallback())}))}}]),e}());t.default=r,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(5)),o=i(n(6)),s=i(n(4)),r=(i(n(8)),n(2),function(){function e(t){var n=t.config;(0,a.default)(this,e),(0,s.default)(this,"_config",void 0),(0,s.default)(this,"hashHistory",void 0),this.hashHistory=[],this._config=n}return(0,o.default)(e,[{key:"getKey",value:function(e){var t=function(e){var t=0;if(0===e.length)return t;for(var n=0;n=this._config.maximumCacheSize&&this.hashHistory.shift(),this.hashHistory.push(this.getKey(e))}},{key:"clearHistory",value:function(){this.hashHistory=[]}}]),e}());t.default=r,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(5)),o=i(n(6)),s=i(n(4)),r=i(n(1)),c=function(){function e(t){(0,a.default)(this,e),(0,s.default)(this,"_maximumSamplesCount",100),(0,s.default)(this,"_trackedLatencies",{}),(0,s.default)(this,"_latencies",{}),this._maximumSamplesCount=t.maximumSamplesCount||this._maximumSamplesCount}return(0,o.default)(e,[{key:"operationsLatencyForRequest",value:function(){var e=this,t={};return Object.keys(this._latencies).forEach((function(n){var i=e._latencies[n],a=e._averageLatency(i);a>0&&(t["l_".concat(n)]=a)})),t}},{key:"startLatencyMeasure",value:function(e,t){e!==r.default.PNSubscribeOperation&&t&&(this._trackedLatencies[t]=Date.now())}},{key:"stopLatencyMeasure",value:function(e,t){if(e!==r.default.PNSubscribeOperation&&t){var n=this._endpointName(e),i=this._latencies[n],a=this._trackedLatencies[t];i||(i=this._latencies[n]=[]),i.push(Date.now()-a),i.length>this._maximumSamplesCount&&i.splice(0,i.length-this._maximumSamplesCount),delete this._trackedLatencies[t]}}},{key:"_averageLatency",value:function(e){return Math.floor(e.reduce((function(e,t){return e+t}),0)/e.length)}},{key:"_endpointName",value:function(e){var t=null;switch(e){case r.default.PNPublishOperation:t="pub";break;case r.default.PNSignalOperation:t="sig";break;case r.default.PNHistoryOperation:case r.default.PNFetchMessagesOperation:case r.default.PNDeleteMessagesOperation:case r.default.PNMessageCounts:t="hist";break;case r.default.PNUnsubscribeOperation:case r.default.PNWhereNowOperation:case r.default.PNHereNowOperation:case r.default.PNHeartbeatOperation:case r.default.PNSetStateOperation:case r.default.PNGetStateOperation:t="pres";break;case r.default.PNAddChannelsToGroupOperation:case r.default.PNRemoveChannelsFromGroupOperation:case r.default.PNChannelGroupsOperation:case r.default.PNRemoveGroupOperation:case r.default.PNChannelsForGroupOperation:t="cg";break;case r.default.PNPushNotificationEnabledChannelsOperation:case r.default.PNRemoveAllPushNotificationsOperation:t="push";break;case r.default.PNCreateUserOperation:case r.default.PNUpdateUserOperation:case r.default.PNDeleteUserOperation:case r.default.PNGetUserOperation:case r.default.PNGetUsersOperation:case r.default.PNCreateSpaceOperation:case r.default.PNUpdateSpaceOperation:case r.default.PNDeleteSpaceOperation:case r.default.PNGetSpaceOperation:case r.default.PNGetSpacesOperation:case r.default.PNGetMembersOperation:case r.default.PNUpdateMembersOperation:case r.default.PNGetMembershipsOperation:case r.default.PNUpdateMembershipsOperation:t="obj";break;case r.default.PNAddMessageActionOperation:case r.default.PNRemoveMessageActionOperation:case r.default.PNGetMessageActionsOperation:t="msga";break;case r.default.PNAccessManagerGrant:case r.default.PNAccessManagerAudit:t="pam";break;case r.default.PNAccessManagerGrantToken:t="pam3";break;default:t="time"}return t}}]),e}();t.default=c,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.FCMNotificationPayload=t.MPNSNotificationPayload=t.APNSNotificationPayload=void 0;var a=i(n(42)),o=i(n(14)),s=i(n(12)),r=i(n(19)),c=i(n(15)),u=i(n(5)),p=i(n(6)),l=i(n(4));n(2);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function f(e){for(var t=1;t2){var i=this._payload;i.notification,i.data;e=f({},e,{},(0,a.default)(i,["notification","data"]))}return this._isSilent?e.notification=this._payload.notification:t=this._payload.notification,Object.keys(e).length&&(n.data=e),t&&Object.keys(t).length&&(n.notification=t),Object.keys(n).length?n:null}},{key:"notification",get:function(){return this._payload.notification}},{key:"data",get:function(){return this._payload.data}},{key:"title",get:function(){return this._title},set:function(e){e&&e.length&&(this._payload.notification.title=e,this._title=e)}},{key:"body",get:function(){return this._body},set:function(e){e&&e.length&&(this._payload.notification.body=e,this._body=e)}},{key:"sound",get:function(){return this._sound},set:function(e){e&&e.length&&(this._payload.notification.sound=e,this._sound=e)}},{key:"icon",get:function(){return this._icon},set:function(e){e&&e.length&&(this._payload.notification.icon=e,this._icon=e)}},{key:"tag",get:function(){return this._tag},set:function(e){e&&e.length&&(this._payload.notification.tag=e,this._tag=e)}},{key:"silent",set:function(e){this._isSilent=e}}]),t}(m);t.FCMNotificationPayload=g;var b=function(){function e(t,n){(0,u.default)(this,e),(0,l.default)(this,"_payload",void 0),(0,l.default)(this,"_debugging",void 0),(0,l.default)(this,"_subtitle",void 0),(0,l.default)(this,"_badge",void 0),(0,l.default)(this,"_sound",void 0),(0,l.default)(this,"_title",void 0),(0,l.default)(this,"_body",void 0),(0,l.default)(this,"apns",void 0),(0,l.default)(this,"mpns",void 0),(0,l.default)(this,"fcm",void 0),this._payload={apns:{},mpns:{},fcm:{}},this._title=t,this._body=n,this.apns=new h(this._payload.apns,t,n),this.mpns=new v(this._payload.mpns,t,n),this.fcm=new g(this._payload.fcm,t,n)}return(0,p.default)(e,[{key:"debugging",set:function(e){this._debugging=e}},{key:"title",get:function(){return this._title}},{key:"body",get:function(){return this._body}},{key:"subtitle",get:function(){return this._subtitle},set:function(e){this._subtitle=e,this.apns.subtitle=e,this.mpns.subtitle=e,this.fcm.subtitle=e}},{key:"badge",get:function(){return this._badge},set:function(e){this._badge=e,this.apns.badge=e,this.mpns.badge=e,this.fcm.badge=e}},{key:"sound",get:function(){return this._sound},set:function(e){this._sound=e,this.apns.sound=e,this.mpns.sound=e,this.fcm.sound=e}}]),(0,p.default)(e,[{key:"buildPayload",value:function(e){var t={};if(e.includes("apns")||e.includes("apns2")){this.apns._apnsPushType=e.includes("apns")?"apns":"apns2";var n=this.apns.toObject();n&&Object.keys(n).length&&(t.pn_apns=n)}if(e.includes("mpns")){var i=this.mpns.toObject();i&&Object.keys(i).length&&(t.pn_mpns=i)}if(e.includes("fcm")){var a=this.fcm.toObject();a&&Object.keys(a).length&&(t.pn_gcm=a)}return Object.keys(t).length&&this._debugging&&(t.pn_debug=!0),t}}]),e}();t.default=b},function(e,t,n){var i=n(43);e.exports=function(e,t){if(null==e)return{};var n,a,o=i(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,i,a={},o=Object.keys(e);for(i=0;i=0||(a[n]=e[n]);return a}},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(7)),o=i(n(5)),s=i(n(6)),r=i(n(4)),c=(i(n(8)),n(2),function(){function e(t,n){(0,o.default)(this,e),(0,r.default)(this,"_config",void 0),(0,r.default)(this,"_cbor",void 0),(0,r.default)(this,"_userTokens",void 0),(0,r.default)(this,"_spaceTokens",void 0),(0,r.default)(this,"_userToken",void 0),(0,r.default)(this,"_spaceToken",void 0),this._config=t,this._cbor=n,this._initializeTokens()}return(0,s.default)(e,[{key:"_initializeTokens",value:function(){this._userTokens={},this._spaceTokens={},this._userToken=void 0,this._spaceToken=void 0}},{key:"_setToken",value:function(e){var t=this,n=this.parseToken(e);n&&n.resources&&(n.resources.users&&Object.keys(n.resources.users).forEach((function(n){t._userTokens[n]=e})),n.resources.spaces&&Object.keys(n.resources.spaces).forEach((function(n){t._spaceTokens[n]=e}))),n&&n.patterns&&(n.patterns.users&&Object.keys(n.patterns.users).length>0&&(this._userToken=e),n.patterns.spaces&&Object.keys(n.patterns.spaces).length>0&&(this._spaceToken=e))}},{key:"setToken",value:function(e){e&&e.length>0&&this._setToken(e)}},{key:"setTokens",value:function(e){var t=this;e&&e.length&&"object"===(0,a.default)(e)&&e.forEach((function(e){t.setToken(e)}))}},{key:"getTokens",value:function(e){var t=this,n={users:{},spaces:{}};return e?(e.user&&(n.user=this._userToken),e.space&&(n.space=this._spaceToken),e.users&&e.users.forEach((function(e){n.users[e]=t._userTokens[e]})),e.space&&e.spaces.forEach((function(e){n.spaces[e]=t._spaceTokens[e]}))):(this._userToken&&(n.user=this._userToken),this._spaceToken&&(n.space=this._spaceToken),Object.keys(this._userTokens).forEach((function(e){n.users[e]=t._userTokens[e]})),Object.keys(this._spaceTokens).forEach((function(e){n.spaces[e]=t._spaceTokens[e]}))),n}},{key:"getToken",value:function(e,t){var n;return t?"user"===e?n=this._userTokens[t]:"space"===e&&(n=this._spaceTokens[t]):"user"===e?n=this._userToken:"space"===e&&(n=this._spaceToken),n}},{key:"extractPermissions",value:function(e){var t={create:!1,read:!1,write:!1,manage:!1,delete:!1};return 16==(16&e)&&(t.create=!0),8==(8&e)&&(t.delete=!0),4==(4&e)&&(t.manage=!0),2==(2&e)&&(t.write=!0),1==(1&e)&&(t.read=!0),t}},{key:"parseToken",value:function(e){var t=this,n=this._cbor.decodeToken(e);if(void 0!==n){var i=Object.keys(n.res.usr),a=Object.keys(n.res.spc),o=Object.keys(n.pat.usr),s=Object.keys(n.pat.spc),r={version:n.v,timestamp:n.t,ttl:n.ttl},c=i.length>0,u=a.length>0;(c||u)&&(r.resources={},c&&(r.resources.users={},i.forEach((function(e){r.resources.users[e]=t.extractPermissions(n.res.usr[e])}))),u&&(r.resources.spaces={},a.forEach((function(e){r.resources.spaces[e]=t.extractPermissions(n.res.spc[e])}))));var p=o.length>0,l=s.length>0;return(p||l)&&(r.patterns={},p&&(r.patterns.users={},o.forEach((function(e){r.patterns.users[e]=t.extractPermissions(n.pat.usr[e])}))),l&&(r.patterns.spaces={},s.forEach((function(e){r.patterns.spaces[e]=t.extractPermissions(n.pat.spc[e])})))),Object.keys(n.meta).length>0&&(r.meta=n.meta),r.signature=n.sig,r}}},{key:"clearTokens",value:function(){this._initializeTokens()}}]),e}());t.default=c,e.exports=t.default},function(e,t,n){var i=n(12),a=n(16),o=n(46),s=n(47);function r(t){var n="function"==typeof Map?new Map:void 0;return e.exports=r=function(e){if(null===e||!o(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return s(e,arguments,i(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),a(t,e)},r(t)}e.exports=r},function(e,t){e.exports=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}},function(e,t,n){var i=n(16),a=n(48);function o(t,n,s){return a()?e.exports=o=Reflect.construct:e.exports=o=function(e,t,n){var a=[null];a.push.apply(a,t);var o=new(Function.bind.apply(e,a));return n&&i(o,n.prototype),o},o.apply(null,arguments)}e.exports=o},function(e,t){e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNAddChannelsToGroupOperation},t.validateParams=function(e,t){var n=t.channels,i=t.channelGroup,a=e.config;if(!i)return"Missing Channel Group";if(!n||0===n.length)return"Missing Channels";if(!a.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channelGroup,i=e.config;return"/v1/channel-registration/sub-key/".concat(i.subscribeKey,"/channel-group/").concat(o.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channels;return{add:(void 0===n?[]:n).join(",")}},t.handleResponse=function(){return{}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNRemoveChannelsFromGroupOperation},t.validateParams=function(e,t){var n=t.channels,i=t.channelGroup,a=e.config;if(!i)return"Missing Channel Group";if(!n||0===n.length)return"Missing Channels";if(!a.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channelGroup,i=e.config;return"/v1/channel-registration/sub-key/".concat(i.subscribeKey,"/channel-group/").concat(o.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channels;return{remove:(void 0===n?[]:n).join(",")}},t.handleResponse=function(){return{}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNRemoveGroupOperation},t.validateParams=function(e,t){var n=t.channelGroup,i=e.config;if(!n)return"Missing Channel Group";if(!i.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channelGroup,i=e.config;return"/v1/channel-registration/sub-key/".concat(i.subscribeKey,"/channel-group/").concat(o.default.encodeString(n),"/remove")},t.isAuthSupported=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.prepareParams=function(){return{}},t.handleResponse=function(){return{}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNChannelGroupsOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e){var t=e.config;return"/v1/channel-registration/sub-key/".concat(t.subscribeKey,"/channel-group")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return{groups:t.payload.groups}};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNChannelsForGroupOperation},t.validateParams=function(e,t){var n=t.channelGroup,i=e.config;if(!n)return"Missing Channel Group";if(!i.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channelGroup,i=e.config;return"/v1/channel-registration/sub-key/".concat(i.subscribeKey,"/channel-group/").concat(o.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return{channels:t.payload.channels}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNPushNotificationEnabledChannelsOperation},t.validateParams=function(e,t){var n=t.device,i=t.pushGateway,a=t.channels,o=t.topic,s=e.config;if(!n)return"Missing Device ID (device)";if(!i)return"Missing GW Type (pushGateway: gcm, apns or apns2)";if("apns2"===i&&!o)return"Missing APNS2 topic";if(!a||0===a.length)return"Missing Channels";if(!s.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.device,i=t.pushGateway,a=e.config;if("apns2"===i)return"/v2/push/sub-key/".concat(a.subscribeKey,"/devices-apns2/").concat(n);return"/v1/push/sub-key/".concat(a.subscribeKey,"/devices/").concat(n)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.pushGateway,i=t.channels,a=void 0===i?[]:i,o=t.environment,s=void 0===o?"development":o,r=t.topic,c={type:n,add:a.join(",")};"apns2"===n&&delete(c=Object.assign({},c,{environment:s,topic:r})).type;return c},t.handleResponse=function(){return{}};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNPushNotificationEnabledChannelsOperation},t.validateParams=function(e,t){var n=t.device,i=t.pushGateway,a=t.channels,o=t.topic,s=e.config;if(!n)return"Missing Device ID (device)";if(!i)return"Missing GW Type (pushGateway: gcm, apns or apns2)";if("apns2"===i&&!o)return"Missing APNS2 topic";if(!a||0===a.length)return"Missing Channels";if(!s.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.device,i=t.pushGateway,a=e.config;if("apns2"===i)return"/v2/push/sub-key/".concat(a.subscribeKey,"/devices-apns2/").concat(n);return"/v1/push/sub-key/".concat(a.subscribeKey,"/devices/").concat(n)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.pushGateway,i=t.channels,a=void 0===i?[]:i,o=t.environment,s=void 0===o?"development":o,r=t.topic,c={type:n,remove:a.join(",")};"apns2"===n&&delete(c=Object.assign({},c,{environment:s,topic:r})).type;return c},t.handleResponse=function(){return{}};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNPushNotificationEnabledChannelsOperation},t.validateParams=function(e,t){var n=t.device,i=t.pushGateway,a=t.topic,o=e.config;if(!n)return"Missing Device ID (device)";if(!i)return"Missing GW Type (pushGateway: gcm, apns or apns2)";if("apns2"===i&&!a)return"Missing APNS2 topic";if(!o.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.device,i=t.pushGateway,a=e.config;if("apns2"===i)return"/v2/push/sub-key/".concat(a.subscribeKey,"/devices-apns2/").concat(n);return"/v1/push/sub-key/".concat(a.subscribeKey,"/devices/").concat(n)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.pushGateway,i=t.environment,a=void 0===i?"development":i,o=t.topic,s={type:n};"apns2"===n&&delete(s=Object.assign({},s,{environment:a,topic:o})).type;return s},t.handleResponse=function(e,t){return{channels:t}};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNRemoveAllPushNotificationsOperation},t.validateParams=function(e,t){var n=t.device,i=t.pushGateway,a=t.topic,o=e.config;if(!n)return"Missing Device ID (device)";if(!i)return"Missing GW Type (pushGateway: gcm, apns or apns2)";if("apns2"===i&&!a)return"Missing APNS2 topic";if(!o.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.device,i=t.pushGateway,a=e.config;if("apns2"===i)return"/v2/push/sub-key/".concat(a.subscribeKey,"/devices-apns2/").concat(n,"/remove");return"/v1/push/sub-key/".concat(a.subscribeKey,"/devices/").concat(n,"/remove")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.pushGateway,i=t.environment,a=void 0===i?"development":i,o=t.topic,s={type:n};"apns2"===n&&delete(s=Object.assign({},s,{environment:a,topic:o})).type;return s},t.handleResponse=function(){return{}};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNUnsubscribeOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,i=t.channels,a=void 0===i?[]:i,s=a.length>0?a.join(","):",";return"/v2/presence/sub-key/".concat(n.subscribeKey,"/channel/").concat(o.default.encodeString(s),"/leave")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channelGroups,i=void 0===n?[]:n,a={};i.length>0&&(a["channel-group"]=i.join(","));return a},t.handleResponse=function(){return{}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNWhereNowOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,i=t.uuid,a=void 0===i?n.UUID:i;return"/v2/presence/sub-key/".concat(n.subscribeKey,"/uuid/").concat(a)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){if(!t.payload)return{channels:[]};return{channels:t.payload.channels}};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNHeartbeatOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,i=t.channels,a=void 0===i?[]:i,s=a.length>0?a.join(","):",";return"/v2/presence/sub-key/".concat(n.subscribeKey,"/channel/").concat(o.default.encodeString(s),"/heartbeat")},t.isAuthSupported=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.prepareParams=function(e,t){var n=t.channelGroups,i=void 0===n?[]:n,a=t.state,o=void 0===a?{}:a,s=e.config,r={};i.length>0&&(r["channel-group"]=i.join(","));return r.state=JSON.stringify(o),r.heartbeat=s.getPresenceTimeout(),r},t.handleResponse=function(){return{}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNGetStateOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,i=t.uuid,a=void 0===i?n.UUID:i,s=t.channels,r=void 0===s?[]:s,c=r.length>0?r.join(","):",";return"/v2/presence/sub-key/".concat(n.subscribeKey,"/channel/").concat(o.default.encodeString(c),"/uuid/").concat(a)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channelGroups,i=void 0===n?[]:n,a={};i.length>0&&(a["channel-group"]=i.join(","));return a},t.handleResponse=function(e,t,n){var i=n.channels,a=void 0===i?[]:i,o=n.channelGroups,s=void 0===o?[]:o,r={};1===a.length&&0===s.length?r[a[0]]=t.payload:r=t.payload;return{channels:r}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNSetStateOperation},t.validateParams=function(e,t){var n=e.config,i=t.state,a=t.channels,o=void 0===a?[]:a,s=t.channelGroups,r=void 0===s?[]:s;if(!i)return"Missing State";if(!n.subscribeKey)return"Missing Subscribe Key";if(0===o.length&&0===r.length)return"Please provide a list of channels and/or channel-groups"},t.getURL=function(e,t){var n=e.config,i=t.channels,a=void 0===i?[]:i,s=a.length>0?a.join(","):",";return"/v2/presence/sub-key/".concat(n.subscribeKey,"/channel/").concat(o.default.encodeString(s),"/uuid/").concat(n.UUID,"/data")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.state,i=t.channelGroups,a=void 0===i?[]:i,o={};o.state=JSON.stringify(n),a.length>0&&(o["channel-group"]=a.join(","));return o},t.handleResponse=function(e,t){return{state:t.payload}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return o.default.PNHereNowOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,i=t.channels,a=void 0===i?[]:i,o=t.channelGroups,r=void 0===o?[]:o,c="/v2/presence/sub-key/".concat(n.subscribeKey);if(a.length>0||r.length>0){var u=a.length>0?a.join(","):",";c+="/channel/".concat(s.default.encodeString(u))}return c},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.channelGroups,i=void 0===n?[]:n,o=t.includeUUIDs,s=void 0===o||o,c=t.includeState,u=void 0!==c&&c,p=t.queryParameters,l=void 0===p?{}:p,d={};s||(d.disable_uuids=1);u&&(d.state=1);i.length>0&&(d["channel-group"]=i.join(","));return d=function(e){for(var t=1;t1||r.length>0||0===r.length&&0===o.length?function(){var e={};return e.totalChannels=t.payload.total_channels,e.totalOccupancy=t.payload.total_occupancy,e.channels={},Object.keys(t.payload.channels).forEach((function(n){var i=t.payload.channels[n],a=[];return e.channels[n]={occupants:a,name:n,occupancy:i.occupancy},u&&i.uuids.forEach((function(e){l?a.push({state:e.state,uuid:e.uuid}):a.push({state:null,uuid:e})})),e})),e}():function(){var e={},n=[];return e.totalChannels=1,e.totalOccupancy=t.occupancy,e.channels={},e.channels[o[0]]={occupants:n,name:o[0],occupancy:t.occupancy},u&&t.uuids&&t.uuids.forEach((function(e){l?n.push({state:e.state,uuid:e.uuid}):n.push({state:null,uuid:e})})),e}();return i};var a=i(n(4)),o=(n(2),i(n(1))),s=i(n(3));function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNAddMessageActionOperation},t.validateParams=function(e,t){var n=e.config,i=t.action,a=t.channel;if(!t.messageTimetoken)return"Missing message timetoken";if(!n.subscribeKey)return"Missing Subscribe Key";if(!a)return"Missing message channel";if(!i)return"Missing Action";if(!i.value)return"Missing Action.value";if(!i.type)return"Missing Action.type";if(i.type.length>15)return"Action.type value exceed maximum length of 15"},t.usePost=function(){return!0},t.postURL=function(e,t){var n=e.config,i=t.channel,a=t.messageTimetoken;return"/v1/message-actions/".concat(n.subscribeKey,"/channel/").concat(i,"/message/").concat(a)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.getRequestHeaders=function(){return{"Content-Type":"application/json"}},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.postPayload=function(e,t){return t.action},t.handleResponse=function(e,t){return{data:t.data}};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNRemoveMessageActionOperation},t.validateParams=function(e,t){var n=e.config,i=t.channel,a=t.actionTimetoken;if(!t.messageTimetoken)return"Missing message timetoken";if(!a)return"Missing action timetoken";if(!n.subscribeKey)return"Missing Subscribe Key";if(!i)return"Missing message channel"},t.useDelete=function(){return!0},t.getURL=function(e,t){var n=e.config,i=t.channel,a=t.actionTimetoken,o=t.messageTimetoken;return"/v1/message-actions/".concat(n.subscribeKey,"/channel/").concat(i,"/message/").concat(o,"/action/").concat(a)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return{data:t.data}};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNGetMessageActionsOperation},t.validateParams=function(e,t){var n=e.config,i=t.channel;if(!n.subscribeKey)return"Missing Subscribe Key";if(!i)return"Missing message channel"},t.getURL=function(e,t){var n=e.config,i=t.channel;return"/v1/message-actions/".concat(n.subscribeKey,"/channel/").concat(i)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.limit,i=t.start,a=t.end,o={};n&&(o.limit=n);i&&(o.start=i);a&&(o.end=a);return o},t.handleResponse=function(e,t){var n={data:t.data,start:null,end:null};n.data.length&&(n.end=n.data[n.data.length-1].actionTimetoken,n.start=n.data[0].actionTimetoken);return n};n(2);var a=i(n(1))},function(e,t,n){},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(1)),o={getOperation:function(){return a.default.PNListFilesOperation},validateParams:function(e,t){if(!(null==t?void 0:t.channel))return"channel can't be empty"},getURL:function(e,t){var n=e.config;return"/v1/files/".concat(n.subscribeKey,"/channels/").concat(t.channel,"/files")},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(){return{}},handleResponse:function(e,t){return{status:t.status,data:t.data}}};t.default=o,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(1)),o={getOperation:function(){return a.default.PNGenerateUploadUrlOperation},validateParams:function(e,t){return(null==t?void 0:t.channel)?(null==t?void 0:t.name)?void 0:"name can't be empty":"channel can't be empty"},usePost:function(){return!0},postURL:function(e,t){var n=e.config;return"/v1/files/".concat(n.subscribeKey,"/channels/").concat(t.channel,"/generate-upload-url")},postPayload:function(e,t){return{name:t.name}},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(){return{}},handleResponse:function(e,t){return{status:t.status,data:t.data,file_upload_request:t.file_upload_request}}};t.default=o,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(7)),o=i(n(1)),s=i(n(3)),r={getOperation:function(){return o.default.PNPublishFileOperation},validateParams:function(e,t){return(null==t?void 0:t.channel)?(null==t?void 0:t.fileId)?(null==t?void 0:t.fileName)?void 0:"file name can't be empty":"file id can't be empty":"channel can't be empty"},getURL:function(e,t){var n=e.config,i=n.publishKey,a=n.subscribeKey,o=function(e,t){var n=e.crypto,i=e.config,a=JSON.stringify(t);return i.cipherKey&&(a=n.encrypt(a),a=JSON.stringify(a)),a||""}(e,{message:t.message,file:{name:t.fileName,id:t.fileId}});return"/v1/files/publish-file/".concat(i,"/").concat(a,"/0/").concat(t.channel,"/0/").concat(s.default.encodeString(o))},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(e,t){var n={};return t.ttl&&(n.ttl=t.ttl),t.store&&(n.store=t.store?"1":"0"),t.meta&&"object"===(0,a.default)(t.meta)&&(n.meta=JSON.stringify(t.meta)),n},handleResponse:function(e,t){return{timetoken:t[2]}}};t.default=r,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(10)),o=i(n(11)),s=n(18);t.default=function(e){var t,n,i,r,c,u,p,l,d,f=(i=(t=e).generateUploadUrl,r=t.publishFile,c=t.modules,u=c.PubNubFile,p=c.config,l=c.cryptography,d=c.networking,n=(0,o.default)(a.default.mark((function e(t){var n,o,c,f,m,h,v,g,b,x,y,k,_,w,P,T,O,j,S;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.channel,o=t.file,c=t.message,f=t.cipherKey,m=t.meta,h=t.ttl,v=t.store,n){e.next=3;break}throw new s.PubNubError("Validation failed, check status for details",(0,s.createValidationError)("channel can't be empty"));case 3:if(o){e.next=5;break}throw new s.PubNubError("Validation failed, check status for details",(0,s.createValidationError)("file can't be empty"));case 5:return g=u.create(o),e.next=8,i({channel:n,name:g.name});case 8:if(b=e.sent,x=b.file_upload_request,y=x.url,k=x.form_fields,_=b.data,w=_.id,P=_.name,!(null!=f?f:p.cipherKey)){e.next=19;break}return e.next=18,l.encryptFile(null!=f?f:p.cipherKey,g,u);case 18:g=e.sent;case 19:if(T=k,g.mimeType&&(T=k.map((function(e){var t;return"Content-Type"===e.key?{key:e.key,value:null!==(t=g.mimeType)&&void 0!==t?t:""}:e}))),e.prev=21,"undefined"==typeof Blob){e.next=34;break}return e.t0=d,e.t1=y,e.t2=T,e.next=28,g.toFile();case 28:return e.t3=e.sent,e.next=31,e.t0.FILE.call(e.t0,e.t1,e.t2,e.t3);case 31:O=e.sent,e.next=43;break;case 34:return e.t4=d,e.t5=y,e.t6=T,e.next=39,g.toBuffer();case 39:return e.t7=e.sent,e.next=42,e.t4.FILE.call(e.t4,e.t5,e.t6,e.t7);case 42:O=e.sent;case 43:e.next=48;break;case 45:throw e.prev=45,e.t8=e.catch(21),new s.PubNubError("Upload to bucket failed",e.t8);case 48:if(204===O.status){e.next=50;break}throw new s.PubNubError("Upload to bucket was unsuccessful",O);case 50:j=5,S=!1;case 52:if(S||!(j>0)){e.next=64;break}return e.prev=53,e.next=56,r({channel:n,message:c,fileId:w,fileName:P,meta:m,store:v,ttl:h});case 56:S=!0,e.next=62;break;case 59:e.prev=59,e.t9=e.catch(53),j-=1;case 62:e.next=52;break;case 64:if(S){e.next=68;break}throw new s.PubNubError("Publish failed. You may want to execute that operation manually using pubnub.publishFile",{channel:n,id:w,name:P});case 68:return e.abrupt("return",{id:w,name:P});case 69:case"end":return e.stop()}}),e,null,[[21,45],[53,59]])}))),function(e){return n.apply(this,arguments)});return function(e,t){var n=f(e);return"function"==typeof t?(n.then((function(e){return t(null,e)})).catch((function(e){return t(e,null)})),n):n}},e.exports=t.default},function(e,t,n){var i=function(e){"use strict";var t=Object.prototype,n=t.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function r(e,t,n,i){var a=t&&t.prototype instanceof p?t:p,o=Object.create(a.prototype),s=new _(i||[]);return o._invoke=function(e,t,n){var i="suspendedStart";return function(a,o){if("executing"===i)throw new Error("Generator is already running");if("completed"===i){if("throw"===a)throw o;return P()}for(n.method=a,n.arg=o;;){var s=n.delegate;if(s){var r=x(s,n);if(r){if(r===u)continue;return r}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===i)throw i="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i="executing";var p=c(e,t,n);if("normal"===p.type){if(i=n.done?"completed":"suspendedYield",p.arg===u)continue;return{value:p.arg,done:n.done}}"throw"===p.type&&(i="completed",n.method="throw",n.arg=p.arg)}}}(e,n,s),o}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=r;var u={};function p(){}function l(){}function d(){}var f={};f[a]=function(){return this};var m=Object.getPrototypeOf,h=m&&m(m(w([])));h&&h!==t&&n.call(h,a)&&(f=h);var v=d.prototype=p.prototype=Object.create(f);function g(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function b(e,t){var i;this._invoke=function(a,o){function s(){return new t((function(i,s){!function i(a,o,s,r){var u=c(e[a],e,o);if("throw"!==u.type){var p=u.arg,l=p.value;return l&&"object"==typeof l&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){i("next",e,s,r)}),(function(e){i("throw",e,s,r)})):t.resolve(l).then((function(e){p.value=e,s(p)}),(function(e){return i("throw",e,s,r)}))}r(u.arg)}(a,o,i,s)}))}return i=i?i.then(s,s):s()}}function x(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,x(e,t),"throw"===t.method))return u;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var i=c(n,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,u;var a=i.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,u):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,u)}function y(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function _(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(y,this),this.reset(!0)}function w(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,o=function t(){for(;++i=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var r=n.call(o,"catchLoc"),c=n.call(o,"finallyLoc");if(r&&c){if(this.prev=0;--i){var a=this.tryEntries[i];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),u}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var a=i.arg;k(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:w(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},e}(e.exports);try{regeneratorRuntime=i}catch(e){Function("r","regeneratorRuntime = r")(i)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(18);t.default=function(e,t){var n=e.config,a=t.channel,o=t.id,s=t.name;if(!a)throw new i.PubNubError("Validation failed, check status for details",(0,i.createValidationError)("channel can't be empty"));if(!o)throw new i.PubNubError("Validation failed, check status for details",(0,i.createValidationError)("file id can't be empty"));if(!s)throw new i.PubNubError("Validation failed, check status for details",(0,i.createValidationError)("file name can't be empty"));return"".concat(n.origin,"/v1/files/").concat(n.subscribeKey,"/channels/").concat(a,"/files/").concat(o,"/").concat(s)},e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,o=i(n(10)),s=i(n(11)),r=i(n(1)),c={getOperation:function(){return r.default.PNDownloadFileOperation},validateParams:function(e,t){return(null==t?void 0:t.channel)?(null==t?void 0:t.name)?(null==t?void 0:t.id)?void 0:"id can't be empty":"name can't be empty":"channel can't be empty"},getURL:function(e,t){var n=e.config;return"/v1/files/".concat(n.subscribeKey,"/channels/").concat(t.channel,"/files/").concat(t.id,"/").concat(t.name)},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},ignoreBody:function(){return!0},forceBuffered:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(){return{}},handleResponse:(a=(0,s.default)(o.default.mark((function e(t,n,i){var a,s,r,c,u,p;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s=t.PubNubFile,r=t.config,c=t.cryptography,u=n.response.body,!r.cipherKey){e.next=6;break}return e.next=5,c.decrypt(null!==(p=i.cipherKey)&&void 0!==p?p:r.cipherKey,u);case 5:u=e.sent;case 6:return e.abrupt("return",s.create({data:u,name:null!==(a=n.response.name)&&void 0!==a?a:i.name,mimeType:n.response.type}));case 7:case"end":return e.stop()}}),e)}))),function(e,t,n){return a.apply(this,arguments)})};t.default=c,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(1)),o={getOperation:function(){return a.default.PNListFilesOperation},validateParams:function(e,t){return(null==t?void 0:t.channel)?(null==t?void 0:t.id)?(null==t?void 0:t.name)?void 0:"file name can't be empty":"file id can't be empty":"channel can't be empty"},useDelete:function(){return!0},getURL:function(e,t){var n=e.config;return"/v1/files/".concat(n.subscribeKey,"/channels/").concat(t.channel,"/files/").concat(t.id,"/").concat(t.name)},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("fileUpload")},prepareParams:function(){return{}},handleResponse:function(e,t){return{status:t.status}}};t.default=o,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(9)),o=i(n(1)),s={getOperation:function(){return o.default.PNGetAllUUIDMetadataOperation},validateParams:function(){},getURL:function(e){var t=e.config;return"/v2/objects/".concat(t.subscribeKey,"/uuids")},getRequestTimeout:function(e){return e.config.getTransactionTimeout()},isAuthSupported:function(){return!0},getAuthToken:function(e){return e.tokenManager.getToken("user")},prepareParams:function(e,t){var n,i,o,s,r,c,u,p,l={};((null==t||null===(n=t.include)||void 0===n?void 0:n.customFields)&&(l.include="custom"),null==t||null===(i=t.include)||void 0===i?void 0:i.totalCount)&&(l.count=null===(r=t.include)||void 0===r?void 0:r.totalCount);(null==t||null===(o=t.page)||void 0===o?void 0:o.next)&&(l.start=null===(c=t.page)||void 0===c?void 0:c.next);(null==t||null===(s=t.page)||void 0===s?void 0:s.prev)&&(l.end=null===(u=t.page)||void 0===u?void 0:u.prev);((null==t?void 0:t.filter)&&(l.filter=t.filter),l.limit=null==t?void 0:t.limit,null==t?void 0:t.sort)&&(l.sort=Object.entries(null!==(p=t.sort)&&void 0!==p?p:{}).map((function(e){var t=(0,a.default)(e,2),n=t[0],i=t[1];return"asc"===i||"desc"===i?"".concat(n,":").concat(i):n})));return l},handleResponse:function(e,t){return{status:t.status,data:t.data,totalCount:t.totalCount,next:t.next,prev:t.prev}}};t.default=s,e.exports=t.default},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],i=!0,a=!1,o=void 0;try{for(var s,r=e[Symbol.iterator]();!(i=(s=r.next()).done)&&(n.push(s.value),!t||n.length!==t);i=!0);}catch(e){a=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(a)throw o}}return n}}},function(e,t,n){var i=n(80);e.exports=function(e,t){if(e){if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}},function(e,t){e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n0&&(i.include=o)}return i},t.postPayload=function(e,t){return function(e,t){return t}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNUpdateUserOperation},t.validateParams=function(e,t){var n=e.config,i=t.id,a=t.name,o=t.custom;if(!i)return"Missing User.id";if(!a)return"Missing User.name";if(!n.subscribeKey)return"Missing Subscribe Key";if(o&&!Object.values(o).every((function(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e})))return"Invalid custom type, only string, number and boolean values are allowed."},t.usePatch=function(){return!0},t.getURL=function(e,t){var n=e.config,i=t.id;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(i)},t.patchURL=function(e,t){var n=e.config,i=t.id;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(i)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.id)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,i={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var a=[];n.customFields&&a.push("custom");var o=a.join(",");o.length>0&&(i.include=o)}return i},t.patchPayload=function(e,t){return function(e,t){return t}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNDeleteUserOperation},t.validateParams=function(e,t){var n=e.config;if(!t)return"Missing UserId";if(!n.subscribeKey)return"Missing Subscribe Key"},t.useDelete=function(){return!0},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t)||e.tokenManager.getToken("user")},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNGetUserOperation},t.validateParams=function(e,t){if(!t.userId)return"Missing userId"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,i={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var a=[];n.customFields&&a.push("custom");var o=a.join(",");o.length>0&&(i.include=o)}return i},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNGetUsersOperation},t.validateParams=function(){},t.getURL=function(e){var t=e.config;return"/v1/objects/".concat(t.subscribeKey,"/users")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e){return e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o=t.filter,s={};i&&(s.limit=i);if(n){var r=[];n.totalCount&&(s.count=!0),n.customFields&&r.push("custom");var c=r.join(",");c.length>0&&(s.include=c)}a&&(a.next&&(s.start=a.next),a.prev&&(s.end=a.prev));o&&(s.filter=o);return s},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNCreateSpaceOperation},t.validateParams=function(e,t){var n=e.config,i=t.id,a=t.name,o=t.custom;if(!i)return"Missing Space.id";if(!a)return"Missing Space.name";if(!n.subscribeKey)return"Missing Subscribe Key";if(o&&!Object.values(o).every((function(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e})))return"Invalid custom type, only string, number and boolean values are allowed."},t.usePost=function(){return!0},t.getURL=function(e){var t=e.config;return"/v1/objects/".concat(t.subscribeKey,"/spaces")},t.postURL=function(e){var t=e.config;return"/v1/objects/".concat(t.subscribeKey,"/spaces")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.id)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,i={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var a=[];n.customFields&&a.push("custom");var o=a.join(",");o.length>0&&(i.include=o)}return i},t.postPayload=function(e,t){return function(e,t){return t}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNUpdateSpaceOperation},t.validateParams=function(e,t){var n=e.config,i=t.id,a=t.name,o=t.custom;if(!i)return"Missing Space.id";if(!a)return"Missing Space.name";if(!n.subscribeKey)return"Missing Subscribe Key";if(o&&!Object.values(o).every((function(e){return"string"==typeof e||"number"==typeof e||"boolean"==typeof e})))return"Invalid custom type, only string, number and boolean values are allowed."},t.usePatch=function(){return!0},t.getURL=function(e,t){var n=e.config,i=t.id;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(i)},t.patchURL=function(e,t){var n=e.config,i=t.id;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(i)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.id)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,i={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var a=[];n.customFields&&a.push("custom");var o=a.join(",");o.length>0&&(i.include=o)}return i},t.patchPayload=function(e,t){return function(e,t){return t}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNDeleteSpaceOperation},t.validateParams=function(e,t){var n=e.config;if(!t)return"Missing SpaceId";if(!n.subscribeKey)return"Missing Subscribe Key"},t.useDelete=function(){return!0},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t)||e.tokenManager.getToken("space")},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNGetSpacesOperation},t.validateParams=function(){},t.getURL=function(e){var t=e.config;return"/v1/objects/".concat(t.subscribeKey,"/spaces")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e){return e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o=t.filter,s={};i&&(s.limit=i);if(n){var r=[];n.totalCount&&(s.count=!0),n.customFields&&r.push("custom");var c=r.join(",");c.length>0&&(s.include=c)}a&&(a.next&&(s.start=a.next),a.prev&&(s.end=a.prev));o&&(s.filter=o);return s},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNGetSpaceOperation},t.validateParams=function(e,t){if(!t.spaceId)return"Missing spaceId"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,i={};n?void 0===n.customFields&&(n.customFields=!0):n={customFields:!0};if(n){var a=[];n.customFields&&a.push("custom");var o=a.join(",");o.length>0&&(i.include=o)}return i},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNGetMembersOperation},t.validateParams=function(e,t){if(!t.spaceId)return"Missing spaceId"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o=t.filter,s={};i&&(s.limit=i);if(n){var r=[];n.totalCount&&(s.count=!0),n.customFields&&r.push("custom"),n.userFields&&r.push("user"),n.customUserFields&&r.push("user.custom");var c=r.join(",");c.length>0&&(s.include=c)}a&&(a.next&&(s.start=a.next),a.prev&&(s.end=a.prev));o&&(s.filter=o);return s},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNUpdateMembersOperation},t.validateParams=function(e,t){var n=t.spaceId,i=t.users;if(!n)return"Missing spaceId";if(!i)return"Missing users"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o={};i&&(o.limit=i);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom"),n.spaceFields&&s.push("space"),n.customSpaceFields&&s.push("space.custom");var r=s.join(",");r.length>0&&(o.include=r)}a&&(a.next&&(o.start=a.next),a.prev&&(o.end=a.prev));return o},t.patchPayload=function(e,t){return function(e,t){var n=t.users,i={};n&&n.length>0&&(i.add=[],n.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),i.add.push(t)})));return i}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNUpdateMembersOperation},t.validateParams=function(e,t){var n=t.spaceId,i=t.users;if(!n)return"Missing spaceId";if(!i)return"Missing users"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o={};i&&(o.limit=i);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom"),n.spaceFields&&s.push("space"),n.customSpaceFields&&s.push("space.custom");var r=s.join(",");r.length>0&&(o.include=r)}a&&(a.next&&(o.start=a.next),a.prev&&(o.end=a.prev));return o},t.patchPayload=function(e,t){return function(e,t){var n=t.addMembers,i=t.updateMembers,a=t.removeMembers,o=t.users,s={};n&&n.length>0&&(s.add=[],n.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),s.add.push(t)})));i&&i.length>0&&(s.update=[],i.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),s.update.push(t)})));o&&o.length>0&&(s.update=s.update||[],o.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),s.update.push(t)})));a&&a.length>0&&(s.remove=[],a.forEach((function(e){s.remove.push({id:e})})));return s}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNUpdateMembersOperation},t.validateParams=function(e,t){var n=t.spaceId,i=t.users;if(!n)return"Missing spaceId";if(!i)return"Missing users"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/spaces/").concat(t.spaceId,"/users")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("space",t.spaceId)||e.tokenManager.getToken("space")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o={};i&&(o.limit=i);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom"),n.spaceFields&&s.push("space"),n.customSpaceFields&&s.push("space.custom");var r=s.join(",");r.length>0&&(o.include=r)}a&&(a.next&&(o.start=a.next),a.prev&&(o.end=a.prev));return o},t.patchPayload=function(e,t){return function(e,t){var n=t.users,i={};n&&n.length>0&&(i.remove=[],n.forEach((function(e){i.remove.push({id:e})})));return i}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNGetMembershipsOperation},t.validateParams=function(e,t){if(!t.userId)return"Missing userId"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o=t.filter,s={};i&&(s.limit=i);if(n){var r=[];n.totalCount&&(s.count=!0),n.customFields&&r.push("custom"),n.spaceFields&&r.push("space"),n.customSpaceFields&&r.push("space.custom");var c=r.join(",");c.length>0&&(s.include=c)}a&&(a.next&&(s.start=a.next),a.prev&&(s.end=a.prev));o&&(s.filter=o);return s},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNUpdateMembershipsOperation},t.validateParams=function(e,t){var n=t.userId,i=t.spaces;if(!n)return"Missing userId";if(!i)return"Missing spaces"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o={};i&&(o.limit=i);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom"),n.spaceFields&&s.push("space"),n.customSpaceFields&&s.push("space.custom");var r=s.join(",");r.length>0&&(o.include=r)}a&&(a.next&&(o.start=a.next),a.prev&&(o.end=a.prev));return o},t.patchPayload=function(e,t){return function(e,t){var n=t.addMemberships,i=t.updateMemberships,a=t.removeMemberships,o=t.spaces,s={};n&&n.length>0&&(s.add=[],n.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),s.add.push(t)})));i&&i.length>0&&(s.update=[],i.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),s.update.push(t)})));o&&o.length>0&&(s.update=s.update||[],o.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),s.update.push(t)})));a&&a.length>0&&(s.remove=[],a.forEach((function(e){s.remove.push({id:e})})));return s}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNUpdateMembershipsOperation},t.validateParams=function(e,t){var n=t.userId,i=t.spaces;if(!n)return"Missing userId";if(!i)return"Missing spaces"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o={};i&&(o.limit=i);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom"),n.spaceFields&&s.push("space"),n.customSpaceFields&&s.push("space.custom");var r=s.join(",");r.length>0&&(o.include=r)}a&&(a.next&&(o.start=a.next),a.prev&&(o.end=a.prev));return o},t.patchPayload=function(e,t){return function(e,t){var n=t.spaces,i={};n&&n.length>0&&(i.add=[],n.forEach((function(e){var t={id:e.id};e.custom&&(t.custom=e.custom),i.add.push(t)})));return i}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNUpdateMembershipsOperation},t.validateParams=function(e,t){var n=t.userId,i=t.spaces;if(!n)return"Missing userId";if(!i)return"Missing spaces"},t.getURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.patchURL=function(e,t){var n=e.config;return"/v1/objects/".concat(n.subscribeKey,"/users/").concat(t.userId,"/spaces")},t.usePatch=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.getAuthToken=function(e,t){return e.tokenManager.getToken("user",t.userId)||e.tokenManager.getToken("user")},t.prepareParams=function(e,t){var n=t.include,i=t.limit,a=t.page,o={};i&&(o.limit=i);if(n){var s=[];n.totalCount&&(o.count=!0),n.customFields&&s.push("custom"),n.spaceFields&&s.push("space"),n.customSpaceFields&&s.push("space.custom");var r=s.join(",");r.length>0&&(o.include=r)}a&&(a.next&&(o.start=a.next),a.prev&&(o.end=a.prev));return o},t.patchPayload=function(e,t){return function(e,t){var n=t.spaces,i={};n&&n.length>0&&(i.remove=[],n.forEach((function(e){i.remove.push({id:e})})));return i}(0,t)},t.handleResponse=function(e,t){return t};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNAccessManagerAudit},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e){var t=e.config;return"/v2/auth/audit/sub-key/".concat(t.subscribeKey)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!1},t.prepareParams=function(e,t){var n=t.channel,i=t.channelGroup,a=t.authKeys,o=void 0===a?[]:a,s={};n&&(s.channel=n);i&&(s["channel-group"]=i);o.length>0&&(s.auth=o.join(","));return s},t.handleResponse=function(e,t){return t.payload};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNAccessManagerGrant},t.validateParams=function(e){var t=e.config;if(!t.subscribeKey)return"Missing Subscribe Key";if(!t.publishKey)return"Missing Publish Key";if(!t.secretKey)return"Missing Secret Key"},t.getURL=function(e){var t=e.config;return"/v2/auth/grant/sub-key/".concat(t.subscribeKey)},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!1},t.prepareParams=function(e,t){var n=t.channels,i=void 0===n?[]:n,a=t.channelGroups,o=void 0===a?[]:a,s=t.ttl,r=t.read,c=void 0!==r&&r,u=t.write,p=void 0!==u&&u,l=t.manage,d=void 0!==l&&l,f=t.authKeys,m=void 0===f?[]:f,h=t.delete,v={};v.r=c?"1":"0",v.w=p?"1":"0",v.m=d?"1":"0",v.d=h?"1":"0",i.length>0&&(v.channel=i.join(","));o.length>0&&(v["channel-group"]=o.join(","));m.length>0&&(v.auth=m.join(","));(s||0===s)&&(v.ttl=s);return v},t.handleResponse=function(){return{}};n(2);var a=i(n(1))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNAccessManagerGrantToken},t.extractPermissions=o,t.validateParams=function(e,t){var n=e.config;if(!n.subscribeKey)return"Missing Subscribe Key";if(!n.publishKey)return"Missing Publish Key";if(!n.secretKey)return"Missing Secret Key";if(!t.resources&&!t.patterns)return"Missing either Resources or Patterns.";if(t.resources&&(!t.resources.users||0===Object.keys(t.resources.users).length)&&(!t.resources.spaces||0===Object.keys(t.resources.spaces).length)||t.patterns&&(!t.patterns.users||0===Object.keys(t.patterns.users).length)&&(!t.patterns.spaces||0===Object.keys(t.patterns.spaces).length))return"Missing values for either Resources or Patterns."},t.postURL=function(e){var t=e.config;return"/v3/pam/".concat(t.subscribeKey,"/grant")},t.usePost=function(){return!0},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!1},t.prepareParams=function(){return{}},t.postPayload=function(e,t){return function(e,t){var n=t.ttl,i=t.resources,a=t.patterns,s=t.meta,r={ttl:0,permissions:{resources:{channels:{},groups:{},users:{},spaces:{}},patterns:{channels:{},groups:{},users:{},spaces:{}},meta:{}}};if(i){var c=i.users,u=i.spaces;c&&Object.keys(c).forEach((function(e){r.permissions.resources.users[e]=o(c[e])})),u&&Object.keys(u).forEach((function(e){r.permissions.resources.spaces[e]=o(u[e])}))}if(a){var p=a.users,l=a.spaces;p&&Object.keys(p).forEach((function(e){r.permissions.patterns.users[e]=o(p[e])})),l&&Object.keys(l).forEach((function(e){r.permissions.patterns.spaces[e]=o(l[e])}))}(n||0===n)&&(r.ttl=n);s&&(r.permissions.meta=s);return r}(0,t)},t.handleResponse=function(e,t){return t.data.token};n(2);var a=i(n(1));function o(e){var t=0;return e.create&&(t|=16),e.delete&&(t|=8),e.manage&&(t|=4),e.write&&(t|=2),e.read&&(t|=1),t}},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return o.default.PNPublishOperation},t.validateParams=function(e,t){var n=e.config,i=t.message;if(!t.channel)return"Missing Channel";if(!i)return"Missing Message";if(!n.subscribeKey)return"Missing Subscribe Key"},t.usePost=function(e,t){var n=t.sendByPost;return void 0!==n&&n},t.getURL=function(e,t){var n=e.config,i=t.channel,a=t.message,o=r(e,a);return"/publish/".concat(n.publishKey,"/").concat(n.subscribeKey,"/0/").concat(s.default.encodeString(i),"/0/").concat(s.default.encodeString(o))},t.postURL=function(e,t){var n=e.config,i=t.channel;return"/publish/".concat(n.publishKey,"/").concat(n.subscribeKey,"/0/").concat(s.default.encodeString(i),"/0")},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.postPayload=function(e,t){var n=t.message;return r(e,n)},t.prepareParams=function(e,t){var n=t.meta,i=t.replicate,o=void 0===i||i,s=t.storeInHistory,r=t.ttl,c={};null!=s&&(c.store=s?"1":"0");r&&(c.ttl=r);!1===o&&(c.norep="true");n&&"object"===(0,a.default)(n)&&(c.meta=JSON.stringify(n));return c},t.handleResponse=function(e,t){return{timetoken:t[2]}};var a=i(n(7)),o=(n(2),i(n(1))),s=i(n(3));function r(e,t){var n=e.crypto,i=e.config,a=JSON.stringify(t);return i.cipherKey&&(a=n.encrypt(a),a=JSON.stringify(a)),a}},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNSignalOperation},t.validateParams=function(e,t){var n=e.config,i=t.message;if(!t.channel)return"Missing Channel";if(!i)return"Missing Message";if(!n.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,i=t.channel,a=t.message,s=(r=a,JSON.stringify(r));var r;return"/signal/".concat(n.publishKey,"/").concat(n.subscribeKey,"/0/").concat(o.default.encodeString(i),"/0/").concat(o.default.encodeString(s))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(){return{}},t.handleResponse=function(e,t){return{timetoken:t[2]}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNHistoryOperation},t.validateParams=function(e,t){var n=t.channel,i=e.config;if(!n)return"Missing channel";if(!i.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channel,i=e.config;return"/v2/history/sub-key/".concat(i.subscribeKey,"/channel/").concat(o.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.start,i=t.end,a=t.reverse,o=t.count,s=void 0===o?100:o,r=t.stringifiedTimeToken,c=void 0!==r&&r,u=t.includeMeta,p=void 0!==u&&u,l=t.includeUuid,d=void 0===l||l,f=t.includeMessageType,m=void 0===f||f,h={include_token:"true"};h.count=s,n&&(h.start=n);i&&(h.end=i);c&&(h.string_message_token="true");null!=a&&(h.reverse=a.toString());p&&(h.include_meta="true");d&&(h.include_uuid="true");m&&(h.include_message_type="true");return h},t.handleResponse=function(e,t){var n={messages:[],startTimeToken:t[1],endTimeToken:t[2]};Array.isArray(t[0])&&t[0].forEach((function(t){var i={timetoken:t.timetoken,entry:s(e,t.message)};t.meta&&(i.meta=t.meta),n.messages.push(i)}));return n};n(2);var a=i(n(1)),o=i(n(3));function s(e,t){var n=e.config,i=e.crypto;if(!n.cipherKey)return t;try{return i.decrypt(t)}catch(e){return t}}},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNDeleteMessagesOperation},t.validateParams=function(e,t){var n=t.channel,i=e.config;if(!n)return"Missing channel";if(!i.subscribeKey)return"Missing Subscribe Key"},t.useDelete=function(){return!0},t.getURL=function(e,t){var n=t.channel,i=e.config;return"/v3/history/sub-key/".concat(i.subscribeKey,"/channel/").concat(o.default.encodeString(n))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.start,i=t.end,a={};n&&(a.start=n);i&&(a.end=i);return a},t.handleResponse=function(e,t){return t.payload};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return o.default.PNMessageCounts},t.validateParams=function(e,t){var n=t.channels,i=t.timetoken,a=t.channelTimetokens,o=e.config;if(!n)return"Missing channel";if(i&&a)return"timetoken and channelTimetokens are incompatible together";if(i&&a&&a.length>1&&n.length!==a.length)return"Length of channelTimetokens and channels do not match";if(!o.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=t.channels,i=e.config,a=n.join(",");return"/v3/history/sub-key/".concat(i.subscribeKey,"/message-counts/").concat(s.default.encodeString(a))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.timetoken,i=t.channelTimetokens,o={};if(i&&1===i.length){var s=(0,a.default)(i,1)[0];o.timetoken=s}else i?o.channelsTimetoken=i.join(","):n&&(o.timetoken=n);return o},t.handleResponse=function(e,t){return{channels:t.channels}};var a=i(n(9)),o=i(n(1)),s=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNFetchMessagesOperation},t.validateParams=function(e,t){var n=t.channels,i=t.includeMessageActions,a=void 0!==i&&i,o=e.config;if(!n||0===n.length)return"Missing channels";if(!o.subscribeKey)return"Missing Subscribe Key";if(a&&n.length>1)throw new TypeError("History can return actions data for a single channel only. Either pass a single channel or disable the includeMessageActions flag.")},t.getURL=function(e,t){var n=t.channels,i=void 0===n?[]:n,a=t.includeMessageActions,s=void 0!==a&&a,r=e.config,c=s?"history-with-actions":"history",u=i.length>0?i.join(","):",";return"/v3/".concat(c,"/sub-key/").concat(r.subscribeKey,"/channel/").concat(o.default.encodeString(u))},t.getRequestTimeout=function(e){return e.config.getTransactionTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=t.start,i=t.end,a=t.count,o=t.stringifiedTimeToken,s=void 0!==o&&o,r=t.includeMeta,c=void 0!==r&&r,u=t.includeUuid,p=void 0===u||u,l=t.includeMessageType,d=void 0===l||l,f={};a&&(f.max=a);n&&(f.start=n);i&&(f.end=i);s&&(f.string_message_token="true");c&&(f.include_meta="true");p&&(f.include_uuid="true");d&&(f.include_message_type="true");return f},t.handleResponse=function(e,t){var n={channels:{}};return Object.keys(t.channels||{}).forEach((function(i){n.channels[i]=[],(t.channels[i]||[]).forEach((function(t){var a={};a.channel=i,a.timetoken=t.timetoken,a.message=function(e,t){var n=e.config,i=e.crypto;if(!n.cipherKey)return t;try{return i.decrypt(t)}catch(e){return t}}(e,t.message),a.messageType=t.message_type,a.uuid=t.uuid,t.actions&&(a.actions=t.actions,a.data=t.actions),t.meta&&(a.meta=t.meta),n.channels[i].push(a)}))})),n};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.getOperation=function(){return a.default.PNSubscribeOperation},t.validateParams=function(e){if(!e.config.subscribeKey)return"Missing Subscribe Key"},t.getURL=function(e,t){var n=e.config,i=t.channels,a=void 0===i?[]:i,s=a.length>0?a.join(","):",";return"/v2/subscribe/".concat(n.subscribeKey,"/").concat(o.default.encodeString(s),"/0")},t.getRequestTimeout=function(e){return e.config.getSubscribeTimeout()},t.isAuthSupported=function(){return!0},t.prepareParams=function(e,t){var n=e.config,i=t.state,a=t.channelGroups,o=void 0===a?[]:a,s=t.timetoken,r=t.filterExpression,c=t.region,u={heartbeat:n.getPresenceTimeout()};o.length>0&&(u["channel-group"]=o.join(","));r&&r.length>0&&(u["filter-expr"]=r);Object.keys(i).length&&(u.state=JSON.stringify(i));s&&(u.tt=s);c&&(u.tr=c);return u},t.handleResponse=function(e,t){var n=[];t.m.forEach((function(e){var t={publishTimetoken:e.p.t,region:e.p.r},i={shard:parseInt(e.a,10),subscriptionMatch:e.b,channel:e.c,messageType:e.e,payload:e.d,flags:e.f,issuingClientId:e.i,subscribeKey:e.k,originationTimetoken:e.o,userMetadata:e.u,publishMetaData:t};n.push(i)}));var i={timetoken:t.t.t,region:t.t.r};return{messages:n,metadata:i}};n(2);var a=i(n(1)),o=i(n(3))},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(5)),o=i(n(6)),s=i(n(4)),r=(i(n(8)),i(n(13))),c=(n(2),function(){function e(t){var n=this;(0,a.default)(this,e),(0,s.default)(this,"_modules",void 0),(0,s.default)(this,"_config",void 0),(0,s.default)(this,"_maxSubDomain",void 0),(0,s.default)(this,"_currentSubDomain",void 0),(0,s.default)(this,"_standardOrigin",void 0),(0,s.default)(this,"_subscribeOrigin",void 0),(0,s.default)(this,"_providedFQDN",void 0),(0,s.default)(this,"_requestTimeout",void 0),(0,s.default)(this,"_coreParams",void 0),this._modules={},Object.keys(t).forEach((function(e){n._modules[e]=t[e].bind(n)}))}return(0,o.default)(e,[{key:"init",value:function(e){this._config=e,this._maxSubDomain=20,this._currentSubDomain=Math.floor(Math.random()*this._maxSubDomain),this._providedFQDN=(this._config.secure?"https://":"http://")+this._config.origin,this._coreParams={},this.shiftStandardOrigin()}},{key:"nextOrigin",value:function(){return this._providedFQDN.match(/ps\.pndsn\.com$/i)?(this._currentSubDomain+=1,this._currentSubDomain>=this._maxSubDomain&&(this._currentSubDomain=1),e=this._currentSubDomain.toString(),this._providedFQDN.replace("ps.pndsn.com","ps".concat(e,".pndsn.com"))):this._providedFQDN;var e}},{key:"hasModule",value:function(e){return e in this._modules}},{key:"shiftStandardOrigin",value:function(){return this._standardOrigin=this.nextOrigin(),this._standardOrigin}},{key:"getStandardOrigin",value:function(){return this._standardOrigin}},{key:"FILE",value:function(e,t,n){return this._modules.file(e,t,n)}},{key:"POST",value:function(e,t,n,i){return this._modules.post(e,t,n,i)}},{key:"PATCH",value:function(e,t,n,i){return this._modules.patch(e,t,n,i)}},{key:"GET",value:function(e,t,n){return this._modules.get(e,t,n)}},{key:"DELETE",value:function(e,t,n){return this._modules.del(e,t,n)}},{key:"_detectErrorCategory",value:function(e){if("ENOTFOUND"===e.code)return r.default.PNNetworkIssuesCategory;if("ECONNREFUSED"===e.code)return r.default.PNNetworkIssuesCategory;if("ECONNRESET"===e.code)return r.default.PNNetworkIssuesCategory;if("EAI_AGAIN"===e.code)return r.default.PNNetworkIssuesCategory;if(0===e.status||e.hasOwnProperty("status")&&void 0===e.status)return r.default.PNNetworkIssuesCategory;if(e.timeout)return r.default.PNTimeoutCategory;if("ETIMEDOUT"===e.code)return r.default.PNNetworkIssuesCategory;if(e.response){if(e.response.badRequest)return r.default.PNBadRequestCategory;if(e.response.forbidden)return r.default.PNAccessDeniedCategory}return r.default.PNUnknownCategory}}]),e}());t.default=c,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i={get:function(e){try{return localStorage.getItem(e)}catch(e){return null}},set:function(e,t){try{return localStorage.setItem(e,t)}catch(e){return null}}};t.default=i,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=i(n(7)),o=i(n(5)),s=i(n(6)),r=i(n(4)),c=function(){function e(t,n){(0,o.default)(this,e),(0,r.default)(this,"_base64ToBinary",void 0),(0,r.default)(this,"_cborReader",void 0),this._base64ToBinary=n,this._decode=t}return(0,s.default)(e,[{key:"decodeToken",value:function(e){var t="";e.length%4==3?t="=":e.length%4==2&&(t="==");var n=e.replace(/-/gi,"+").replace(/_/gi,"/")+t,i=this._decode(this._base64ToBinary(n));if("object"===(0,a.default)(i))return i}}]),e}();t.default=c,e.exports=t.default},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.file=function(e,t,n){return u.apply(this,arguments)},t.get=function(e,t,n){var i=s.default.get(this.getStandardOrigin()+t.url).set(t.headers).query(e);return c.call(this,i,t,n)},t.post=function(e,t,n,i){var a=s.default.post(this.getStandardOrigin()+n.url).query(e).set(n.headers).send(t);return c.call(this,a,n,i)},t.patch=function(e,t,n,i){var a=s.default.patch(this.getStandardOrigin()+n.url).query(e).set(n.headers).send(t);return c.call(this,a,n,i)},t.del=function(e,t,n){var i=s.default.delete(this.getStandardOrigin()+t.url).set(t.headers).query(e);return c.call(this,i,t,n)};var a=i(n(10)),o=i(n(11)),s=i(n(125));n(2);function r(e){var t=(new Date).getTime(),n=(new Date).toISOString(),i=console&&console.log?console:window&&window.console&&window.console.log?window.console:console;i.log("<<<<<"),i.log("[".concat(n,"]"),"\n",e.url,"\n",e.qs),i.log("-----"),e.on("response",(function(n){var a=(new Date).getTime()-t,o=(new Date).toISOString();i.log(">>>>>>"),i.log("[".concat(o," / ").concat(a,"]"),"\n",e.url,"\n",e.qs,"\n",n.text),i.log("-----")}))}function c(e,t,n){var i=this;this._config.logVerbosity&&(e=e.use(r)),this._config.proxy&&this._modules.proxy&&(e=this._modules.proxy.call(this,e)),this._config.keepAlive&&this._modules.keepAlive&&(e=this._modules.keepAlive(e));var a=e;return!0===t.forceBuffered?a="undefined"==typeof Blob?a.buffer().responseType("arraybuffer"):a.responseType("arraybuffer"):!1===t.forceBuffered&&(a=a.buffer(!1)),a.timeout(t.timeout).end((function(e,a){var o,s={};if(s.error=null!==e,s.operation=t.operation,a&&a.status&&(s.statusCode=a.status),e){if(e.response&&e.response.text&&!i._config.logVerbosity)try{s.errorData=JSON.parse(e.response.text)}catch(t){s.errorData=e}else s.errorData=e;return s.category=i._detectErrorCategory(e),n(s,null)}if(t.ignoreBody)o={headers:a.headers,redirects:a.redirects,response:a};else try{o=JSON.parse(a.text)}catch(e){return s.errorData=a,s.error=!0,n(s,null)}return o.error&&1===o.error&&o.status&&o.message&&o.service?(s.errorData=o,s.statusCode=o.status,s.error=!0,s.category=i._detectErrorCategory(s),n(s,null)):(o.error&&o.error.message&&(s.errorData=o.error),n(s,o))}))}function u(){return(u=(0,o.default)(a.default.mark((function e(t,n,i){var o,r;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=s.default.post(t),n.forEach((function(e){var t=e.key,n=e.value;o=o.field(t,n)})),o.attach("file",i,{contentType:"application/octet-stream"}),e.next=5,o;case 5:return r=e.sent,e.abrupt("return",r);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}},function(e,t,n){var i;"undefined"!=typeof window?i=window:"undefined"!=typeof self?i=self:(console.warn("Using browser-only version of superagent in non-browser environment"),i=this);var a=n(126),o=n(127),s=n(27),r=n(128),c=n(130);function u(){}var p=t=e.exports=function(e,n){return"function"==typeof n?new t.Request("GET",e).end(n):1==arguments.length?new t.Request("GET",e):new t.Request(e,n)};t.Request=g,p.getXHR=function(){if(!(!i.XMLHttpRequest||i.location&&"file:"==i.location.protocol&&i.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw Error("Browser-only version of superagent could not find XHR")};var l="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};function d(e){if(!s(e))return e;var t=[];for(var n in e)f(t,n,e[n]);return t.join("&")}function f(e,t,n){if(null!=n)if(Array.isArray(n))n.forEach((function(n){f(e,t,n)}));else if(s(n))for(var i in n)f(e,t+"["+i+"]",n[i]);else e.push(encodeURIComponent(t)+"="+encodeURIComponent(n));else null===n&&e.push(encodeURIComponent(t))}function m(e){for(var t,n,i={},a=e.split("&"),o=0,s=a.length;o=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4==n){var i;try{i=t.status}catch(e){i=0}if(!i){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var i=function(t,n){n.total>0&&(n.percent=n.loaded/n.total*100),n.direction=t,e.emit("progress",n)};if(this.hasListeners("progress"))try{t.onprogress=i.bind(null,"download"),t.upload&&(t.upload.onprogress=i.bind(null,"upload"))}catch(e){}try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof n&&!this._isHost(n)){var a=this._header["content-type"],o=this._serializer||p.serialize[a?a.split(";")[0]:""];!o&&h(a)&&(o=p.serialize["application/json"]),o&&(n=o(n))}for(var s in this.header)null!=this.header[s]&&this.header.hasOwnProperty(s)&&t.setRequestHeader(s,this.header[s]);return this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send(void 0!==n?n:null),this},p.agent=function(){return new c},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach((function(e){c.prototype[e.toLowerCase()]=function(t,n){var i=new p.Request(e,t);return this._setDefaults(i),n&&i.end(n),i}})),c.prototype.del=c.prototype.delete,p.get=function(e,t,n){var i=p("GET",e);return"function"==typeof t&&(n=t,t=null),t&&i.query(t),n&&i.end(n),i},p.head=function(e,t,n){var i=p("HEAD",e);return"function"==typeof t&&(n=t,t=null),t&&i.query(t),n&&i.end(n),i},p.options=function(e,t,n){var i=p("OPTIONS",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i},p.del=b,p.delete=b,p.patch=function(e,t,n){var i=p("PATCH",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i},p.post=function(e,t,n){var i=p("POST",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i},p.put=function(e,t,n){var i=p("PUT",e);return"function"==typeof t&&(n=t,t=null),t&&i.send(t),n&&i.end(n),i}},function(e,t,n){function i(e){if(e)return function(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}(e)}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},i.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n,i=this._callbacks["$"+e];if(!i)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var a=0;a=this._maxRetries)return!1;if(this._retryCallback)try{var n=this._retryCallback(e,t);if(!0===n)return!0;if(!1===n)return!1}catch(e){console.error(e)}if(t&&t.status&&t.status>=500&&501!=t.status)return!0;if(e){if(e.code&&~o.indexOf(e.code))return!0;if(e.timeout&&"ECONNABORTED"==e.code)return!0;if(e.crossDomain)return!0}return!1},a.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this._end()},a.prototype.then=function(e,t){if(!this._fullfilledPromise){var n=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise((function(e,t){n.end((function(n,i){n?t(n):e(i)}))}))}return this._fullfilledPromise.then(e,t)},a.prototype.catch=function(e){return this.then(void 0,e)},a.prototype.use=function(e){return e(this),this},a.prototype.ok=function(e){if("function"!=typeof e)throw Error("Callback required");return this._okCallback=e,this},a.prototype._isResponseOK=function(e){return!!e&&(this._okCallback?this._okCallback(e):e.status>=200&&e.status<300)},a.prototype.get=function(e){return this._header[e.toLowerCase()]},a.prototype.getHeader=a.prototype.get,a.prototype.set=function(e,t){if(i(e)){for(var n in e)this.set(n,e[n]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},a.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},a.prototype.field=function(e,t){if(null==e)throw new Error(".field(name, val) name can not be empty");if(this._data&&console.error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()"),i(e)){for(var n in e)this.field(n,e[n]);return this}if(Array.isArray(t)){for(var a in t)this.field(e,t[a]);return this}if(null==t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=""+t),this._getFormData().append(e,t),this},a.prototype.abort=function(){return this._aborted||(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort")),this},a.prototype._auth=function(e,t,n,i){switch(n.type){case"basic":this.set("Authorization","Basic "+i(e+":"+t));break;case"auto":this.username=e,this.password=t;break;case"bearer":this.set("Authorization","Bearer "+e)}return this},a.prototype.withCredentials=function(e){return null==e&&(e=!0),this._withCredentials=e,this},a.prototype.redirects=function(e){return this._maxRedirects=e,this},a.prototype.maxResponseSize=function(e){if("number"!=typeof e)throw TypeError("Invalid argument");return this._maxResponseSize=e,this},a.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},a.prototype.send=function(e){var t=i(e),n=this._header["content-type"];if(this._formData&&console.error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()"),t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw Error("Can't merge these send calls");if(t&&i(this._data))for(var a in e)this._data[a]=e[a];else"string"==typeof e?(n||this.type("form"),n=this._header["content-type"],this._data="application/x-www-form-urlencoded"==n?this._data?this._data+"&"+e:e:(this._data||"")+e):this._data=e;return!t||this._isHost(e)||n||this.type("json"),this},a.prototype.sortQuery=function(e){return this._sort=void 0===e||e,this},a.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(this.url.indexOf("?")>=0?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(t>=0){var n=this.url.substring(t+1).split("&");"function"==typeof this._sort?n.sort(this._sort):n.sort(),this.url=this.url.substring(0,t)+"?"+n.join("&")}}},a.prototype._appendQueryString=function(){console.trace("Unsupported")},a.prototype._timeoutError=function(e,t,n){if(!this._aborted){var i=new Error(e+t+"ms exceeded");i.timeout=t,i.code="ECONNABORTED",i.errno=n,this.timedout=!0,this.abort(),this.callback(i)}},a.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout((function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")}),this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout((function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")}),this._responseTimeout))}},function(e,t,n){"use strict";var i=n(129);function a(e){if(e)return function(e){for(var t in a.prototype)e[t]=a.prototype[t];return e}(e)}e.exports=a,a.prototype.get=function(e){return this.header[e.toLowerCase()]},a.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=i.type(t);var n=i.params(t);for(var a in n)this[a]=n[a];this.links={};try{e.link&&(this.links=i.parseLinks(e.link))}catch(e){}},a.prototype._setStatusProperties=function(e){var t=e/100|0;this.status=this.statusCode=e,this.statusType=t,this.info=1==t,this.ok=2==t,this.redirect=3==t,this.clientError=4==t,this.serverError=5==t,this.error=(4==t||5==t)&&this.toError(),this.created=201==e,this.accepted=202==e,this.noContent=204==e,this.badRequest=400==e,this.unauthorized=401==e,this.notAcceptable=406==e,this.forbidden=403==e,this.notFound=404==e,this.unprocessableEntity=422==e}},function(e,t,n){"use strict";t.type=function(e){return e.split(/ *; */).shift()},t.params=function(e){return e.split(/ *; */).reduce((function(e,t){var n=t.split(/ *= */),i=n.shift(),a=n.shift();return i&&a&&(e[i]=a),e}),{})},t.parseLinks=function(e){return e.split(/ *, */).reduce((function(e,t){var n=t.split(/ *; */),i=n[0].slice(1,-1);return e[n[1].split(/ *= */)[1].slice(1,-1)]=i,e}),{})},t.cleanHeader=function(e,t){return delete e["content-type"],delete e["content-length"],delete e["transfer-encoding"],delete e.host,t&&(delete e.authorization,delete e.cookie),e}},function(e,t){function n(){this._defaults=[]}["use","on","once","set","query","type","accept","auth","withCredentials","sortQuery","retry","ok","redirects","timeout","buffer","serialize","parse","ca","key","pfx","cert"].forEach((function(e){n.prototype[e]=function(){return this._defaults.push({fn:e,arguments:arguments}),this}})),n.prototype._setDefaults=function(e){this._defaults.forEach((function(t){e[t.fn].apply(e,t.arguments)}))},e.exports=n},function(e,t,n){"use strict";(function(i){var a=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(10)),s=a(n(11)),r=a(n(5)),c=a(n(6)),u=a(n(4)),p=a(n(137));function l(e,t){var n=new Uint8Array(e.byteLength+t.byteLength);return n.set(new Uint8Array(e),0),n.set(new Uint8Array(t),e.byteLength),n.buffer}var d=function(){function e(){(0,r.default)(this,e)}var t,n,a,u,d,f,m,h,v;return(0,c.default)(e,[{key:"encrypt",value:(v=(0,s.default)(o.default.mark((function e(t,n){var i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getKey(t);case 2:if(i=e.sent,!(n instanceof ArrayBuffer)){e.next=7;break}return e.abrupt("return",this.encryptArrayBuffer(i,n));case 7:if("string"!=typeof n){e.next=11;break}return e.abrupt("return",this.encryptString(i,n));case 11:throw new Error("Cannot encrypt this file. In browsers file encryption supports only string or ArrayBuffer");case 12:case"end":return e.stop()}}),e,this)}))),function(e,t){return v.apply(this,arguments)})},{key:"decrypt",value:(h=(0,s.default)(o.default.mark((function e(t,n){var i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getKey(t);case 2:if(i=e.sent,!(n instanceof ArrayBuffer)){e.next=7;break}return e.abrupt("return",this.decryptArrayBuffer(i,n));case 7:if("string"!=typeof n){e.next=11;break}return e.abrupt("return",this.decryptString(i,n));case 11:throw new Error("Cannot decrypt this file. In browsers file decryption supports only string or ArrayBuffer");case 12:case"end":return e.stop()}}),e,this)}))),function(e,t){return h.apply(this,arguments)})},{key:"encryptFile",value:(m=(0,s.default)(o.default.mark((function e(t,n,i){var a,s,r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getKey(t);case 2:return a=e.sent,e.next=5,n.toArrayBuffer();case 5:return s=e.sent,e.next=8,this.encryptArrayBuffer(a,s);case 8:return r=e.sent,e.abrupt("return",i.create({name:n.name,mimeType:"application/octet-stream",data:r}));case 10:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return m.apply(this,arguments)})},{key:"decryptFile",value:(f=(0,s.default)(o.default.mark((function e(t,n,i){var a,s,r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getKey(t);case 2:return a=e.sent,e.next=5,n.toArrayBuffer();case 5:return s=e.sent,e.next=8,this.decryptArrayBuffer(a,s);case 8:if(r=e.sent,!(n.data instanceof ArrayBuffer)){e.next=13;break}return e.abrupt("return",i.create({name:n.name,data:r}));case 13:throw new Error("Cannot decrypt this file. In browser environment file decryption supports only ArrayBuffer.");case 14:case"end":return e.stop()}}),e,this)}))),function(e,t,n){return f.apply(this,arguments)})},{key:"getKey",value:(d=(0,s.default)(o.default.mark((function e(t){var n,a,s;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.from(t),e.next=3,p.default.subtle.digest("SHA-256",n.buffer);case 3:return a=e.sent,s=i.from(i.from(a).toString("hex").slice(0,32),"utf8").buffer,e.abrupt("return",p.default.subtle.importKey("raw",s,"AES-CBC",!0,["encrypt","decrypt"]));case 6:case"end":return e.stop()}}),e)}))),function(e){return d.apply(this,arguments)})},{key:"encryptArrayBuffer",value:(u=(0,s.default)(o.default.mark((function e(t,n){var i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=p.default.getRandomValues(new Uint8Array(16)),e.t0=l,e.t1=i.buffer,e.next=5,p.default.subtle.encrypt({name:"AES-CBC",iv:i},t,n);case 5:return e.t2=e.sent,e.abrupt("return",(0,e.t0)(e.t1,e.t2));case 7:case"end":return e.stop()}}),e)}))),function(e,t){return u.apply(this,arguments)})},{key:"decryptArrayBuffer",value:(a=(0,s.default)(o.default.mark((function e(t,n){var i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return i=n.slice(0,16),e.abrupt("return",p.default.subtle.decrypt({name:"AES-CBC",iv:i},t,n.slice(16)));case 2:case"end":return e.stop()}}),e)}))),function(e,t){return a.apply(this,arguments)})},{key:"encryptString",value:(n=(0,s.default)(o.default.mark((function e(t,n){var a,s,r,c;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=p.default.getRandomValues(new Uint8Array(16)),s=i.from(n).buffer,e.next=4,p.default.subtle.encrypt({name:"AES-CBC",iv:a},t,s);case 4:return r=e.sent,c=l(a.buffer,r),e.abrupt("return",i.from(c).toString("utf8"));case 7:case"end":return e.stop()}}),e)}))),function(e,t){return n.apply(this,arguments)})},{key:"decryptString",value:(t=(0,s.default)(o.default.mark((function e(t,n){var a,s,r,c;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=i.from(n),s=a.slice(0,16),r=a.slice(16),e.next=5,p.default.subtle.decrypt({name:"AES-CBC",iv:s},t,r);case 5:return c=e.sent,e.abrupt("return",i.from(c).toString("utf8"));case 7:case"end":return e.stop()}}),e)}))),function(e,n){return t.apply(this,arguments)})},{key:"algo",get:function(){return"aes-256-cbc"}}]),e}();t.default=d,(0,u.default)(d,"IV_LENGTH",16),e.exports=t.default}).call(this,n(21).Buffer)},function(e,t,n){"use strict";var i=n(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a,o,s=i(n(10)),r=i(n(11)),c=i(n(5)),u=i(n(6)),p=i(n(4)),l=n(133),d=(n(26),o=a=function(){function e(t){if((0,c.default)(this,e),(0,p.default)(this,"data",void 0),(0,p.default)(this,"name",void 0),(0,p.default)(this,"mimeType",void 0),t instanceof File)this.data=t,this.name=this.data.name,this.mimeType=this.data.type;else if(t.data){var n=t.data;this.data=new File([n],t.name,{type:t.mimeType}),this.name=t.name,t.mimeType?this.mimeType=t.mimeType:this.mimeType=(0,l.lookup)(this.name)}if(void 0===this.data)throw new Error("Couldn't construct a file out of supplied options.");if(void 0===this.name)throw new Error("Couldn't guess filename out of the options. Please provide one.")}var t,n,i,a,o;return(0,u.default)(e,null,[{key:"create",value:function(e){return new this(e)}}]),(0,u.default)(e,[{key:"toBuffer",value:(o=(0,r.default)(s.default.mark((function e(){return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("This feature is only supported in Node.js environments.");case 1:case"end":return e.stop()}}),e)}))),function(){return o.apply(this,arguments)})},{key:"toStream",value:(a=(0,r.default)(s.default.mark((function e(){return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw new Error("This feature is only supported in Node.js environments.");case 1:case"end":return e.stop()}}),e)}))),function(){return a.apply(this,arguments)})},{key:"toArrayBuffer",value:(i=(0,r.default)(s.default.mark((function e(){var t=this;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,n){var i=new FileReader;i.addEventListener("load",(function(){if(i.result instanceof ArrayBuffer)return e(i.result)})),i.addEventListener("error",(function(){n(i.error)})),i.readAsArrayBuffer(t.data)})));case 1:case"end":return e.stop()}}),e)}))),function(){return i.apply(this,arguments)})},{key:"toString",value:(n=(0,r.default)(s.default.mark((function e(){var t=this;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,n){var i=new FileReader;i.addEventListener("load",(function(){if("string"==typeof i.result)return e(i.result)})),i.addEventListener("error",(function(){n(i.error)})),i.readAsBinaryString(t.data)})));case 1:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)})},{key:"toFile",value:(t=(0,r.default)(s.default.mark((function e(){return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.data);case 1:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})}]),e}(),(0,p.default)(a,"supportsFile","undefined"!=typeof File),(0,p.default)(a,"supportsArrayBuffer",!0),(0,p.default)(a,"supportsBuffer",!1),(0,p.default)(a,"supportsStream",!1),(0,p.default)(a,"supportsString",!0),o);t.default=d,e.exports=t.default},function(e,t,n){"use strict"; +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */var i,a,o,s=n(134),r=n(136).extname,c=/^\s*([^;\s]*)(?:;|\s|$)/,u=/^text\//i;function p(e){if(!e||"string"!=typeof e)return!1;var t=c.exec(e),n=t&&s[t[1].toLowerCase()];return n&&n.charset?n.charset:!(!t||!u.test(t[1]))&&"UTF-8"}t.charset=p,t.charsets={lookup:p},t.contentType=function(e){if(!e||"string"!=typeof e)return!1;var n=-1===e.indexOf("/")?t.lookup(e):e;if(!n)return!1;if(-1===n.indexOf("charset")){var i=t.charset(n);i&&(n+="; charset="+i.toLowerCase())}return n},t.extension=function(e){if(!e||"string"!=typeof e)return!1;var n=c.exec(e),i=n&&t.extensions[n[1].toLowerCase()];if(!i||!i.length)return!1;return i[0]},t.extensions=Object.create(null),t.lookup=function(e){if(!e||"string"!=typeof e)return!1;var n=r("x."+e).toLowerCase().substr(1);if(!n)return!1;return t.types[n]||!1},t.types=Object.create(null),i=t.extensions,a=t.types,o=["nginx","apache",void 0,"iana"],Object.keys(s).forEach((function(e){var t=s[e],n=t.extensions;if(n&&n.length){i[e]=n;for(var r=0;rp||u===p&&"application/"===a[c].substr(0,12)))continue}a[c]=e}}}))},function(e,t,n){ +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * MIT Licensed + */ +e.exports=n(135)},function(e){e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["ecma","es"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/mrb-publish+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana"},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana"},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["keynote"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana"},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana"},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana"},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana"},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana"},"image/avcs":{"source":"iana"},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shex":{"extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana"},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')},function(e,t,n){(function(e){function n(e,t){for(var n=0,i=e.length-1;i>=0;i--){var a=e[i];"."===a?e.splice(i,1):".."===a?(e.splice(i,1),n++):n&&(e.splice(i,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function i(e,t){if(e.filter)return e.filter(t);for(var n=[],i=0;i=-1&&!a;o--){var s=o>=0?arguments[o]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(t=s+"/"+t,a="/"===s.charAt(0))}return(a?"/":"")+(t=n(i(t.split("/"),(function(e){return!!e})),!a).join("/"))||"."},t.normalize=function(e){var o=t.isAbsolute(e),s="/"===a(e,-1);return(e=n(i(e.split("/"),(function(e){return!!e})),!o).join("/"))||o||(e="."),e&&s&&(e+="/"),(o?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(i(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,n){function i(e){for(var t=0;t=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var a=i(e.split("/")),o=i(n.split("/")),s=Math.min(a.length,o.length),r=s,c=0;c=1;--o)if(47===(t=e.charCodeAt(o))){if(!a){i=o;break}}else a=!1;return-1===i?n?"/":".":n&&1===i?"/":e.slice(0,i)},t.basename=function(e,t){var n=function(e){"string"!=typeof e&&(e+="");var t,n=0,i=-1,a=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!a){n=t+1;break}}else-1===i&&(a=!1,i=t+1);return-1===i?"":e.slice(n,i)}(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,n=0,i=-1,a=!0,o=0,s=e.length-1;s>=0;--s){var r=e.charCodeAt(s);if(47!==r)-1===i&&(a=!1,i=s+1),46===r?-1===t?t=s:1!==o&&(o=1):-1!==t&&(o=-1);else if(!a){n=s+1;break}}return-1===t||-1===i||0===o||1===o&&t===i-1&&t===n+1?"":e.slice(t,i)};var a="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n(25))},function(e,t,n){"use strict";n.r(t), +/** + * @file Web Cryptography API shim + * @author Artem S Vybornov + * @license MIT + */ +function(e,t){"function"==typeof define&&define.amd?define([],(function(){return t(e)})):"object"==typeof module&&module.exports?module.exports=t(e):t(e)}("undefined"!=typeof self?self:void 0,(function(e){if("function"!=typeof Promise)throw"Promise support required";var t=e.crypto||e.msCrypto;if(t){var n=t.subtle||t.webkitSubtle;if(n){var i=e.Crypto||t.constructor||Object,a=e.SubtleCrypto||n.constructor||Object,o=(e.CryptoKey||e.Key,e.navigator.userAgent.indexOf("Edge/")>-1),s=!!e.msCrypto&&!o,r=!t.subtle&&!!t.webkitSubtle;if(s||r){var c={KoZIhvcNAQEB:"1.2.840.113549.1.1.1"},u={"1.2.840.113549.1.1.1":"KoZIhvcNAQEB"};if(["generateKey","importKey","unwrapKey"].forEach((function(e){var i=n[e];n[e]=function(a,o,c){var u,p,l,m,y=[].slice.call(arguments);switch(e){case"generateKey":u=h(a),p=o,l=c;break;case"importKey":u=h(c),p=y[3],l=y[4],"jwk"===a&&((o=g(o)).alg||(o.alg=v(u)),o.key_ops||(o.key_ops="oct"!==o.kty?"d"in o?l.filter(T):l.filter(P):l.slice()),y[1]=b(o));break;case"unwrapKey":u=y[4],p=y[5],l=y[6],y[2]=c._key}if("generateKey"===e&&"HMAC"===u.name&&u.hash)return u.length=u.length||{"SHA-1":512,"SHA-256":512,"SHA-384":1024,"SHA-512":1024}[u.hash.name],n.importKey("raw",t.getRandomValues(new Uint8Array(u.length+7>>3)),u,p,l);if(r&&"generateKey"===e&&"RSASSA-PKCS1-v1_5"===u.name&&(!u.modulusLength||u.modulusLength>=2048))return(a=h(a)).name="RSAES-PKCS1-v1_5",delete a.hash,n.generateKey(a,!0,["encrypt","decrypt"]).then((function(e){return Promise.all([n.exportKey("jwk",e.publicKey),n.exportKey("jwk",e.privateKey)])})).then((function(e){return e[0].alg=e[1].alg=v(u),e[0].key_ops=l.filter(P),e[1].key_ops=l.filter(T),Promise.all([n.importKey("jwk",e[0],u,!0,e[0].key_ops),n.importKey("jwk",e[1],u,p,e[1].key_ops)])})).then((function(e){return{publicKey:e[0],privateKey:e[1]}}));if((r||s&&"SHA-1"===(u.hash||{}).name)&&"importKey"===e&&"jwk"===a&&"HMAC"===u.name&&"oct"===o.kty)return n.importKey("raw",f(d(o.k)),c,y[3],y[4]);if(r&&"importKey"===e&&("spki"===a||"pkcs8"===a))return n.importKey("jwk",x(o),c,y[3],y[4]);if(s&&"unwrapKey"===e)return n.decrypt(y[3],c,o).then((function(e){return n.importKey(a,e,y[4],y[5],y[6])}));try{m=i.apply(n,y)}catch(e){return Promise.reject(e)}return s&&(m=new Promise((function(e,t){m.onabort=m.onerror=function(e){t(e)},m.oncomplete=function(t){e(t.target.result)}}))),m=m.then((function(e){return"HMAC"===u.name&&(u.length||(u.length=8*e.algorithm.length)),0==u.name.search("RSA")&&(u.modulusLength||(u.modulusLength=(e.publicKey||e).algorithm.modulusLength),u.publicExponent||(u.publicExponent=(e.publicKey||e).algorithm.publicExponent)),e=e.publicKey&&e.privateKey?{publicKey:new w(e.publicKey,u,p,l.filter(P)),privateKey:new w(e.privateKey,u,p,l.filter(T))}:new w(e,u,p,l)}))}})),["exportKey","wrapKey"].forEach((function(e){var t=n[e];n[e]=function(i,a,o){var c,u=[].slice.call(arguments);switch(e){case"exportKey":u[1]=a._key;break;case"wrapKey":u[1]=a._key,u[2]=o._key}if((r||s&&"SHA-1"===(a.algorithm.hash||{}).name)&&"exportKey"===e&&"jwk"===i&&"HMAC"===a.algorithm.name&&(u[0]="raw"),!r||"exportKey"!==e||"spki"!==i&&"pkcs8"!==i||(u[0]="jwk"),s&&"wrapKey"===e)return n.exportKey(i,a).then((function(e){return"jwk"===i&&(e=f(unescape(encodeURIComponent(JSON.stringify(g(e)))))),n.encrypt(u[3],o,e)}));try{c=t.apply(n,u)}catch(e){return Promise.reject(e)}return s&&(c=new Promise((function(e,t){c.onabort=c.onerror=function(e){t(e)},c.oncomplete=function(t){e(t.target.result)}}))),"exportKey"===e&&"jwk"===i&&(c=c.then((function(e){return(r||s&&"SHA-1"===(a.algorithm.hash||{}).name)&&"HMAC"===a.algorithm.name?{kty:"oct",alg:v(a.algorithm),key_ops:a.usages.slice(),ext:!0,k:l(m(e))}:((e=g(e)).alg||(e.alg=v(a.algorithm)),e.key_ops||(e.key_ops="public"===a.type?a.usages.filter(P):"private"===a.type?a.usages.filter(T):a.usages.slice()),e)}))),!r||"exportKey"!==e||"spki"!==i&&"pkcs8"!==i||(c=c.then((function(e){return e=y(g(e))}))),c}})),["encrypt","decrypt","sign","verify"].forEach((function(e){var t=n[e];n[e]=function(i,a,o,r){if(s&&(!o.byteLength||r&&!r.byteLength))throw new Error("Empy input is not allowed");var c,u=[].slice.call(arguments),p=h(i);if(s&&"decrypt"===e&&"AES-GCM"===p.name){var l=i.tagLength>>3;u[2]=(o.buffer||o).slice(0,o.byteLength-l),i.tag=(o.buffer||o).slice(o.byteLength-l)}u[1]=a._key;try{c=t.apply(n,u)}catch(e){return Promise.reject(e)}return s&&(c=new Promise((function(t,n){c.onabort=c.onerror=function(e){n(e)},c.oncomplete=function(n){n=n.target.result;if("encrypt"===e&&n instanceof AesGcmEncryptResult){var i=n.ciphertext,a=n.tag;(n=new Uint8Array(i.byteLength+a.byteLength)).set(new Uint8Array(i),0),n.set(new Uint8Array(a),i.byteLength),n=n.buffer}t(n)}}))),c}})),s){var p=n.digest;n.digest=function(e,t){if(!t.byteLength)throw new Error("Empy input is not allowed");var i;try{i=p.call(n,e,t)}catch(e){return Promise.reject(e)}return i=new Promise((function(e,t){i.onabort=i.onerror=function(e){t(e)},i.oncomplete=function(t){e(t.target.result)}}))},e.crypto=Object.create(t,{getRandomValues:{value:function(e){return t.getRandomValues(e)}},subtle:{value:n}}),e.CryptoKey=w}r&&(t.subtle=n,e.Crypto=i,e.SubtleCrypto=a,e.CryptoKey=w)}}}function l(e){return btoa(e).replace(/\=+$/,"").replace(/\+/g,"-").replace(/\//g,"_")}function d(e){return e=(e+="===").slice(0,-e.length%4),atob(e.replace(/-/g,"+").replace(/_/g,"/"))}function f(e){for(var t=new Uint8Array(e.length),n=0;n2&&(n=!0,t.shift());var i={ext:!0};switch(t[0][0]){case"1.2.840.113549.1.1.1":var a=["n","e","d","p","q","dp","dq","qi"],o=k(t[1]);n&&o.shift();for(var s=0;s2&&(i=!0,o.unshift(new Uint8Array([0]))),n[0][0]="1.2.840.113549.1.1.1",t=o;break;default:throw new TypeError("Unsupported key type")}return n.push(new Uint8Array(_(t)).buffer),i?n.unshift(new Uint8Array([0])):n[1]={tag:3,value:n[1]},new Uint8Array(_(n)).buffer}function k(e,t){if(e instanceof ArrayBuffer&&(e=new Uint8Array(e)),t||(t={pos:0,end:e.length}),t.end-t.pos<2||t.end>e.length)throw new RangeError("Malformed DER");var n,i=e[t.pos++],a=e[t.pos++];if(a>=128){if(a&=127,t.end-t.pos=128){var r=i;i=4;for(t.splice(a,0,r>>24&255,r>>16&255,r>>8&255,255&r);i>1&&!(r>>24);)r<<=8,i--;i<4&&t.splice(a,4-i),i|=128}return t.splice(a-2,2,n,i),t}function w(e,t,n,i){Object.defineProperties(this,{_key:{value:e},type:{value:e.type,enumerable:!0},extractable:{value:void 0===n?e.extractable:n,enumerable:!0},algorithm:{value:void 0===t?e.algorithm:t,enumerable:!0},usages:{value:void 0===i?e.usages:i,enumerable:!0}})}function P(e){return"verify"===e||"encrypt"===e||"wrapKey"===e}function T(e){return"sign"===e||"decrypt"===e||"unwrapKey"===e}}));t.default=window.crypto}])})); \ No newline at end of file diff --git a/flow-typed/mocha.js b/flow-typed/mocha.js index cbaaef738..1e0665b3c 100644 --- a/flow-typed/mocha.js +++ b/flow-typed/mocha.js @@ -6,4 +6,11 @@ declare function beforeEach(callback: () => void): void; declare function after(callback: () => void): void; declare function afterEach(callback: () => void): void; -declare function it(name: string, callback: (done: () => void) => void | Promise): void; +declare interface TestCase { + timeout: (timeout: number) => void; +} + +declare var it: { + (name: string, callback: (done: () => void) => void | Promise): TestCase, + skip(name: string, callback: (done: () => void) => void | Promise): TestCase, +}; diff --git a/flow-typed/webcrypto.js b/flow-typed/webcrypto.js new file mode 100644 index 000000000..bee5e4af2 --- /dev/null +++ b/flow-typed/webcrypto.js @@ -0,0 +1,120 @@ +type BufferSource = ArrayBuffer | $ArrayBufferView; + +type DOMString = string; + +declare interface Crypto { + getRandomValues(typedArray: T): T; + +subtle: SubtleCrypto; +} + +type CryptoKey$Type = 'secret' | 'public' | 'private'; +type CryptoKey$Usages = + | 'encrypt' + | 'decrypt' + | 'sign' + | 'verify' + | 'deriveKey' + | 'deriveBits' + | 'wrapKey' + | 'unwrapKey'; +declare interface CryptoKey { + +algorithm: Object; + +extractable: boolean; + +type: CryptoKey$Type; + +usages: CryptoKey$Usages[]; +} + +// TODO: CryptoKeyPair +declare interface CryptoKeyPair {} + +// TODO: JSONWebKey +type JSONWebKey = {}; + +type RandomSource = { + getRandomValues(typedArray: T): T, +}; + +type SubtleCrypto$Algorithm = + | { name: 'AES-CBC', iv: BufferSource } + | { name: 'AES-CTR', counter: BufferSource, length: number } + | { name: 'AES-GCM', iv: BufferSource, additionalData?: BufferSource, tagLength?: number } + | { name: 'RSA-OAEP', label?: string }; +type SubtleCrypto$DerivedKeyAlgorithm = { + name: DOMString, + length?: 128 | 192 | 256, +}; +// TODO: fix types for parameters +type SubtleCrypto$DeriveKeyAlgorithm = + | { name: 'ECDH', public: any } + | { name: 'DH', public: any } + | { name: 'PBKDF2', salt: BufferSource, iterations: number, hash: DOMString } + | { name: 'HKDF-CTR', hash: any, label: any, context: any }; +type SubtleCrypto$GenerateKeyAlgo = + | 'AES-CBC' + | 'AES-CTR' + | 'AES-GCM' + | 'RSA-OAEP' + | 'AES-KW' + | 'HMAC' + | 'RSASSA-PKCS1-v1_5' + | 'ECDSA' + | 'ECDH' + | 'DH'; +type SubtleCrypto$HashAlgo = 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512'; +type SubtleCrypto$KeyFormat = 'raw' | 'pkcs8' | 'spki' | 'jwk'; +type SubtleCrypto$SignAlgo = 'HMAC' | 'RSASSA-PKCS1-v1_5' | 'ECDSA'; +type SubtleCrypto$WrapAlgo = 'AES-CBC' | 'AES-CTR' | 'AES-GCM' | 'RSA-OAEP' | 'AES-KW'; +declare interface SubtleCrypto { + decrypt(algorithm: SubtleCrypto$Algorithm, key: CryptoKey, data: BufferSource): Promise; + // TODO: fix type for 'algorithm' param + deriveBits(algorithm: any, baseKey: CryptoKey, length: number): Promise; + deriveKey( + algorithm: SubtleCrypto$DeriveKeyAlgorithm, + masterKey: CryptoKey, + derivedKeyAlgorithm: DOMString | SubtleCrypto$DerivedKeyAlgorithm, + extractable: boolean, + keyUsages: CryptoKey$Usages[] + ): Promise; + digest(algo: SubtleCrypto$HashAlgo, buffer: BufferSource): Promise; + encrypt(algorithm: SubtleCrypto$Algorithm, key: CryptoKey, data: BufferSource): Promise; + exportKey(format: SubtleCrypto$KeyFormat, key: CryptoKey): Promise; + generateKey( + algo: SubtleCrypto$GenerateKeyAlgo, + extractable: boolean, + keyUsages: CryptoKey$Usages[] + ): Promise; + importKey( + format: SubtleCrypto$KeyFormat, + keyData: ArrayBuffer | JSONWebKey, + algo: SubtleCrypto$GenerateKeyAlgo, + extractable: boolean, + usages: CryptoKey$Usages[] + ): Promise; + sign(algo: SubtleCrypto$SignAlgo, key: CryptoKey, text2sign: BufferSource): Promise; + unwrapKey( + format: SubtleCrypto$KeyFormat, + wrappedKey: ArrayBuffer, + unwrappingKey: CryptoKey, + unwrapAlgo: SubtleCrypto$WrapAlgo, + unwrappedKeyAlgo: SubtleCrypto$WrapAlgo, + extractable: boolean, + keyUsages: CryptoKey$Usages[] + ): Promise; + verify( + algo: SubtleCrypto$SignAlgo, + key: CryptoKey, + signature: BufferSource, + text2verify: BufferSource + ): Promise; + wrapKey( + format: SubtleCrypto$KeyFormat, + key: CryptoKey, + wrappingKey: CryptoKey, + wrapAlgo: SubtleCrypto$WrapAlgo + ): Promise; +} + +declare module 'isomorphic-webcrypto' { + declare module.exports: Crypto; + declare export type $CryptoKey = CryptoKey; +} diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 4a151e78f..0a7df44a5 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -8,7 +8,7 @@ const gulpWebpack = require('webpack-stream'); const webpackConfig = require('./webpack.config'); const webpackConfigTitanium = require('./webpack.config.titanium'); const eslint = require('gulp-eslint'); -const uglify = require('gulp-uglify'); +const uglify = require('gulp-terser'); const rename = require('gulp-rename'); const exec = require('child_process').exec; const Karma = require('karma').Server; @@ -40,17 +40,11 @@ gulp.task('babel', () => { }); gulp.task('unzip_titanium_sdk', () => { - return gulp - .src('resources/titanium.zip') - .pipe(unzip()) - .pipe(gulp.dest('resources/')); + return gulp.src('resources/titanium.zip').pipe(unzip()).pipe(gulp.dest('resources/')); }); gulp.task('compile_web', () => { - return gulp - .src('src/web/index.js') - .pipe(gulpWebpack(webpackConfig)) - .pipe(gulp.dest('dist/web')); + return gulp.src('src/web/index.js').pipe(gulpWebpack(webpackConfig)).pipe(gulp.dest('dist/web')); }); gulp.task('compile_titanium', () => { @@ -113,14 +107,11 @@ gulp.task('lint_tests', () => { gulp.task('lint', gulp.series('lint_code', 'lint_tests')); gulp.task('flow', (cb) => { - return exec( - './node_modules/.bin/flow --show-all-errors', - (err, stdout, stderr) => { - console.log(stdout); - console.log(stderr); - cb(err); - } - ); + return exec('./node_modules/.bin/flow --show-all-errors', (err, stdout, stderr) => { + console.log(stdout); + console.log(stderr); + cb(err); + }); }); gulp.task('validate', gulp.series('lint', 'flow')); @@ -136,51 +127,79 @@ gulp.task('pre-test', () => { .pipe(gulpIstanbul.hookRequire()); }); -gulp.task('test_web', done => { +gulp.task('test_web', (done) => { new Karma( { configFile: path.join(__dirname, '/karma/web.config.js'), client: { mocha: { - timeout: mochaTimeout - } - } - }, done).start(); + timeout: mochaTimeout, + }, + }, + }, + done + ).start(); }); gulp.task('test_node', () => { - return gulp.src(['test/**/*.test.js', '!test/dist/*.js'], { read: false }) + return gulp + .src(['test/**/*.test.js', '!test/dist/*.js', '!test/feature/*.js'], { read: false }) .pipe(mocha({ config: '.mocharc.yml' })) .pipe(gulpIstanbul.writeReports({ reporters: ['json', 'lcov', 'text'] })); }); -gulp.task('test_titanium', gulp.series('unzip_titanium_sdk'), done => { +gulp.task('test_titanium', gulp.series('unzip_titanium_sdk'), (done) => { new Karma( { configFile: path.join(__dirname, '/karma/titanium.config.js'), client: { mocha: { - timeout: mochaTimeout - } + timeout: mochaTimeout, + }, }, - }, done).start(); + }, + done + ).start(); }); gulp.task('test_react-native', () => { - return gulp.src('test/dist/react-native.test.js', { read: false }) - .pipe(mocha({ reporter: 'spec', timeout: mochaTimeout, require: ['@babel/register'], noConfig: true })) + return gulp + .src('test/dist/react-native.test.js', { read: false }) + .pipe( + mocha({ + reporter: 'spec', + timeout: mochaTimeout, + require: ['@babel/register'], + noConfig: true, + }) + ) .pipe(gulpIstanbul.writeReports({ reporters: ['json', 'lcov', 'text'] })); }); gulp.task('test_release', () => { - return gulp.src('test/release/**/*.test.js', { read: false }) - .pipe(mocha({ reporter: 'spec', timeout: mochaTimeout, require: ['@babel/register'], noConfig: true })); + return gulp.src('test/release/**/*.test.js', { read: false }).pipe( + mocha({ + reporter: 'spec', + timeout: mochaTimeout, + require: ['@babel/register'], + noConfig: true, + }) + ); }); gulp.task('test', (done) => { - runSequence('pre-test', 'test_node', 'test_web', 'test_titanium', 'test_react-native', 'test_release', 'validate', () => { - done(); - }); + runSequence( + 'pre-test', + 'test_node', + 'test_web', + 'test_titanium', + 'test_react-native', + 'test_release', + 'validate', + () => { + done(); + } + ); }); gulp.task('webpack', (done) => { @@ -188,5 +207,14 @@ gulp.task('webpack', (done) => { }); gulp.task('compile', (done) => { - runSequence('clean', 'babel', 'webpack', 'uglify_web', 'uglify_titanium', 'create_version', 'create_version_gzip', done); + runSequence( + 'clean', + 'babel', + 'webpack', + 'uglify_web', + 'uglify_titanium', + 'create_version', + 'create_version_gzip', + done + ); }); diff --git a/karma/chrome.config.js b/karma/chrome.config.js new file mode 100644 index 000000000..164ccd46c --- /dev/null +++ b/karma/chrome.config.js @@ -0,0 +1,51 @@ +const process = require('process'); +const puppeteer = require('puppeteer'); +process.env.CHROME_BIN = puppeteer.executablePath(); + +const webpackConfig = require('../webpack.config.common.js'); + +module.exports = function (config) { + config.set({ + frameworks: ['mocha', 'chai'], + + files: [ + 'node_modules/@babel/polyfill/dist/polyfill.js', + '../src/web/index.js', + '../' + process.argv[process.argv.length - 1], + ], + + preprocessors: { + '../src/**/*.js': ['webpack', 'sourcemap'], + '../test/**/*.js': ['webpack', 'sourcemap'], + }, + + webpack: { + ...webpackConfig, + target: 'web', + stats: 'none', + devtool: 'inline-source-map', + }, + + webpackMiddleware: { + logLevel: 'error', + }, + + reporters: ['spec'], + colors: true, + logLevel: config.LOG_ERROR, + autoWatch: false, + + browsers: ['Chrome_PubNub'], + singleRun: true, + + browserDisconnectTimeout: 20000, + browserNoActivityTimeout: 20000, + + customLaunchers: { + Chrome_PubNub: { + base: 'ChromeHeadless', + flags: ['--disable-web-security'], + }, + }, + }); +}; diff --git a/lib/cbor/common.js b/lib/cbor/common.js index 9a647aa15..64a9d5873 100644 --- a/lib/cbor/common.js +++ b/lib/cbor/common.js @@ -1,33 +1,30 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -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"); } } +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); -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, descriptor.key, descriptor); } } +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _default = function () { function _default(decode, base64ToBinary) { - _classCallCheck(this, _default); - - _defineProperty(this, "_base64ToBinary", void 0); - - _defineProperty(this, "_cborReader", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_base64ToBinary", void 0); + (0, _defineProperty2["default"])(this, "_cborReader", void 0); this._base64ToBinary = base64ToBinary; this._decode = decode; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "decodeToken", value: function decodeToken(tokenString) { var padding = ''; @@ -42,14 +39,13 @@ var _default = function () { var result = this._decode(this._base64ToBinary(cleaned)); - if (_typeof(result) === 'object') { + if ((0, _typeof2["default"])(result) === 'object') { return result; } return undefined; } }]); - return _default; }(); diff --git a/lib/cbor/common.js.map b/lib/cbor/common.js.map index 5b6262c4c..06bb9443c 100644 --- a/lib/cbor/common.js.map +++ b/lib/cbor/common.js.map @@ -1 +1 @@ -{"version":3,"sources":["cbor/common.js"],"names":["decode","base64ToBinary","_base64ToBinary","_decode","tokenString","padding","length","cleaned","replace","result","undefined"],"mappings":";;;;;;;;;;;;;;;;;;AAIE,oBAAYA,MAAZ,EAAkCC,cAAlC,EAA2E;AAAA;;AAAA;;AAAA;;AACzE,SAAKC,eAAL,GAAuBD,cAAvB;AACA,SAAKE,OAAL,GAAeH,MAAf;AACD;;;;gCAEWI,W,EAAa;AACvB,UAAIC,OAAO,GAAG,EAAd;;AAEA,UAAID,WAAW,CAACE,MAAZ,GAAqB,CAArB,KAA2B,CAA/B,EAAkC;AAChCD,QAAAA,OAAO,GAAG,GAAV;AACD,OAFD,MAEO,IAAID,WAAW,CAACE,MAAZ,GAAqB,CAArB,KAA2B,CAA/B,EAAkC;AACvCD,QAAAA,OAAO,GAAG,IAAV;AACD;;AAED,UAAME,OAAO,GAAGH,WAAW,CAACI,OAAZ,CAAoB,KAApB,EAA2B,GAA3B,EAAgCA,OAAhC,CAAwC,KAAxC,EAA+C,GAA/C,IAAsDH,OAAtE;;AACA,UAAMI,MAAM,GAAG,KAAKN,OAAL,CAAa,KAAKD,eAAL,CAAqBK,OAArB,CAAb,CAAf;;AAEA,UAAI,QAAOE,MAAP,MAAkB,QAAtB,EAAgC;AAC9B,eAAOA,MAAP;AACD;;AAED,aAAOC,SAAP;AACD","sourcesContent":["export default class {\n _base64ToBinary: (base64: string) => any;\n _cborReader: { decode: (any) => Object };\n\n constructor(decode: (any) => any, base64ToBinary: (base64: string) => any) {\n this._base64ToBinary = base64ToBinary;\n this._decode = decode;\n }\n\n decodeToken(tokenString) {\n let padding = '';\n\n if (tokenString.length % 4 === 3) {\n padding = '=';\n } else if (tokenString.length % 4 === 2) {\n padding = '==';\n }\n\n const cleaned = tokenString.replace(/-/gi, '+').replace(/_/gi, '/') + padding;\n const result = this._decode(this._base64ToBinary(cleaned));\n\n if (typeof result === 'object') {\n return result;\n }\n\n return undefined;\n }\n}\n"],"file":"common.js"} \ No newline at end of file +{"version":3,"sources":["cbor/common.js"],"names":["decode","base64ToBinary","_base64ToBinary","_decode","tokenString","padding","length","cleaned","replace","result","undefined"],"mappings":";;;;;;;;;;;;;;;;;;AAIE,oBAAYA,MAAZ,EAAkCC,cAAlC,EAA2E;AAAA;AAAA;AAAA;AACzE,SAAKC,eAAL,GAAuBD,cAAvB;AACA,SAAKE,OAAL,GAAeH,MAAf;AACD;;;;gCAEWI,W,EAAa;AACvB,UAAIC,OAAO,GAAG,EAAd;;AAEA,UAAID,WAAW,CAACE,MAAZ,GAAqB,CAArB,KAA2B,CAA/B,EAAkC;AAChCD,QAAAA,OAAO,GAAG,GAAV;AACD,OAFD,MAEO,IAAID,WAAW,CAACE,MAAZ,GAAqB,CAArB,KAA2B,CAA/B,EAAkC;AACvCD,QAAAA,OAAO,GAAG,IAAV;AACD;;AAED,UAAME,OAAO,GAAGH,WAAW,CAACI,OAAZ,CAAoB,KAApB,EAA2B,GAA3B,EAAgCA,OAAhC,CAAwC,KAAxC,EAA+C,GAA/C,IAAsDH,OAAtE;;AACA,UAAMI,MAAM,GAAG,KAAKN,OAAL,CAAa,KAAKD,eAAL,CAAqBK,OAArB,CAAb,CAAf;;AAEA,UAAI,yBAAOE,MAAP,MAAkB,QAAtB,EAAgC;AAC9B,eAAOA,MAAP;AACD;;AAED,aAAOC,SAAP;AACD","sourcesContent":["export default class {\n _base64ToBinary: (base64: string) => any;\n _cborReader: { decode: (any) => Object };\n\n constructor(decode: (any) => any, base64ToBinary: (base64: string) => any) {\n this._base64ToBinary = base64ToBinary;\n this._decode = decode;\n }\n\n decodeToken(tokenString) {\n let padding = '';\n\n if (tokenString.length % 4 === 3) {\n padding = '=';\n } else if (tokenString.length % 4 === 2) {\n padding = '==';\n }\n\n const cleaned = tokenString.replace(/-/gi, '+').replace(/_/gi, '/') + padding;\n const result = this._decode(this._base64ToBinary(cleaned));\n\n if (typeof result === 'object') {\n return result;\n }\n\n return undefined;\n }\n}\n"],"file":"common.js"} \ No newline at end of file diff --git a/lib/core/components/config.js b/lib/core/components/config.js index 899d2b964..718a381a3 100644 --- a/lib/core/components/config.js +++ b/lib/core/components/config.js @@ -1,106 +1,70 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _uuid = _interopRequireDefault(require("./uuid")); - -var _flow_interfaces = require("../flow_interfaces"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -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, descriptor.key, descriptor); } } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _uuid = _interopRequireDefault(require("./uuid")); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _flow_interfaces = require("../flow_interfaces"); var PRESENCE_TIMEOUT_MINIMUM = 20; var PRESENCE_TIMEOUT_DEFAULT = 300; var _default = function () { function _default(_ref) { + var _setup$fileUploadPubl, _setup$useRandomIVs; + var setup = _ref.setup, db = _ref.db; - - _classCallCheck(this, _default); - - _defineProperty(this, "_db", void 0); - - _defineProperty(this, "subscribeKey", void 0); - - _defineProperty(this, "publishKey", void 0); - - _defineProperty(this, "secretKey", void 0); - - _defineProperty(this, "cipherKey", void 0); - - _defineProperty(this, "authKey", void 0); - - _defineProperty(this, "UUID", void 0); - - _defineProperty(this, "proxy", void 0); - - _defineProperty(this, "instanceId", void 0); - - _defineProperty(this, "sdkName", void 0); - - _defineProperty(this, "sdkFamily", void 0); - - _defineProperty(this, "partnerId", void 0); - - _defineProperty(this, "filterExpression", void 0); - - _defineProperty(this, "suppressLeaveEvents", void 0); - - _defineProperty(this, "secure", void 0); - - _defineProperty(this, "origin", void 0); - - _defineProperty(this, "logVerbosity", void 0); - - _defineProperty(this, "useInstanceId", void 0); - - _defineProperty(this, "useRequestId", void 0); - - _defineProperty(this, "keepAlive", void 0); - - _defineProperty(this, "keepAliveSettings", void 0); - - _defineProperty(this, "autoNetworkDetection", void 0); - - _defineProperty(this, "announceSuccessfulHeartbeats", void 0); - - _defineProperty(this, "announceFailedHeartbeats", void 0); - - _defineProperty(this, "_presenceTimeout", void 0); - - _defineProperty(this, "_heartbeatInterval", void 0); - - _defineProperty(this, "_subscribeRequestTimeout", void 0); - - _defineProperty(this, "_transactionalRequestTimeout", void 0); - - _defineProperty(this, "_useSendBeacon", void 0); - - _defineProperty(this, "_PNSDKSuffix", void 0); - - _defineProperty(this, "requestMessageCountThreshold", void 0); - - _defineProperty(this, "restore", void 0); - - _defineProperty(this, "dedupeOnSubscribe", void 0); - - _defineProperty(this, "maximumCacheSize", void 0); - - _defineProperty(this, "customEncrypt", void 0); - - _defineProperty(this, "customDecrypt", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_db", void 0); + (0, _defineProperty2["default"])(this, "subscribeKey", void 0); + (0, _defineProperty2["default"])(this, "publishKey", void 0); + (0, _defineProperty2["default"])(this, "secretKey", void 0); + (0, _defineProperty2["default"])(this, "cipherKey", void 0); + (0, _defineProperty2["default"])(this, "authKey", void 0); + (0, _defineProperty2["default"])(this, "UUID", void 0); + (0, _defineProperty2["default"])(this, "proxy", void 0); + (0, _defineProperty2["default"])(this, "instanceId", void 0); + (0, _defineProperty2["default"])(this, "sdkName", void 0); + (0, _defineProperty2["default"])(this, "sdkFamily", void 0); + (0, _defineProperty2["default"])(this, "partnerId", void 0); + (0, _defineProperty2["default"])(this, "filterExpression", void 0); + (0, _defineProperty2["default"])(this, "suppressLeaveEvents", void 0); + (0, _defineProperty2["default"])(this, "secure", void 0); + (0, _defineProperty2["default"])(this, "origin", void 0); + (0, _defineProperty2["default"])(this, "logVerbosity", void 0); + (0, _defineProperty2["default"])(this, "useInstanceId", void 0); + (0, _defineProperty2["default"])(this, "useRequestId", void 0); + (0, _defineProperty2["default"])(this, "keepAlive", void 0); + (0, _defineProperty2["default"])(this, "keepAliveSettings", void 0); + (0, _defineProperty2["default"])(this, "autoNetworkDetection", void 0); + (0, _defineProperty2["default"])(this, "announceSuccessfulHeartbeats", void 0); + (0, _defineProperty2["default"])(this, "announceFailedHeartbeats", void 0); + (0, _defineProperty2["default"])(this, "_presenceTimeout", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatInterval", void 0); + (0, _defineProperty2["default"])(this, "_subscribeRequestTimeout", void 0); + (0, _defineProperty2["default"])(this, "_transactionalRequestTimeout", void 0); + (0, _defineProperty2["default"])(this, "_useSendBeacon", void 0); + (0, _defineProperty2["default"])(this, "_PNSDKSuffix", void 0); + (0, _defineProperty2["default"])(this, "requestMessageCountThreshold", void 0); + (0, _defineProperty2["default"])(this, "restore", void 0); + (0, _defineProperty2["default"])(this, "dedupeOnSubscribe", void 0); + (0, _defineProperty2["default"])(this, "maximumCacheSize", void 0); + (0, _defineProperty2["default"])(this, "customEncrypt", void 0); + (0, _defineProperty2["default"])(this, "customDecrypt", void 0); + (0, _defineProperty2["default"])(this, "fileUploadPublishRetryLimit", void 0); + (0, _defineProperty2["default"])(this, "useRandomIVs", void 0); this._PNSDKSuffix = {}; this._db = db; this.instanceId = "pn-".concat(_uuid["default"].createUUID()); @@ -124,6 +88,8 @@ var _default = function () { this.maximumCacheSize = setup.maximumCacheSize || 100; this.customEncrypt = setup.customEncrypt; this.customDecrypt = setup.customDecrypt; + this.fileUploadPublishRetryLimit = (_setup$fileUploadPubl = setup.fileUploadPublishRetryLimit) !== null && _setup$fileUploadPubl !== void 0 ? _setup$fileUploadPubl : 5; + this.useRandomIVs = (_setup$useRandomIVs = setup.useRandomIVs) !== null && _setup$useRandomIVs !== void 0 ? _setup$useRandomIVs : false; if (typeof location !== 'undefined' && location.protocol === 'https:') { this.secure = true; @@ -153,7 +119,7 @@ var _default = function () { this.setUUID(this._decideUUID(setup.uuid)); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "getAuthKey", value: function getAuthKey() { return this.authKey; @@ -263,7 +229,7 @@ var _default = function () { }, { key: "getVersion", value: function getVersion() { - return '4.28.4'; + return '4.29.0'; } }, { key: "_addPnsdkSuffix", @@ -293,7 +259,6 @@ var _default = function () { return "pn-".concat(_uuid["default"].createUUID()); } }]); - return _default; }(); diff --git a/lib/core/components/config.js.map b/lib/core/components/config.js.map index 881e03bc8..c38e7e27a 100644 --- a/lib/core/components/config.js.map +++ b/lib/core/components/config.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/config.js"],"names":["PRESENCE_TIMEOUT_MINIMUM","PRESENCE_TIMEOUT_DEFAULT","setup","db","_PNSDKSuffix","_db","instanceId","uuidGenerator","createUUID","secretKey","secret_key","subscribeKey","subscribe_key","publishKey","publish_key","sdkName","sdkFamily","partnerId","setAuthKey","authKey","setCipherKey","cipherKey","setFilterExpression","filterExpression","origin","secure","ssl","restore","proxy","keepAlive","keepAliveSettings","autoNetworkDetection","dedupeOnSubscribe","maximumCacheSize","customEncrypt","customDecrypt","location","protocol","logVerbosity","suppressLeaveEvents","announceFailedHeartbeats","announceSuccessfulHeartbeats","useInstanceId","useRequestId","requestMessageCountThreshold","setTransactionTimeout","transactionalRequestTimeout","setSubscribeTimeout","subscribeRequestTimeout","setSendBeaconConfig","useSendBeacon","presenceTimeout","setPresenceTimeout","_presenceTimeout","heartbeatInterval","setHeartbeatInterval","setUUID","_decideUUID","uuid","val","UUID","set","console","log","_heartbeatInterval","_subscribeRequestTimeout","_transactionalRequestTimeout","_useSendBeacon","name","suffix","separator","Object","keys","reduce","result","key","providedUUID","get"],"mappings":"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","sourcesContent":["/* @flow */\n/* global location */\n\nimport uuidGenerator from './uuid';\nimport {\n InternalSetupStruct,\n DatabaseInterface,\n KeepAliveStruct,\n ProxyStruct,\n} from '../flow_interfaces';\n\nconst PRESENCE_TIMEOUT_MINIMUM: number = 20;\nconst PRESENCE_TIMEOUT_DEFAULT: number = 300;\n\ntype ConfigConstructArgs = {\n setup: InternalSetupStruct,\n db: DatabaseInterface,\n};\n\nexport default class {\n _db: DatabaseInterface;\n\n subscribeKey: string;\n publishKey: string;\n secretKey: string;\n cipherKey: string;\n authKey: string;\n UUID: string;\n\n proxy: ProxyStruct;\n\n /*\n if _useInstanceId is true, this instanceId will be added to all requests\n */\n instanceId: string;\n\n /*\n If the SDK is running as part of another SDK built atop of it, allow a custom pnsdk with name and version.\n */\n sdkName: string;\n\n /*\n keep track of the SDK family for identifier generator\n */\n sdkFamily: string;\n\n /*\n If the SDK is operated by a partner, allow a custom pnsdk item for them.\n */\n partnerId: string;\n\n /*\n filter expression to pass along when subscribing.\n */\n filterExpression: string;\n /*\n configuration to supress leave events; when a presence leave is performed\n this configuration will disallow the leave event from happening\n */\n suppressLeaveEvents: boolean;\n\n /*\n use SSL for http requests?\n */\n secure: boolean;\n\n // Custom optional origin.\n origin: string;\n\n // log verbosity: true to output lots of info\n logVerbosity: boolean;\n\n // if instanceId config is true, the SDK will pass the unique instance identifier to the server as instanceId=\n useInstanceId: boolean;\n\n // if requestId config is true, the SDK will pass a unique request identifier with each request as request_id=\n useRequestId: boolean;\n\n // use connection keep-alive for http requests\n keepAlive: ?boolean;\n\n keepAliveSettings: ?KeepAliveStruct;\n\n // if autoNetworkDetection config is true, the SDK will emit NetworkUp and NetworkDown when there changes in the networking\n autoNetworkDetection: ?boolean;\n\n // alert when a heartbeat works out.\n announceSuccessfulHeartbeats: boolean;\n announceFailedHeartbeats: boolean;\n\n /*\n how long the server will wait before declaring that the client is gone.\n */\n _presenceTimeout: number;\n\n /*\n how often (in seconds) the client should announce its presence to server\n */\n _heartbeatInterval: number;\n\n /*\n how long to wait for the server when running the subscribe loop\n */\n _subscribeRequestTimeout: number;\n /*\n how long to wait for the server when making transactional requests\n */\n _transactionalRequestTimeout: number;\n /*\n use send beacon API when unsubscribing.\n https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon\n */\n _useSendBeacon: boolean;\n\n /*\n allow frameworks to append to the PNSDK parameter\n the key should be an identifier for the specific framework to prevent duplicates\n */\n _PNSDKSuffix: { [key: string]: string };\n\n /*\n if set, the SDK will alert if more messages arrive in one subscribe than the theshold\n */\n requestMessageCountThreshold: number;\n\n /*\n Restore subscription list on disconnection.\n */\n restore: boolean;\n\n /*\n support for client deduping\n */\n dedupeOnSubscribe: boolean;\n\n maximumCacheSize: number;\n\n /*\n support customp encryption and decryption functions.\n */\n customEncrypt: Function; // function to support custome encryption of messages\n\n customDecrypt: Function; // function used to decrypt old version messages\n\n constructor({ setup, db }: ConfigConstructArgs) {\n this._PNSDKSuffix = {};\n this._db = db;\n\n this.instanceId = `pn-${uuidGenerator.createUUID()}`;\n this.secretKey = setup.secretKey || setup.secret_key;\n this.subscribeKey = setup.subscribeKey || setup.subscribe_key;\n this.publishKey = setup.publishKey || setup.publish_key;\n this.sdkName = setup.sdkName;\n this.sdkFamily = setup.sdkFamily;\n this.partnerId = setup.partnerId;\n this.setAuthKey(setup.authKey);\n this.setCipherKey(setup.cipherKey);\n\n this.setFilterExpression(setup.filterExpression);\n\n this.origin = setup.origin || 'ps.pndsn.com';\n this.secure = setup.ssl || false;\n this.restore = setup.restore || false;\n this.proxy = setup.proxy;\n this.keepAlive = setup.keepAlive;\n this.keepAliveSettings = setup.keepAliveSettings;\n this.autoNetworkDetection = setup.autoNetworkDetection || false;\n\n this.dedupeOnSubscribe = setup.dedupeOnSubscribe || false;\n this.maximumCacheSize = setup.maximumCacheSize || 100;\n\n this.customEncrypt = setup.customEncrypt;\n this.customDecrypt = setup.customDecrypt;\n\n // if location config exist and we are in https, force secure to true.\n if (typeof location !== 'undefined' && location.protocol === 'https:') {\n this.secure = true;\n }\n\n this.logVerbosity = setup.logVerbosity || false;\n this.suppressLeaveEvents = setup.suppressLeaveEvents || false;\n\n this.announceFailedHeartbeats = setup.announceFailedHeartbeats || true;\n this.announceSuccessfulHeartbeats =\n setup.announceSuccessfulHeartbeats || false;\n\n this.useInstanceId = setup.useInstanceId || false;\n this.useRequestId = setup.useRequestId || false;\n\n this.requestMessageCountThreshold = setup.requestMessageCountThreshold;\n\n // set timeout to how long a transaction request will wait for the server (default 15 seconds)\n this.setTransactionTimeout(setup.transactionalRequestTimeout || 15 * 1000);\n // set timeout to how long a subscribe event loop will run (default 310 seconds)\n this.setSubscribeTimeout(setup.subscribeRequestTimeout || 310 * 1000);\n // set config on beacon (https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon) usage\n this.setSendBeaconConfig(setup.useSendBeacon || true);\n // how long the SDK will report the client to be alive before issuing a timeout\n if (setup.presenceTimeout) {\n this.setPresenceTimeout(setup.presenceTimeout);\n } else {\n this._presenceTimeout = PRESENCE_TIMEOUT_DEFAULT;\n }\n\n if (setup.heartbeatInterval != null) {\n this.setHeartbeatInterval(setup.heartbeatInterval);\n }\n\n this.setUUID(this._decideUUID(setup.uuid)); // UUID decision depends on subKey.\n }\n\n // exposed setters\n getAuthKey(): string {\n return this.authKey;\n }\n\n setAuthKey(val: string): this {\n this.authKey = val;\n return this;\n }\n\n setCipherKey(val: string): this {\n this.cipherKey = val;\n return this;\n }\n\n getUUID(): string {\n return this.UUID;\n }\n\n setUUID(val: string): this {\n if (this._db && this._db.set) this._db.set(`${this.subscribeKey}uuid`, val);\n this.UUID = val;\n return this;\n }\n\n getFilterExpression(): string {\n return this.filterExpression;\n }\n\n setFilterExpression(val: string): this {\n this.filterExpression = val;\n return this;\n }\n\n getPresenceTimeout(): number {\n return this._presenceTimeout;\n }\n\n setPresenceTimeout(val: number): this {\n if (val >= PRESENCE_TIMEOUT_MINIMUM) {\n this._presenceTimeout = val;\n } else {\n this._presenceTimeout = PRESENCE_TIMEOUT_MINIMUM;\n\n // eslint-disable-next-line no-console\n console.log(\n 'WARNING: Presence timeout is less than the minimum. Using minimum value: ',\n this._presenceTimeout\n );\n }\n\n this.setHeartbeatInterval(this._presenceTimeout / 2 - 1);\n\n return this;\n }\n\n setProxy(proxy: ProxyStruct) {\n this.proxy = proxy;\n }\n\n getHeartbeatInterval(): number {\n return this._heartbeatInterval;\n }\n\n setHeartbeatInterval(val: number): this {\n this._heartbeatInterval = val;\n return this;\n }\n\n // deprecated setters.\n getSubscribeTimeout(): number {\n return this._subscribeRequestTimeout;\n }\n\n setSubscribeTimeout(val: number): this {\n this._subscribeRequestTimeout = val;\n return this;\n }\n\n getTransactionTimeout(): number {\n return this._transactionalRequestTimeout;\n }\n\n setTransactionTimeout(val: number): this {\n this._transactionalRequestTimeout = val;\n return this;\n }\n\n isSendBeaconEnabled(): boolean {\n return this._useSendBeacon;\n }\n\n setSendBeaconConfig(val: boolean): this {\n this._useSendBeacon = val;\n return this;\n }\n\n getVersion(): string {\n return '4.28.4';\n }\n\n _addPnsdkSuffix(name: string, suffix: string) {\n this._PNSDKSuffix[name] = suffix;\n }\n\n _getPnsdkSuffix(separator: string): string {\n return Object.keys(this._PNSDKSuffix).reduce((result, key) => result + separator + this._PNSDKSuffix[key], '');\n }\n\n _decideUUID(providedUUID: string): string {\n // if the uuid was provided by setup, use this UUID.\n if (providedUUID) {\n return providedUUID;\n }\n\n // if the database module is enabled and we have something saved, use this.\n if (this._db && this._db.get && this._db.get(`${this.subscribeKey}uuid`)) {\n return this._db.get(`${this.subscribeKey}uuid`);\n }\n\n // randomize the UUID and push to storage\n return `pn-${uuidGenerator.createUUID()}`;\n }\n}\n"],"file":"config.js"} \ No newline at end of file +{"version":3,"sources":["core/components/config.js"],"names":["PRESENCE_TIMEOUT_MINIMUM","PRESENCE_TIMEOUT_DEFAULT","setup","db","_PNSDKSuffix","_db","instanceId","uuidGenerator","createUUID","secretKey","secret_key","subscribeKey","subscribe_key","publishKey","publish_key","sdkName","sdkFamily","partnerId","setAuthKey","authKey","setCipherKey","cipherKey","setFilterExpression","filterExpression","origin","secure","ssl","restore","proxy","keepAlive","keepAliveSettings","autoNetworkDetection","dedupeOnSubscribe","maximumCacheSize","customEncrypt","customDecrypt","fileUploadPublishRetryLimit","useRandomIVs","location","protocol","logVerbosity","suppressLeaveEvents","announceFailedHeartbeats","announceSuccessfulHeartbeats","useInstanceId","useRequestId","requestMessageCountThreshold","setTransactionTimeout","transactionalRequestTimeout","setSubscribeTimeout","subscribeRequestTimeout","setSendBeaconConfig","useSendBeacon","presenceTimeout","setPresenceTimeout","_presenceTimeout","heartbeatInterval","setHeartbeatInterval","setUUID","_decideUUID","uuid","val","UUID","set","console","log","_heartbeatInterval","_subscribeRequestTimeout","_transactionalRequestTimeout","_useSendBeacon","name","suffix","separator","Object","keys","reduce","result","key","providedUUID","get"],"mappings":"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","sourcesContent":["/* @flow */\n/* global location */\n\nimport uuidGenerator from './uuid';\nimport { InternalSetupStruct, DatabaseInterface, KeepAliveStruct, ProxyStruct } from '../flow_interfaces';\n\nconst PRESENCE_TIMEOUT_MINIMUM: number = 20;\nconst PRESENCE_TIMEOUT_DEFAULT: number = 300;\n\ntype ConfigConstructArgs = {\n setup: InternalSetupStruct,\n db: DatabaseInterface,\n};\n\nexport default class {\n _db: DatabaseInterface;\n\n subscribeKey: string;\n publishKey: string;\n secretKey: string;\n cipherKey: string;\n authKey: string;\n UUID: string;\n\n proxy: ProxyStruct;\n\n /*\n if _useInstanceId is true, this instanceId will be added to all requests\n */\n instanceId: string;\n\n /*\n If the SDK is running as part of another SDK built atop of it, allow a custom pnsdk with name and version.\n */\n sdkName: string;\n\n /*\n keep track of the SDK family for identifier generator\n */\n sdkFamily: string;\n\n /*\n If the SDK is operated by a partner, allow a custom pnsdk item for them.\n */\n partnerId: string;\n\n /*\n filter expression to pass along when subscribing.\n */\n filterExpression: string;\n /*\n configuration to supress leave events; when a presence leave is performed\n this configuration will disallow the leave event from happening\n */\n suppressLeaveEvents: boolean;\n\n /*\n use SSL for http requests?\n */\n secure: boolean;\n\n // Custom optional origin.\n origin: string;\n\n // log verbosity: true to output lots of info\n logVerbosity: boolean;\n\n // if instanceId config is true, the SDK will pass the unique instance identifier to the server as instanceId=\n useInstanceId: boolean;\n\n // if requestId config is true, the SDK will pass a unique request identifier with each request as request_id=\n useRequestId: boolean;\n\n // use connection keep-alive for http requests\n keepAlive: ?boolean;\n\n keepAliveSettings: ?KeepAliveStruct;\n\n // if autoNetworkDetection config is true, the SDK will emit NetworkUp and NetworkDown when there changes in the networking\n autoNetworkDetection: ?boolean;\n\n // alert when a heartbeat works out.\n announceSuccessfulHeartbeats: boolean;\n announceFailedHeartbeats: boolean;\n\n /*\n how long the server will wait before declaring that the client is gone.\n */\n _presenceTimeout: number;\n\n /*\n how often (in seconds) the client should announce its presence to server\n */\n _heartbeatInterval: number;\n\n /*\n how long to wait for the server when running the subscribe loop\n */\n _subscribeRequestTimeout: number;\n /*\n how long to wait for the server when making transactional requests\n */\n _transactionalRequestTimeout: number;\n /*\n use send beacon API when unsubscribing.\n https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon\n */\n _useSendBeacon: boolean;\n\n /*\n allow frameworks to append to the PNSDK parameter\n the key should be an identifier for the specific framework to prevent duplicates\n */\n _PNSDKSuffix: { [key: string]: string };\n\n /*\n if set, the SDK will alert if more messages arrive in one subscribe than the theshold\n */\n requestMessageCountThreshold: number;\n\n /*\n Restore subscription list on disconnection.\n */\n restore: boolean;\n\n /*\n support for client deduping\n */\n dedupeOnSubscribe: boolean;\n\n maximumCacheSize: number;\n\n /*\n support customp encryption and decryption functions.\n */\n customEncrypt: Function; // function to support custome encryption of messages\n\n customDecrypt: Function; // function used to decrypt old version messages\n\n // File Upload\n\n // How many times the publish-file should be retried before giving up\n fileUploadPublishRetryLimit: number;\n useRandomIVs: boolean;\n\n constructor({ setup, db }: ConfigConstructArgs) {\n this._PNSDKSuffix = {};\n this._db = db;\n\n this.instanceId = `pn-${uuidGenerator.createUUID()}`;\n this.secretKey = setup.secretKey || setup.secret_key;\n this.subscribeKey = setup.subscribeKey || setup.subscribe_key;\n this.publishKey = setup.publishKey || setup.publish_key;\n this.sdkName = setup.sdkName;\n this.sdkFamily = setup.sdkFamily;\n this.partnerId = setup.partnerId;\n this.setAuthKey(setup.authKey);\n this.setCipherKey(setup.cipherKey);\n\n this.setFilterExpression(setup.filterExpression);\n\n this.origin = setup.origin || 'ps.pndsn.com';\n this.secure = setup.ssl || false;\n this.restore = setup.restore || false;\n this.proxy = setup.proxy;\n this.keepAlive = setup.keepAlive;\n this.keepAliveSettings = setup.keepAliveSettings;\n this.autoNetworkDetection = setup.autoNetworkDetection || false;\n\n this.dedupeOnSubscribe = setup.dedupeOnSubscribe || false;\n this.maximumCacheSize = setup.maximumCacheSize || 100;\n\n this.customEncrypt = setup.customEncrypt;\n this.customDecrypt = setup.customDecrypt;\n\n this.fileUploadPublishRetryLimit = setup.fileUploadPublishRetryLimit ?? 5;\n this.useRandomIVs = setup.useRandomIVs ?? false;\n\n // if location config exist and we are in https, force secure to true.\n if (typeof location !== 'undefined' && location.protocol === 'https:') {\n this.secure = true;\n }\n\n this.logVerbosity = setup.logVerbosity || false;\n this.suppressLeaveEvents = setup.suppressLeaveEvents || false;\n\n this.announceFailedHeartbeats = setup.announceFailedHeartbeats || true;\n this.announceSuccessfulHeartbeats = setup.announceSuccessfulHeartbeats || false;\n\n this.useInstanceId = setup.useInstanceId || false;\n this.useRequestId = setup.useRequestId || false;\n\n this.requestMessageCountThreshold = setup.requestMessageCountThreshold;\n\n // set timeout to how long a transaction request will wait for the server (default 15 seconds)\n this.setTransactionTimeout(setup.transactionalRequestTimeout || 15 * 1000);\n // set timeout to how long a subscribe event loop will run (default 310 seconds)\n this.setSubscribeTimeout(setup.subscribeRequestTimeout || 310 * 1000);\n // set config on beacon (https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon) usage\n this.setSendBeaconConfig(setup.useSendBeacon || true);\n // how long the SDK will report the client to be alive before issuing a timeout\n if (setup.presenceTimeout) {\n this.setPresenceTimeout(setup.presenceTimeout);\n } else {\n this._presenceTimeout = PRESENCE_TIMEOUT_DEFAULT;\n }\n\n if (setup.heartbeatInterval != null) {\n this.setHeartbeatInterval(setup.heartbeatInterval);\n }\n\n this.setUUID(this._decideUUID(setup.uuid)); // UUID decision depends on subKey.\n }\n\n // exposed setters\n getAuthKey(): string {\n return this.authKey;\n }\n\n setAuthKey(val: string): this {\n this.authKey = val;\n return this;\n }\n\n setCipherKey(val: string): this {\n this.cipherKey = val;\n return this;\n }\n\n getUUID(): string {\n return this.UUID;\n }\n\n setUUID(val: string): this {\n if (this._db && this._db.set) this._db.set(`${this.subscribeKey}uuid`, val);\n this.UUID = val;\n return this;\n }\n\n getFilterExpression(): string {\n return this.filterExpression;\n }\n\n setFilterExpression(val: string): this {\n this.filterExpression = val;\n return this;\n }\n\n getPresenceTimeout(): number {\n return this._presenceTimeout;\n }\n\n setPresenceTimeout(val: number): this {\n if (val >= PRESENCE_TIMEOUT_MINIMUM) {\n this._presenceTimeout = val;\n } else {\n this._presenceTimeout = PRESENCE_TIMEOUT_MINIMUM;\n\n // eslint-disable-next-line no-console\n console.log('WARNING: Presence timeout is less than the minimum. Using minimum value: ', this._presenceTimeout);\n }\n\n this.setHeartbeatInterval(this._presenceTimeout / 2 - 1);\n\n return this;\n }\n\n setProxy(proxy: ProxyStruct) {\n this.proxy = proxy;\n }\n\n getHeartbeatInterval(): number {\n return this._heartbeatInterval;\n }\n\n setHeartbeatInterval(val: number): this {\n this._heartbeatInterval = val;\n return this;\n }\n\n // deprecated setters.\n getSubscribeTimeout(): number {\n return this._subscribeRequestTimeout;\n }\n\n setSubscribeTimeout(val: number): this {\n this._subscribeRequestTimeout = val;\n return this;\n }\n\n getTransactionTimeout(): number {\n return this._transactionalRequestTimeout;\n }\n\n setTransactionTimeout(val: number): this {\n this._transactionalRequestTimeout = val;\n return this;\n }\n\n isSendBeaconEnabled(): boolean {\n return this._useSendBeacon;\n }\n\n setSendBeaconConfig(val: boolean): this {\n this._useSendBeacon = val;\n return this;\n }\n\n getVersion(): string {\n return '4.29.0';\n }\n\n _addPnsdkSuffix(name: string, suffix: string) {\n this._PNSDKSuffix[name] = suffix;\n }\n\n _getPnsdkSuffix(separator: string): string {\n return Object.keys(this._PNSDKSuffix).reduce((result, key) => result + separator + this._PNSDKSuffix[key], '');\n }\n\n _decideUUID(providedUUID: string): string {\n // if the uuid was provided by setup, use this UUID.\n if (providedUUID) {\n return providedUUID;\n }\n\n // if the database module is enabled and we have something saved, use this.\n if (this._db && this._db.get && this._db.get(`${this.subscribeKey}uuid`)) {\n return this._db.get(`${this.subscribeKey}uuid`);\n }\n\n // randomize the UUID and push to storage\n return `pn-${uuidGenerator.createUUID()}`;\n }\n}\n"],"file":"config.js"} \ No newline at end of file diff --git a/lib/core/components/cryptography/index.js b/lib/core/components/cryptography/index.js index e9ac399fb..13fc55ec9 100644 --- a/lib/core/components/cryptography/index.js +++ b/lib/core/components/cryptography/index.js @@ -1,42 +1,43 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _config = _interopRequireDefault(require("../config")); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -var _hmacSha = _interopRequireDefault(require("./hmac-sha256")); +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _config = _interopRequireDefault(require("../config")); -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, descriptor.key, descriptor); } } +var _hmacSha = _interopRequireDefault(require("./hmac-sha256")); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +function bufferToWordArray(b) { + var wa = []; + var i; -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + for (i = 0; i < b.length; i += 1) { + wa[i / 4 | 0] |= b[i] << 24 - 8 * i; + } + + return _hmacSha["default"].lib.WordArray.create(wa, b.length); +} var _default = function () { function _default(_ref) { var config = _ref.config; - - _classCallCheck(this, _default); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "_iv", void 0); - - _defineProperty(this, "_allowedKeyEncodings", void 0); - - _defineProperty(this, "_allowedKeyLengths", void 0); - - _defineProperty(this, "_allowedModes", void 0); - - _defineProperty(this, "_defaultOptions", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_iv", void 0); + (0, _defineProperty2["default"])(this, "_allowedKeyEncodings", void 0); + (0, _defineProperty2["default"])(this, "_allowedKeyLengths", void 0); + (0, _defineProperty2["default"])(this, "_allowedModes", void 0); + (0, _defineProperty2["default"])(this, "_defaultOptions", void 0); this._config = config; this._iv = '0123456789012345'; this._allowedKeyEncodings = ['hex', 'utf8', 'base64', 'binary']; @@ -50,7 +51,7 @@ var _default = function () { }; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "HMACSHA256", value: function HMACSHA256(data) { var hash = _hmacSha["default"].HmacSHA256(data, this._config.secretKey); @@ -121,6 +122,11 @@ var _default = function () { value: function _getIV(options) { return options.mode === 'cbc' ? _hmacSha["default"].enc.Utf8.parse(this._iv) : null; } + }, { + key: "_getRandomIV", + value: function _getRandomIV() { + return _hmacSha["default"].lib.WordArray.random(16); + } }, { key: "encrypt", value: function encrypt(data, customCipherKey, options) { @@ -145,19 +151,30 @@ var _default = function () { if (!customCipherKey && !this._config.cipherKey) return data; options = this._parseOptions(options); - var iv = this._getIV(options); - var mode = this._getMode(options); var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); - var encryptedHexArray = _hmacSha["default"].AES.encrypt(data, cipherKey, { - iv: iv, - mode: mode - }).ciphertext; + if (this._config.useRandomIVs) { + var waIv = this._getRandomIV(); + + var waPayload = _hmacSha["default"].AES.encrypt(data, cipherKey, { + iv: waIv, + mode: mode + }).ciphertext; + + return waIv.clone().concat(waPayload.clone()).toString(_hmacSha["default"].enc.Base64); + } else { + var iv = this._getIV(options); + + var encryptedHexArray = _hmacSha["default"].AES.encrypt(data, cipherKey, { + iv: iv, + mode: mode + }).ciphertext; - var base64Encrypted = encryptedHexArray.toString(_hmacSha["default"].enc.Base64); - return base64Encrypted || data; + var base64Encrypted = encryptedHexArray.toString(_hmacSha["default"].enc.Base64); + return base64Encrypted || data; + } } }, { key: "pnDecrypt", @@ -165,30 +182,50 @@ var _default = function () { if (!customCipherKey && !this._config.cipherKey) return data; options = this._parseOptions(options); - var iv = this._getIV(options); - var mode = this._getMode(options); var cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); - try { - var ciphertext = _hmacSha["default"].enc.Base64.parse(data); + if (this._config.useRandomIVs) { + var ciphertext = Buffer.from(data, 'base64'); + var iv = bufferToWordArray(ciphertext.slice(0, 16)); + var payload = bufferToWordArray(ciphertext.slice(16)); + + try { + var plainJSON = _hmacSha["default"].AES.decrypt({ + ciphertext: payload + }, cipherKey, { + iv: iv, + mode: mode + }).toString(_hmacSha["default"].enc.Utf8); + + var plaintext = JSON.parse(plainJSON); + return plaintext; + } catch (e) { + return null; + } + } else { + var _iv = this._getIV(options); - var plainJSON = _hmacSha["default"].AES.decrypt({ - ciphertext: ciphertext - }, cipherKey, { - iv: iv, - mode: mode - }).toString(_hmacSha["default"].enc.Utf8); + try { + var _ciphertext = _hmacSha["default"].enc.Base64.parse(data); + + var _plainJSON = _hmacSha["default"].AES.decrypt({ + ciphertext: _ciphertext + }, cipherKey, { + iv: _iv, + mode: mode + }).toString(_hmacSha["default"].enc.Utf8); - var plaintext = JSON.parse(plainJSON); - return plaintext; - } catch (e) { - return null; + var _plaintext = JSON.parse(_plainJSON); + + return _plaintext; + } catch (e) { + return null; + } } } }]); - return _default; }(); diff --git a/lib/core/components/cryptography/index.js.map b/lib/core/components/cryptography/index.js.map index a22636f8b..847c68de3 100644 --- a/lib/core/components/cryptography/index.js.map +++ b/lib/core/components/cryptography/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/cryptography/index.js"],"names":["config","_config","_iv","_allowedKeyEncodings","_allowedKeyLengths","_allowedModes","_defaultOptions","encryptKey","keyEncoding","keyLength","mode","data","hash","CryptoJS","HmacSHA256","secretKey","toString","enc","Base64","s","SHA256","Hex","incomingOptions","options","hasOwnProperty","indexOf","toLowerCase","parseInt","key","parse","_decodeKey","Utf8","slice","ECB","CBC","customCipherKey","customEncrypt","pnEncrypt","customDecrypt","pnDecrypt","cipherKey","_parseOptions","iv","_getIV","_getMode","_getPaddedKey","encryptedHexArray","AES","encrypt","ciphertext","base64Encrypted","plainJSON","decrypt","plaintext","JSON","e"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport Config from '../config';\nimport CryptoJS from './hmac-sha256';\n\ntype CryptoConstruct = {\n config: Config,\n}\n\nexport default class {\n _config: Config;\n _iv: string;\n _allowedKeyEncodings: Array;\n _allowedKeyLengths: Array;\n _allowedModes: Array;\n _defaultOptions: Object;\n\n constructor({ config }: CryptoConstruct) {\n this._config = config;\n\n this._iv = '0123456789012345';\n\n this._allowedKeyEncodings = ['hex', 'utf8', 'base64', 'binary'];\n this._allowedKeyLengths = [128, 256];\n this._allowedModes = ['ecb', 'cbc'];\n\n this._defaultOptions = {\n encryptKey: true,\n keyEncoding: 'utf8',\n keyLength: 256,\n mode: 'cbc'\n };\n }\n\n HMACSHA256(data: string): string {\n let hash = CryptoJS.HmacSHA256(data, this._config.secretKey);\n return hash.toString(CryptoJS.enc.Base64);\n }\n\n SHA256(s: string): string {\n return CryptoJS.SHA256(s).toString(CryptoJS.enc.Hex);\n }\n\n _parseOptions(incomingOptions: ?Object): Object {\n // Defaults\n let options = incomingOptions || {};\n if (!options.hasOwnProperty('encryptKey')) options.encryptKey = this._defaultOptions.encryptKey;\n if (!options.hasOwnProperty('keyEncoding')) options.keyEncoding = this._defaultOptions.keyEncoding;\n if (!options.hasOwnProperty('keyLength')) options.keyLength = this._defaultOptions.keyLength;\n if (!options.hasOwnProperty('mode')) options.mode = this._defaultOptions.mode;\n\n // Validation\n if (this._allowedKeyEncodings.indexOf(options.keyEncoding.toLowerCase()) === -1) {\n options.keyEncoding = this._defaultOptions.keyEncoding;\n }\n\n if (this._allowedKeyLengths.indexOf(parseInt(options.keyLength, 10)) === -1) {\n options.keyLength = this._defaultOptions.keyLength;\n }\n\n if (this._allowedModes.indexOf(options.mode.toLowerCase()) === -1) {\n options.mode = this._defaultOptions.mode;\n }\n\n return options;\n }\n\n _decodeKey(key: string, options: Object): string {\n if (options.keyEncoding === 'base64') {\n return CryptoJS.enc.Base64.parse(key);\n } else if (options.keyEncoding === 'hex') {\n return CryptoJS.enc.Hex.parse(key);\n } else {\n return key;\n }\n }\n\n _getPaddedKey(key: string, options: Object): string {\n key = this._decodeKey(key, options);\n if (options.encryptKey) {\n return CryptoJS.enc.Utf8.parse(this.SHA256(key).slice(0, 32));\n } else {\n return key;\n }\n }\n\n _getMode(options: Object): string {\n if (options.mode === 'ecb') {\n return CryptoJS.mode.ECB;\n } else {\n return CryptoJS.mode.CBC;\n }\n }\n\n _getIV(options: Object): string | null {\n return (options.mode === 'cbc') ? CryptoJS.enc.Utf8.parse(this._iv) : null;\n }\n\n encrypt(data: string, customCipherKey: ?string, options: ?Object): Object | string | null {\n if (this._config.customEncrypt) {\n return this._config.customEncrypt(data);\n } else {\n return this.pnEncrypt(data, customCipherKey, options);\n }\n }\n\n decrypt(data: Object, customCipherKey: ?string, options: ?Object): Object | string | null {\n if (this._config.customDecrypt) {\n return this._config.customDecrypt(data);\n } else {\n return this.pnDecrypt(data, customCipherKey, options);\n }\n }\n\n pnEncrypt(data: string, customCipherKey: ?string, options: ?Object): Object | string | null {\n if (!customCipherKey && !this._config.cipherKey) return data;\n options = this._parseOptions(options);\n let iv = this._getIV(options);\n let mode = this._getMode(options);\n let cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options);\n let encryptedHexArray = CryptoJS.AES.encrypt(data, cipherKey, { iv, mode }).ciphertext;\n let base64Encrypted = encryptedHexArray.toString(CryptoJS.enc.Base64);\n return base64Encrypted || data;\n }\n\n pnDecrypt(data: Object, customCipherKey: ?string, options: ?Object): Object | null {\n if (!customCipherKey && !this._config.cipherKey) return data;\n options = this._parseOptions(options);\n let iv = this._getIV(options);\n let mode = this._getMode(options);\n let cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options);\n try {\n let ciphertext = CryptoJS.enc.Base64.parse(data);\n let plainJSON = CryptoJS.AES.decrypt({ ciphertext }, cipherKey, { iv, mode }).toString(CryptoJS.enc.Utf8);\n let plaintext = JSON.parse(plainJSON);\n return plaintext;\n } catch (e) {\n return null;\n }\n }\n}\n"],"file":"index.js"} \ No newline at end of file +{"version":3,"sources":["core/components/cryptography/index.js"],"names":["bufferToWordArray","b","wa","i","length","CryptoJS","lib","WordArray","create","config","_config","_iv","_allowedKeyEncodings","_allowedKeyLengths","_allowedModes","_defaultOptions","encryptKey","keyEncoding","keyLength","mode","data","hash","HmacSHA256","secretKey","toString","enc","Base64","s","SHA256","Hex","incomingOptions","options","hasOwnProperty","indexOf","toLowerCase","parseInt","key","parse","_decodeKey","Utf8","slice","ECB","CBC","random","customCipherKey","customEncrypt","pnEncrypt","customDecrypt","pnDecrypt","cipherKey","_parseOptions","_getMode","_getPaddedKey","useRandomIVs","waIv","_getRandomIV","waPayload","AES","encrypt","iv","ciphertext","clone","concat","_getIV","encryptedHexArray","base64Encrypted","Buffer","from","payload","plainJSON","decrypt","plaintext","JSON","e"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport Config from '../config';\nimport CryptoJS from './hmac-sha256';\n\nfunction bufferToWordArray(b: Buffer) {\n let wa = [];\n let i: number;\n for (i = 0; i < b.length; i += 1) {\n // eslint-disable-next-line no-bitwise\n wa[(i / 4) | 0] |= b[i] << (24 - 8 * i);\n }\n\n return CryptoJS.lib.WordArray.create(wa, b.length);\n}\n\ntype CryptoConstruct = {\n config: Config,\n};\n\nexport default class {\n _config: Config;\n _iv: string;\n _allowedKeyEncodings: Array;\n _allowedKeyLengths: Array;\n _allowedModes: Array;\n _defaultOptions: Object;\n\n constructor({ config }: CryptoConstruct) {\n this._config = config;\n\n this._iv = '0123456789012345';\n\n this._allowedKeyEncodings = ['hex', 'utf8', 'base64', 'binary'];\n this._allowedKeyLengths = [128, 256];\n this._allowedModes = ['ecb', 'cbc'];\n\n this._defaultOptions = {\n encryptKey: true,\n keyEncoding: 'utf8',\n keyLength: 256,\n mode: 'cbc',\n };\n }\n\n HMACSHA256(data: string): string {\n let hash = CryptoJS.HmacSHA256(data, this._config.secretKey);\n return hash.toString(CryptoJS.enc.Base64);\n }\n\n SHA256(s: string): string {\n return CryptoJS.SHA256(s).toString(CryptoJS.enc.Hex);\n }\n\n _parseOptions(incomingOptions: ?Object): Object {\n // Defaults\n let options = incomingOptions || {};\n if (!options.hasOwnProperty('encryptKey')) options.encryptKey = this._defaultOptions.encryptKey;\n if (!options.hasOwnProperty('keyEncoding')) options.keyEncoding = this._defaultOptions.keyEncoding;\n if (!options.hasOwnProperty('keyLength')) options.keyLength = this._defaultOptions.keyLength;\n if (!options.hasOwnProperty('mode')) options.mode = this._defaultOptions.mode;\n\n // Validation\n if (this._allowedKeyEncodings.indexOf(options.keyEncoding.toLowerCase()) === -1) {\n options.keyEncoding = this._defaultOptions.keyEncoding;\n }\n\n if (this._allowedKeyLengths.indexOf(parseInt(options.keyLength, 10)) === -1) {\n options.keyLength = this._defaultOptions.keyLength;\n }\n\n if (this._allowedModes.indexOf(options.mode.toLowerCase()) === -1) {\n options.mode = this._defaultOptions.mode;\n }\n\n return options;\n }\n\n _decodeKey(key: string, options: Object): string {\n if (options.keyEncoding === 'base64') {\n return CryptoJS.enc.Base64.parse(key);\n } else if (options.keyEncoding === 'hex') {\n return CryptoJS.enc.Hex.parse(key);\n } else {\n return key;\n }\n }\n\n _getPaddedKey(key: string, options: Object): string {\n key = this._decodeKey(key, options);\n if (options.encryptKey) {\n return CryptoJS.enc.Utf8.parse(this.SHA256(key).slice(0, 32));\n } else {\n return key;\n }\n }\n\n _getMode(options: Object): string {\n if (options.mode === 'ecb') {\n return CryptoJS.mode.ECB;\n } else {\n return CryptoJS.mode.CBC;\n }\n }\n\n _getIV(options: Object): string | null {\n return options.mode === 'cbc' ? CryptoJS.enc.Utf8.parse(this._iv) : null;\n }\n\n _getRandomIV(): any {\n return CryptoJS.lib.WordArray.random(16);\n }\n\n encrypt(data: string, customCipherKey: ?string, options: ?Object): Object | string | null {\n if (this._config.customEncrypt) {\n return this._config.customEncrypt(data);\n } else {\n return this.pnEncrypt(data, customCipherKey, options);\n }\n }\n\n decrypt(data: Object, customCipherKey: ?string, options: ?Object): Object | string | null {\n if (this._config.customDecrypt) {\n return this._config.customDecrypt(data);\n } else {\n return this.pnDecrypt(data, customCipherKey, options);\n }\n }\n\n pnEncrypt(data: string, customCipherKey: ?string, options: ?Object): Object | string | null {\n if (!customCipherKey && !this._config.cipherKey) return data;\n options = this._parseOptions(options);\n let mode = this._getMode(options);\n let cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options);\n\n if (this._config.useRandomIVs) {\n let waIv = this._getRandomIV();\n let waPayload = CryptoJS.AES.encrypt(data, cipherKey, { iv: waIv, mode }).ciphertext;\n\n return waIv.clone().concat(waPayload.clone()).toString(CryptoJS.enc.Base64);\n } else {\n let iv = this._getIV(options);\n let encryptedHexArray = CryptoJS.AES.encrypt(data, cipherKey, { iv, mode }).ciphertext;\n let base64Encrypted = encryptedHexArray.toString(CryptoJS.enc.Base64);\n return base64Encrypted || data;\n }\n }\n\n pnDecrypt(data: string, customCipherKey: ?string, options: ?Object): Object | null {\n if (!customCipherKey && !this._config.cipherKey) return data;\n options = this._parseOptions(options);\n let mode = this._getMode(options);\n let cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options);\n if (this._config.useRandomIVs) {\n let ciphertext = Buffer.from(data, 'base64');\n\n let iv = bufferToWordArray(ciphertext.slice(0, 16));\n let payload = bufferToWordArray(ciphertext.slice(16));\n\n try {\n let plainJSON = CryptoJS.AES.decrypt({ ciphertext: payload }, cipherKey, { iv, mode }).toString(\n CryptoJS.enc.Utf8\n );\n let plaintext = JSON.parse(plainJSON);\n return plaintext;\n } catch (e) {\n return null;\n }\n } else {\n let iv = this._getIV(options);\n try {\n let ciphertext = CryptoJS.enc.Base64.parse(data);\n let plainJSON = CryptoJS.AES.decrypt({ ciphertext }, cipherKey, { iv, mode }).toString(CryptoJS.enc.Utf8);\n let plaintext = JSON.parse(plainJSON);\n return plaintext;\n } catch (e) {\n return null;\n }\n }\n }\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/lib/core/components/deduping_manager.js b/lib/core/components/deduping_manager.js index 232fe5b43..fcf6932fb 100644 --- a/lib/core/components/deduping_manager.js +++ b/lib/core/components/deduping_manager.js @@ -1,23 +1,21 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _config = _interopRequireDefault(require("../components/config")); - -var _flow_interfaces = require("../flow_interfaces"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -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, descriptor.key, descriptor); } } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _config = _interopRequireDefault(require("../components/config")); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _flow_interfaces = require("../flow_interfaces"); var hashCode = function hashCode(payload) { var hash = 0; @@ -35,18 +33,14 @@ var hashCode = function hashCode(payload) { var _default = function () { function _default(_ref) { var config = _ref.config; - - _classCallCheck(this, _default); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "hashHistory", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "hashHistory", void 0); this.hashHistory = []; this._config = config; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "getKey", value: function getKey(message) { var hashedPayload = hashCode(JSON.stringify(message.payload)).toString(); @@ -73,7 +67,6 @@ var _default = function () { this.hashHistory = []; } }]); - return _default; }(); diff --git a/lib/core/components/deduping_manager.js.map b/lib/core/components/deduping_manager.js.map index bbd814464..0f306259c 100644 --- a/lib/core/components/deduping_manager.js.map +++ b/lib/core/components/deduping_manager.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/deduping_manager.js"],"names":["hashCode","payload","hash","length","i","character","charCodeAt","config","hashHistory","_config","message","hashedPayload","JSON","stringify","toString","timetoken","publishMetaData","publishTimetoken","includes","getKey","maximumCacheSize","shift","push"],"mappings":";;;;;;;AAEA;;AACA;;;;;;;;;;;;AAMA,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,OAAD,EAAa;AAC5B,MAAIC,IAAI,GAAG,CAAX;AACA,MAAID,OAAO,CAACE,MAAR,KAAmB,CAAvB,EAA0B,OAAOD,IAAP;;AAC1B,OAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACE,MAA5B,EAAoCC,CAAC,IAAI,CAAzC,EAA4C;AAC1C,QAAIC,SAAS,GAAGJ,OAAO,CAACK,UAAR,CAAmBF,CAAnB,CAAhB;AACAF,IAAAA,IAAI,GAAG,CAACA,IAAI,IAAI,CAAT,IAAcA,IAAd,GAAqBG,SAA5B;AACAH,IAAAA,IAAI,GAAGA,IAAI,GAAGA,IAAd;AACD;;AACD,SAAOA,IAAP;AACD,CATD;;;AAeE,0BAAkD;AAAA,QAApCK,MAAoC,QAApCA,MAAoC;;AAAA;;AAAA;;AAAA;;AAChD,SAAKC,WAAL,GAAmB,EAAnB;AACA,SAAKC,OAAL,GAAeF,MAAf;AACD;;;;2BAEMG,O,EAA2B;AAChC,UAAMC,aAAa,GAAGX,QAAQ,CAACY,IAAI,CAACC,SAAL,CAAeH,OAAO,CAACT,OAAvB,CAAD,CAAR,CAA0Ca,QAA1C,EAAtB;AACA,UAAMC,SAAS,GAAGL,OAAO,CAACM,eAAR,CAAwBC,gBAA1C;AACA,uBAAUF,SAAV,cAAuBJ,aAAvB;AACD;;;gCAEWD,O,EAA2B;AACrC,aAAO,KAAKF,WAAL,CAAiBU,QAAjB,CAA0B,KAAKC,MAAL,CAAYT,OAAZ,CAA1B,CAAP;AACD;;;6BAEQA,O,EAA2B;AAClC,UAAI,KAAKF,WAAL,CAAiBL,MAAjB,IAA2B,KAAKM,OAAL,CAAaW,gBAA5C,EAA8D;AAC5D,aAAKZ,WAAL,CAAiBa,KAAjB;AACD;;AAED,WAAKb,WAAL,CAAiBc,IAAjB,CAAsB,KAAKH,MAAL,CAAYT,OAAZ,CAAtB;AACD;;;mCAEc;AACb,WAAKF,WAAL,GAAmB,EAAnB;AACD","sourcesContent":["/* @flow */\n\nimport Config from '../components/config';\nimport { SubscribeMessage } from '../flow_interfaces';\n\ntype DedupingManagerConsturct = {\n config: Config,\n};\n\nconst hashCode = (payload) => {\n let hash = 0;\n if (payload.length === 0) return hash;\n for (let i = 0; i < payload.length; i += 1) {\n let character = payload.charCodeAt(i);\n hash = (hash << 5) - hash + character; // eslint-disable-line\n hash = hash & hash; // eslint-disable-line\n }\n return hash;\n};\n\nexport default class {\n _config: Config;\n hashHistory: Array;\n\n constructor({ config }: DedupingManagerConsturct) {\n this.hashHistory = [];\n this._config = config;\n }\n\n getKey(message: SubscribeMessage) {\n const hashedPayload = hashCode(JSON.stringify(message.payload)).toString();\n const timetoken = message.publishMetaData.publishTimetoken;\n return `${timetoken}-${hashedPayload}`;\n }\n\n isDuplicate(message: SubscribeMessage) {\n return this.hashHistory.includes(this.getKey(message));\n }\n\n addEntry(message: SubscribeMessage) {\n if (this.hashHistory.length >= this._config.maximumCacheSize) {\n this.hashHistory.shift();\n }\n\n this.hashHistory.push(this.getKey(message));\n }\n\n clearHistory() {\n this.hashHistory = [];\n }\n}\n"],"file":"deduping_manager.js"} \ No newline at end of file +{"version":3,"sources":["core/components/deduping_manager.js"],"names":["hashCode","payload","hash","length","i","character","charCodeAt","config","hashHistory","_config","message","hashedPayload","JSON","stringify","toString","timetoken","publishMetaData","publishTimetoken","includes","getKey","maximumCacheSize","shift","push"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAMA,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,OAAD,EAAa;AAC5B,MAAIC,IAAI,GAAG,CAAX;AACA,MAAID,OAAO,CAACE,MAAR,KAAmB,CAAvB,EAA0B,OAAOD,IAAP;;AAC1B,OAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,OAAO,CAACE,MAA5B,EAAoCC,CAAC,IAAI,CAAzC,EAA4C;AAC1C,QAAIC,SAAS,GAAGJ,OAAO,CAACK,UAAR,CAAmBF,CAAnB,CAAhB;AACAF,IAAAA,IAAI,GAAG,CAACA,IAAI,IAAI,CAAT,IAAcA,IAAd,GAAqBG,SAA5B;AACAH,IAAAA,IAAI,GAAGA,IAAI,GAAGA,IAAd;AACD;;AACD,SAAOA,IAAP;AACD,CATD;;;AAeE,0BAAkD;AAAA,QAApCK,MAAoC,QAApCA,MAAoC;AAAA;AAAA;AAAA;AAChD,SAAKC,WAAL,GAAmB,EAAnB;AACA,SAAKC,OAAL,GAAeF,MAAf;AACD;;;;2BAEMG,O,EAA2B;AAChC,UAAMC,aAAa,GAAGX,QAAQ,CAACY,IAAI,CAACC,SAAL,CAAeH,OAAO,CAACT,OAAvB,CAAD,CAAR,CAA0Ca,QAA1C,EAAtB;AACA,UAAMC,SAAS,GAAGL,OAAO,CAACM,eAAR,CAAwBC,gBAA1C;AACA,uBAAUF,SAAV,cAAuBJ,aAAvB;AACD;;;gCAEWD,O,EAA2B;AACrC,aAAO,KAAKF,WAAL,CAAiBU,QAAjB,CAA0B,KAAKC,MAAL,CAAYT,OAAZ,CAA1B,CAAP;AACD;;;6BAEQA,O,EAA2B;AAClC,UAAI,KAAKF,WAAL,CAAiBL,MAAjB,IAA2B,KAAKM,OAAL,CAAaW,gBAA5C,EAA8D;AAC5D,aAAKZ,WAAL,CAAiBa,KAAjB;AACD;;AAED,WAAKb,WAAL,CAAiBc,IAAjB,CAAsB,KAAKH,MAAL,CAAYT,OAAZ,CAAtB;AACD;;;mCAEc;AACb,WAAKF,WAAL,GAAmB,EAAnB;AACD","sourcesContent":["/* @flow */\n\nimport Config from '../components/config';\nimport { SubscribeMessage } from '../flow_interfaces';\n\ntype DedupingManagerConsturct = {\n config: Config,\n};\n\nconst hashCode = (payload) => {\n let hash = 0;\n if (payload.length === 0) return hash;\n for (let i = 0; i < payload.length; i += 1) {\n let character = payload.charCodeAt(i);\n hash = (hash << 5) - hash + character; // eslint-disable-line\n hash = hash & hash; // eslint-disable-line\n }\n return hash;\n};\n\nexport default class {\n _config: Config;\n hashHistory: Array;\n\n constructor({ config }: DedupingManagerConsturct) {\n this.hashHistory = [];\n this._config = config;\n }\n\n getKey(message: SubscribeMessage) {\n const hashedPayload = hashCode(JSON.stringify(message.payload)).toString();\n const timetoken = message.publishMetaData.publishTimetoken;\n return `${timetoken}-${hashedPayload}`;\n }\n\n isDuplicate(message: SubscribeMessage) {\n return this.hashHistory.includes(this.getKey(message));\n }\n\n addEntry(message: SubscribeMessage) {\n if (this.hashHistory.length >= this._config.maximumCacheSize) {\n this.hashHistory.shift();\n }\n\n this.hashHistory.push(this.getKey(message));\n }\n\n clearHistory() {\n this.hashHistory = [];\n }\n}\n"],"file":"deduping_manager.js"} \ No newline at end of file diff --git a/lib/core/components/endpoint.js b/lib/core/components/endpoint.js index cb44e17c6..057e27b97 100644 --- a/lib/core/components/endpoint.js +++ b/lib/core/components/endpoint.js @@ -1,59 +1,48 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); +exports.createValidationError = createValidationError; exports["default"] = _default; +exports.PubNubError = void 0; -var _uuid = _interopRequireDefault(require("./uuid")); - -var _flow_interfaces = require("../flow_interfaces"); - -var _utils = _interopRequireDefault(require("../utils")); - -var _config = _interopRequireDefault(require("./config")); - -var _operations = _interopRequireDefault(require("../constants/operations")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -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); } +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); -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); } +var _uuid = _interopRequireDefault(require("./uuid")); -function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } +var _flow_interfaces = require("../flow_interfaces"); -function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } +var _utils = _interopRequireDefault(require("../utils")); -function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); } +var _config = _interopRequireDefault(require("./config")); -function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; } +var _operations = _interopRequireDefault(require("../constants/operations")); -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var PubNubError = function (_Error) { - _inherits(PubNubError, _Error); + (0, _inherits2["default"])(PubNubError, _Error); function PubNubError(message, status) { var _this; - _classCallCheck(this, PubNubError); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(PubNubError).call(this, message)); + (0, _classCallCheck2["default"])(this, PubNubError); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PubNubError).call(this, message)); _this.name = _this.constructor.name; _this.status = status; _this.message = message; @@ -61,7 +50,9 @@ var PubNubError = function (_Error) { } return PubNubError; -}(_wrapNativeSuper(Error)); +}((0, _wrapNativeSuper2["default"])(Error)); + +exports.PubNubError = PubNubError; function createError(errorPayload, type) { errorPayload.type = type; @@ -203,7 +194,9 @@ function _default(modules, endpoint) { url: url, operation: endpoint.getOperation(), timeout: endpoint.getRequestTimeout(modules), - headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {} + headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {}, + ignoreBody: typeof endpoint.ignoreBody === 'function' ? endpoint.ignoreBody(modules) : false, + forceBuffered: typeof endpoint.forceBuffered === 'function' ? endpoint.forceBuffered(modules, incomingParams) : null }; outgoingParams.uuid = config.UUID; outgoingParams.pnsdk = generatePNSDK(config); @@ -246,13 +239,25 @@ function _default(modules, endpoint) { } telemetryManager.stopLatencyMeasure(endpoint.getOperation(), requestId); - var parsedPayload = endpoint.handleResponse(modules, payload, incomingParams); + var responseP = endpoint.handleResponse(modules, payload, incomingParams); - if (callback) { - callback(status, parsedPayload); - } else if (promiseComponent) { - promiseComponent.fulfill(parsedPayload); + if (typeof responseP.then !== 'function') { + responseP = Promise.resolve(responseP); } + + responseP.then(function (result) { + if (callback) { + callback(status, result); + } else if (promiseComponent) { + promiseComponent.fulfill(result); + } + })["catch"](function (e) { + if (callback) { + callback(e, null); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', e)); + } + }); }; telemetryManager.startLatencyMeasure(endpoint.getOperation(), requestId); @@ -278,6 +283,4 @@ function _default(modules, endpoint) { return promiseComponent.promise; } } - -module.exports = exports.default; //# sourceMappingURL=endpoint.js.map diff --git a/lib/core/components/endpoint.js.map b/lib/core/components/endpoint.js.map index 6a5bfddfd..496f265ee 100644 --- a/lib/core/components/endpoint.js.map +++ b/lib/core/components/endpoint.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/endpoint.js"],"names":["PubNubError","message","status","name","constructor","Error","createError","errorPayload","type","error","createValidationError","decideURL","endpoint","modules","incomingParams","usePost","postURL","usePatch","patchURL","getURL","getAuthToken","token","generatePNSDK","config","sdkName","base","sdkFamily","partnerId","getVersion","pnsdkSuffix","_getPnsdkSuffix","length","getHttpMethod","useDelete","signRequest","url","outgoingParams","crypto","httpMethod","timestamp","Math","floor","Date","getTime","signInput","publishKey","utils","signPamFromParams","payload","postPayload","JSON","stringify","patchPayload","signature","HMACSHA256","replace","networking","telemetryManager","requestId","uuidGenerator","createUUID","callback","promiseComponent","getOperation","operationConstants","PNTimeOperation","PNChannelGroupsOperation","Promise","createPromise","validationResult","validateParams","reject","promise","prepareParams","callInstance","networkingParams","operation","timeout","getRequestTimeout","headers","getRequestHeaders","uuid","UUID","pnsdk","telemetryLatencies","operationsLatencyForRequest","Object","keys","useInstanceId","instanceid","instanceId","useRequestId","requestid","isAuthSupported","tokenOrKey","getAuthKey","auth","secretKey","onResponse","stopLatencyMeasure","parsedPayload","handleResponse","fulfill","startLatencyMeasure","POST","PATCH","DELETE","GET","PNSubscribeOperation"],"mappings":"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","sourcesContent":["import uuidGenerator from './uuid';\nimport { StatusAnnouncement } from '../flow_interfaces';\nimport utils from '../utils';\nimport Config from './config';\nimport operationConstants from '../constants/operations';\n\nclass PubNubError extends Error {\n constructor(message, status) {\n super(message);\n this.name = this.constructor.name;\n this.status = status;\n this.message = message;\n }\n}\n\nfunction createError(errorPayload: Object, type: string): Object {\n errorPayload.type = type;\n errorPayload.error = true;\n return errorPayload;\n}\n\nfunction createValidationError(message: string): Object {\n return createError({ message }, 'validationError');\n}\n\nfunction decideURL(endpoint, modules, incomingParams) {\n if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) {\n return endpoint.postURL(modules, incomingParams);\n } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) {\n return endpoint.patchURL(modules, incomingParams);\n } else {\n return endpoint.getURL(modules, incomingParams);\n }\n}\n\nfunction getAuthToken(endpoint, modules, incomingParams) {\n let token;\n\n if (endpoint.getAuthToken) {\n token = endpoint.getAuthToken(modules, incomingParams);\n }\n\n return token;\n}\n\nfunction generatePNSDK(config: Config): string {\n if (config.sdkName) {\n return config.sdkName;\n }\n\n let base = `PubNub-JS-${config.sdkFamily}`;\n\n if (config.partnerId) {\n base += `-${config.partnerId}`;\n }\n\n base += `/${config.getVersion()}`;\n\n let pnsdkSuffix = config._getPnsdkSuffix(' ');\n\n if (pnsdkSuffix.length > 0) {\n base += pnsdkSuffix;\n }\n\n return base;\n}\n\nfunction getHttpMethod(modules, endpoint, incomingParams) {\n if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) {\n return 'POST';\n } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) {\n return 'PATCH';\n } else if (endpoint.useDelete && endpoint.useDelete(modules, incomingParams)) {\n return 'DELETE';\n } else {\n return 'GET';\n }\n}\n\nfunction signRequest(modules, url, outgoingParams, incomingParams, endpoint) {\n let { config, crypto } = modules;\n\n let httpMethod = getHttpMethod(modules, endpoint, incomingParams);\n\n outgoingParams.timestamp = Math.floor(new Date().getTime() / 1000);\n let signInput = `${httpMethod}\\n${config.publishKey}\\n${url}\\n${utils.signPamFromParams(outgoingParams)}\\n`;\n\n if (httpMethod === 'POST') {\n let payload = endpoint.postPayload(modules, incomingParams);\n if (typeof payload === 'string') {\n signInput += payload;\n } else {\n signInput += JSON.stringify(payload);\n }\n } else if (httpMethod === 'PATCH') {\n let payload = endpoint.patchPayload(modules, incomingParams);\n if (typeof payload === 'string') {\n signInput += payload;\n } else {\n signInput += JSON.stringify(payload);\n }\n }\n\n let signature = `v2.${crypto.HMACSHA256(signInput)}`;\n signature = signature.replace(/\\+/g, '-');\n signature = signature.replace(/\\//g, '_');\n signature = signature.replace(/=+$/, '');\n\n outgoingParams.signature = signature;\n}\n\nexport default function(modules, endpoint, ...args) {\n let { networking, config, telemetryManager } = modules;\n const requestId = uuidGenerator.createUUID();\n let callback = null;\n let promiseComponent = null;\n let incomingParams = {};\n\n if (endpoint.getOperation() === operationConstants.PNTimeOperation || endpoint.getOperation() === operationConstants.PNChannelGroupsOperation) {\n callback = args[0];\n } else {\n incomingParams = args[0];\n callback = args[1];\n }\n\n // bridge in Promise support.\n if (typeof Promise !== 'undefined' && !callback) {\n promiseComponent = utils.createPromise();\n }\n\n let validationResult = endpoint.validateParams(modules, incomingParams);\n\n if (validationResult) {\n if (callback) {\n return callback(createValidationError(validationResult));\n } else if (promiseComponent) {\n promiseComponent.reject(new PubNubError('Validation failed, check status for details', createValidationError(validationResult)));\n return promiseComponent.promise;\n }\n return;\n }\n\n let outgoingParams = endpoint.prepareParams(modules, incomingParams);\n let url = decideURL(endpoint, modules, incomingParams);\n let callInstance;\n let networkingParams = { url,\n operation: endpoint.getOperation(),\n timeout: endpoint.getRequestTimeout(modules),\n headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {}\n };\n\n outgoingParams.uuid = config.UUID;\n outgoingParams.pnsdk = generatePNSDK(config);\n\n // Add telemetry information (if there is any available).\n const telemetryLatencies = telemetryManager.operationsLatencyForRequest();\n if (Object.keys(telemetryLatencies).length) {\n outgoingParams = { ...outgoingParams, ...telemetryLatencies };\n }\n\n if (config.useInstanceId) {\n outgoingParams.instanceid = config.instanceId;\n }\n\n if (config.useRequestId) {\n outgoingParams.requestid = requestId;\n }\n\n if (endpoint.isAuthSupported()) {\n let token = getAuthToken(endpoint, modules, incomingParams);\n let tokenOrKey = token || config.getAuthKey();\n\n if (tokenOrKey) {\n outgoingParams.auth = tokenOrKey;\n }\n }\n\n if (config.secretKey) {\n signRequest(modules, url, outgoingParams, incomingParams, endpoint);\n }\n\n let onResponse = (status: StatusAnnouncement, payload: Object) => {\n if (status.error) {\n if (callback) {\n callback(status);\n } else if (promiseComponent) {\n promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', status));\n }\n return;\n }\n\n // Stop endpoint latency tracking.\n telemetryManager.stopLatencyMeasure(endpoint.getOperation(), requestId);\n\n let parsedPayload = endpoint.handleResponse(modules, payload, incomingParams);\n\n if (callback) {\n callback(status, parsedPayload);\n } else if (promiseComponent) {\n promiseComponent.fulfill(parsedPayload);\n }\n };\n\n // Start endpoint latency tracking.\n telemetryManager.startLatencyMeasure(endpoint.getOperation(), requestId);\n\n if (getHttpMethod(modules, endpoint, incomingParams) === 'POST') {\n let payload = endpoint.postPayload(modules, incomingParams);\n callInstance = networking.POST(outgoingParams, payload, networkingParams, onResponse);\n } else if (getHttpMethod(modules, endpoint, incomingParams) === 'PATCH') {\n let payload = endpoint.patchPayload(modules, incomingParams);\n callInstance = networking.PATCH(outgoingParams, payload, networkingParams, onResponse);\n } else if (getHttpMethod(modules, endpoint, incomingParams) === 'DELETE') {\n callInstance = networking.DELETE(outgoingParams, networkingParams, onResponse);\n } else {\n callInstance = networking.GET(outgoingParams, networkingParams, onResponse);\n }\n\n if (endpoint.getOperation() === operationConstants.PNSubscribeOperation) {\n return callInstance;\n }\n\n if (promiseComponent) {\n return promiseComponent.promise;\n }\n}\n"],"file":"endpoint.js"} \ No newline at end of file +{"version":3,"sources":["core/components/endpoint.js"],"names":["PubNubError","message","status","name","constructor","Error","createError","errorPayload","type","error","createValidationError","decideURL","endpoint","modules","incomingParams","usePost","postURL","usePatch","patchURL","getURL","getAuthToken","token","generatePNSDK","config","sdkName","base","sdkFamily","partnerId","getVersion","pnsdkSuffix","_getPnsdkSuffix","length","getHttpMethod","useDelete","signRequest","url","outgoingParams","crypto","httpMethod","timestamp","Math","floor","Date","getTime","signInput","publishKey","utils","signPamFromParams","payload","postPayload","JSON","stringify","patchPayload","signature","HMACSHA256","replace","networking","telemetryManager","requestId","uuidGenerator","createUUID","callback","promiseComponent","getOperation","operationConstants","PNTimeOperation","PNChannelGroupsOperation","Promise","createPromise","validationResult","validateParams","reject","promise","prepareParams","callInstance","networkingParams","operation","timeout","getRequestTimeout","headers","getRequestHeaders","ignoreBody","forceBuffered","uuid","UUID","pnsdk","telemetryLatencies","operationsLatencyForRequest","Object","keys","useInstanceId","instanceid","instanceId","useRequestId","requestid","isAuthSupported","tokenOrKey","getAuthKey","auth","secretKey","onResponse","stopLatencyMeasure","responseP","handleResponse","then","resolve","result","fulfill","e","startLatencyMeasure","POST","PATCH","DELETE","GET","PNSubscribeOperation"],"mappings":"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","sourcesContent":["import uuidGenerator from './uuid';\nimport { StatusAnnouncement } from '../flow_interfaces';\nimport utils from '../utils';\nimport Config from './config';\nimport operationConstants from '../constants/operations';\n\nexport class PubNubError extends Error {\n constructor(message, status) {\n super(message);\n this.name = this.constructor.name;\n this.status = status;\n this.message = message;\n }\n}\n\nfunction createError(errorPayload: Object, type: string): Object {\n errorPayload.type = type;\n errorPayload.error = true;\n return errorPayload;\n}\n\nexport function createValidationError(message: string): Object {\n return createError({ message }, 'validationError');\n}\n\nfunction decideURL(endpoint, modules, incomingParams) {\n if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) {\n return endpoint.postURL(modules, incomingParams);\n } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) {\n return endpoint.patchURL(modules, incomingParams);\n } else {\n return endpoint.getURL(modules, incomingParams);\n }\n}\n\nfunction getAuthToken(endpoint, modules, incomingParams) {\n let token;\n\n if (endpoint.getAuthToken) {\n token = endpoint.getAuthToken(modules, incomingParams);\n }\n\n return token;\n}\n\nfunction generatePNSDK(config: Config): string {\n if (config.sdkName) {\n return config.sdkName;\n }\n\n let base = `PubNub-JS-${config.sdkFamily}`;\n\n if (config.partnerId) {\n base += `-${config.partnerId}`;\n }\n\n base += `/${config.getVersion()}`;\n\n let pnsdkSuffix = config._getPnsdkSuffix(' ');\n\n if (pnsdkSuffix.length > 0) {\n base += pnsdkSuffix;\n }\n\n return base;\n}\n\nfunction getHttpMethod(modules, endpoint, incomingParams) {\n if (endpoint.usePost && endpoint.usePost(modules, incomingParams)) {\n return 'POST';\n } else if (endpoint.usePatch && endpoint.usePatch(modules, incomingParams)) {\n return 'PATCH';\n } else if (endpoint.useDelete && endpoint.useDelete(modules, incomingParams)) {\n return 'DELETE';\n } else {\n return 'GET';\n }\n}\n\nfunction signRequest(modules, url, outgoingParams, incomingParams, endpoint) {\n let { config, crypto } = modules;\n\n let httpMethod = getHttpMethod(modules, endpoint, incomingParams);\n\n outgoingParams.timestamp = Math.floor(new Date().getTime() / 1000);\n let signInput = `${httpMethod}\\n${config.publishKey}\\n${url}\\n${utils.signPamFromParams(outgoingParams)}\\n`;\n\n if (httpMethod === 'POST') {\n let payload = endpoint.postPayload(modules, incomingParams);\n if (typeof payload === 'string') {\n signInput += payload;\n } else {\n signInput += JSON.stringify(payload);\n }\n } else if (httpMethod === 'PATCH') {\n let payload = endpoint.patchPayload(modules, incomingParams);\n if (typeof payload === 'string') {\n signInput += payload;\n } else {\n signInput += JSON.stringify(payload);\n }\n }\n\n let signature = `v2.${crypto.HMACSHA256(signInput)}`;\n signature = signature.replace(/\\+/g, '-');\n signature = signature.replace(/\\//g, '_');\n signature = signature.replace(/=+$/, '');\n\n outgoingParams.signature = signature;\n}\n\nexport default function (modules, endpoint, ...args) {\n let { networking, config, telemetryManager } = modules;\n const requestId = uuidGenerator.createUUID();\n let callback = null;\n let promiseComponent = null;\n let incomingParams = {};\n\n if (\n endpoint.getOperation() === operationConstants.PNTimeOperation ||\n endpoint.getOperation() === operationConstants.PNChannelGroupsOperation\n ) {\n callback = args[0];\n } else {\n incomingParams = args[0];\n callback = args[1];\n }\n\n // bridge in Promise support.\n if (typeof Promise !== 'undefined' && !callback) {\n promiseComponent = utils.createPromise();\n }\n\n let validationResult = endpoint.validateParams(modules, incomingParams);\n\n if (validationResult) {\n if (callback) {\n return callback(createValidationError(validationResult));\n } else if (promiseComponent) {\n promiseComponent.reject(\n new PubNubError('Validation failed, check status for details', createValidationError(validationResult))\n );\n return promiseComponent.promise;\n }\n return;\n }\n\n let outgoingParams = endpoint.prepareParams(modules, incomingParams);\n let url = decideURL(endpoint, modules, incomingParams);\n let callInstance;\n let networkingParams = {\n url,\n operation: endpoint.getOperation(),\n timeout: endpoint.getRequestTimeout(modules),\n headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {},\n ignoreBody: typeof endpoint.ignoreBody === 'function' ? endpoint.ignoreBody(modules) : false,\n forceBuffered:\n typeof endpoint.forceBuffered === 'function' ? endpoint.forceBuffered(modules, incomingParams) : null,\n };\n\n outgoingParams.uuid = config.UUID;\n outgoingParams.pnsdk = generatePNSDK(config);\n\n // Add telemetry information (if there is any available).\n const telemetryLatencies = telemetryManager.operationsLatencyForRequest();\n if (Object.keys(telemetryLatencies).length) {\n outgoingParams = { ...outgoingParams, ...telemetryLatencies };\n }\n\n if (config.useInstanceId) {\n outgoingParams.instanceid = config.instanceId;\n }\n\n if (config.useRequestId) {\n outgoingParams.requestid = requestId;\n }\n\n if (endpoint.isAuthSupported()) {\n let token = getAuthToken(endpoint, modules, incomingParams);\n let tokenOrKey = token || config.getAuthKey();\n\n if (tokenOrKey) {\n outgoingParams.auth = tokenOrKey;\n }\n }\n\n if (config.secretKey) {\n signRequest(modules, url, outgoingParams, incomingParams, endpoint);\n }\n\n let onResponse = (status: StatusAnnouncement, payload: Object) => {\n if (status.error) {\n if (callback) {\n callback(status);\n } else if (promiseComponent) {\n promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', status));\n }\n return;\n }\n\n // Stop endpoint latency tracking.\n telemetryManager.stopLatencyMeasure(endpoint.getOperation(), requestId);\n\n let responseP = endpoint.handleResponse(modules, payload, incomingParams);\n\n if (typeof responseP.then !== 'function') {\n responseP = Promise.resolve(responseP);\n }\n\n responseP\n .then((result) => {\n if (callback) {\n callback(status, result);\n } else if (promiseComponent) {\n promiseComponent.fulfill(result);\n }\n })\n .catch((e) => {\n if (callback) {\n callback(e, null);\n } else if (promiseComponent) {\n promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', e));\n }\n });\n };\n\n // Start endpoint latency tracking.\n telemetryManager.startLatencyMeasure(endpoint.getOperation(), requestId);\n\n if (getHttpMethod(modules, endpoint, incomingParams) === 'POST') {\n let payload = endpoint.postPayload(modules, incomingParams);\n callInstance = networking.POST(outgoingParams, payload, networkingParams, onResponse);\n } else if (getHttpMethod(modules, endpoint, incomingParams) === 'PATCH') {\n let payload = endpoint.patchPayload(modules, incomingParams);\n callInstance = networking.PATCH(outgoingParams, payload, networkingParams, onResponse);\n } else if (getHttpMethod(modules, endpoint, incomingParams) === 'DELETE') {\n callInstance = networking.DELETE(outgoingParams, networkingParams, onResponse);\n } else {\n callInstance = networking.GET(outgoingParams, networkingParams, onResponse);\n }\n\n if (endpoint.getOperation() === operationConstants.PNSubscribeOperation) {\n return callInstance;\n }\n\n if (promiseComponent) {\n return promiseComponent.promise;\n }\n}\n"],"file":"endpoint.js"} \ No newline at end of file diff --git a/lib/core/components/listener_manager.js b/lib/core/components/listener_manager.js index b1d4781ef..afbe90615 100644 --- a/lib/core/components/listener_manager.js +++ b/lib/core/components/listener_manager.js @@ -1,34 +1,30 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _flow_interfaces = require("../flow_interfaces"); - -var _categories = _interopRequireDefault(require("../constants/categories")); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -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, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _flow_interfaces = require("../flow_interfaces"); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _categories = _interopRequireDefault(require("../constants/categories")); var _default = function () { function _default() { - _classCallCheck(this, _default); - - _defineProperty(this, "_listeners", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_listeners", void 0); this._listeners = []; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "addListener", value: function addListener(newListeners) { this._listeners.push(newListeners); @@ -84,6 +80,13 @@ var _default = function () { if (listener.messageAction) listener.messageAction(announce); }); } + }, { + key: "announceFile", + value: function announceFile(announce) { + this._listeners.forEach(function (listener) { + if (listener.file) listener.file(announce); + }); + } }, { key: "announceObjects", value: function announceObjects(announce) { @@ -127,7 +130,6 @@ var _default = function () { this.announceStatus(networkStatus); } }]); - return _default; }(); diff --git a/lib/core/components/listener_manager.js.map b/lib/core/components/listener_manager.js.map index 0d269fa77..4c19c5c8c 100644 --- a/lib/core/components/listener_manager.js.map +++ b/lib/core/components/listener_manager.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/listener_manager.js"],"names":["_listeners","newListeners","push","deprecatedListener","forEach","listener","announce","presence","status","message","signal","messageAction","objects","user","space","membership","networkStatus","category","categoryConstants","PNNetworkUpCategory","announceStatus","PNNetworkDownCategory"],"mappings":";;;;;;;AACA;;AASA;;;;;;;;;;;;;AAKE,sBAAc;AAAA;;AAAA;;AACZ,SAAKA,UAAL,GAAkB,EAAlB;AACD;;;;gCAEWC,Y,EAA8B;AACxC,WAAKD,UAAL,CAAgBE,IAAhB,CAAqBD,YAArB;AACD;;;mCAEcE,kB,EAAoC;AACjD,UAAIF,YAAY,GAAG,EAAnB;;AAEA,WAAKD,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,KAAKF,kBAAjB,EAAqCF,YAAY,CAACC,IAAb,CAAkBG,QAAlB;AACtC,OAFD;;AAIA,WAAKL,UAAL,GAAkBC,YAAlB;AACD;;;yCAEoB;AACnB,WAAKD,UAAL,GAAkB,EAAlB;AACD;;;qCAEgBM,Q,EAAgC;AAC/C,WAAKN,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,CAACE,QAAb,EAAuBF,QAAQ,CAACE,QAAT,CAAkBD,QAAlB;AACxB,OAFD;AAGD;;;mCAEcA,Q,EAA8B;AAC3C,WAAKN,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,CAACG,MAAb,EAAqBH,QAAQ,CAACG,MAAT,CAAgBF,QAAhB;AACtB,OAFD;AAGD;;;oCAEeA,Q,EAA+B;AAC7C,WAAKN,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,CAACI,OAAb,EAAsBJ,QAAQ,CAACI,OAAT,CAAiBH,QAAjB;AACvB,OAFD;AAGD;;;mCAEcA,Q,EAA8B;AAC3C,WAAKN,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,CAACK,MAAb,EAAqBL,QAAQ,CAACK,MAAT,CAAgBJ,QAAhB;AACtB,OAFD;AAGD;;;0CAEqBA,Q,EAAqC;AACzD,WAAKN,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,CAACM,aAAb,EAA4BN,QAAQ,CAACM,aAAT,CAAuBL,QAAvB;AAC7B,OAFD;AAGD;;;oCAEeA,Q,EAA8B;AAC5C,WAAKN,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,CAACO,OAAb,EAAsBP,QAAQ,CAACO,OAAT,CAAiBN,QAAjB;AACvB,OAFD;AAGD;;;iCAEYA,Q,EAA8B;AACzC,WAAKN,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,CAACQ,IAAb,EAAmBR,QAAQ,CAACQ,IAAT,CAAcP,QAAd;AACpB,OAFD;AAGD;;;kCAEaA,Q,EAA8B;AAC1C,WAAKN,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,CAACS,KAAb,EAAoBT,QAAQ,CAACS,KAAT,CAAeR,QAAf;AACrB,OAFD;AAGD;;;uCAEkBA,Q,EAA8B;AAC/C,WAAKN,UAAL,CAAgBI,OAAhB,CAAwB,UAACC,QAAD,EAAc;AACpC,YAAIA,QAAQ,CAACU,UAAb,EAAyBV,QAAQ,CAACU,UAAT,CAAoBT,QAApB;AAC1B,OAFD;AAGD;;;wCAEmB;AAClB,UAAIU,aAAiC,GAAG,EAAxC;AACAA,MAAAA,aAAa,CAACC,QAAd,GAAyBC,uBAAkBC,mBAA3C;AACA,WAAKC,cAAL,CAAoBJ,aAApB;AACD;;;0CAEqB;AACpB,UAAIA,aAAiC,GAAG,EAAxC;AACAA,MAAAA,aAAa,CAACC,QAAd,GAAyBC,uBAAkBG,qBAA3C;AACA,WAAKD,cAAL,CAAoBJ,aAApB;AACD","sourcesContent":["/* @flow */\nimport {\n MessageAnnouncement,\n StatusAnnouncement,\n SignalAnnouncement,\n MessageActionAnnouncement,\n ObjectAnnouncement,\n CallbackStruct,\n PresenceAnnouncement,\n} from '../flow_interfaces';\nimport categoryConstants from '../constants/categories';\n\nexport default class {\n _listeners: Array;\n\n constructor() {\n this._listeners = [];\n }\n\n addListener(newListeners: CallbackStruct) {\n this._listeners.push(newListeners);\n }\n\n removeListener(deprecatedListener: CallbackStruct) {\n let newListeners = [];\n\n this._listeners.forEach((listener) => {\n if (listener !== deprecatedListener) newListeners.push(listener);\n });\n\n this._listeners = newListeners;\n }\n\n removeAllListeners() {\n this._listeners = [];\n }\n\n announcePresence(announce: PresenceAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.presence) listener.presence(announce);\n });\n }\n\n announceStatus(announce: StatusAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.status) listener.status(announce);\n });\n }\n\n announceMessage(announce: MessageAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.message) listener.message(announce);\n });\n }\n\n announceSignal(announce: SignalAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.signal) listener.signal(announce);\n });\n }\n\n announceMessageAction(announce: MessageActionAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.messageAction) listener.messageAction(announce);\n });\n }\n\n announceObjects(announce: ObjectAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.objects) listener.objects(announce);\n });\n }\n\n announceUser(announce: ObjectAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.user) listener.user(announce);\n });\n }\n\n announceSpace(announce: ObjectAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.space) listener.space(announce);\n });\n }\n\n announceMembership(announce: ObjectAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.membership) listener.membership(announce);\n });\n }\n\n announceNetworkUp() {\n let networkStatus: StatusAnnouncement = {};\n networkStatus.category = categoryConstants.PNNetworkUpCategory;\n this.announceStatus(networkStatus);\n }\n\n announceNetworkDown() {\n let networkStatus: StatusAnnouncement = {};\n networkStatus.category = categoryConstants.PNNetworkDownCategory;\n this.announceStatus(networkStatus);\n }\n}\n"],"file":"listener_manager.js"} \ No newline at end of file +{"version":3,"sources":["core/components/listener_manager.js"],"names":["_listeners","newListeners","push","deprecatedListener","forEach","listener","announce","presence","status","message","signal","messageAction","file","objects","user","space","membership","networkStatus","category","categoryConstants","PNNetworkUpCategory","announceStatus","PNNetworkDownCategory"],"mappings":"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","sourcesContent":["/* @flow */\nimport {\n MessageAnnouncement,\n StatusAnnouncement,\n SignalAnnouncement,\n MessageActionAnnouncement,\n ObjectAnnouncement,\n CallbackStruct,\n PresenceAnnouncement,\n FileAnnouncement\n} from '../flow_interfaces';\nimport categoryConstants from '../constants/categories';\n\nexport default class {\n _listeners: Array;\n\n constructor() {\n this._listeners = [];\n }\n\n addListener(newListeners: CallbackStruct) {\n this._listeners.push(newListeners);\n }\n\n removeListener(deprecatedListener: CallbackStruct) {\n let newListeners = [];\n\n this._listeners.forEach((listener) => {\n if (listener !== deprecatedListener) newListeners.push(listener);\n });\n\n this._listeners = newListeners;\n }\n\n removeAllListeners() {\n this._listeners = [];\n }\n\n announcePresence(announce: PresenceAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.presence) listener.presence(announce);\n });\n }\n\n announceStatus(announce: StatusAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.status) listener.status(announce);\n });\n }\n\n announceMessage(announce: MessageAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.message) listener.message(announce);\n });\n }\n\n announceSignal(announce: SignalAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.signal) listener.signal(announce);\n });\n }\n\n announceMessageAction(announce: MessageActionAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.messageAction) listener.messageAction(announce);\n });\n }\n\n announceFile(announce: FileAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.file) listener.file(announce);\n });\n }\n\n announceObjects(announce: ObjectAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.objects) listener.objects(announce);\n });\n }\n\n announceUser(announce: ObjectAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.user) listener.user(announce);\n });\n }\n\n announceSpace(announce: ObjectAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.space) listener.space(announce);\n });\n }\n\n announceMembership(announce: ObjectAnnouncement) {\n this._listeners.forEach((listener) => {\n if (listener.membership) listener.membership(announce);\n });\n }\n\n announceNetworkUp() {\n let networkStatus: StatusAnnouncement = {};\n networkStatus.category = categoryConstants.PNNetworkUpCategory;\n this.announceStatus(networkStatus);\n }\n\n announceNetworkDown() {\n let networkStatus: StatusAnnouncement = {};\n networkStatus.category = categoryConstants.PNNetworkDownCategory;\n this.announceStatus(networkStatus);\n }\n}\n"],"file":"listener_manager.js"} \ No newline at end of file diff --git a/lib/core/components/push_payload.js b/lib/core/components/push_payload.js index 141f810f9..90b81af31 100644 --- a/lib/core/components/push_payload.js +++ b/lib/core/components/push_payload.js @@ -1,42 +1,36 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.FCMNotificationPayload = exports.MPNSNotificationPayload = exports.APNSNotificationPayload = void 0; -var _flow_interfaces = require("../flow_interfaces"); - -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 _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(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } +var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } +var _getPrototypeOf5 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); -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); } +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -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, descriptor.key, descriptor); } } +var _flow_interfaces = require("../flow_interfaces"); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var BaseNotificationPayload = function () { - _createClass(BaseNotificationPayload, [{ + (0, _createClass2["default"])(BaseNotificationPayload, [{ key: "payload", get: function get() { return this._payload; @@ -69,20 +63,13 @@ var BaseNotificationPayload = function () { }]); function BaseNotificationPayload(payload, title, body) { - _classCallCheck(this, BaseNotificationPayload); - - _defineProperty(this, "_subtitle", void 0); - - _defineProperty(this, "_payload", void 0); - - _defineProperty(this, "_badge", void 0); - - _defineProperty(this, "_sound", void 0); - - _defineProperty(this, "_title", void 0); - - _defineProperty(this, "_body", void 0); - + (0, _classCallCheck2["default"])(this, BaseNotificationPayload); + (0, _defineProperty2["default"])(this, "_subtitle", void 0); + (0, _defineProperty2["default"])(this, "_payload", void 0); + (0, _defineProperty2["default"])(this, "_badge", void 0); + (0, _defineProperty2["default"])(this, "_sound", void 0); + (0, _defineProperty2["default"])(this, "_title", void 0); + (0, _defineProperty2["default"])(this, "_body", void 0); this._payload = payload; this._setDefaultPayloadStructure(); @@ -91,7 +78,7 @@ var BaseNotificationPayload = function () { this.body = body; } - _createClass(BaseNotificationPayload, [{ + (0, _createClass2["default"])(BaseNotificationPayload, [{ key: "_setDefaultPayloadStructure", value: function _setDefaultPayloadStructure() {} }, { @@ -100,36 +87,31 @@ var BaseNotificationPayload = function () { return {}; } }]); - return BaseNotificationPayload; }(); var APNSNotificationPayload = function (_BaseNotificationPayl) { - _inherits(APNSNotificationPayload, _BaseNotificationPayl); + (0, _inherits2["default"])(APNSNotificationPayload, _BaseNotificationPayl); function APNSNotificationPayload() { var _getPrototypeOf2; var _this; - _classCallCheck(this, APNSNotificationPayload); + (0, _classCallCheck2["default"])(this, APNSNotificationPayload); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } - _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(APNSNotificationPayload)).call.apply(_getPrototypeOf2, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this), "_configurations", void 0); - - _defineProperty(_assertThisInitialized(_this), "_apnsPushType", void 0); - - _defineProperty(_assertThisInitialized(_this), "_isSilent", void 0); - + _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf5["default"])(APNSNotificationPayload)).call.apply(_getPrototypeOf2, [this].concat(args))); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_configurations", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_apnsPushType", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_isSilent", void 0); return _this; } - _createClass(APNSNotificationPayload, [{ + (0, _createClass2["default"])(APNSNotificationPayload, [{ key: "_setDefaultPayloadStructure", value: function _setDefaultPayloadStructure() { this._payload.aps = { @@ -300,40 +282,34 @@ var APNSNotificationPayload = function (_BaseNotificationPayl) { this._isSilent = value; } }]); - return APNSNotificationPayload; }(BaseNotificationPayload); exports.APNSNotificationPayload = APNSNotificationPayload; var MPNSNotificationPayload = function (_BaseNotificationPayl2) { - _inherits(MPNSNotificationPayload, _BaseNotificationPayl2); + (0, _inherits2["default"])(MPNSNotificationPayload, _BaseNotificationPayl2); function MPNSNotificationPayload() { var _getPrototypeOf3; var _this4; - _classCallCheck(this, MPNSNotificationPayload); + (0, _classCallCheck2["default"])(this, MPNSNotificationPayload); for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } - _this4 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(MPNSNotificationPayload)).call.apply(_getPrototypeOf3, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this4), "_backContent", void 0); - - _defineProperty(_assertThisInitialized(_this4), "_backTitle", void 0); - - _defineProperty(_assertThisInitialized(_this4), "_count", void 0); - - _defineProperty(_assertThisInitialized(_this4), "_type", void 0); - + _this4 = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf3 = (0, _getPrototypeOf5["default"])(MPNSNotificationPayload)).call.apply(_getPrototypeOf3, [this].concat(args))); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_backContent", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_backTitle", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_count", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this4), "_type", void 0); return _this4; } - _createClass(MPNSNotificationPayload, [{ + (0, _createClass2["default"])(MPNSNotificationPayload, [{ key: "toObject", value: function toObject() { return Object.keys(this._payload).length ? _objectSpread({}, this._payload) : null; @@ -413,38 +389,33 @@ var MPNSNotificationPayload = function (_BaseNotificationPayl2) { this.count = value; } }]); - return MPNSNotificationPayload; }(BaseNotificationPayload); exports.MPNSNotificationPayload = MPNSNotificationPayload; var FCMNotificationPayload = function (_BaseNotificationPayl3) { - _inherits(FCMNotificationPayload, _BaseNotificationPayl3); + (0, _inherits2["default"])(FCMNotificationPayload, _BaseNotificationPayl3); function FCMNotificationPayload() { var _getPrototypeOf4; var _this5; - _classCallCheck(this, FCMNotificationPayload); + (0, _classCallCheck2["default"])(this, FCMNotificationPayload); for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } - _this5 = _possibleConstructorReturn(this, (_getPrototypeOf4 = _getPrototypeOf(FCMNotificationPayload)).call.apply(_getPrototypeOf4, [this].concat(args))); - - _defineProperty(_assertThisInitialized(_this5), "_isSilent", void 0); - - _defineProperty(_assertThisInitialized(_this5), "_icon", void 0); - - _defineProperty(_assertThisInitialized(_this5), "_tag", void 0); - + _this5 = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf4 = (0, _getPrototypeOf5["default"])(FCMNotificationPayload)).call.apply(_getPrototypeOf4, [this].concat(args))); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "_isSilent", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "_icon", void 0); + (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this5), "_tag", void 0); return _this5; } - _createClass(FCMNotificationPayload, [{ + (0, _createClass2["default"])(FCMNotificationPayload, [{ key: "_setDefaultPayloadStructure", value: function _setDefaultPayloadStructure() { this._payload.notification = {}; @@ -462,8 +433,7 @@ var FCMNotificationPayload = function (_BaseNotificationPayl3) { var _this$_payload = this._payload, initialNotification = _this$_payload.notification, initialData = _this$_payload.data, - additionalData = _objectWithoutProperties(_this$_payload, ["notification", "data"]); - + additionalData = (0, _objectWithoutProperties2["default"])(_this$_payload, ["notification", "data"]); data = _objectSpread({}, data, {}, additionalData); } @@ -549,14 +519,13 @@ var FCMNotificationPayload = function (_BaseNotificationPayl3) { this._isSilent = value; } }]); - return FCMNotificationPayload; }(BaseNotificationPayload); exports.FCMNotificationPayload = FCMNotificationPayload; var NotificationsPayload = function () { - _createClass(NotificationsPayload, [{ + (0, _createClass2["default"])(NotificationsPayload, [{ key: "debugging", set: function set(value) { this._debugging = value; @@ -607,28 +576,17 @@ var NotificationsPayload = function () { }]); function NotificationsPayload(title, body) { - _classCallCheck(this, NotificationsPayload); - - _defineProperty(this, "_payload", void 0); - - _defineProperty(this, "_debugging", void 0); - - _defineProperty(this, "_subtitle", void 0); - - _defineProperty(this, "_badge", void 0); - - _defineProperty(this, "_sound", void 0); - - _defineProperty(this, "_title", void 0); - - _defineProperty(this, "_body", void 0); - - _defineProperty(this, "apns", void 0); - - _defineProperty(this, "mpns", void 0); - - _defineProperty(this, "fcm", void 0); - + (0, _classCallCheck2["default"])(this, NotificationsPayload); + (0, _defineProperty2["default"])(this, "_payload", void 0); + (0, _defineProperty2["default"])(this, "_debugging", void 0); + (0, _defineProperty2["default"])(this, "_subtitle", void 0); + (0, _defineProperty2["default"])(this, "_badge", void 0); + (0, _defineProperty2["default"])(this, "_sound", void 0); + (0, _defineProperty2["default"])(this, "_title", void 0); + (0, _defineProperty2["default"])(this, "_body", void 0); + (0, _defineProperty2["default"])(this, "apns", void 0); + (0, _defineProperty2["default"])(this, "mpns", void 0); + (0, _defineProperty2["default"])(this, "fcm", void 0); this._payload = { apns: {}, mpns: {}, @@ -641,7 +599,7 @@ var NotificationsPayload = function () { this.fcm = new FCMNotificationPayload(this._payload.fcm, title, body); } - _createClass(NotificationsPayload, [{ + (0, _createClass2["default"])(NotificationsPayload, [{ key: "buildPayload", value: function buildPayload(platforms) { var payload = {}; @@ -678,7 +636,6 @@ var NotificationsPayload = function () { return payload; } }]); - return NotificationsPayload; }(); diff --git a/lib/core/components/push_payload.js.map b/lib/core/components/push_payload.js.map index 12c43f620..dddba6b4d 100644 --- a/lib/core/components/push_payload.js.map +++ b/lib/core/components/push_payload.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/push_payload.js"],"names":["BaseNotificationPayload","_payload","value","_title","_subtitle","_body","_badge","_sound","payload","title","body","_setDefaultPayloadStructure","APNSNotificationPayload","aps","alert","_isSilent","_apnsPushType","_configurations","length","ReferenceError","configurations","forEach","configuration","push","_objectFromAPNS2Configuration","pn_push","Object","keys","badge","sound","targets","target","_objectFromAPNSTarget","collapseId","expirationDate","objectifiedConfiguration","auth_method","version","collapse_id","expiration","toISOString","topic","TypeError","environment","excludedDevices","objectifiedTarget","excluded_devices","subtitle","undefined","MPNSNotificationPayload","_backContent","back_content","_backTitle","back_title","_count","count","_type","type","backTitle","backContent","FCMNotificationPayload","notification","data","initialNotification","initialData","additionalData","_icon","icon","_tag","tag","NotificationsPayload","_debugging","apns","mpns","fcm","platforms","includes","apnsPayload","toObject","pn_apns","mpnsPayload","pn_mpns","fcmPayload","pn_gcm","pn_debug"],"mappings":"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","sourcesContent":["/* @flow */\n/* eslint max-classes-per-file: [\"error\", 5] */\nimport { APNS2Configuration, APNS2Target } from '../flow_interfaces';\n\nclass BaseNotificationPayload {\n _subtitle: ?string;\n _payload: Object;\n _badge: ?number;\n _sound: ?string;\n _title: ?string;\n _body: ?string;\n\n get payload() {\n return this._payload;\n }\n\n set title(value: ?string) {\n this._title = value;\n }\n\n set subtitle(value: ?string) {\n this._subtitle = value;\n }\n\n set body(value: ?string) {\n this._body = value;\n }\n\n set badge(value: ?number) {\n this._badge = value;\n }\n\n set sound(value: ?string) {\n this._sound = value;\n }\n\n constructor(payload: Object, title: ?string, body: ?string) {\n this._payload = payload;\n\n this._setDefaultPayloadStructure();\n this.title = title;\n this.body = body;\n }\n\n _setDefaultPayloadStructure() {\n }\n\n toObject() {\n return {};\n }\n}\n\nexport class APNSNotificationPayload extends BaseNotificationPayload {\n _configurations: Array;\n _apnsPushType: ?string;\n _isSilent: boolean;\n\n set configurations(value: Array) {\n if (!value || !value.length) return;\n\n this._configurations = value;\n }\n\n get notification() {\n return this._payload.aps;\n }\n\n get title() {\n return this._title;\n }\n\n set title(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.aps.alert.title = value;\n this._title = value;\n }\n\n get subtitle() {\n return this._subtitle;\n }\n\n set subtitle(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.aps.alert.subtitle = value;\n this._subtitle = value;\n }\n\n get body() {\n return this._body;\n }\n\n set body(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.aps.alert.body = value;\n this._body = value;\n }\n\n get badge() {\n return this._badge;\n }\n\n set badge(value: ?number) {\n if (value === undefined || value === null) return;\n\n this._payload.aps.badge = value;\n this._badge = value;\n }\n\n get sound() {\n return this._sound;\n }\n\n set sound(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.aps.sound = value;\n this._sound = value;\n }\n\n set silent(value: boolean) {\n this._isSilent = value;\n }\n\n _setDefaultPayloadStructure() {\n this._payload.aps = { alert: {} };\n }\n\n toObject(): ?Object {\n let payload = { ...this._payload };\n /** @type {{alert: Object, badge: number, sound: string}} */\n let aps = payload.aps;\n let alert = aps.alert;\n\n if (this._isSilent) {\n aps['content-available'] = 1;\n }\n\n if (this._apnsPushType === 'apns2') {\n if (!this._configurations || !this._configurations.length) {\n throw new ReferenceError('APNS2 configuration is missing');\n }\n\n let configurations = [];\n this._configurations.forEach((configuration: APNS2Configuration) => {\n configurations.push(this._objectFromAPNS2Configuration(configuration));\n });\n\n if (configurations.length) {\n payload.pn_push = configurations;\n }\n }\n\n if (!alert || !Object.keys(alert).length) {\n delete aps.alert;\n }\n\n if (this._isSilent) {\n delete aps.alert;\n delete aps.badge;\n delete aps.sound;\n alert = {};\n }\n\n return this._isSilent || Object.keys(alert).length ? payload : null;\n }\n\n _objectFromAPNS2Configuration(configuration: APNS2Configuration) {\n if (!configuration.targets || !configuration.targets.length) {\n throw new ReferenceError('At least one APNS2 target should be provided');\n }\n\n let targets = [];\n configuration.targets.forEach((target: APNS2Target) => {\n targets.push(this._objectFromAPNSTarget(target));\n });\n\n const { collapseId, expirationDate } = configuration;\n let objectifiedConfiguration: {\n auth_method: string,\n targets: Array,\n version: string,\n collapse_id?: string,\n expiration?: string\n } = { auth_method: 'token', targets, version: 'v2' };\n\n if (collapseId && collapseId.length) {\n objectifiedConfiguration.collapse_id = collapseId;\n }\n\n if (expirationDate) {\n objectifiedConfiguration.expiration = expirationDate.toISOString();\n }\n\n return objectifiedConfiguration;\n }\n\n _objectFromAPNSTarget(target: APNS2Target) {\n if (!target.topic || !target.topic.length) {\n throw new TypeError('Target \\'topic\\' undefined.');\n }\n\n const {\n topic,\n environment = 'development',\n excludedDevices = []\n } = target;\n\n let objectifiedTarget: {\n topic: string,\n environment: string,\n excluded_devices?: Array\n } = { topic, environment };\n\n if (excludedDevices.length) {\n objectifiedTarget.excluded_devices = excludedDevices;\n }\n\n return objectifiedTarget;\n }\n}\n\nexport class MPNSNotificationPayload extends BaseNotificationPayload {\n _backContent: ?string;\n _backTitle: ?string;\n _count: ?number;\n _type: ?string;\n\n get backContent() {\n return this._backContent;\n }\n\n set backContent(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.back_content = value;\n this._backContent = value;\n }\n\n get backTitle() {\n return this._backTitle;\n }\n\n set backTitle(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.back_title = value;\n this._backTitle = value;\n }\n\n get count() {\n return this._count;\n }\n\n set count(value: ?number) {\n if (value === undefined || value === null) return;\n\n this._payload.count = value;\n this._count = value;\n }\n\n get title() {\n return this._title;\n }\n\n set title(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.title = value;\n this._title = value;\n }\n\n get type() {\n return this._type;\n }\n\n set type(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.type = value;\n this._type = value;\n }\n\n get subtitle() {\n return this.backTitle;\n }\n\n set subtitle(value: ?string) {\n this.backTitle = value;\n }\n\n get body() {\n return this.backContent;\n }\n\n set body(value: ?string) {\n this.backContent = value;\n }\n\n get badge() {\n return this.count;\n }\n\n set badge(value: ?number) {\n this.count = value;\n }\n\n toObject(): ?Object {\n return Object.keys(this._payload).length ? { ...this._payload } : null;\n }\n}\n\nexport class FCMNotificationPayload extends BaseNotificationPayload {\n _isSilent: boolean;\n _icon: ?string;\n _tag: ?string;\n\n get notification() {\n return this._payload.notification;\n }\n\n get data() {\n return this._payload.data;\n }\n\n get title() {\n return this._title;\n }\n\n set title(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.title = value;\n this._title = value;\n }\n\n get body() {\n return this._body;\n }\n\n set body(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.body = value;\n this._body = value;\n }\n\n get sound() {\n return this._sound;\n }\n\n set sound(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.sound = value;\n this._sound = value;\n }\n\n get icon() {\n return this._icon;\n }\n\n set icon(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.icon = value;\n this._icon = value;\n }\n\n get tag() {\n return this._tag;\n }\n\n set tag(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.tag = value;\n this._tag = value;\n }\n\n set silent(value: boolean) {\n this._isSilent = value;\n }\n\n _setDefaultPayloadStructure() {\n this._payload.notification = {};\n this._payload.data = {};\n }\n\n toObject(): ?Object {\n let data = { ...this._payload.data };\n let notification = null;\n let payload = {};\n\n /**\n * Check whether additional data has been passed outside of 'data' object\n * and put it into it if required.\n */\n if (Object.keys(this._payload).length > 2) {\n let { notification: initialNotification, data: initialData, ...additionalData } = this._payload;\n\n data = { ...data, ...additionalData };\n }\n\n if (this._isSilent) {\n data.notification = this._payload.notification;\n } else {\n notification = this._payload.notification;\n }\n\n if (Object.keys(data).length) {\n payload.data = data;\n }\n\n if (notification && Object.keys(notification).length) {\n payload.notification = notification;\n }\n\n return Object.keys(payload).length ? payload : null;\n }\n}\n\nclass NotificationsPayload {\n _payload: {apns: Object, mpns: Object, fcm: Object};\n _debugging: boolean;\n _subtitle: ?string;\n _badge: ?number;\n _sound: ?string;\n _title: ?string;\n _body: ?string;\n apns: APNSNotificationPayload;\n mpns: MPNSNotificationPayload;\n fcm: FCMNotificationPayload;\n\n set debugging(value: boolean) {\n this._debugging = value;\n }\n\n get title() {\n return this._title;\n }\n\n get body() {\n return this._body;\n }\n\n get subtitle() {\n return this._subtitle;\n }\n\n set subtitle(value: ?string) {\n this._subtitle = value;\n this.apns.subtitle = value;\n this.mpns.subtitle = value;\n this.fcm.subtitle = value;\n }\n\n get badge() {\n return this._badge;\n }\n\n set badge(value: ?number) {\n this._badge = value;\n this.apns.badge = value;\n this.mpns.badge = value;\n this.fcm.badge = value;\n }\n\n get sound() {\n return this._sound;\n }\n\n set sound(value: ?string) {\n this._sound = value;\n this.apns.sound = value;\n this.mpns.sound = value;\n this.fcm.sound = value;\n }\n\n constructor(title: ?string, body: ?string) {\n this._payload = { apns: {}, mpns: {}, fcm: {} };\n this._title = title;\n this._body = body;\n\n this.apns = new APNSNotificationPayload(this._payload.apns, title, body);\n this.mpns = new MPNSNotificationPayload(this._payload.mpns, title, body);\n this.fcm = new FCMNotificationPayload(this._payload.fcm, title, body);\n }\n\n /**\n * Build notifications platform for requested platforms.\n *\n * @param {Array} platforms - List of platforms for which payload\n * should be added to final dictionary. Supported values: gcm, apns, apns2,\n * mpns.\n *\n * @returns {Object} Object with data, which can be sent with publish method\n * call and trigger remote notifications for specified platforms.\n */\n buildPayload(platforms: Array) {\n let payload = {};\n\n if (platforms.includes('apns') || platforms.includes('apns2')) {\n this.apns._apnsPushType = platforms.includes('apns') ? 'apns' : 'apns2';\n let apnsPayload = this.apns.toObject();\n\n if (apnsPayload && Object.keys(apnsPayload).length) {\n payload.pn_apns = apnsPayload;\n }\n }\n\n if (platforms.includes('mpns')) {\n let mpnsPayload = this.mpns.toObject();\n\n if (mpnsPayload && Object.keys(mpnsPayload).length) {\n payload.pn_mpns = mpnsPayload;\n }\n }\n\n if (platforms.includes('fcm')) {\n let fcmPayload = this.fcm.toObject();\n\n if (fcmPayload && Object.keys(fcmPayload).length) {\n payload.pn_gcm = fcmPayload;\n }\n }\n\n if (Object.keys(payload).length && this._debugging) {\n payload.pn_debug = true;\n }\n\n return payload;\n }\n}\n\nexport default NotificationsPayload;\n"],"file":"push_payload.js"} \ No newline at end of file +{"version":3,"sources":["core/components/push_payload.js"],"names":["BaseNotificationPayload","_payload","value","_title","_subtitle","_body","_badge","_sound","payload","title","body","_setDefaultPayloadStructure","APNSNotificationPayload","aps","alert","_isSilent","_apnsPushType","_configurations","length","ReferenceError","configurations","forEach","configuration","push","_objectFromAPNS2Configuration","pn_push","Object","keys","badge","sound","targets","target","_objectFromAPNSTarget","collapseId","expirationDate","objectifiedConfiguration","auth_method","version","collapse_id","expiration","toISOString","topic","TypeError","environment","excludedDevices","objectifiedTarget","excluded_devices","subtitle","undefined","MPNSNotificationPayload","_backContent","back_content","_backTitle","back_title","_count","count","_type","type","backTitle","backContent","FCMNotificationPayload","notification","data","initialNotification","initialData","additionalData","_icon","icon","_tag","tag","NotificationsPayload","_debugging","apns","mpns","fcm","platforms","includes","apnsPayload","toObject","pn_apns","mpnsPayload","pn_mpns","fcmPayload","pn_gcm","pn_debug"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;;;;;IAEMA,uB;;;wBAQU;AACZ,aAAO,KAAKC,QAAZ;AACD;;;sBAESC,K,EAAgB;AACxB,WAAKC,MAAL,GAAcD,KAAd;AACD;;;sBAEYA,K,EAAgB;AAC3B,WAAKE,SAAL,GAAiBF,KAAjB;AACD;;;sBAEQA,K,EAAgB;AACvB,WAAKG,KAAL,GAAaH,KAAb;AACD;;;sBAESA,K,EAAgB;AACxB,WAAKI,MAAL,GAAcJ,KAAd;AACD;;;sBAESA,K,EAAgB;AACxB,WAAKK,MAAL,GAAcL,KAAd;AACD;;;AAED,mCAAYM,OAAZ,EAA6BC,KAA7B,EAA6CC,IAA7C,EAA4D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC1D,SAAKT,QAAL,GAAgBO,OAAhB;;AAEA,SAAKG,2BAAL;;AACA,SAAKF,KAAL,GAAaA,KAAb;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACD;;;;kDAE6B,CAC7B;;;+BAEU;AACT,aAAO,EAAP;AACD;;;;;IAGUE,uB;;;;;;;;;;;;;;;;;;;;;;;kDA0EmB;AAC5B,WAAKX,QAAL,CAAcY,GAAd,GAAoB;AAAEC,QAAAA,KAAK,EAAE;AAAT,OAApB;AACD;;;+BAEmB;AAAA;;AAClB,UAAIN,OAAO,qBAAQ,KAAKP,QAAb,CAAX;;AAEA,UAAIY,GAAG,GAAGL,OAAO,CAACK,GAAlB;AACA,UAAIC,KAAK,GAAGD,GAAG,CAACC,KAAhB;;AAEA,UAAI,KAAKC,SAAT,EAAoB;AAClBF,QAAAA,GAAG,CAAC,mBAAD,CAAH,GAA2B,CAA3B;AACD;;AAED,UAAI,KAAKG,aAAL,KAAuB,OAA3B,EAAoC;AAClC,YAAI,CAAC,KAAKC,eAAN,IAAyB,CAAC,KAAKA,eAAL,CAAqBC,MAAnD,EAA2D;AACzD,gBAAM,IAAIC,cAAJ,CAAmB,gCAAnB,CAAN;AACD;;AAED,YAAIC,cAAc,GAAG,EAArB;;AACA,aAAKH,eAAL,CAAqBI,OAArB,CAA6B,UAACC,aAAD,EAAuC;AAClEF,UAAAA,cAAc,CAACG,IAAf,CAAoB,MAAI,CAACC,6BAAL,CAAmCF,aAAnC,CAApB;AACD,SAFD;;AAIA,YAAIF,cAAc,CAACF,MAAnB,EAA2B;AACzBV,UAAAA,OAAO,CAACiB,OAAR,GAAkBL,cAAlB;AACD;AACF;;AAED,UAAI,CAACN,KAAD,IAAU,CAACY,MAAM,CAACC,IAAP,CAAYb,KAAZ,EAAmBI,MAAlC,EAA0C;AACxC,eAAOL,GAAG,CAACC,KAAX;AACD;;AAED,UAAI,KAAKC,SAAT,EAAoB;AAClB,eAAOF,GAAG,CAACC,KAAX;AACA,eAAOD,GAAG,CAACe,KAAX;AACA,eAAOf,GAAG,CAACgB,KAAX;AACAf,QAAAA,KAAK,GAAG,EAAR;AACD;;AAED,aAAO,KAAKC,SAAL,IAAkBW,MAAM,CAACC,IAAP,CAAYb,KAAZ,EAAmBI,MAArC,GAA8CV,OAA9C,GAAwD,IAA/D;AACD;;;kDAE6Bc,a,EAAmC;AAAA;;AAC/D,UAAI,CAACA,aAAa,CAACQ,OAAf,IAA0B,CAACR,aAAa,CAACQ,OAAd,CAAsBZ,MAArD,EAA6D;AAC3D,cAAM,IAAIC,cAAJ,CAAmB,8CAAnB,CAAN;AACD;;AAED,UAAIW,OAAO,GAAG,EAAd;AACAR,MAAAA,aAAa,CAACQ,OAAd,CAAsBT,OAAtB,CAA8B,UAACU,MAAD,EAAyB;AACrDD,QAAAA,OAAO,CAACP,IAAR,CAAa,MAAI,CAACS,qBAAL,CAA2BD,MAA3B,CAAb;AACD,OAFD;AAN+D,UAUvDE,UAVuD,GAUxBX,aAVwB,CAUvDW,UAVuD;AAAA,UAU3CC,cAV2C,GAUxBZ,aAVwB,CAU3CY,cAV2C;AAW/D,UAAIC,wBAMH,GAAG;AAAEC,QAAAA,WAAW,EAAE,OAAf;AAAwBN,QAAAA,OAAO,EAAPA,OAAxB;AAAiCO,QAAAA,OAAO,EAAE;AAA1C,OANJ;;AAQA,UAAIJ,UAAU,IAAIA,UAAU,CAACf,MAA7B,EAAqC;AACnCiB,QAAAA,wBAAwB,CAACG,WAAzB,GAAuCL,UAAvC;AACD;;AAED,UAAIC,cAAJ,EAAoB;AAClBC,QAAAA,wBAAwB,CAACI,UAAzB,GAAsCL,cAAc,CAACM,WAAf,EAAtC;AACD;;AAED,aAAOL,wBAAP;AACD;;;0CAEqBJ,M,EAAqB;AACzC,UAAI,CAACA,MAAM,CAACU,KAAR,IAAiB,CAACV,MAAM,CAACU,KAAP,CAAavB,MAAnC,EAA2C;AACzC,cAAM,IAAIwB,SAAJ,CAAc,6BAAd,CAAN;AACD;;AAHwC,UAMvCD,KANuC,GASrCV,MATqC,CAMvCU,KANuC;AAAA,gCASrCV,MATqC,CAOvCY,WAPuC;AAAA,UAOvCA,WAPuC,oCAOzB,aAPyB;AAAA,kCASrCZ,MATqC,CAQvCa,eARuC;AAAA,UAQvCA,eARuC,sCAQrB,EARqB;AAWzC,UAAIC,iBAIH,GAAG;AAAEJ,QAAAA,KAAK,EAALA,KAAF;AAASE,QAAAA,WAAW,EAAXA;AAAT,OAJJ;;AAMA,UAAIC,eAAe,CAAC1B,MAApB,EAA4B;AAC1B2B,QAAAA,iBAAiB,CAACC,gBAAlB,GAAqCF,eAArC;AACD;;AAED,aAAOC,iBAAP;AACD;;;sBApKkB3C,K,EAAkC;AACnD,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKD,eAAL,GAAuBf,KAAvB;AACD;;;wBAEkB;AACjB,aAAO,KAAKD,QAAL,CAAcY,GAArB;AACD;;;wBAEW;AACV,aAAO,KAAKV,MAAZ;AACD,K;sBAESD,K,EAAgB;AACxB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAcY,GAAd,CAAkBC,KAAlB,CAAwBL,KAAxB,GAAgCP,KAAhC;AACA,WAAKC,MAAL,GAAcD,KAAd;AACD;;;wBAEc;AACb,aAAO,KAAKE,SAAZ;AACD,K;sBAEYF,K,EAAgB;AAC3B,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAcY,GAAd,CAAkBC,KAAlB,CAAwBiC,QAAxB,GAAmC7C,KAAnC;AACA,WAAKE,SAAL,GAAiBF,KAAjB;AACD;;;wBAEU;AACT,aAAO,KAAKG,KAAZ;AACD,K;sBAEQH,K,EAAgB;AACvB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAcY,GAAd,CAAkBC,KAAlB,CAAwBJ,IAAxB,GAA+BR,KAA/B;AACA,WAAKG,KAAL,GAAaH,KAAb;AACD;;;wBAEW;AACV,aAAO,KAAKI,MAAZ;AACD,K;sBAESJ,K,EAAgB;AACxB,UAAIA,KAAK,KAAK8C,SAAV,IAAuB9C,KAAK,KAAK,IAArC,EAA2C;AAE3C,WAAKD,QAAL,CAAcY,GAAd,CAAkBe,KAAlB,GAA0B1B,KAA1B;AACA,WAAKI,MAAL,GAAcJ,KAAd;AACD;;;wBAEW;AACV,aAAO,KAAKK,MAAZ;AACD,K;sBAESL,K,EAAgB;AACxB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAcY,GAAd,CAAkBgB,KAAlB,GAA0B3B,KAA1B;AACA,WAAKK,MAAL,GAAcL,KAAd;AACD;;;sBAEUA,K,EAAgB;AACzB,WAAKa,SAAL,GAAiBb,KAAjB;AACD;;;EAxE0CF,uB;;;;IA4KhCiD,uB;;;;;;;;;;;;;;;;;;;;;;;;+BAqFS;AAClB,aAAOvB,MAAM,CAACC,IAAP,CAAY,KAAK1B,QAAjB,EAA2BiB,MAA3B,qBAAyC,KAAKjB,QAA9C,IAA2D,IAAlE;AACD;;;wBAjFiB;AAChB,aAAO,KAAKiD,YAAZ;AACD,K;sBAEehD,K,EAAgB;AAC9B,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAckD,YAAd,GAA6BjD,KAA7B;AACA,WAAKgD,YAAL,GAAoBhD,KAApB;AACD;;;wBAEe;AACd,aAAO,KAAKkD,UAAZ;AACD,K;sBAEalD,K,EAAgB;AAC5B,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAcoD,UAAd,GAA2BnD,KAA3B;AACA,WAAKkD,UAAL,GAAkBlD,KAAlB;AACD;;;wBAEW;AACV,aAAO,KAAKoD,MAAZ;AACD,K;sBAESpD,K,EAAgB;AACxB,UAAIA,KAAK,KAAK8C,SAAV,IAAuB9C,KAAK,KAAK,IAArC,EAA2C;AAE3C,WAAKD,QAAL,CAAcsD,KAAd,GAAsBrD,KAAtB;AACA,WAAKoD,MAAL,GAAcpD,KAAd;AACD;;;wBAEW;AACV,aAAO,KAAKC,MAAZ;AACD,K;sBAESD,K,EAAgB;AACxB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAcQ,KAAd,GAAsBP,KAAtB;AACA,WAAKC,MAAL,GAAcD,KAAd;AACD;;;wBAEU;AACT,aAAO,KAAKsD,KAAZ;AACD,K;sBAEQtD,K,EAAgB;AACvB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAcwD,IAAd,GAAqBvD,KAArB;AACA,WAAKsD,KAAL,GAAatD,KAAb;AACD;;;wBAEc;AACb,aAAO,KAAKwD,SAAZ;AACD,K;sBAEYxD,K,EAAgB;AAC3B,WAAKwD,SAAL,GAAiBxD,KAAjB;AACD;;;wBAEU;AACT,aAAO,KAAKyD,WAAZ;AACD,K;sBAEQzD,K,EAAgB;AACvB,WAAKyD,WAAL,GAAmBzD,KAAnB;AACD;;;wBAEW;AACV,aAAO,KAAKqD,KAAZ;AACD,K;sBAESrD,K,EAAgB;AACxB,WAAKqD,KAAL,GAAarD,KAAb;AACD;;;EAnF0CF,uB;;;;IA0FhC4D,sB;;;;;;;;;;;;;;;;;;;;;;;kDAwEmB;AAC5B,WAAK3D,QAAL,CAAc4D,YAAd,GAA6B,EAA7B;AACA,WAAK5D,QAAL,CAAc6D,IAAd,GAAqB,EAArB;AACD;;;+BAEmB;AAClB,UAAIA,IAAI,qBAAQ,KAAK7D,QAAL,CAAc6D,IAAtB,CAAR;;AACA,UAAID,YAAY,GAAG,IAAnB;AACA,UAAIrD,OAAO,GAAG,EAAd;;AAMA,UAAIkB,MAAM,CAACC,IAAP,CAAY,KAAK1B,QAAjB,EAA2BiB,MAA3B,GAAoC,CAAxC,EAA2C;AAAA,6BACyC,KAAKjB,QAD9C;AAAA,YACrB8D,mBADqB,kBACnCF,YADmC;AAAA,YACMG,WADN,kBACAF,IADA;AAAA,YACsBG,cADtB;AAGzCH,QAAAA,IAAI,qBAAQA,IAAR,MAAiBG,cAAjB,CAAJ;AACD;;AAED,UAAI,KAAKlD,SAAT,EAAoB;AAClB+C,QAAAA,IAAI,CAACD,YAAL,GAAoB,KAAK5D,QAAL,CAAc4D,YAAlC;AACD,OAFD,MAEO;AACLA,QAAAA,YAAY,GAAG,KAAK5D,QAAL,CAAc4D,YAA7B;AACD;;AAED,UAAInC,MAAM,CAACC,IAAP,CAAYmC,IAAZ,EAAkB5C,MAAtB,EAA8B;AAC5BV,QAAAA,OAAO,CAACsD,IAAR,GAAeA,IAAf;AACD;;AAED,UAAID,YAAY,IAAInC,MAAM,CAACC,IAAP,CAAYkC,YAAZ,EAA0B3C,MAA9C,EAAsD;AACpDV,QAAAA,OAAO,CAACqD,YAAR,GAAuBA,YAAvB;AACD;;AAED,aAAOnC,MAAM,CAACC,IAAP,CAAYnB,OAAZ,EAAqBU,MAArB,GAA8BV,OAA9B,GAAwC,IAA/C;AACD;;;wBAtGkB;AACjB,aAAO,KAAKP,QAAL,CAAc4D,YAArB;AACD;;;wBAEU;AACT,aAAO,KAAK5D,QAAL,CAAc6D,IAArB;AACD;;;wBAEW;AACV,aAAO,KAAK3D,MAAZ;AACD,K;sBAESD,K,EAAgB;AACxB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAc4D,YAAd,CAA2BpD,KAA3B,GAAmCP,KAAnC;AACA,WAAKC,MAAL,GAAcD,KAAd;AACD;;;wBAEU;AACT,aAAO,KAAKG,KAAZ;AACD,K;sBAEQH,K,EAAgB;AACvB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAc4D,YAAd,CAA2BnD,IAA3B,GAAkCR,KAAlC;AACA,WAAKG,KAAL,GAAaH,KAAb;AACD;;;wBAEW;AACV,aAAO,KAAKK,MAAZ;AACD,K;sBAESL,K,EAAgB;AACxB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAc4D,YAAd,CAA2BhC,KAA3B,GAAmC3B,KAAnC;AACA,WAAKK,MAAL,GAAcL,KAAd;AACD;;;wBAEU;AACT,aAAO,KAAKgE,KAAZ;AACD,K;sBAEQhE,K,EAAgB;AACvB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAc4D,YAAd,CAA2BM,IAA3B,GAAkCjE,KAAlC;AACA,WAAKgE,KAAL,GAAahE,KAAb;AACD;;;wBAES;AACR,aAAO,KAAKkE,IAAZ;AACD,K;sBAEOlE,K,EAAgB;AACtB,UAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACgB,MAArB,EAA6B;AAE7B,WAAKjB,QAAL,CAAc4D,YAAd,CAA2BQ,GAA3B,GAAiCnE,KAAjC;AACA,WAAKkE,IAAL,GAAYlE,KAAZ;AACD;;;sBAEUA,K,EAAgB;AACzB,WAAKa,SAAL,GAAiBb,KAAjB;AACD;;;EAtEyCF,uB;;;;IA8GtCsE,oB;;;sBAYUpE,K,EAAgB;AAC5B,WAAKqE,UAAL,GAAkBrE,KAAlB;AACD;;;wBAEW;AACV,aAAO,KAAKC,MAAZ;AACD;;;wBAEU;AACT,aAAO,KAAKE,KAAZ;AACD;;;wBAEc;AACb,aAAO,KAAKD,SAAZ;AACD,K;sBAEYF,K,EAAgB;AAC3B,WAAKE,SAAL,GAAiBF,KAAjB;AACA,WAAKsE,IAAL,CAAUzB,QAAV,GAAqB7C,KAArB;AACA,WAAKuE,IAAL,CAAU1B,QAAV,GAAqB7C,KAArB;AACA,WAAKwE,GAAL,CAAS3B,QAAT,GAAoB7C,KAApB;AACD;;;wBAEW;AACV,aAAO,KAAKI,MAAZ;AACD,K;sBAESJ,K,EAAgB;AACxB,WAAKI,MAAL,GAAcJ,KAAd;AACA,WAAKsE,IAAL,CAAU5C,KAAV,GAAkB1B,KAAlB;AACA,WAAKuE,IAAL,CAAU7C,KAAV,GAAkB1B,KAAlB;AACA,WAAKwE,GAAL,CAAS9C,KAAT,GAAiB1B,KAAjB;AACD;;;wBAEW;AACV,aAAO,KAAKK,MAAZ;AACD,K;sBAESL,K,EAAgB;AACxB,WAAKK,MAAL,GAAcL,KAAd;AACA,WAAKsE,IAAL,CAAU3C,KAAV,GAAkB3B,KAAlB;AACA,WAAKuE,IAAL,CAAU5C,KAAV,GAAkB3B,KAAlB;AACA,WAAKwE,GAAL,CAAS7C,KAAT,GAAiB3B,KAAjB;AACD;;;AAED,gCAAYO,KAAZ,EAA4BC,IAA5B,EAA2C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACzC,SAAKT,QAAL,GAAgB;AAAEuE,MAAAA,IAAI,EAAE,EAAR;AAAYC,MAAAA,IAAI,EAAE,EAAlB;AAAsBC,MAAAA,GAAG,EAAE;AAA3B,KAAhB;AACA,SAAKvE,MAAL,GAAcM,KAAd;AACA,SAAKJ,KAAL,GAAaK,IAAb;AAEA,SAAK8D,IAAL,GAAY,IAAI5D,uBAAJ,CAA4B,KAAKX,QAAL,CAAcuE,IAA1C,EAAgD/D,KAAhD,EAAuDC,IAAvD,CAAZ;AACA,SAAK+D,IAAL,GAAY,IAAIxB,uBAAJ,CAA4B,KAAKhD,QAAL,CAAcwE,IAA1C,EAAgDhE,KAAhD,EAAuDC,IAAvD,CAAZ;AACA,SAAKgE,GAAL,GAAW,IAAId,sBAAJ,CAA2B,KAAK3D,QAAL,CAAcyE,GAAzC,EAA8CjE,KAA9C,EAAqDC,IAArD,CAAX;AACD;;;;iCAYYiE,S,EAA0B;AACrC,UAAInE,OAAO,GAAG,EAAd;;AAEA,UAAImE,SAAS,CAACC,QAAV,CAAmB,MAAnB,KAA8BD,SAAS,CAACC,QAAV,CAAmB,OAAnB,CAAlC,EAA+D;AAC7D,aAAKJ,IAAL,CAAUxD,aAAV,GAA0B2D,SAAS,CAACC,QAAV,CAAmB,MAAnB,IAA6B,MAA7B,GAAsC,OAAhE;AACA,YAAIC,WAAW,GAAG,KAAKL,IAAL,CAAUM,QAAV,EAAlB;;AAEA,YAAID,WAAW,IAAInD,MAAM,CAACC,IAAP,CAAYkD,WAAZ,EAAyB3D,MAA5C,EAAoD;AAClDV,UAAAA,OAAO,CAACuE,OAAR,GAAkBF,WAAlB;AACD;AACF;;AAED,UAAIF,SAAS,CAACC,QAAV,CAAmB,MAAnB,CAAJ,EAAgC;AAC9B,YAAII,WAAW,GAAG,KAAKP,IAAL,CAAUK,QAAV,EAAlB;;AAEA,YAAIE,WAAW,IAAItD,MAAM,CAACC,IAAP,CAAYqD,WAAZ,EAAyB9D,MAA5C,EAAoD;AAClDV,UAAAA,OAAO,CAACyE,OAAR,GAAkBD,WAAlB;AACD;AACF;;AAED,UAAIL,SAAS,CAACC,QAAV,CAAmB,KAAnB,CAAJ,EAA+B;AAC7B,YAAIM,UAAU,GAAG,KAAKR,GAAL,CAASI,QAAT,EAAjB;;AAEA,YAAII,UAAU,IAAIxD,MAAM,CAACC,IAAP,CAAYuD,UAAZ,EAAwBhE,MAA1C,EAAkD;AAChDV,UAAAA,OAAO,CAAC2E,MAAR,GAAiBD,UAAjB;AACD;AACF;;AAED,UAAIxD,MAAM,CAACC,IAAP,CAAYnB,OAAZ,EAAqBU,MAArB,IAA+B,KAAKqD,UAAxC,EAAoD;AAClD/D,QAAAA,OAAO,CAAC4E,QAAR,GAAmB,IAAnB;AACD;;AAED,aAAO5E,OAAP;AACD;;;;;eAGY8D,oB","sourcesContent":["/* @flow */\n/* eslint max-classes-per-file: [\"error\", 5] */\nimport { APNS2Configuration, APNS2Target } from '../flow_interfaces';\n\nclass BaseNotificationPayload {\n _subtitle: ?string;\n _payload: Object;\n _badge: ?number;\n _sound: ?string;\n _title: ?string;\n _body: ?string;\n\n get payload() {\n return this._payload;\n }\n\n set title(value: ?string) {\n this._title = value;\n }\n\n set subtitle(value: ?string) {\n this._subtitle = value;\n }\n\n set body(value: ?string) {\n this._body = value;\n }\n\n set badge(value: ?number) {\n this._badge = value;\n }\n\n set sound(value: ?string) {\n this._sound = value;\n }\n\n constructor(payload: Object, title: ?string, body: ?string) {\n this._payload = payload;\n\n this._setDefaultPayloadStructure();\n this.title = title;\n this.body = body;\n }\n\n _setDefaultPayloadStructure() {\n }\n\n toObject() {\n return {};\n }\n}\n\nexport class APNSNotificationPayload extends BaseNotificationPayload {\n _configurations: Array;\n _apnsPushType: ?string;\n _isSilent: boolean;\n\n set configurations(value: Array) {\n if (!value || !value.length) return;\n\n this._configurations = value;\n }\n\n get notification() {\n return this._payload.aps;\n }\n\n get title() {\n return this._title;\n }\n\n set title(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.aps.alert.title = value;\n this._title = value;\n }\n\n get subtitle() {\n return this._subtitle;\n }\n\n set subtitle(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.aps.alert.subtitle = value;\n this._subtitle = value;\n }\n\n get body() {\n return this._body;\n }\n\n set body(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.aps.alert.body = value;\n this._body = value;\n }\n\n get badge() {\n return this._badge;\n }\n\n set badge(value: ?number) {\n if (value === undefined || value === null) return;\n\n this._payload.aps.badge = value;\n this._badge = value;\n }\n\n get sound() {\n return this._sound;\n }\n\n set sound(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.aps.sound = value;\n this._sound = value;\n }\n\n set silent(value: boolean) {\n this._isSilent = value;\n }\n\n _setDefaultPayloadStructure() {\n this._payload.aps = { alert: {} };\n }\n\n toObject(): ?Object {\n let payload = { ...this._payload };\n /** @type {{alert: Object, badge: number, sound: string}} */\n let aps = payload.aps;\n let alert = aps.alert;\n\n if (this._isSilent) {\n aps['content-available'] = 1;\n }\n\n if (this._apnsPushType === 'apns2') {\n if (!this._configurations || !this._configurations.length) {\n throw new ReferenceError('APNS2 configuration is missing');\n }\n\n let configurations = [];\n this._configurations.forEach((configuration: APNS2Configuration) => {\n configurations.push(this._objectFromAPNS2Configuration(configuration));\n });\n\n if (configurations.length) {\n payload.pn_push = configurations;\n }\n }\n\n if (!alert || !Object.keys(alert).length) {\n delete aps.alert;\n }\n\n if (this._isSilent) {\n delete aps.alert;\n delete aps.badge;\n delete aps.sound;\n alert = {};\n }\n\n return this._isSilent || Object.keys(alert).length ? payload : null;\n }\n\n _objectFromAPNS2Configuration(configuration: APNS2Configuration) {\n if (!configuration.targets || !configuration.targets.length) {\n throw new ReferenceError('At least one APNS2 target should be provided');\n }\n\n let targets = [];\n configuration.targets.forEach((target: APNS2Target) => {\n targets.push(this._objectFromAPNSTarget(target));\n });\n\n const { collapseId, expirationDate } = configuration;\n let objectifiedConfiguration: {\n auth_method: string,\n targets: Array,\n version: string,\n collapse_id?: string,\n expiration?: string\n } = { auth_method: 'token', targets, version: 'v2' };\n\n if (collapseId && collapseId.length) {\n objectifiedConfiguration.collapse_id = collapseId;\n }\n\n if (expirationDate) {\n objectifiedConfiguration.expiration = expirationDate.toISOString();\n }\n\n return objectifiedConfiguration;\n }\n\n _objectFromAPNSTarget(target: APNS2Target) {\n if (!target.topic || !target.topic.length) {\n throw new TypeError('Target \\'topic\\' undefined.');\n }\n\n const {\n topic,\n environment = 'development',\n excludedDevices = []\n } = target;\n\n let objectifiedTarget: {\n topic: string,\n environment: string,\n excluded_devices?: Array\n } = { topic, environment };\n\n if (excludedDevices.length) {\n objectifiedTarget.excluded_devices = excludedDevices;\n }\n\n return objectifiedTarget;\n }\n}\n\nexport class MPNSNotificationPayload extends BaseNotificationPayload {\n _backContent: ?string;\n _backTitle: ?string;\n _count: ?number;\n _type: ?string;\n\n get backContent() {\n return this._backContent;\n }\n\n set backContent(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.back_content = value;\n this._backContent = value;\n }\n\n get backTitle() {\n return this._backTitle;\n }\n\n set backTitle(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.back_title = value;\n this._backTitle = value;\n }\n\n get count() {\n return this._count;\n }\n\n set count(value: ?number) {\n if (value === undefined || value === null) return;\n\n this._payload.count = value;\n this._count = value;\n }\n\n get title() {\n return this._title;\n }\n\n set title(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.title = value;\n this._title = value;\n }\n\n get type() {\n return this._type;\n }\n\n set type(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.type = value;\n this._type = value;\n }\n\n get subtitle() {\n return this.backTitle;\n }\n\n set subtitle(value: ?string) {\n this.backTitle = value;\n }\n\n get body() {\n return this.backContent;\n }\n\n set body(value: ?string) {\n this.backContent = value;\n }\n\n get badge() {\n return this.count;\n }\n\n set badge(value: ?number) {\n this.count = value;\n }\n\n toObject(): ?Object {\n return Object.keys(this._payload).length ? { ...this._payload } : null;\n }\n}\n\nexport class FCMNotificationPayload extends BaseNotificationPayload {\n _isSilent: boolean;\n _icon: ?string;\n _tag: ?string;\n\n get notification() {\n return this._payload.notification;\n }\n\n get data() {\n return this._payload.data;\n }\n\n get title() {\n return this._title;\n }\n\n set title(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.title = value;\n this._title = value;\n }\n\n get body() {\n return this._body;\n }\n\n set body(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.body = value;\n this._body = value;\n }\n\n get sound() {\n return this._sound;\n }\n\n set sound(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.sound = value;\n this._sound = value;\n }\n\n get icon() {\n return this._icon;\n }\n\n set icon(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.icon = value;\n this._icon = value;\n }\n\n get tag() {\n return this._tag;\n }\n\n set tag(value: ?string) {\n if (!value || !value.length) return;\n\n this._payload.notification.tag = value;\n this._tag = value;\n }\n\n set silent(value: boolean) {\n this._isSilent = value;\n }\n\n _setDefaultPayloadStructure() {\n this._payload.notification = {};\n this._payload.data = {};\n }\n\n toObject(): ?Object {\n let data = { ...this._payload.data };\n let notification = null;\n let payload = {};\n\n /**\n * Check whether additional data has been passed outside of 'data' object\n * and put it into it if required.\n */\n if (Object.keys(this._payload).length > 2) {\n let { notification: initialNotification, data: initialData, ...additionalData } = this._payload;\n\n data = { ...data, ...additionalData };\n }\n\n if (this._isSilent) {\n data.notification = this._payload.notification;\n } else {\n notification = this._payload.notification;\n }\n\n if (Object.keys(data).length) {\n payload.data = data;\n }\n\n if (notification && Object.keys(notification).length) {\n payload.notification = notification;\n }\n\n return Object.keys(payload).length ? payload : null;\n }\n}\n\nclass NotificationsPayload {\n _payload: {apns: Object, mpns: Object, fcm: Object};\n _debugging: boolean;\n _subtitle: ?string;\n _badge: ?number;\n _sound: ?string;\n _title: ?string;\n _body: ?string;\n apns: APNSNotificationPayload;\n mpns: MPNSNotificationPayload;\n fcm: FCMNotificationPayload;\n\n set debugging(value: boolean) {\n this._debugging = value;\n }\n\n get title() {\n return this._title;\n }\n\n get body() {\n return this._body;\n }\n\n get subtitle() {\n return this._subtitle;\n }\n\n set subtitle(value: ?string) {\n this._subtitle = value;\n this.apns.subtitle = value;\n this.mpns.subtitle = value;\n this.fcm.subtitle = value;\n }\n\n get badge() {\n return this._badge;\n }\n\n set badge(value: ?number) {\n this._badge = value;\n this.apns.badge = value;\n this.mpns.badge = value;\n this.fcm.badge = value;\n }\n\n get sound() {\n return this._sound;\n }\n\n set sound(value: ?string) {\n this._sound = value;\n this.apns.sound = value;\n this.mpns.sound = value;\n this.fcm.sound = value;\n }\n\n constructor(title: ?string, body: ?string) {\n this._payload = { apns: {}, mpns: {}, fcm: {} };\n this._title = title;\n this._body = body;\n\n this.apns = new APNSNotificationPayload(this._payload.apns, title, body);\n this.mpns = new MPNSNotificationPayload(this._payload.mpns, title, body);\n this.fcm = new FCMNotificationPayload(this._payload.fcm, title, body);\n }\n\n /**\n * Build notifications platform for requested platforms.\n *\n * @param {Array} platforms - List of platforms for which payload\n * should be added to final dictionary. Supported values: gcm, apns, apns2,\n * mpns.\n *\n * @returns {Object} Object with data, which can be sent with publish method\n * call and trigger remote notifications for specified platforms.\n */\n buildPayload(platforms: Array) {\n let payload = {};\n\n if (platforms.includes('apns') || platforms.includes('apns2')) {\n this.apns._apnsPushType = platforms.includes('apns') ? 'apns' : 'apns2';\n let apnsPayload = this.apns.toObject();\n\n if (apnsPayload && Object.keys(apnsPayload).length) {\n payload.pn_apns = apnsPayload;\n }\n }\n\n if (platforms.includes('mpns')) {\n let mpnsPayload = this.mpns.toObject();\n\n if (mpnsPayload && Object.keys(mpnsPayload).length) {\n payload.pn_mpns = mpnsPayload;\n }\n }\n\n if (platforms.includes('fcm')) {\n let fcmPayload = this.fcm.toObject();\n\n if (fcmPayload && Object.keys(fcmPayload).length) {\n payload.pn_gcm = fcmPayload;\n }\n }\n\n if (Object.keys(payload).length && this._debugging) {\n payload.pn_debug = true;\n }\n\n return payload;\n }\n}\n\nexport default NotificationsPayload;\n"],"file":"push_payload.js"} \ No newline at end of file diff --git a/lib/core/components/reconnection_manager.js b/lib/core/components/reconnection_manager.js index 516d49743..0b2c496a9 100644 --- a/lib/core/components/reconnection_manager.js +++ b/lib/core/components/reconnection_manager.js @@ -1,40 +1,33 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _time = _interopRequireDefault(require("../endpoints/time")); - -var _flow_interfaces = require("../flow_interfaces"); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -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, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _time = _interopRequireDefault(require("../endpoints/time")); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _flow_interfaces = require("../flow_interfaces"); var _default = function () { function _default(_ref) { var timeEndpoint = _ref.timeEndpoint; - - _classCallCheck(this, _default); - - _defineProperty(this, "_reconnectionCallback", void 0); - - _defineProperty(this, "_timeEndpoint", void 0); - - _defineProperty(this, "_timeTimer", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_reconnectionCallback", void 0); + (0, _defineProperty2["default"])(this, "_timeEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_timeTimer", void 0); this._timeEndpoint = timeEndpoint; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "onReconnection", value: function onReconnection(reconnectionCallback) { this._reconnectionCallback = reconnectionCallback; @@ -63,7 +56,6 @@ var _default = function () { }); } }]); - return _default; }(); diff --git a/lib/core/components/reconnection_manager.js.map b/lib/core/components/reconnection_manager.js.map index b306dbe93..7f6d36197 100644 --- a/lib/core/components/reconnection_manager.js.map +++ b/lib/core/components/reconnection_manager.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/reconnection_manager.js"],"names":["timeEndpoint","_timeEndpoint","reconnectionCallback","_reconnectionCallback","_timeTimer","setInterval","_performTimeLoop","bind","clearInterval","status","error"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;;;;AAWE,0BAAuD;AAAA,QAAzCA,YAAyC,QAAzCA,YAAyC;;AAAA;;AAAA;;AAAA;;AAAA;;AACrD,SAAKC,aAAL,GAAqBD,YAArB;AACD;;;;mCAEcE,oB,EAAgC;AAC7C,WAAKC,qBAAL,GAA6BD,oBAA7B;AACD;;;mCAEc;AACb,WAAKE,UAAL,GAAkBC,WAAW,CAAC,KAAKC,gBAAL,CAAsBC,IAAtB,CAA2B,IAA3B,CAAD,EAAmC,IAAnC,CAA7B;AACD;;;kCAEa;AACZC,MAAAA,aAAa,CAAC,KAAKJ,UAAN,CAAb;AACD;;;uCAEkB;AAAA;;AACjB,WAAKH,aAAL,CAAmB,UAACQ,MAAD,EAAgC;AACjD,YAAI,CAACA,MAAM,CAACC,KAAZ,EAAmB;AACjBF,UAAAA,aAAa,CAAC,KAAI,CAACJ,UAAN,CAAb;;AACA,UAAA,KAAI,CAACD,qBAAL;AACD;AACF,OALD;AAMD","sourcesContent":["import TimeEndpoint from '../endpoints/time';\nimport { StatusAnnouncement } from '../flow_interfaces';\n\ntype ReconnectionManagerArgs = {\n timeEndpoint: TimeEndpoint\n}\n\nexport default class {\n _reconnectionCallback: Function;\n _timeEndpoint: TimeEndpoint;\n _timeTimer: number;\n\n constructor({ timeEndpoint }: ReconnectionManagerArgs) {\n this._timeEndpoint = timeEndpoint;\n }\n\n onReconnection(reconnectionCallback: Function) {\n this._reconnectionCallback = reconnectionCallback;\n }\n\n startPolling() {\n this._timeTimer = setInterval(this._performTimeLoop.bind(this), 3000);\n }\n\n stopPolling() {\n clearInterval(this._timeTimer);\n }\n\n _performTimeLoop() {\n this._timeEndpoint((status: StatusAnnouncement) => {\n if (!status.error) {\n clearInterval(this._timeTimer);\n this._reconnectionCallback();\n }\n });\n }\n}\n"],"file":"reconnection_manager.js"} \ No newline at end of file +{"version":3,"sources":["core/components/reconnection_manager.js"],"names":["timeEndpoint","_timeEndpoint","reconnectionCallback","_reconnectionCallback","_timeTimer","setInterval","_performTimeLoop","bind","clearInterval","status","error"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;;AAWE,0BAAuD;AAAA,QAAzCA,YAAyC,QAAzCA,YAAyC;AAAA;AAAA;AAAA;AAAA;AACrD,SAAKC,aAAL,GAAqBD,YAArB;AACD;;;;mCAEcE,oB,EAAgC;AAC7C,WAAKC,qBAAL,GAA6BD,oBAA7B;AACD;;;mCAEc;AACb,WAAKE,UAAL,GAAkBC,WAAW,CAAC,KAAKC,gBAAL,CAAsBC,IAAtB,CAA2B,IAA3B,CAAD,EAAmC,IAAnC,CAA7B;AACD;;;kCAEa;AACZC,MAAAA,aAAa,CAAC,KAAKJ,UAAN,CAAb;AACD;;;uCAEkB;AAAA;;AACjB,WAAKH,aAAL,CAAmB,UAACQ,MAAD,EAAgC;AACjD,YAAI,CAACA,MAAM,CAACC,KAAZ,EAAmB;AACjBF,UAAAA,aAAa,CAAC,KAAI,CAACJ,UAAN,CAAb;;AACA,UAAA,KAAI,CAACD,qBAAL;AACD;AACF,OALD;AAMD","sourcesContent":["import TimeEndpoint from '../endpoints/time';\nimport { StatusAnnouncement } from '../flow_interfaces';\n\ntype ReconnectionManagerArgs = {\n timeEndpoint: TimeEndpoint\n}\n\nexport default class {\n _reconnectionCallback: Function;\n _timeEndpoint: TimeEndpoint;\n _timeTimer: number;\n\n constructor({ timeEndpoint }: ReconnectionManagerArgs) {\n this._timeEndpoint = timeEndpoint;\n }\n\n onReconnection(reconnectionCallback: Function) {\n this._reconnectionCallback = reconnectionCallback;\n }\n\n startPolling() {\n this._timeTimer = setInterval(this._performTimeLoop.bind(this), 3000);\n }\n\n stopPolling() {\n clearInterval(this._timeTimer);\n }\n\n _performTimeLoop() {\n this._timeEndpoint((status: StatusAnnouncement) => {\n if (!status.error) {\n clearInterval(this._timeTimer);\n this._reconnectionCallback();\n }\n });\n }\n}\n"],"file":"reconnection_manager.js"} \ No newline at end of file diff --git a/lib/core/components/subscription_manager.js b/lib/core/components/subscription_manager.js index d4faa8787..bd04ee93f 100644 --- a/lib/core/components/subscription_manager.js +++ b/lib/core/components/subscription_manager.js @@ -1,10 +1,20 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); + var _cryptography = _interopRequireDefault(require("../components/cryptography")); var _config = _interopRequireDefault(require("../components/config")); @@ -21,16 +31,6 @@ var _flow_interfaces = require("../flow_interfaces"); var _categories = _interopRequireDefault(require("../constants/categories")); -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, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - var _default = function () { function _default(_ref) { var subscribeEndpoint = _ref.subscribeEndpoint, @@ -38,70 +38,45 @@ var _default = function () { heartbeatEndpoint = _ref.heartbeatEndpoint, setStateEndpoint = _ref.setStateEndpoint, timeEndpoint = _ref.timeEndpoint, + getFileUrl = _ref.getFileUrl, config = _ref.config, crypto = _ref.crypto, listenerManager = _ref.listenerManager; - - _classCallCheck(this, _default); - - _defineProperty(this, "_crypto", void 0); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "_listenerManager", void 0); - - _defineProperty(this, "_reconnectionManager", void 0); - - _defineProperty(this, "_leaveEndpoint", void 0); - - _defineProperty(this, "_heartbeatEndpoint", void 0); - - _defineProperty(this, "_setStateEndpoint", void 0); - - _defineProperty(this, "_subscribeEndpoint", void 0); - - _defineProperty(this, "_channels", void 0); - - _defineProperty(this, "_presenceChannels", void 0); - - _defineProperty(this, "_heartbeatChannels", void 0); - - _defineProperty(this, "_heartbeatChannelGroups", void 0); - - _defineProperty(this, "_channelGroups", void 0); - - _defineProperty(this, "_presenceChannelGroups", void 0); - - _defineProperty(this, "_currentTimetoken", void 0); - - _defineProperty(this, "_lastTimetoken", void 0); - - _defineProperty(this, "_storedTimetoken", void 0); - - _defineProperty(this, "_region", void 0); - - _defineProperty(this, "_subscribeCall", void 0); - - _defineProperty(this, "_heartbeatTimer", void 0); - - _defineProperty(this, "_subscriptionStatusAnnounced", void 0); - - _defineProperty(this, "_autoNetworkDetection", void 0); - - _defineProperty(this, "_isOnline", void 0); - - _defineProperty(this, "_pendingChannelSubscriptions", void 0); - - _defineProperty(this, "_pendingChannelGroupSubscriptions", void 0); - - _defineProperty(this, "_dedupingManager", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_crypto", void 0); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_listenerManager", void 0); + (0, _defineProperty2["default"])(this, "_reconnectionManager", void 0); + (0, _defineProperty2["default"])(this, "_leaveEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_setStateEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_subscribeEndpoint", void 0); + (0, _defineProperty2["default"])(this, "_getFileUrl", void 0); + (0, _defineProperty2["default"])(this, "_channels", void 0); + (0, _defineProperty2["default"])(this, "_presenceChannels", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatChannels", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatChannelGroups", void 0); + (0, _defineProperty2["default"])(this, "_channelGroups", void 0); + (0, _defineProperty2["default"])(this, "_presenceChannelGroups", void 0); + (0, _defineProperty2["default"])(this, "_currentTimetoken", void 0); + (0, _defineProperty2["default"])(this, "_lastTimetoken", void 0); + (0, _defineProperty2["default"])(this, "_storedTimetoken", void 0); + (0, _defineProperty2["default"])(this, "_region", void 0); + (0, _defineProperty2["default"])(this, "_subscribeCall", void 0); + (0, _defineProperty2["default"])(this, "_heartbeatTimer", void 0); + (0, _defineProperty2["default"])(this, "_subscriptionStatusAnnounced", void 0); + (0, _defineProperty2["default"])(this, "_autoNetworkDetection", void 0); + (0, _defineProperty2["default"])(this, "_isOnline", void 0); + (0, _defineProperty2["default"])(this, "_pendingChannelSubscriptions", void 0); + (0, _defineProperty2["default"])(this, "_pendingChannelGroupSubscriptions", void 0); + (0, _defineProperty2["default"])(this, "_dedupingManager", void 0); this._listenerManager = listenerManager; this._config = config; this._leaveEndpoint = leaveEndpoint; this._heartbeatEndpoint = heartbeatEndpoint; this._setStateEndpoint = setStateEndpoint; this._subscribeEndpoint = subscribeEndpoint; + this._getFileUrl = getFileUrl; this._crypto = crypto; this._channels = {}; this._presenceChannels = {}; @@ -124,7 +99,7 @@ var _default = function () { }); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "adaptStateChange", value: function adaptStateChange(args, callback) { var _this = this; @@ -688,28 +663,56 @@ var _default = function () { _announce3.event = message.payload.event; _this7._listenerManager.announceMessageAction(_announce3); - } else { + } else if (message.messageType === 4) { var _announce4 = {}; - _announce4.channel = null; - _announce4.subscription = null; - _announce4.actualChannel = subscriptionMatch != null ? channel : null; - _announce4.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; _announce4.channel = channel; _announce4.subscription = subscriptionMatch; _announce4.timetoken = publishMetaData.publishTimetoken; _announce4.publisher = message.issuingClientId; + var msgPayload = message.payload; + + if (_this7._config.cipherKey) { + var decryptedPayload = _this7._crypto.decrypt(message.payload); + + if ((0, _typeof2["default"])(decryptedPayload) === 'object' && decryptedPayload !== null) { + msgPayload = decryptedPayload; + } + } + + _announce4.message = msgPayload.message; + _announce4.file = { + id: msgPayload.file.id, + name: msgPayload.file.name, + url: _this7._getFileUrl({ + id: msgPayload.file.id, + name: msgPayload.file.name, + channel: channel + }) + }; + + _this7._listenerManager.announceFile(_announce4); + } else { + var _announce5 = {}; + _announce5.channel = null; + _announce5.subscription = null; + _announce5.actualChannel = subscriptionMatch != null ? channel : null; + _announce5.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; + _announce5.channel = channel; + _announce5.subscription = subscriptionMatch; + _announce5.timetoken = publishMetaData.publishTimetoken; + _announce5.publisher = message.issuingClientId; if (message.userMetadata) { - _announce4.userMetadata = message.userMetadata; + _announce5.userMetadata = message.userMetadata; } if (_this7._config.cipherKey) { - _announce4.message = _this7._crypto.decrypt(message.payload); + _announce5.message = _this7._crypto.decrypt(message.payload); } else { - _announce4.message = message.payload; + _announce5.message = message.payload; } - _this7._listenerManager.announceMessage(_announce4); + _this7._listenerManager.announceMessage(_announce5); } }); this._region = payload.metadata.region; @@ -728,7 +731,6 @@ var _default = function () { } } }]); - return _default; }(); diff --git a/lib/core/components/subscription_manager.js.map b/lib/core/components/subscription_manager.js.map index 593559868..719d66d64 100644 --- a/lib/core/components/subscription_manager.js.map +++ b/lib/core/components/subscription_manager.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/subscription_manager.js"],"names":["subscribeEndpoint","leaveEndpoint","heartbeatEndpoint","setStateEndpoint","timeEndpoint","config","crypto","listenerManager","_listenerManager","_config","_leaveEndpoint","_heartbeatEndpoint","_setStateEndpoint","_subscribeEndpoint","_crypto","_channels","_presenceChannels","_heartbeatChannels","_heartbeatChannelGroups","_channelGroups","_presenceChannelGroups","_pendingChannelSubscriptions","_pendingChannelGroupSubscriptions","_currentTimetoken","_lastTimetoken","_storedTimetoken","_subscriptionStatusAnnounced","_isOnline","_reconnectionManager","ReconnectionManager","_dedupingManager","DedupingManager","args","callback","state","channels","channelGroups","forEach","channel","channelGroup","connected","suppressLeaveEvents","status","announceStatus","reconnect","timetoken","withPresence","withHeartbeats","subscribeKey","console","log","getHeartbeatInterval","push","isOffline","actualChannels","actualChannelGroups","length","affectedChannels","affectedChannelGroups","currentTimetoken","lastTimetoken","Object","keys","_region","stopPolling","adaptUnsubscribeChange","getSubscribedChannels","getSubscribedChannelGroups","_startSubscribeLoop","_registerHeartbeatTimer","_stopSubscribeLoop","_stopHeartbeatTimer","undefined","_performHeartbeatLoop","_heartbeatTimer","setInterval","bind","clearInterval","heartbeatChannels","getHeartbeatChannels","heartbeatChannelGroups","getHeartbeatChannelGroups","presenceState","channelState","channelGroupState","onHeartbeat","error","announceFailedHeartbeats","autoNetworkDetection","disconnect","announceNetworkDown","announceSuccessfulHeartbeats","subscribeArgs","filterExpression","region","_subscribeCall","_processSubscribeResponse","payload","category","categoryConstants","PNTimeoutCategory","PNNetworkIssuesCategory","onReconnection","announceNetworkUp","reconnectedAnnounce","PNReconnectedCategory","operation","startPolling","PNBadRequestCategory","metadata","connectedAnnounce","PNConnectedCategory","subscribedChannels","messages","requestMessageCountThreshold","dedupeOnSubscribe","countAnnouncement","PNRequestMessageCountExceededCategory","message","subscriptionMatch","publishMetaData","isDuplicate","addEntry","utils","endsWith","announce","subscription","actualChannel","subscribedChannel","substring","lastIndexOf","action","data","publishTimetoken","occupancy","uuid","timestamp","join","leave","timeout","announcePresence","messageType","publisher","issuingClientId","userMetadata","announceSignal","event","type","announceObjects","announceUser","announceSpace","announceMembership","messageTimetoken","actionTimetoken","value","announceMessageAction","cipherKey","decrypt","announceMessage","abort"],"mappings":"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","sourcesContent":["/* @flow */\nimport Crypto from '../components/cryptography';\nimport Config from '../components/config';\nimport ListenerManager from '../components/listener_manager';\nimport ReconnectionManager from '../components/reconnection_manager';\nimport DedupingManager from '../components/deduping_manager';\nimport utils from '../utils';\nimport {\n MessageActionAnnouncement,\n MessageAnnouncement,\n SignalAnnouncement,\n ObjectAnnouncement,\n SubscribeEnvelope,\n StatusAnnouncement,\n PresenceAnnouncement,\n} from '../flow_interfaces';\nimport categoryConstants from '../constants/categories';\n\ntype SubscribeArgs = {\n channels: Array,\n channelGroups: Array,\n withPresence: ?boolean,\n timetoken: ?number,\n withHeartbeats: ?boolean,\n};\n\ntype PresenceArgs = {\n channels: Array,\n channelGroups: Array,\n connected: boolean,\n};\n\ntype UnsubscribeArgs = {\n channels: Array,\n channelGroups: Array,\n};\n\ntype StateArgs = {\n channels: Array,\n channelGroups: Array,\n state: Object,\n};\n\ntype SubscriptionManagerConstruct = {\n leaveEndpoint: Function,\n subscribeEndpoint: Function,\n timeEndpoint: Function,\n heartbeatEndpoint: Function,\n setStateEndpoint: Function,\n config: Config,\n crypto: Crypto,\n listenerManager: ListenerManager,\n};\n\nexport default class {\n _crypto: Crypto;\n _config: Config;\n _listenerManager: ListenerManager;\n _reconnectionManager: ReconnectionManager;\n\n _leaveEndpoint: Function;\n _heartbeatEndpoint: Function;\n _setStateEndpoint: Function;\n _subscribeEndpoint: Function;\n\n _channels: Object;\n _presenceChannels: Object;\n\n _heartbeatChannels: Object;\n _heartbeatChannelGroups: Object;\n\n _channelGroups: Object;\n _presenceChannelGroups: Object;\n\n _currentTimetoken: number;\n _lastTimetoken: number;\n _storedTimetoken: ?number;\n\n _region: ?number;\n\n _subscribeCall: ?Object;\n _heartbeatTimer: ?number;\n\n _subscriptionStatusAnnounced: boolean;\n\n _autoNetworkDetection: boolean;\n _isOnline: boolean;\n\n // store pending connection elements\n _pendingChannelSubscriptions: Array;\n _pendingChannelGroupSubscriptions: Array;\n //\n\n _dedupingManager: DedupingManager;\n\n constructor({\n subscribeEndpoint,\n leaveEndpoint,\n heartbeatEndpoint,\n setStateEndpoint,\n timeEndpoint,\n config,\n crypto,\n listenerManager,\n }: SubscriptionManagerConstruct) {\n this._listenerManager = listenerManager;\n this._config = config;\n\n this._leaveEndpoint = leaveEndpoint;\n this._heartbeatEndpoint = heartbeatEndpoint;\n this._setStateEndpoint = setStateEndpoint;\n this._subscribeEndpoint = subscribeEndpoint;\n\n this._crypto = crypto;\n\n this._channels = {};\n this._presenceChannels = {};\n\n this._heartbeatChannels = {};\n this._heartbeatChannelGroups = {};\n\n this._channelGroups = {};\n this._presenceChannelGroups = {};\n\n this._pendingChannelSubscriptions = [];\n this._pendingChannelGroupSubscriptions = [];\n\n this._currentTimetoken = 0;\n this._lastTimetoken = 0;\n this._storedTimetoken = null;\n\n this._subscriptionStatusAnnounced = false;\n\n this._isOnline = true;\n\n this._reconnectionManager = new ReconnectionManager({ timeEndpoint });\n this._dedupingManager = new DedupingManager({ config });\n }\n\n adaptStateChange(args: StateArgs, callback: Function) {\n const { state, channels = [], channelGroups = [] } = args;\n\n channels.forEach((channel) => {\n if (channel in this._channels) this._channels[channel].state = state;\n });\n\n channelGroups.forEach((channelGroup) => {\n if (channelGroup in this._channelGroups) {\n this._channelGroups[channelGroup].state = state;\n }\n });\n\n return this._setStateEndpoint({ state, channels, channelGroups }, callback);\n }\n\n adaptPresenceChange(args: PresenceArgs) {\n const { connected, channels = [], channelGroups = [] } = args;\n\n if (connected) {\n channels.forEach((channel: string) => {\n this._heartbeatChannels[channel] = { state: {} };\n });\n\n channelGroups.forEach((channelGroup: string) => {\n this._heartbeatChannelGroups[channelGroup] = { state: {} };\n });\n } else {\n channels.forEach((channel) => {\n if (channel in this._heartbeatChannels) {\n delete this._heartbeatChannels[channel];\n }\n });\n\n channelGroups.forEach((channelGroup) => {\n if (channelGroup in this._heartbeatChannelGroups) {\n delete this._heartbeatChannelGroups[channelGroup];\n }\n });\n\n if (this._config.suppressLeaveEvents === false) {\n this._leaveEndpoint({ channels, channelGroups }, (status) => {\n this._listenerManager.announceStatus(status);\n });\n }\n }\n\n this.reconnect();\n }\n\n adaptSubscribeChange(args: SubscribeArgs) {\n const {\n timetoken,\n channels = [],\n channelGroups = [],\n withPresence = false,\n withHeartbeats = false,\n } = args;\n\n if (!this._config.subscribeKey || this._config.subscribeKey === '') {\n // eslint-disable-next-line\n if (console && console.log) {\n console.log('subscribe key missing; aborting subscribe'); //eslint-disable-line\n }\n return;\n }\n\n if (timetoken) {\n this._lastTimetoken = this._currentTimetoken;\n this._currentTimetoken = timetoken;\n }\n\n // reset the current timetoken to get a connect event.\n // $FlowFixMe\n if (this._currentTimetoken !== '0' && this._currentTimetoken !== 0) {\n this._storedTimetoken = this._currentTimetoken;\n this._currentTimetoken = 0;\n }\n\n channels.forEach((channel: string) => {\n this._channels[channel] = { state: {} };\n if (withPresence) this._presenceChannels[channel] = {};\n if (withHeartbeats || this._config.getHeartbeatInterval()) this._heartbeatChannels[channel] = {};\n\n this._pendingChannelSubscriptions.push(channel);\n });\n\n channelGroups.forEach((channelGroup: string) => {\n this._channelGroups[channelGroup] = { state: {} };\n if (withPresence) this._presenceChannelGroups[channelGroup] = {};\n if (withHeartbeats || this._config.getHeartbeatInterval()) this._heartbeatChannelGroups[channelGroup] = {};\n\n this._pendingChannelGroupSubscriptions.push(channelGroup);\n });\n\n this._subscriptionStatusAnnounced = false;\n this.reconnect();\n }\n\n adaptUnsubscribeChange(args: UnsubscribeArgs, isOffline: boolean) {\n const { channels = [], channelGroups = [] } = args;\n\n // keep track of which channels and channel groups\n // we are going to unsubscribe from.\n const actualChannels = [];\n const actualChannelGroups = [];\n //\n\n channels.forEach((channel) => {\n if (channel in this._channels) {\n delete this._channels[channel];\n actualChannels.push(channel);\n\n if (channel in this._heartbeatChannels) {\n delete this._heartbeatChannels[channel];\n }\n }\n if (channel in this._presenceChannels) {\n delete this._presenceChannels[channel];\n actualChannels.push(channel);\n }\n });\n\n channelGroups.forEach((channelGroup) => {\n if (channelGroup in this._channelGroups) {\n delete this._channelGroups[channelGroup];\n actualChannelGroups.push(channelGroup);\n\n if (channelGroup in this._heartbeatChannelGroups) {\n delete this._heartbeatChannelGroups[channelGroup];\n }\n }\n if (channelGroup in this._presenceChannelGroups) {\n delete this._channelGroups[channelGroup];\n actualChannelGroups.push(channelGroup);\n }\n });\n\n // no-op if there are no channels and cg's to unsubscribe from.\n if (actualChannels.length === 0 && actualChannelGroups.length === 0) {\n return;\n }\n\n if (this._config.suppressLeaveEvents === false && !isOffline) {\n this._leaveEndpoint(\n { channels: actualChannels, channelGroups: actualChannelGroups },\n (status) => {\n status.affectedChannels = actualChannels;\n status.affectedChannelGroups = actualChannelGroups;\n status.currentTimetoken = this._currentTimetoken;\n status.lastTimetoken = this._lastTimetoken;\n this._listenerManager.announceStatus(status);\n }\n );\n }\n\n // if we have nothing to subscribe to, reset the timetoken.\n if (\n Object.keys(this._channels).length === 0 &&\n Object.keys(this._presenceChannels).length === 0 &&\n Object.keys(this._channelGroups).length === 0 &&\n Object.keys(this._presenceChannelGroups).length === 0\n ) {\n this._lastTimetoken = 0;\n this._currentTimetoken = 0;\n this._storedTimetoken = null;\n this._region = null;\n this._reconnectionManager.stopPolling();\n }\n\n this.reconnect();\n }\n\n unsubscribeAll(isOffline: boolean) {\n this.adaptUnsubscribeChange(\n {\n channels: this.getSubscribedChannels(),\n channelGroups: this.getSubscribedChannelGroups(),\n },\n isOffline\n );\n }\n\n getHeartbeatChannels(): Array {\n return Object.keys(this._heartbeatChannels);\n }\n\n getHeartbeatChannelGroups(): Array {\n return Object.keys(this._heartbeatChannelGroups);\n }\n\n getSubscribedChannels(): Array {\n return Object.keys(this._channels);\n }\n\n getSubscribedChannelGroups(): Array {\n return Object.keys(this._channelGroups);\n }\n\n reconnect() {\n this._startSubscribeLoop();\n this._registerHeartbeatTimer();\n }\n\n disconnect() {\n this._stopSubscribeLoop();\n this._stopHeartbeatTimer();\n this._reconnectionManager.stopPolling();\n }\n\n _registerHeartbeatTimer() {\n this._stopHeartbeatTimer();\n\n // if the interval is 0 or undefined, do not queue up heartbeating\n if (this._config.getHeartbeatInterval() === 0 || this._config.getHeartbeatInterval() === undefined) {\n return;\n }\n\n this._performHeartbeatLoop();\n // $FlowFixMe\n this._heartbeatTimer = setInterval(\n this._performHeartbeatLoop.bind(this),\n this._config.getHeartbeatInterval() * 1000\n );\n }\n\n _stopHeartbeatTimer() {\n if (this._heartbeatTimer) {\n // $FlowFixMe\n clearInterval(this._heartbeatTimer);\n this._heartbeatTimer = null;\n }\n }\n\n _performHeartbeatLoop() {\n const heartbeatChannels = this.getHeartbeatChannels();\n\n const heartbeatChannelGroups = this.getHeartbeatChannelGroups();\n\n let presenceState = {};\n\n if (heartbeatChannels.length === 0 && heartbeatChannelGroups.length === 0) {\n return;\n }\n\n this.getSubscribedChannels().forEach((channel) => {\n let channelState = this._channels[channel].state;\n if (Object.keys(channelState).length) {\n presenceState[channel] = channelState;\n }\n });\n\n this.getSubscribedChannelGroups().forEach((channelGroup) => {\n let channelGroupState = this._channelGroups[channelGroup].state;\n if (Object.keys(channelGroupState).length) {\n presenceState[channelGroup] = channelGroupState;\n }\n });\n\n let onHeartbeat = (status: StatusAnnouncement) => {\n if (status.error && this._config.announceFailedHeartbeats) {\n this._listenerManager.announceStatus(status);\n }\n\n if (status.error && this._config.autoNetworkDetection && this._isOnline) {\n this._isOnline = false;\n this.disconnect();\n this._listenerManager.announceNetworkDown();\n this.reconnect();\n }\n\n if (!status.error && this._config.announceSuccessfulHeartbeats) {\n this._listenerManager.announceStatus(status);\n }\n };\n\n this._heartbeatEndpoint(\n {\n channels: heartbeatChannels,\n channelGroups: heartbeatChannelGroups,\n state: presenceState,\n },\n onHeartbeat.bind(this)\n );\n }\n\n _startSubscribeLoop() {\n this._stopSubscribeLoop();\n let presenceState = {};\n let channels = [];\n let channelGroups = [];\n\n Object.keys(this._channels).forEach((channel) => {\n let channelState = this._channels[channel].state;\n\n if (Object.keys(channelState).length) {\n presenceState[channel] = channelState;\n }\n\n channels.push(channel);\n });\n Object.keys(this._presenceChannels).forEach((channel) => {\n channels.push(`${channel}-pnpres`);\n });\n\n Object.keys(this._channelGroups).forEach((channelGroup) => {\n let channelGroupState = this._channelGroups[channelGroup].state;\n\n if (Object.keys(channelGroupState).length) {\n presenceState[channelGroup] = channelGroupState;\n }\n\n channelGroups.push(channelGroup);\n });\n Object.keys(this._presenceChannelGroups).forEach((channelGroup) => {\n channelGroups.push(`${channelGroup}-pnpres`);\n });\n\n if (channels.length === 0 && channelGroups.length === 0) {\n return;\n }\n\n const subscribeArgs = {\n channels,\n channelGroups,\n state: presenceState,\n timetoken: this._currentTimetoken,\n filterExpression: this._config.filterExpression,\n region: this._region,\n };\n\n this._subscribeCall = this._subscribeEndpoint(\n subscribeArgs,\n this._processSubscribeResponse.bind(this)\n );\n }\n\n _processSubscribeResponse(\n status: StatusAnnouncement,\n payload: SubscribeEnvelope\n ) {\n if (status.error) {\n // if we timeout from server, restart the loop.\n if (status.category === categoryConstants.PNTimeoutCategory) {\n this._startSubscribeLoop();\n } else if (\n status.category === categoryConstants.PNNetworkIssuesCategory\n ) {\n // we lost internet connection, alert the reconnection manager and terminate all loops\n this.disconnect();\n\n if (\n status.error &&\n this._config.autoNetworkDetection &&\n this._isOnline\n ) {\n this._isOnline = false;\n this._listenerManager.announceNetworkDown();\n }\n\n this._reconnectionManager.onReconnection(() => {\n if (this._config.autoNetworkDetection && !this._isOnline) {\n this._isOnline = true;\n this._listenerManager.announceNetworkUp();\n }\n this.reconnect();\n this._subscriptionStatusAnnounced = true;\n let reconnectedAnnounce: StatusAnnouncement = {\n category: categoryConstants.PNReconnectedCategory,\n operation: status.operation,\n lastTimetoken: this._lastTimetoken,\n currentTimetoken: this._currentTimetoken,\n };\n this._listenerManager.announceStatus(reconnectedAnnounce);\n });\n\n this._reconnectionManager.startPolling();\n this._listenerManager.announceStatus(status);\n } else if (status.category === categoryConstants.PNBadRequestCategory) {\n this._stopHeartbeatTimer();\n this._listenerManager.announceStatus(status);\n } else {\n this._listenerManager.announceStatus(status);\n }\n\n return;\n }\n\n if (this._storedTimetoken) {\n this._currentTimetoken = this._storedTimetoken;\n this._storedTimetoken = null;\n } else {\n this._lastTimetoken = this._currentTimetoken;\n this._currentTimetoken = payload.metadata.timetoken;\n }\n\n if (!this._subscriptionStatusAnnounced) {\n let connectedAnnounce: StatusAnnouncement = {};\n connectedAnnounce.category = categoryConstants.PNConnectedCategory;\n connectedAnnounce.operation = status.operation;\n connectedAnnounce.affectedChannels = this._pendingChannelSubscriptions;\n connectedAnnounce.subscribedChannels = this.getSubscribedChannels();\n connectedAnnounce.affectedChannelGroups = this._pendingChannelGroupSubscriptions;\n connectedAnnounce.lastTimetoken = this._lastTimetoken;\n connectedAnnounce.currentTimetoken = this._currentTimetoken;\n this._subscriptionStatusAnnounced = true;\n this._listenerManager.announceStatus(connectedAnnounce);\n\n // clear the pending connections list\n this._pendingChannelSubscriptions = [];\n this._pendingChannelGroupSubscriptions = [];\n }\n\n let messages = payload.messages || [];\n let { requestMessageCountThreshold, dedupeOnSubscribe } = this._config;\n\n if (\n requestMessageCountThreshold &&\n messages.length >= requestMessageCountThreshold\n ) {\n let countAnnouncement: StatusAnnouncement = {};\n countAnnouncement.category =\n categoryConstants.PNRequestMessageCountExceededCategory;\n countAnnouncement.operation = status.operation;\n this._listenerManager.announceStatus(countAnnouncement);\n }\n\n messages.forEach((message) => {\n let channel = message.channel;\n let subscriptionMatch = message.subscriptionMatch;\n let publishMetaData = message.publishMetaData;\n\n if (channel === subscriptionMatch) {\n subscriptionMatch = null;\n }\n\n if (dedupeOnSubscribe) {\n if (this._dedupingManager.isDuplicate(message)) {\n return;\n } else {\n this._dedupingManager.addEntry(message);\n }\n }\n\n if (utils.endsWith(message.channel, '-pnpres')) {\n let announce: PresenceAnnouncement = {};\n announce.channel = null;\n announce.subscription = null;\n\n // deprecated -->\n announce.actualChannel = subscriptionMatch != null ? channel : null;\n announce.subscribedChannel =\n subscriptionMatch != null ? subscriptionMatch : channel;\n // <-- deprecated\n\n if (channel) {\n announce.channel = channel.substring(\n 0,\n channel.lastIndexOf('-pnpres')\n );\n }\n\n if (subscriptionMatch) {\n announce.subscription = subscriptionMatch.substring(\n 0,\n subscriptionMatch.lastIndexOf('-pnpres')\n );\n }\n\n announce.action = message.payload.action;\n announce.state = message.payload.data;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.occupancy = message.payload.occupancy;\n announce.uuid = message.payload.uuid;\n announce.timestamp = message.payload.timestamp;\n\n if (message.payload.join) {\n announce.join = message.payload.join;\n }\n\n if (message.payload.leave) {\n announce.leave = message.payload.leave;\n }\n\n if (message.payload.timeout) {\n announce.timeout = message.payload.timeout;\n }\n\n this._listenerManager.announcePresence(announce);\n } else if (message.messageType === 1) {\n // this is a signal message\n let announce: SignalAnnouncement = {};\n announce.channel = null;\n announce.subscription = null;\n\n announce.channel = channel;\n announce.subscription = subscriptionMatch;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.publisher = message.issuingClientId;\n\n if (message.userMetadata) {\n announce.userMetadata = message.userMetadata;\n }\n\n announce.message = message.payload;\n\n this._listenerManager.announceSignal(announce);\n } else if (message.messageType === 2) {\n // this is an object message\n\n let announce: ObjectAnnouncement = {};\n\n announce.channel = null;\n announce.subscription = null;\n\n announce.channel = channel;\n announce.subscription = subscriptionMatch;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.publisher = message.issuingClientId;\n\n if (message.userMetadata) {\n announce.userMetadata = message.userMetadata;\n }\n\n announce.message = {\n event: message.payload.event,\n type: message.payload.type,\n data: message.payload.data,\n };\n\n this._listenerManager.announceObjects(announce);\n\n if (message.payload.type === 'user') {\n this._listenerManager.announceUser(announce);\n } else if (message.payload.type === 'space') {\n this._listenerManager.announceSpace(announce);\n } else if (message.payload.type === 'membership') {\n this._listenerManager.announceMembership(announce);\n }\n } else if (message.messageType === 3) {\n // this is a message action\n let announce: MessageActionAnnouncement = {};\n announce.channel = channel;\n announce.subscription = subscriptionMatch;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.publisher = message.issuingClientId;\n\n announce.data = {\n messageTimetoken: message.payload.data.messageTimetoken,\n actionTimetoken: message.payload.data.actionTimetoken,\n type: message.payload.data.type,\n uuid: message.issuingClientId,\n value: message.payload.data.value,\n };\n\n announce.event = message.payload.event;\n\n this._listenerManager.announceMessageAction(announce);\n } else {\n let announce: MessageAnnouncement = {};\n announce.channel = null;\n announce.subscription = null;\n\n // deprecated -->\n announce.actualChannel = subscriptionMatch != null ? channel : null;\n announce.subscribedChannel =\n subscriptionMatch != null ? subscriptionMatch : channel;\n // <-- deprecated\n\n announce.channel = channel;\n announce.subscription = subscriptionMatch;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.publisher = message.issuingClientId;\n\n if (message.userMetadata) {\n announce.userMetadata = message.userMetadata;\n }\n\n if (this._config.cipherKey) {\n announce.message = this._crypto.decrypt(message.payload);\n } else {\n announce.message = message.payload;\n }\n\n this._listenerManager.announceMessage(announce);\n }\n });\n\n this._region = payload.metadata.region;\n this._startSubscribeLoop();\n }\n\n _stopSubscribeLoop() {\n if (this._subscribeCall) {\n if (typeof this._subscribeCall.abort === 'function') {\n this._subscribeCall.abort();\n }\n this._subscribeCall = null;\n }\n }\n}\n"],"file":"subscription_manager.js"} \ No newline at end of file +{"version":3,"sources":["core/components/subscription_manager.js"],"names":["subscribeEndpoint","leaveEndpoint","heartbeatEndpoint","setStateEndpoint","timeEndpoint","getFileUrl","config","crypto","listenerManager","_listenerManager","_config","_leaveEndpoint","_heartbeatEndpoint","_setStateEndpoint","_subscribeEndpoint","_getFileUrl","_crypto","_channels","_presenceChannels","_heartbeatChannels","_heartbeatChannelGroups","_channelGroups","_presenceChannelGroups","_pendingChannelSubscriptions","_pendingChannelGroupSubscriptions","_currentTimetoken","_lastTimetoken","_storedTimetoken","_subscriptionStatusAnnounced","_isOnline","_reconnectionManager","ReconnectionManager","_dedupingManager","DedupingManager","args","callback","state","channels","channelGroups","forEach","channel","channelGroup","connected","suppressLeaveEvents","status","announceStatus","reconnect","timetoken","withPresence","withHeartbeats","subscribeKey","console","log","getHeartbeatInterval","push","isOffline","actualChannels","actualChannelGroups","length","affectedChannels","affectedChannelGroups","currentTimetoken","lastTimetoken","Object","keys","_region","stopPolling","adaptUnsubscribeChange","getSubscribedChannels","getSubscribedChannelGroups","_startSubscribeLoop","_registerHeartbeatTimer","_stopSubscribeLoop","_stopHeartbeatTimer","undefined","_performHeartbeatLoop","_heartbeatTimer","setInterval","bind","clearInterval","heartbeatChannels","getHeartbeatChannels","heartbeatChannelGroups","getHeartbeatChannelGroups","presenceState","channelState","channelGroupState","onHeartbeat","error","announceFailedHeartbeats","autoNetworkDetection","disconnect","announceNetworkDown","announceSuccessfulHeartbeats","subscribeArgs","filterExpression","region","_subscribeCall","_processSubscribeResponse","payload","category","categoryConstants","PNTimeoutCategory","PNNetworkIssuesCategory","onReconnection","announceNetworkUp","reconnectedAnnounce","PNReconnectedCategory","operation","startPolling","PNBadRequestCategory","metadata","connectedAnnounce","PNConnectedCategory","subscribedChannels","messages","requestMessageCountThreshold","dedupeOnSubscribe","countAnnouncement","PNRequestMessageCountExceededCategory","message","subscriptionMatch","publishMetaData","isDuplicate","addEntry","utils","endsWith","announce","subscription","actualChannel","subscribedChannel","substring","lastIndexOf","action","data","publishTimetoken","occupancy","uuid","timestamp","join","leave","timeout","announcePresence","messageType","publisher","issuingClientId","userMetadata","announceSignal","event","type","announceObjects","announceUser","announceSpace","announceMembership","messageTimetoken","actionTimetoken","value","announceMessageAction","msgPayload","cipherKey","decryptedPayload","decrypt","file","id","name","url","announceFile","announceMessage","abort"],"mappings":"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","sourcesContent":["/* @flow */\nimport Crypto from '../components/cryptography';\nimport Config from '../components/config';\nimport ListenerManager from '../components/listener_manager';\nimport ReconnectionManager from '../components/reconnection_manager';\nimport DedupingManager from '../components/deduping_manager';\nimport utils from '../utils';\nimport {\n MessageActionAnnouncement,\n MessageAnnouncement,\n SignalAnnouncement,\n ObjectAnnouncement,\n SubscribeEnvelope,\n StatusAnnouncement,\n PresenceAnnouncement,\n FileAnnouncement,\n} from '../flow_interfaces';\nimport categoryConstants from '../constants/categories';\n\ntype SubscribeArgs = {\n channels: Array,\n channelGroups: Array,\n withPresence: ?boolean,\n timetoken: ?number,\n withHeartbeats: ?boolean,\n};\n\ntype PresenceArgs = {\n channels: Array,\n channelGroups: Array,\n connected: boolean,\n};\n\ntype UnsubscribeArgs = {\n channels: Array,\n channelGroups: Array,\n};\n\ntype StateArgs = {\n channels: Array,\n channelGroups: Array,\n state: Object,\n};\n\ntype SubscriptionManagerConstruct = {\n leaveEndpoint: Function,\n subscribeEndpoint: Function,\n timeEndpoint: Function,\n heartbeatEndpoint: Function,\n setStateEndpoint: Function,\n getFileUrl: ({| id: string, name: string, channel: string |}) => string,\n config: Config,\n crypto: Crypto,\n listenerManager: ListenerManager,\n};\n\nexport default class {\n _crypto: Crypto;\n _config: Config;\n _listenerManager: ListenerManager;\n _reconnectionManager: ReconnectionManager;\n\n _leaveEndpoint: Function;\n _heartbeatEndpoint: Function;\n _setStateEndpoint: Function;\n _subscribeEndpoint: Function;\n _getFileUrl: ({| id: string, name: string, channel: string |}) => string;\n\n _channels: Object;\n _presenceChannels: Object;\n\n _heartbeatChannels: Object;\n _heartbeatChannelGroups: Object;\n\n _channelGroups: Object;\n _presenceChannelGroups: Object;\n\n _currentTimetoken: number;\n _lastTimetoken: number;\n _storedTimetoken: ?number;\n\n _region: ?number;\n\n _subscribeCall: ?Object;\n _heartbeatTimer: ?number;\n\n _subscriptionStatusAnnounced: boolean;\n\n _autoNetworkDetection: boolean;\n _isOnline: boolean;\n\n // store pending connection elements\n _pendingChannelSubscriptions: Array;\n _pendingChannelGroupSubscriptions: Array;\n //\n\n _dedupingManager: DedupingManager;\n\n constructor({\n subscribeEndpoint,\n leaveEndpoint,\n heartbeatEndpoint,\n setStateEndpoint,\n timeEndpoint,\n getFileUrl,\n config,\n crypto,\n listenerManager,\n }: SubscriptionManagerConstruct) {\n this._listenerManager = listenerManager;\n this._config = config;\n\n this._leaveEndpoint = leaveEndpoint;\n this._heartbeatEndpoint = heartbeatEndpoint;\n this._setStateEndpoint = setStateEndpoint;\n this._subscribeEndpoint = subscribeEndpoint;\n this._getFileUrl = getFileUrl;\n\n this._crypto = crypto;\n\n this._channels = {};\n this._presenceChannels = {};\n\n this._heartbeatChannels = {};\n this._heartbeatChannelGroups = {};\n\n this._channelGroups = {};\n this._presenceChannelGroups = {};\n\n this._pendingChannelSubscriptions = [];\n this._pendingChannelGroupSubscriptions = [];\n\n this._currentTimetoken = 0;\n this._lastTimetoken = 0;\n this._storedTimetoken = null;\n\n this._subscriptionStatusAnnounced = false;\n\n this._isOnline = true;\n\n this._reconnectionManager = new ReconnectionManager({ timeEndpoint });\n this._dedupingManager = new DedupingManager({ config });\n }\n\n adaptStateChange(args: StateArgs, callback: Function) {\n const { state, channels = [], channelGroups = [] } = args;\n\n channels.forEach((channel) => {\n if (channel in this._channels) this._channels[channel].state = state;\n });\n\n channelGroups.forEach((channelGroup) => {\n if (channelGroup in this._channelGroups) {\n this._channelGroups[channelGroup].state = state;\n }\n });\n\n return this._setStateEndpoint({ state, channels, channelGroups }, callback);\n }\n\n adaptPresenceChange(args: PresenceArgs) {\n const { connected, channels = [], channelGroups = [] } = args;\n\n if (connected) {\n channels.forEach((channel: string) => {\n this._heartbeatChannels[channel] = { state: {} };\n });\n\n channelGroups.forEach((channelGroup: string) => {\n this._heartbeatChannelGroups[channelGroup] = { state: {} };\n });\n } else {\n channels.forEach((channel) => {\n if (channel in this._heartbeatChannels) {\n delete this._heartbeatChannels[channel];\n }\n });\n\n channelGroups.forEach((channelGroup) => {\n if (channelGroup in this._heartbeatChannelGroups) {\n delete this._heartbeatChannelGroups[channelGroup];\n }\n });\n\n if (this._config.suppressLeaveEvents === false) {\n this._leaveEndpoint({ channels, channelGroups }, (status) => {\n this._listenerManager.announceStatus(status);\n });\n }\n }\n\n this.reconnect();\n }\n\n adaptSubscribeChange(args: SubscribeArgs) {\n const { timetoken, channels = [], channelGroups = [], withPresence = false, withHeartbeats = false } = args;\n\n if (!this._config.subscribeKey || this._config.subscribeKey === '') {\n // eslint-disable-next-line\n if (console && console.log) {\n console.log('subscribe key missing; aborting subscribe'); //eslint-disable-line\n }\n return;\n }\n\n if (timetoken) {\n this._lastTimetoken = this._currentTimetoken;\n this._currentTimetoken = timetoken;\n }\n\n // reset the current timetoken to get a connect event.\n // $FlowFixMe\n if (this._currentTimetoken !== '0' && this._currentTimetoken !== 0) {\n this._storedTimetoken = this._currentTimetoken;\n this._currentTimetoken = 0;\n }\n\n channels.forEach((channel: string) => {\n this._channels[channel] = { state: {} };\n if (withPresence) this._presenceChannels[channel] = {};\n if (withHeartbeats || this._config.getHeartbeatInterval()) this._heartbeatChannels[channel] = {};\n\n this._pendingChannelSubscriptions.push(channel);\n });\n\n channelGroups.forEach((channelGroup: string) => {\n this._channelGroups[channelGroup] = { state: {} };\n if (withPresence) this._presenceChannelGroups[channelGroup] = {};\n if (withHeartbeats || this._config.getHeartbeatInterval()) this._heartbeatChannelGroups[channelGroup] = {};\n\n this._pendingChannelGroupSubscriptions.push(channelGroup);\n });\n\n this._subscriptionStatusAnnounced = false;\n this.reconnect();\n }\n\n adaptUnsubscribeChange(args: UnsubscribeArgs, isOffline: boolean) {\n const { channels = [], channelGroups = [] } = args;\n\n // keep track of which channels and channel groups\n // we are going to unsubscribe from.\n const actualChannels = [];\n const actualChannelGroups = [];\n //\n\n channels.forEach((channel) => {\n if (channel in this._channels) {\n delete this._channels[channel];\n actualChannels.push(channel);\n\n if (channel in this._heartbeatChannels) {\n delete this._heartbeatChannels[channel];\n }\n }\n if (channel in this._presenceChannels) {\n delete this._presenceChannels[channel];\n actualChannels.push(channel);\n }\n });\n\n channelGroups.forEach((channelGroup) => {\n if (channelGroup in this._channelGroups) {\n delete this._channelGroups[channelGroup];\n actualChannelGroups.push(channelGroup);\n\n if (channelGroup in this._heartbeatChannelGroups) {\n delete this._heartbeatChannelGroups[channelGroup];\n }\n }\n if (channelGroup in this._presenceChannelGroups) {\n delete this._channelGroups[channelGroup];\n actualChannelGroups.push(channelGroup);\n }\n });\n\n // no-op if there are no channels and cg's to unsubscribe from.\n if (actualChannels.length === 0 && actualChannelGroups.length === 0) {\n return;\n }\n\n if (this._config.suppressLeaveEvents === false && !isOffline) {\n this._leaveEndpoint({ channels: actualChannels, channelGroups: actualChannelGroups }, (status) => {\n status.affectedChannels = actualChannels;\n status.affectedChannelGroups = actualChannelGroups;\n status.currentTimetoken = this._currentTimetoken;\n status.lastTimetoken = this._lastTimetoken;\n this._listenerManager.announceStatus(status);\n });\n }\n\n // if we have nothing to subscribe to, reset the timetoken.\n if (\n Object.keys(this._channels).length === 0 &&\n Object.keys(this._presenceChannels).length === 0 &&\n Object.keys(this._channelGroups).length === 0 &&\n Object.keys(this._presenceChannelGroups).length === 0\n ) {\n this._lastTimetoken = 0;\n this._currentTimetoken = 0;\n this._storedTimetoken = null;\n this._region = null;\n this._reconnectionManager.stopPolling();\n }\n\n this.reconnect();\n }\n\n unsubscribeAll(isOffline: boolean) {\n this.adaptUnsubscribeChange(\n {\n channels: this.getSubscribedChannels(),\n channelGroups: this.getSubscribedChannelGroups(),\n },\n isOffline\n );\n }\n\n getHeartbeatChannels(): Array {\n return Object.keys(this._heartbeatChannels);\n }\n\n getHeartbeatChannelGroups(): Array {\n return Object.keys(this._heartbeatChannelGroups);\n }\n\n getSubscribedChannels(): Array {\n return Object.keys(this._channels);\n }\n\n getSubscribedChannelGroups(): Array {\n return Object.keys(this._channelGroups);\n }\n\n reconnect() {\n this._startSubscribeLoop();\n this._registerHeartbeatTimer();\n }\n\n disconnect() {\n this._stopSubscribeLoop();\n this._stopHeartbeatTimer();\n this._reconnectionManager.stopPolling();\n }\n\n _registerHeartbeatTimer() {\n this._stopHeartbeatTimer();\n\n // if the interval is 0 or undefined, do not queue up heartbeating\n if (this._config.getHeartbeatInterval() === 0 || this._config.getHeartbeatInterval() === undefined) {\n return;\n }\n\n this._performHeartbeatLoop();\n // $FlowFixMe\n this._heartbeatTimer = setInterval(\n this._performHeartbeatLoop.bind(this),\n this._config.getHeartbeatInterval() * 1000\n );\n }\n\n _stopHeartbeatTimer() {\n if (this._heartbeatTimer) {\n // $FlowFixMe\n clearInterval(this._heartbeatTimer);\n this._heartbeatTimer = null;\n }\n }\n\n _performHeartbeatLoop() {\n const heartbeatChannels = this.getHeartbeatChannels();\n\n const heartbeatChannelGroups = this.getHeartbeatChannelGroups();\n\n let presenceState = {};\n\n if (heartbeatChannels.length === 0 && heartbeatChannelGroups.length === 0) {\n return;\n }\n\n this.getSubscribedChannels().forEach((channel) => {\n let channelState = this._channels[channel].state;\n if (Object.keys(channelState).length) {\n presenceState[channel] = channelState;\n }\n });\n\n this.getSubscribedChannelGroups().forEach((channelGroup) => {\n let channelGroupState = this._channelGroups[channelGroup].state;\n if (Object.keys(channelGroupState).length) {\n presenceState[channelGroup] = channelGroupState;\n }\n });\n\n let onHeartbeat = (status: StatusAnnouncement) => {\n if (status.error && this._config.announceFailedHeartbeats) {\n this._listenerManager.announceStatus(status);\n }\n\n if (status.error && this._config.autoNetworkDetection && this._isOnline) {\n this._isOnline = false;\n this.disconnect();\n this._listenerManager.announceNetworkDown();\n this.reconnect();\n }\n\n if (!status.error && this._config.announceSuccessfulHeartbeats) {\n this._listenerManager.announceStatus(status);\n }\n };\n\n this._heartbeatEndpoint(\n {\n channels: heartbeatChannels,\n channelGroups: heartbeatChannelGroups,\n state: presenceState,\n },\n onHeartbeat.bind(this)\n );\n }\n\n _startSubscribeLoop() {\n this._stopSubscribeLoop();\n let presenceState = {};\n let channels = [];\n let channelGroups = [];\n\n Object.keys(this._channels).forEach((channel) => {\n let channelState = this._channels[channel].state;\n\n if (Object.keys(channelState).length) {\n presenceState[channel] = channelState;\n }\n\n channels.push(channel);\n });\n Object.keys(this._presenceChannels).forEach((channel) => {\n channels.push(`${channel}-pnpres`);\n });\n\n Object.keys(this._channelGroups).forEach((channelGroup) => {\n let channelGroupState = this._channelGroups[channelGroup].state;\n\n if (Object.keys(channelGroupState).length) {\n presenceState[channelGroup] = channelGroupState;\n }\n\n channelGroups.push(channelGroup);\n });\n Object.keys(this._presenceChannelGroups).forEach((channelGroup) => {\n channelGroups.push(`${channelGroup}-pnpres`);\n });\n\n if (channels.length === 0 && channelGroups.length === 0) {\n return;\n }\n\n const subscribeArgs = {\n channels,\n channelGroups,\n state: presenceState,\n timetoken: this._currentTimetoken,\n filterExpression: this._config.filterExpression,\n region: this._region,\n };\n\n this._subscribeCall = this._subscribeEndpoint(subscribeArgs, this._processSubscribeResponse.bind(this));\n }\n\n _processSubscribeResponse(status: StatusAnnouncement, payload: SubscribeEnvelope) {\n if (status.error) {\n // if we timeout from server, restart the loop.\n if (status.category === categoryConstants.PNTimeoutCategory) {\n this._startSubscribeLoop();\n } else if (status.category === categoryConstants.PNNetworkIssuesCategory) {\n // we lost internet connection, alert the reconnection manager and terminate all loops\n this.disconnect();\n\n if (status.error && this._config.autoNetworkDetection && this._isOnline) {\n this._isOnline = false;\n this._listenerManager.announceNetworkDown();\n }\n\n this._reconnectionManager.onReconnection(() => {\n if (this._config.autoNetworkDetection && !this._isOnline) {\n this._isOnline = true;\n this._listenerManager.announceNetworkUp();\n }\n this.reconnect();\n this._subscriptionStatusAnnounced = true;\n let reconnectedAnnounce: StatusAnnouncement = {\n category: categoryConstants.PNReconnectedCategory,\n operation: status.operation,\n lastTimetoken: this._lastTimetoken,\n currentTimetoken: this._currentTimetoken,\n };\n this._listenerManager.announceStatus(reconnectedAnnounce);\n });\n\n this._reconnectionManager.startPolling();\n this._listenerManager.announceStatus(status);\n } else if (status.category === categoryConstants.PNBadRequestCategory) {\n this._stopHeartbeatTimer();\n this._listenerManager.announceStatus(status);\n } else {\n this._listenerManager.announceStatus(status);\n }\n\n return;\n }\n\n if (this._storedTimetoken) {\n this._currentTimetoken = this._storedTimetoken;\n this._storedTimetoken = null;\n } else {\n this._lastTimetoken = this._currentTimetoken;\n this._currentTimetoken = payload.metadata.timetoken;\n }\n\n if (!this._subscriptionStatusAnnounced) {\n let connectedAnnounce: StatusAnnouncement = {};\n connectedAnnounce.category = categoryConstants.PNConnectedCategory;\n connectedAnnounce.operation = status.operation;\n connectedAnnounce.affectedChannels = this._pendingChannelSubscriptions;\n connectedAnnounce.subscribedChannels = this.getSubscribedChannels();\n connectedAnnounce.affectedChannelGroups = this._pendingChannelGroupSubscriptions;\n connectedAnnounce.lastTimetoken = this._lastTimetoken;\n connectedAnnounce.currentTimetoken = this._currentTimetoken;\n this._subscriptionStatusAnnounced = true;\n this._listenerManager.announceStatus(connectedAnnounce);\n\n // clear the pending connections list\n this._pendingChannelSubscriptions = [];\n this._pendingChannelGroupSubscriptions = [];\n }\n\n let messages = payload.messages || [];\n let { requestMessageCountThreshold, dedupeOnSubscribe } = this._config;\n\n if (requestMessageCountThreshold && messages.length >= requestMessageCountThreshold) {\n let countAnnouncement: StatusAnnouncement = {};\n countAnnouncement.category = categoryConstants.PNRequestMessageCountExceededCategory;\n countAnnouncement.operation = status.operation;\n this._listenerManager.announceStatus(countAnnouncement);\n }\n\n messages.forEach((message) => {\n let channel = message.channel;\n let subscriptionMatch = message.subscriptionMatch;\n let publishMetaData = message.publishMetaData;\n\n if (channel === subscriptionMatch) {\n subscriptionMatch = null;\n }\n\n if (dedupeOnSubscribe) {\n if (this._dedupingManager.isDuplicate(message)) {\n return;\n } else {\n this._dedupingManager.addEntry(message);\n }\n }\n\n if (utils.endsWith(message.channel, '-pnpres')) {\n let announce: PresenceAnnouncement = {};\n announce.channel = null;\n announce.subscription = null;\n\n // deprecated -->\n announce.actualChannel = subscriptionMatch != null ? channel : null;\n announce.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel;\n // <-- deprecated\n\n if (channel) {\n announce.channel = channel.substring(0, channel.lastIndexOf('-pnpres'));\n }\n\n if (subscriptionMatch) {\n announce.subscription = subscriptionMatch.substring(0, subscriptionMatch.lastIndexOf('-pnpres'));\n }\n\n announce.action = message.payload.action;\n announce.state = message.payload.data;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.occupancy = message.payload.occupancy;\n announce.uuid = message.payload.uuid;\n announce.timestamp = message.payload.timestamp;\n\n if (message.payload.join) {\n announce.join = message.payload.join;\n }\n\n if (message.payload.leave) {\n announce.leave = message.payload.leave;\n }\n\n if (message.payload.timeout) {\n announce.timeout = message.payload.timeout;\n }\n\n this._listenerManager.announcePresence(announce);\n } else if (message.messageType === 1) {\n // this is a signal message\n let announce: SignalAnnouncement = {};\n announce.channel = null;\n announce.subscription = null;\n\n announce.channel = channel;\n announce.subscription = subscriptionMatch;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.publisher = message.issuingClientId;\n\n if (message.userMetadata) {\n announce.userMetadata = message.userMetadata;\n }\n\n announce.message = message.payload;\n\n this._listenerManager.announceSignal(announce);\n } else if (message.messageType === 2) {\n // this is an object message\n\n let announce: ObjectAnnouncement = {};\n\n announce.channel = null;\n announce.subscription = null;\n\n announce.channel = channel;\n announce.subscription = subscriptionMatch;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.publisher = message.issuingClientId;\n\n if (message.userMetadata) {\n announce.userMetadata = message.userMetadata;\n }\n\n announce.message = {\n event: message.payload.event,\n type: message.payload.type,\n data: message.payload.data,\n };\n\n this._listenerManager.announceObjects(announce);\n\n if (message.payload.type === 'user') {\n this._listenerManager.announceUser(announce);\n } else if (message.payload.type === 'space') {\n this._listenerManager.announceSpace(announce);\n } else if (message.payload.type === 'membership') {\n this._listenerManager.announceMembership(announce);\n }\n } else if (message.messageType === 3) {\n // this is a message action\n let announce: MessageActionAnnouncement = {};\n announce.channel = channel;\n announce.subscription = subscriptionMatch;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.publisher = message.issuingClientId;\n\n announce.data = {\n messageTimetoken: message.payload.data.messageTimetoken,\n actionTimetoken: message.payload.data.actionTimetoken,\n type: message.payload.data.type,\n uuid: message.issuingClientId,\n value: message.payload.data.value,\n };\n\n announce.event = message.payload.event;\n\n this._listenerManager.announceMessageAction(announce);\n } else if (message.messageType === 4) {\n // this is a file message\n let announce: FileAnnouncement = {};\n announce.channel = channel;\n announce.subscription = subscriptionMatch;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.publisher = message.issuingClientId;\n\n let msgPayload = message.payload;\n\n if (this._config.cipherKey) {\n const decryptedPayload = this._crypto.decrypt(message.payload);\n\n if (typeof decryptedPayload === 'object' && decryptedPayload !== null) {\n msgPayload = decryptedPayload;\n }\n }\n\n announce.message = msgPayload.message;\n\n announce.file = {\n id: msgPayload.file.id,\n name: msgPayload.file.name,\n url: this._getFileUrl({\n id: msgPayload.file.id,\n name: msgPayload.file.name,\n channel,\n }),\n };\n\n this._listenerManager.announceFile(announce);\n } else {\n let announce: MessageAnnouncement = {};\n announce.channel = null;\n announce.subscription = null;\n\n // deprecated -->\n announce.actualChannel = subscriptionMatch != null ? channel : null;\n announce.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel;\n // <-- deprecated\n\n announce.channel = channel;\n announce.subscription = subscriptionMatch;\n announce.timetoken = publishMetaData.publishTimetoken;\n announce.publisher = message.issuingClientId;\n\n if (message.userMetadata) {\n announce.userMetadata = message.userMetadata;\n }\n\n if (this._config.cipherKey) {\n announce.message = this._crypto.decrypt(message.payload);\n } else {\n announce.message = message.payload;\n }\n\n this._listenerManager.announceMessage(announce);\n }\n });\n\n this._region = payload.metadata.region;\n this._startSubscribeLoop();\n }\n\n _stopSubscribeLoop() {\n if (this._subscribeCall) {\n if (typeof this._subscribeCall.abort === 'function') {\n this._subscribeCall.abort();\n }\n this._subscribeCall = null;\n }\n }\n}\n"],"file":"subscription_manager.js"} \ No newline at end of file diff --git a/lib/core/components/telemetry_manager.js b/lib/core/components/telemetry_manager.js index 63b0262e8..dc19c6f91 100644 --- a/lib/core/components/telemetry_manager.js +++ b/lib/core/components/telemetry_manager.js @@ -1,36 +1,30 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(require("../constants/operations")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -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, descriptor.key, descriptor); } } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _operations = _interopRequireDefault(require("../constants/operations")); var _default = function () { function _default(configuration) { - _classCallCheck(this, _default); - - _defineProperty(this, "_maximumSamplesCount", 100); - - _defineProperty(this, "_trackedLatencies", {}); - - _defineProperty(this, "_latencies", {}); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_maximumSamplesCount", 100); + (0, _defineProperty2["default"])(this, "_trackedLatencies", {}); + (0, _defineProperty2["default"])(this, "_latencies", {}); this._maximumSamplesCount = configuration.maximumSamplesCount || this._maximumSamplesCount; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "operationsLatencyForRequest", value: function operationsLatencyForRequest() { var _this = this; @@ -172,7 +166,6 @@ var _default = function () { return operation; } }]); - return _default; }(); diff --git a/lib/core/components/telemetry_manager.js.map b/lib/core/components/telemetry_manager.js.map index 818a3b832..7fc00a89a 100644 --- a/lib/core/components/telemetry_manager.js.map +++ b/lib/core/components/telemetry_manager.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/telemetry_manager.js"],"names":["configuration","_maximumSamplesCount","maximumSamplesCount","latencies","Object","keys","_latencies","forEach","endpointName","operationLatencies","averageLatency","_averageLatency","operationType","identifier","operationConstants","PNSubscribeOperation","_trackedLatencies","Date","now","_endpointName","endpointLatencies","startDate","push","length","splice","arrayReduce","accumulatedLatency","latency","Math","floor","reduce","operation","PNPublishOperation","PNSignalOperation","PNHistoryOperation","PNFetchMessagesOperation","PNDeleteMessagesOperation","PNMessageCounts","PNUnsubscribeOperation","PNWhereNowOperation","PNHereNowOperation","PNHeartbeatOperation","PNSetStateOperation","PNGetStateOperation","PNAddChannelsToGroupOperation","PNRemoveChannelsFromGroupOperation","PNChannelGroupsOperation","PNRemoveGroupOperation","PNChannelsForGroupOperation","PNPushNotificationEnabledChannelsOperation","PNRemoveAllPushNotificationsOperation","PNCreateUserOperation","PNUpdateUserOperation","PNDeleteUserOperation","PNGetUserOperation","PNGetUsersOperation","PNCreateSpaceOperation","PNUpdateSpaceOperation","PNDeleteSpaceOperation","PNGetSpaceOperation","PNGetSpacesOperation","PNGetMembersOperation","PNUpdateMembersOperation","PNGetMembershipsOperation","PNUpdateMembershipsOperation","PNAddMessageActionOperation","PNRemoveMessageActionOperation","PNGetMessageActionsOperation","PNAccessManagerGrant","PNAccessManagerAudit","PNAccessManagerGrantToken"],"mappings":"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","sourcesContent":["/* @flow */\nimport operationConstants from '../constants/operations';\n\ntype TelemetryManagerConstruct = {\n maximumSamplesCount: number,\n};\n\nexport default class {\n _maximumSamplesCount: number = 100;\n _trackedLatencies = {};\n _latencies = {};\n\n constructor(configuration: TelemetryManagerConstruct) {\n this._maximumSamplesCount = configuration.maximumSamplesCount || this._maximumSamplesCount;\n }\n\n /**\n * Compose object with latency information of recently used API endpoints.\n *\n * @return {Object} Object with request query key/value pairs.\n */\n operationsLatencyForRequest(): Object {\n let latencies = {};\n\n Object.keys(this._latencies).forEach((endpointName) => {\n const operationLatencies = this._latencies[endpointName];\n const averageLatency = this._averageLatency(operationLatencies);\n\n if (averageLatency > 0) {\n latencies[`l_${endpointName}`] = averageLatency;\n }\n });\n\n return latencies;\n }\n\n startLatencyMeasure(operationType: String, identifier: string) {\n if (operationType === operationConstants.PNSubscribeOperation || !identifier) {\n return;\n }\n\n this._trackedLatencies[identifier] = Date.now();\n }\n\n stopLatencyMeasure(operationType: String, identifier: string) {\n if (operationType === operationConstants.PNSubscribeOperation || !identifier) {\n return;\n }\n\n const endpointName = this._endpointName(operationType);\n /** @type Array */\n let endpointLatencies = this._latencies[endpointName];\n const startDate = this._trackedLatencies[identifier];\n\n if (!endpointLatencies) {\n endpointLatencies = (this._latencies[endpointName] = []);\n }\n\n endpointLatencies.push((Date.now() - startDate));\n\n // Truncate samples count if there is more then configured.\n if (endpointLatencies.length > this._maximumSamplesCount) {\n endpointLatencies.splice(0, (endpointLatencies.length - this._maximumSamplesCount));\n }\n\n delete this._trackedLatencies[identifier];\n }\n\n _averageLatency(latencies: Array) {\n const arrayReduce = (accumulatedLatency: number, latency: number) => accumulatedLatency + latency;\n\n return Math.floor(latencies.reduce(arrayReduce, 0) / latencies.length);\n }\n\n _endpointName(operationType: String) {\n let operation = null;\n\n switch (operationType) {\n case operationConstants.PNPublishOperation:\n operation = 'pub';\n break;\n case operationConstants.PNSignalOperation:\n operation = 'sig';\n break;\n case operationConstants.PNHistoryOperation:\n case operationConstants.PNFetchMessagesOperation:\n case operationConstants.PNDeleteMessagesOperation:\n case operationConstants.PNMessageCounts:\n operation = 'hist';\n break;\n case operationConstants.PNUnsubscribeOperation:\n case operationConstants.PNWhereNowOperation:\n case operationConstants.PNHereNowOperation:\n case operationConstants.PNHeartbeatOperation:\n case operationConstants.PNSetStateOperation:\n case operationConstants.PNGetStateOperation:\n operation = 'pres';\n break;\n case operationConstants.PNAddChannelsToGroupOperation:\n case operationConstants.PNRemoveChannelsFromGroupOperation:\n case operationConstants.PNChannelGroupsOperation:\n case operationConstants.PNRemoveGroupOperation:\n case operationConstants.PNChannelsForGroupOperation:\n operation = 'cg';\n break;\n case operationConstants.PNPushNotificationEnabledChannelsOperation:\n case operationConstants.PNRemoveAllPushNotificationsOperation:\n operation = 'push';\n break;\n case operationConstants.PNCreateUserOperation:\n case operationConstants.PNUpdateUserOperation:\n case operationConstants.PNDeleteUserOperation:\n case operationConstants.PNGetUserOperation:\n case operationConstants.PNGetUsersOperation:\n case operationConstants.PNCreateSpaceOperation:\n case operationConstants.PNUpdateSpaceOperation:\n case operationConstants.PNDeleteSpaceOperation:\n case operationConstants.PNGetSpaceOperation:\n case operationConstants.PNGetSpacesOperation:\n case operationConstants.PNGetMembersOperation:\n case operationConstants.PNUpdateMembersOperation:\n case operationConstants.PNGetMembershipsOperation:\n case operationConstants.PNUpdateMembershipsOperation:\n operation = 'obj';\n break;\n case operationConstants.PNAddMessageActionOperation:\n case operationConstants.PNRemoveMessageActionOperation:\n case operationConstants.PNGetMessageActionsOperation:\n operation = 'msga';\n break;\n case operationConstants.PNAccessManagerGrant:\n case operationConstants.PNAccessManagerAudit:\n operation = 'pam';\n break;\n case operationConstants.PNAccessManagerGrantToken:\n operation = 'pam3';\n break;\n default:\n operation = 'time';\n break;\n }\n\n return operation;\n }\n}\n"],"file":"telemetry_manager.js"} \ No newline at end of file +{"version":3,"sources":["core/components/telemetry_manager.js"],"names":["configuration","_maximumSamplesCount","maximumSamplesCount","latencies","Object","keys","_latencies","forEach","endpointName","operationLatencies","averageLatency","_averageLatency","operationType","identifier","operationConstants","PNSubscribeOperation","_trackedLatencies","Date","now","_endpointName","endpointLatencies","startDate","push","length","splice","arrayReduce","accumulatedLatency","latency","Math","floor","reduce","operation","PNPublishOperation","PNSignalOperation","PNHistoryOperation","PNFetchMessagesOperation","PNDeleteMessagesOperation","PNMessageCounts","PNUnsubscribeOperation","PNWhereNowOperation","PNHereNowOperation","PNHeartbeatOperation","PNSetStateOperation","PNGetStateOperation","PNAddChannelsToGroupOperation","PNRemoveChannelsFromGroupOperation","PNChannelGroupsOperation","PNRemoveGroupOperation","PNChannelsForGroupOperation","PNPushNotificationEnabledChannelsOperation","PNRemoveAllPushNotificationsOperation","PNCreateUserOperation","PNUpdateUserOperation","PNDeleteUserOperation","PNGetUserOperation","PNGetUsersOperation","PNCreateSpaceOperation","PNUpdateSpaceOperation","PNDeleteSpaceOperation","PNGetSpaceOperation","PNGetSpacesOperation","PNGetMembersOperation","PNUpdateMembersOperation","PNGetMembershipsOperation","PNUpdateMembershipsOperation","PNAddMessageActionOperation","PNRemoveMessageActionOperation","PNGetMessageActionsOperation","PNAccessManagerGrant","PNAccessManagerAudit","PNAccessManagerGrantToken"],"mappings":"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","sourcesContent":["/* @flow */\nimport operationConstants from '../constants/operations';\n\ntype TelemetryManagerConstruct = {\n maximumSamplesCount: number,\n};\n\nexport default class {\n _maximumSamplesCount: number = 100;\n _trackedLatencies = {};\n _latencies = {};\n\n constructor(configuration: TelemetryManagerConstruct) {\n this._maximumSamplesCount = configuration.maximumSamplesCount || this._maximumSamplesCount;\n }\n\n /**\n * Compose object with latency information of recently used API endpoints.\n *\n * @return {Object} Object with request query key/value pairs.\n */\n operationsLatencyForRequest(): Object {\n let latencies = {};\n\n Object.keys(this._latencies).forEach((endpointName) => {\n const operationLatencies = this._latencies[endpointName];\n const averageLatency = this._averageLatency(operationLatencies);\n\n if (averageLatency > 0) {\n latencies[`l_${endpointName}`] = averageLatency;\n }\n });\n\n return latencies;\n }\n\n startLatencyMeasure(operationType: String, identifier: string) {\n if (operationType === operationConstants.PNSubscribeOperation || !identifier) {\n return;\n }\n\n this._trackedLatencies[identifier] = Date.now();\n }\n\n stopLatencyMeasure(operationType: String, identifier: string) {\n if (operationType === operationConstants.PNSubscribeOperation || !identifier) {\n return;\n }\n\n const endpointName = this._endpointName(operationType);\n /** @type Array */\n let endpointLatencies = this._latencies[endpointName];\n const startDate = this._trackedLatencies[identifier];\n\n if (!endpointLatencies) {\n endpointLatencies = (this._latencies[endpointName] = []);\n }\n\n endpointLatencies.push((Date.now() - startDate));\n\n // Truncate samples count if there is more then configured.\n if (endpointLatencies.length > this._maximumSamplesCount) {\n endpointLatencies.splice(0, (endpointLatencies.length - this._maximumSamplesCount));\n }\n\n delete this._trackedLatencies[identifier];\n }\n\n _averageLatency(latencies: Array) {\n const arrayReduce = (accumulatedLatency: number, latency: number) => accumulatedLatency + latency;\n\n return Math.floor(latencies.reduce(arrayReduce, 0) / latencies.length);\n }\n\n _endpointName(operationType: String) {\n let operation = null;\n\n switch (operationType) {\n case operationConstants.PNPublishOperation:\n operation = 'pub';\n break;\n case operationConstants.PNSignalOperation:\n operation = 'sig';\n break;\n case operationConstants.PNHistoryOperation:\n case operationConstants.PNFetchMessagesOperation:\n case operationConstants.PNDeleteMessagesOperation:\n case operationConstants.PNMessageCounts:\n operation = 'hist';\n break;\n case operationConstants.PNUnsubscribeOperation:\n case operationConstants.PNWhereNowOperation:\n case operationConstants.PNHereNowOperation:\n case operationConstants.PNHeartbeatOperation:\n case operationConstants.PNSetStateOperation:\n case operationConstants.PNGetStateOperation:\n operation = 'pres';\n break;\n case operationConstants.PNAddChannelsToGroupOperation:\n case operationConstants.PNRemoveChannelsFromGroupOperation:\n case operationConstants.PNChannelGroupsOperation:\n case operationConstants.PNRemoveGroupOperation:\n case operationConstants.PNChannelsForGroupOperation:\n operation = 'cg';\n break;\n case operationConstants.PNPushNotificationEnabledChannelsOperation:\n case operationConstants.PNRemoveAllPushNotificationsOperation:\n operation = 'push';\n break;\n case operationConstants.PNCreateUserOperation:\n case operationConstants.PNUpdateUserOperation:\n case operationConstants.PNDeleteUserOperation:\n case operationConstants.PNGetUserOperation:\n case operationConstants.PNGetUsersOperation:\n case operationConstants.PNCreateSpaceOperation:\n case operationConstants.PNUpdateSpaceOperation:\n case operationConstants.PNDeleteSpaceOperation:\n case operationConstants.PNGetSpaceOperation:\n case operationConstants.PNGetSpacesOperation:\n case operationConstants.PNGetMembersOperation:\n case operationConstants.PNUpdateMembersOperation:\n case operationConstants.PNGetMembershipsOperation:\n case operationConstants.PNUpdateMembershipsOperation:\n operation = 'obj';\n break;\n case operationConstants.PNAddMessageActionOperation:\n case operationConstants.PNRemoveMessageActionOperation:\n case operationConstants.PNGetMessageActionsOperation:\n operation = 'msga';\n break;\n case operationConstants.PNAccessManagerGrant:\n case operationConstants.PNAccessManagerAudit:\n operation = 'pam';\n break;\n case operationConstants.PNAccessManagerGrantToken:\n operation = 'pam3';\n break;\n default:\n operation = 'time';\n break;\n }\n\n return operation;\n }\n}\n"],"file":"telemetry_manager.js"} \ No newline at end of file diff --git a/lib/core/components/token_manager.js b/lib/core/components/token_manager.js index a5ad26d47..d01e0b215 100644 --- a/lib/core/components/token_manager.js +++ b/lib/core/components/token_manager.js @@ -1,49 +1,40 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _config = _interopRequireDefault(require("./config")); - -var _flow_interfaces = require("../flow_interfaces"); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); -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); } +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -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, descriptor.key, descriptor); } } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _config = _interopRequireDefault(require("./config")); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _flow_interfaces = require("../flow_interfaces"); var _default = function () { function _default(config, cbor) { - _classCallCheck(this, _default); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "_cbor", void 0); - - _defineProperty(this, "_userTokens", void 0); - - _defineProperty(this, "_spaceTokens", void 0); - - _defineProperty(this, "_userToken", void 0); - - _defineProperty(this, "_spaceToken", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_cbor", void 0); + (0, _defineProperty2["default"])(this, "_userTokens", void 0); + (0, _defineProperty2["default"])(this, "_spaceTokens", void 0); + (0, _defineProperty2["default"])(this, "_userToken", void 0); + (0, _defineProperty2["default"])(this, "_spaceToken", void 0); this._config = config; this._cbor = cbor; this._initializeTokens(); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "_initializeTokens", value: function _initializeTokens() { this._userTokens = {}; @@ -94,7 +85,7 @@ var _default = function () { value: function setTokens(tokens) { var _this2 = this; - if (tokens && tokens.length && _typeof(tokens) === 'object') { + if (tokens && tokens.length && (0, _typeof2["default"])(tokens) === 'object') { tokens.forEach(function (token) { _this2.setToken(token); }); @@ -276,7 +267,6 @@ var _default = function () { this._initializeTokens(); } }]); - return _default; }(); diff --git a/lib/core/components/token_manager.js.map b/lib/core/components/token_manager.js.map index 00f2394ae..1f95028c7 100644 --- a/lib/core/components/token_manager.js.map +++ b/lib/core/components/token_manager.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/token_manager.js"],"names":["config","cbor","_config","_cbor","_initializeTokens","_userTokens","_spaceTokens","_userToken","undefined","_spaceToken","token","tokenObject","parseToken","resources","users","Object","keys","forEach","id","spaces","patterns","length","_setToken","tokens","setToken","tokenDef","result","user","space","type","permissions","permissionsResult","create","read","write","manage","tokenString","parsed","decodeToken","userResourcePermissions","res","usr","spaceResourcePermissions","spc","userPatternPermissions","pat","spacePatternPermissions","version","v","timestamp","t","ttl","userResources","spaceResources","extractPermissions","userPatterns","spacePatterns","meta","signature","sig"],"mappings":"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","sourcesContent":["/* @flow */\nimport Config from './config';\nimport {\n TokensDefinition,\n GetTokensInput,\n GrantTokenOutput,\n} from '../flow_interfaces';\n\nexport default class {\n _config: Config;\n\n _cbor: any;\n\n _userTokens: { [string]: string};\n _spaceTokens: { [string]: string};\n\n _userToken: ?string;\n _spaceToken: ?string;\n\n constructor(config: Config, cbor: any) {\n this._config = config;\n this._cbor = cbor;\n this._initializeTokens();\n }\n\n _initializeTokens() {\n this._userTokens = {};\n this._spaceTokens = {};\n\n this._userToken = undefined;\n this._spaceToken = undefined;\n }\n\n _setToken(token: string) {\n let tokenObject: GrantTokenOutput = this.parseToken(token);\n\n if (tokenObject && tokenObject.resources) {\n if (tokenObject.resources.users) {\n Object.keys(tokenObject.resources.users).forEach((id) => {\n this._userTokens[id] = token;\n });\n }\n\n if (tokenObject.resources.spaces) {\n Object.keys(tokenObject.resources.spaces).forEach((id) => {\n this._spaceTokens[id] = token;\n });\n }\n }\n\n if (tokenObject && tokenObject.patterns) {\n if (tokenObject.patterns.users && Object.keys(tokenObject.patterns.users).length > 0) {\n this._userToken = token;\n }\n\n if (tokenObject.patterns.spaces && Object.keys(tokenObject.patterns.spaces).length > 0) {\n this._spaceToken = token;\n }\n }\n }\n\n setToken(token: string) {\n if (token && token.length > 0) {\n this._setToken(token);\n }\n }\n\n setTokens(tokens: string[]) {\n if (tokens && tokens.length && typeof tokens === 'object') {\n tokens.forEach((token) => {\n this.setToken(token);\n });\n }\n }\n\n getTokens(tokenDef: GetTokensInput): TokensDefinition {\n let result: TokensDefinition = {\n users: {},\n spaces: {}\n };\n\n if (tokenDef) {\n if (tokenDef.user) {\n result.user = this._userToken;\n }\n\n if (tokenDef.space) {\n result.space = this._spaceToken;\n }\n\n if (tokenDef.users) {\n tokenDef.users.forEach((user) => {\n result.users[user] = this._userTokens[user];\n });\n }\n\n if (tokenDef.space) {\n tokenDef.spaces.forEach((space) => {\n result.spaces[space] = this._spaceTokens[space];\n });\n }\n } else {\n if (this._userToken) {\n result.user = this._userToken;\n }\n\n if (this._spaceToken) {\n result.space = this._spaceToken;\n }\n\n Object.keys(this._userTokens).forEach((user) => {\n result.users[user] = this._userTokens[user];\n });\n\n Object.keys(this._spaceTokens).forEach((space) => {\n result.spaces[space] = this._spaceTokens[space];\n });\n }\n\n return result;\n }\n\n getToken(type: string, id?: string) {\n let result;\n\n if (id) {\n if (type === 'user') {\n result = this._userTokens[id];\n } else if (type === 'space') {\n result = this._spaceTokens[id];\n }\n } else if (type === 'user') {\n result = this._userToken;\n } else if (type === 'space') {\n result = this._spaceToken;\n }\n\n return result;\n }\n\n extractPermissions(permissions: number) {\n let permissionsResult = {\n create: false,\n read: false,\n write: false,\n manage: false,\n delete: false,\n };\n\n /* eslint-disable */\n\n if ((permissions & 16) === 16) {\n permissionsResult.create = true;\n }\n\n if ((permissions & 8) === 8) {\n permissionsResult.delete = true;\n }\n\n if ((permissions & 4) === 4) {\n permissionsResult.manage = true;\n }\n \n if ((permissions & 2) === 2) {\n permissionsResult.write = true;\n }\n \n if ((permissions & 1) === 1) {\n permissionsResult.read = true;\n }\n \n /* eslint-enable */\n\n return permissionsResult;\n }\n\n parseToken(tokenString: string): GrantTokenOutput {\n let parsed = this._cbor.decodeToken(tokenString);\n\n if (parsed !== undefined) {\n let userResourcePermissions = Object.keys(parsed.res.usr);\n let spaceResourcePermissions = Object.keys(parsed.res.spc);\n let userPatternPermissions = Object.keys(parsed.pat.usr);\n let spacePatternPermissions = Object.keys(parsed.pat.spc);\n\n let result: GrantTokenOutput = {\n version: parsed.v,\n timestamp: parsed.t,\n ttl: parsed.ttl\n };\n\n let userResources = userResourcePermissions.length > 0;\n let spaceResources = spaceResourcePermissions.length > 0;\n\n if (userResources || spaceResources) {\n result.resources = {};\n\n if (userResources) {\n result.resources.users = {};\n userResourcePermissions.forEach((id) => {\n result.resources.users[id] = this.extractPermissions(parsed.res.usr[id]);\n });\n }\n\n if (spaceResources) {\n result.resources.spaces = {};\n spaceResourcePermissions.forEach((id) => {\n result.resources.spaces[id] = this.extractPermissions(parsed.res.spc[id]);\n });\n }\n }\n\n let userPatterns = userPatternPermissions.length > 0;\n let spacePatterns = spacePatternPermissions.length > 0;\n\n if (userPatterns || spacePatterns) {\n result.patterns = {};\n\n if (userPatterns) {\n result.patterns.users = {};\n userPatternPermissions.forEach((id) => {\n result.patterns.users[id] = this.extractPermissions(parsed.pat.usr[id]);\n });\n }\n\n if (spacePatterns) {\n result.patterns.spaces = {};\n spacePatternPermissions.forEach((id) => {\n result.patterns.spaces[id] = this.extractPermissions(parsed.pat.spc[id]);\n });\n }\n }\n\n if (Object.keys(parsed.meta).length > 0) {\n result.meta = parsed.meta;\n }\n\n result.signature = parsed.sig;\n\n return result;\n } else {\n return undefined;\n }\n }\n\n clearTokens() {\n this._initializeTokens();\n }\n}\n"],"file":"token_manager.js"} \ No newline at end of file +{"version":3,"sources":["core/components/token_manager.js"],"names":["config","cbor","_config","_cbor","_initializeTokens","_userTokens","_spaceTokens","_userToken","undefined","_spaceToken","token","tokenObject","parseToken","resources","users","Object","keys","forEach","id","spaces","patterns","length","_setToken","tokens","setToken","tokenDef","result","user","space","type","permissions","permissionsResult","create","read","write","manage","tokenString","parsed","decodeToken","userResourcePermissions","res","usr","spaceResourcePermissions","spc","userPatternPermissions","pat","spacePatternPermissions","version","v","timestamp","t","ttl","userResources","spaceResources","extractPermissions","userPatterns","spacePatterns","meta","signature","sig"],"mappings":"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","sourcesContent":["/* @flow */\nimport Config from './config';\nimport {\n TokensDefinition,\n GetTokensInput,\n GrantTokenOutput,\n} from '../flow_interfaces';\n\nexport default class {\n _config: Config;\n\n _cbor: any;\n\n _userTokens: { [string]: string};\n _spaceTokens: { [string]: string};\n\n _userToken: ?string;\n _spaceToken: ?string;\n\n constructor(config: Config, cbor: any) {\n this._config = config;\n this._cbor = cbor;\n this._initializeTokens();\n }\n\n _initializeTokens() {\n this._userTokens = {};\n this._spaceTokens = {};\n\n this._userToken = undefined;\n this._spaceToken = undefined;\n }\n\n _setToken(token: string) {\n let tokenObject: GrantTokenOutput = this.parseToken(token);\n\n if (tokenObject && tokenObject.resources) {\n if (tokenObject.resources.users) {\n Object.keys(tokenObject.resources.users).forEach((id) => {\n this._userTokens[id] = token;\n });\n }\n\n if (tokenObject.resources.spaces) {\n Object.keys(tokenObject.resources.spaces).forEach((id) => {\n this._spaceTokens[id] = token;\n });\n }\n }\n\n if (tokenObject && tokenObject.patterns) {\n if (tokenObject.patterns.users && Object.keys(tokenObject.patterns.users).length > 0) {\n this._userToken = token;\n }\n\n if (tokenObject.patterns.spaces && Object.keys(tokenObject.patterns.spaces).length > 0) {\n this._spaceToken = token;\n }\n }\n }\n\n setToken(token: string) {\n if (token && token.length > 0) {\n this._setToken(token);\n }\n }\n\n setTokens(tokens: string[]) {\n if (tokens && tokens.length && typeof tokens === 'object') {\n tokens.forEach((token) => {\n this.setToken(token);\n });\n }\n }\n\n getTokens(tokenDef: GetTokensInput): TokensDefinition {\n let result: TokensDefinition = {\n users: {},\n spaces: {}\n };\n\n if (tokenDef) {\n if (tokenDef.user) {\n result.user = this._userToken;\n }\n\n if (tokenDef.space) {\n result.space = this._spaceToken;\n }\n\n if (tokenDef.users) {\n tokenDef.users.forEach((user) => {\n result.users[user] = this._userTokens[user];\n });\n }\n\n if (tokenDef.space) {\n tokenDef.spaces.forEach((space) => {\n result.spaces[space] = this._spaceTokens[space];\n });\n }\n } else {\n if (this._userToken) {\n result.user = this._userToken;\n }\n\n if (this._spaceToken) {\n result.space = this._spaceToken;\n }\n\n Object.keys(this._userTokens).forEach((user) => {\n result.users[user] = this._userTokens[user];\n });\n\n Object.keys(this._spaceTokens).forEach((space) => {\n result.spaces[space] = this._spaceTokens[space];\n });\n }\n\n return result;\n }\n\n getToken(type: string, id?: string) {\n let result;\n\n if (id) {\n if (type === 'user') {\n result = this._userTokens[id];\n } else if (type === 'space') {\n result = this._spaceTokens[id];\n }\n } else if (type === 'user') {\n result = this._userToken;\n } else if (type === 'space') {\n result = this._spaceToken;\n }\n\n return result;\n }\n\n extractPermissions(permissions: number) {\n let permissionsResult = {\n create: false,\n read: false,\n write: false,\n manage: false,\n delete: false,\n };\n\n /* eslint-disable */\n\n if ((permissions & 16) === 16) {\n permissionsResult.create = true;\n }\n\n if ((permissions & 8) === 8) {\n permissionsResult.delete = true;\n }\n\n if ((permissions & 4) === 4) {\n permissionsResult.manage = true;\n }\n \n if ((permissions & 2) === 2) {\n permissionsResult.write = true;\n }\n \n if ((permissions & 1) === 1) {\n permissionsResult.read = true;\n }\n \n /* eslint-enable */\n\n return permissionsResult;\n }\n\n parseToken(tokenString: string): GrantTokenOutput {\n let parsed = this._cbor.decodeToken(tokenString);\n\n if (parsed !== undefined) {\n let userResourcePermissions = Object.keys(parsed.res.usr);\n let spaceResourcePermissions = Object.keys(parsed.res.spc);\n let userPatternPermissions = Object.keys(parsed.pat.usr);\n let spacePatternPermissions = Object.keys(parsed.pat.spc);\n\n let result: GrantTokenOutput = {\n version: parsed.v,\n timestamp: parsed.t,\n ttl: parsed.ttl\n };\n\n let userResources = userResourcePermissions.length > 0;\n let spaceResources = spaceResourcePermissions.length > 0;\n\n if (userResources || spaceResources) {\n result.resources = {};\n\n if (userResources) {\n result.resources.users = {};\n userResourcePermissions.forEach((id) => {\n result.resources.users[id] = this.extractPermissions(parsed.res.usr[id]);\n });\n }\n\n if (spaceResources) {\n result.resources.spaces = {};\n spaceResourcePermissions.forEach((id) => {\n result.resources.spaces[id] = this.extractPermissions(parsed.res.spc[id]);\n });\n }\n }\n\n let userPatterns = userPatternPermissions.length > 0;\n let spacePatterns = spacePatternPermissions.length > 0;\n\n if (userPatterns || spacePatterns) {\n result.patterns = {};\n\n if (userPatterns) {\n result.patterns.users = {};\n userPatternPermissions.forEach((id) => {\n result.patterns.users[id] = this.extractPermissions(parsed.pat.usr[id]);\n });\n }\n\n if (spacePatterns) {\n result.patterns.spaces = {};\n spacePatternPermissions.forEach((id) => {\n result.patterns.spaces[id] = this.extractPermissions(parsed.pat.spc[id]);\n });\n }\n }\n\n if (Object.keys(parsed.meta).length > 0) {\n result.meta = parsed.meta;\n }\n\n result.signature = parsed.sig;\n\n return result;\n } else {\n return undefined;\n }\n }\n\n clearTokens() {\n this._initializeTokens();\n }\n}\n"],"file":"token_manager.js"} \ No newline at end of file diff --git a/lib/core/components/uuid.js b/lib/core/components/uuid.js index c96293004..f2d2c7391 100644 --- a/lib/core/components/uuid.js +++ b/lib/core/components/uuid.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -7,8 +9,6 @@ exports["default"] = void 0; var _lilUuid = _interopRequireDefault(require("lil-uuid")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - var _default = { createUUID: function createUUID() { if (_lilUuid["default"].uuid) { diff --git a/lib/core/components/uuid.js.map b/lib/core/components/uuid.js.map index a787bc2df..78ab5007c 100644 --- a/lib/core/components/uuid.js.map +++ b/lib/core/components/uuid.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/components/uuid.js"],"names":["createUUID","uuidGenerator","uuid"],"mappings":";;;;;;;AACA;;;;eAEe;AACbA,EAAAA,UADa,wBACA;AACX,QAAIC,oBAAcC,IAAlB,EAAwB;AACtB,aAAOD,oBAAcC,IAAd,EAAP;AACD,KAFD,MAEO;AACL,aAAO,0BAAP;AACD;AACF;AAPY,C","sourcesContent":["\nimport uuidGenerator from 'lil-uuid';\n\nexport default {\n createUUID() {\n if (uuidGenerator.uuid) {\n return uuidGenerator.uuid();\n } else {\n return uuidGenerator();\n }\n }\n};\n"],"file":"uuid.js"} \ No newline at end of file +{"version":3,"sources":["core/components/uuid.js"],"names":["createUUID","uuidGenerator","uuid"],"mappings":";;;;;;;;;AACA;;eAEe;AACbA,EAAAA,UADa,wBACA;AACX,QAAIC,oBAAcC,IAAlB,EAAwB;AACtB,aAAOD,oBAAcC,IAAd,EAAP;AACD,KAFD,MAEO;AACL,aAAO,0BAAP;AACD;AACF;AAPY,C","sourcesContent":["\nimport uuidGenerator from 'lil-uuid';\n\nexport default {\n createUUID() {\n if (uuidGenerator.uuid) {\n return uuidGenerator.uuid();\n } else {\n return uuidGenerator();\n }\n }\n};\n"],"file":"uuid.js"} \ No newline at end of file diff --git a/lib/core/constants/operations.js b/lib/core/constants/operations.js index 2ca132cf7..8ce3d4a59 100644 --- a/lib/core/constants/operations.js +++ b/lib/core/constants/operations.js @@ -31,6 +31,11 @@ var _default = { PNUpdateMembersOperation: 'PNUpdateMembersOperation', PNGetMembershipsOperation: 'PNGetMembershipsOperation', PNUpdateMembershipsOperation: 'PNUpdateMembershipsOperation', + PNListFilesOperation: 'PNListFilesOperation', + PNGenerateUploadUrlOperation: 'PNGenerateUploadUrlOperation', + PNPublishFileOperation: 'PNPublishFileOperation', + PNGetFileUrlOperation: 'PNGetFileUrlOperation', + PNDownloadFileOperation: 'PNDownloadFileOperation', PNGetAllUUIDMetadataOperation: 'PNGetAllUUIDMetadataOperation', PNGetUUIDMetadataOperation: 'PNGetUUIDMetadataOperation', PNSetUUIDMetadataOperation: 'PNSetUUIDMetadataOperation', diff --git a/lib/core/constants/operations.js.map b/lib/core/constants/operations.js.map index 523d15105..00e8b1816 100644 --- a/lib/core/constants/operations.js.map +++ b/lib/core/constants/operations.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/constants/operations.js"],"names":["PNTimeOperation","PNHistoryOperation","PNDeleteMessagesOperation","PNFetchMessagesOperation","PNMessageCounts","PNSubscribeOperation","PNUnsubscribeOperation","PNPublishOperation","PNSignalOperation","PNAddMessageActionOperation","PNRemoveMessageActionOperation","PNGetMessageActionsOperation","PNCreateUserOperation","PNUpdateUserOperation","PNDeleteUserOperation","PNGetUserOperation","PNGetUsersOperation","PNCreateSpaceOperation","PNUpdateSpaceOperation","PNDeleteSpaceOperation","PNGetSpaceOperation","PNGetSpacesOperation","PNGetMembersOperation","PNUpdateMembersOperation","PNGetMembershipsOperation","PNUpdateMembershipsOperation","PNGetAllUUIDMetadataOperation","PNGetUUIDMetadataOperation","PNSetUUIDMetadataOperation","PNRemoveUUIDMetadataOperation","PNGetAllChannelMetadataOperation","PNGetChannelMetadataOperation","PNSetChannelMetadataOperation","PNRemoveChannelMetadataOperation","PNSetMembersOperation","PNSetMembershipsOperation","PNPushNotificationEnabledChannelsOperation","PNRemoveAllPushNotificationsOperation","PNWhereNowOperation","PNSetStateOperation","PNHereNowOperation","PNGetStateOperation","PNHeartbeatOperation","PNChannelGroupsOperation","PNRemoveGroupOperation","PNChannelsForGroupOperation","PNAddChannelsToGroupOperation","PNRemoveChannelsFromGroupOperation","PNAccessManagerGrant","PNAccessManagerGrantToken","PNAccessManagerAudit"],"mappings":";;;;;;eACe;AACbA,EAAAA,eAAe,EAAE,iBADJ;AAGbC,EAAAA,kBAAkB,EAAE,oBAHP;AAIbC,EAAAA,yBAAyB,EAAE,2BAJd;AAKbC,EAAAA,wBAAwB,EAAE,0BALb;AAMbC,EAAAA,eAAe,EAAE,0BANJ;AASbC,EAAAA,oBAAoB,EAAE,sBATT;AAUbC,EAAAA,sBAAsB,EAAE,wBAVX;AAWbC,EAAAA,kBAAkB,EAAE,oBAXP;AAYbC,EAAAA,iBAAiB,EAAE,mBAZN;AAebC,EAAAA,2BAA2B,EAAE,sBAfhB;AAgBbC,EAAAA,8BAA8B,EAAE,gCAhBnB;AAiBbC,EAAAA,4BAA4B,EAAE,8BAjBjB;AAoBbC,EAAAA,qBAAqB,EAAE,uBApBV;AAqBbC,EAAAA,qBAAqB,EAAE,uBArBV;AAsBbC,EAAAA,qBAAqB,EAAE,uBAtBV;AAuBbC,EAAAA,kBAAkB,EAAE,qBAvBP;AAwBbC,EAAAA,mBAAmB,EAAE,qBAxBR;AAyBbC,EAAAA,sBAAsB,EAAE,wBAzBX;AA0BbC,EAAAA,sBAAsB,EAAE,wBA1BX;AA2BbC,EAAAA,sBAAsB,EAAE,wBA3BX;AA4BbC,EAAAA,mBAAmB,EAAE,sBA5BR;AA6BbC,EAAAA,oBAAoB,EAAE,sBA7BT;AA8BbC,EAAAA,qBAAqB,EAAE,uBA9BV;AA+BbC,EAAAA,wBAAwB,EAAE,0BA/Bb;AAgCbC,EAAAA,yBAAyB,EAAE,2BAhCd;AAiCbC,EAAAA,4BAA4B,EAAE,8BAjCjB;AAqCbC,EAAAA,6BAA6B,EAAE,+BArClB;AAsCbC,EAAAA,0BAA0B,EAAE,4BAtCf;AAuCbC,EAAAA,0BAA0B,EAAE,4BAvCf;AAwCbC,EAAAA,6BAA6B,EAAE,+BAxClB;AA0CbC,EAAAA,gCAAgC,EAAE,kCA1CrB;AA2CbC,EAAAA,6BAA6B,EAAE,+BA3ClB;AA4CbC,EAAAA,6BAA6B,EAAE,+BA5ClB;AA6CbC,EAAAA,gCAAgC,EAAE,kCA7CrB;AAgDbC,EAAAA,qBAAqB,EAAE,uBAhDV;AAkDbC,EAAAA,yBAAyB,EAAE,2BAlDd;AAqDbC,EAAAA,0CAA0C,EAAE,4CArD/B;AAsDbC,EAAAA,qCAAqC,EAAE,uCAtD1B;AA0DbC,EAAAA,mBAAmB,EAAE,qBA1DR;AA2DbC,EAAAA,mBAAmB,EAAE,qBA3DR;AA4DbC,EAAAA,kBAAkB,EAAE,oBA5DP;AA6DbC,EAAAA,mBAAmB,EAAE,qBA7DR;AA8DbC,EAAAA,oBAAoB,EAAE,sBA9DT;AAkEbC,EAAAA,wBAAwB,EAAE,0BAlEb;AAmEbC,EAAAA,sBAAsB,EAAE,wBAnEX;AAoEbC,EAAAA,2BAA2B,EAAE,6BApEhB;AAqEbC,EAAAA,6BAA6B,EAAE,+BArElB;AAsEbC,EAAAA,kCAAkC,EAAE,oCAtEvB;AA0EbC,EAAAA,oBAAoB,EAAE,sBA1ET;AA2EbC,EAAAA,yBAAyB,EAAE,2BA3Ed;AA4EbC,EAAAA,oBAAoB,EAAE;AA5ET,C","sourcesContent":["/* @flow */\nexport default {\n PNTimeOperation: 'PNTimeOperation',\n\n PNHistoryOperation: 'PNHistoryOperation',\n PNDeleteMessagesOperation: 'PNDeleteMessagesOperation',\n PNFetchMessagesOperation: 'PNFetchMessagesOperation',\n PNMessageCounts: 'PNMessageCountsOperation',\n\n // pubsub\n PNSubscribeOperation: 'PNSubscribeOperation',\n PNUnsubscribeOperation: 'PNUnsubscribeOperation',\n PNPublishOperation: 'PNPublishOperation',\n PNSignalOperation: 'PNSignalOperation',\n\n // Actions API\n PNAddMessageActionOperation: 'PNAddActionOperation',\n PNRemoveMessageActionOperation: 'PNRemoveMessageActionOperation',\n PNGetMessageActionsOperation: 'PNGetMessageActionsOperation',\n\n // Objects API\n PNCreateUserOperation: 'PNCreateUserOperation',\n PNUpdateUserOperation: 'PNUpdateUserOperation',\n PNDeleteUserOperation: 'PNDeleteUserOperation',\n PNGetUserOperation: 'PNGetUsersOperation',\n PNGetUsersOperation: 'PNGetUsersOperation',\n PNCreateSpaceOperation: 'PNCreateSpaceOperation',\n PNUpdateSpaceOperation: 'PNUpdateSpaceOperation',\n PNDeleteSpaceOperation: 'PNDeleteSpaceOperation',\n PNGetSpaceOperation: 'PNGetSpacesOperation',\n PNGetSpacesOperation: 'PNGetSpacesOperation',\n PNGetMembersOperation: 'PNGetMembersOperation',\n PNUpdateMembersOperation: 'PNUpdateMembersOperation',\n PNGetMembershipsOperation: 'PNGetMembershipsOperation',\n PNUpdateMembershipsOperation: 'PNUpdateMembershipsOperation',\n\n // Objects API v2\n // UUID\n PNGetAllUUIDMetadataOperation: 'PNGetAllUUIDMetadataOperation',\n PNGetUUIDMetadataOperation: 'PNGetUUIDMetadataOperation',\n PNSetUUIDMetadataOperation: 'PNSetUUIDMetadataOperation',\n PNRemoveUUIDMetadataOperation: 'PNRemoveUUIDMetadataOperation',\n // channel\n PNGetAllChannelMetadataOperation: 'PNGetAllChannelMetadataOperation',\n PNGetChannelMetadataOperation: 'PNGetChannelMetadataOperation',\n PNSetChannelMetadataOperation: 'PNSetChannelMetadataOperation',\n PNRemoveChannelMetadataOperation: 'PNRemoveChannelMetadataOperation',\n // member\n // PNGetMembersOperation: 'PNGetMembersOperation',\n PNSetMembersOperation: 'PNSetMembersOperation',\n // PNGetMembershipsOperation: 'PNGetMembersOperation',\n PNSetMembershipsOperation: 'PNSetMembershipsOperation',\n\n // push\n PNPushNotificationEnabledChannelsOperation: 'PNPushNotificationEnabledChannelsOperation',\n PNRemoveAllPushNotificationsOperation: 'PNRemoveAllPushNotificationsOperation',\n //\n\n // presence\n PNWhereNowOperation: 'PNWhereNowOperation',\n PNSetStateOperation: 'PNSetStateOperation',\n PNHereNowOperation: 'PNHereNowOperation',\n PNGetStateOperation: 'PNGetStateOperation',\n PNHeartbeatOperation: 'PNHeartbeatOperation',\n //\n\n // channel group\n PNChannelGroupsOperation: 'PNChannelGroupsOperation',\n PNRemoveGroupOperation: 'PNRemoveGroupOperation',\n PNChannelsForGroupOperation: 'PNChannelsForGroupOperation',\n PNAddChannelsToGroupOperation: 'PNAddChannelsToGroupOperation',\n PNRemoveChannelsFromGroupOperation: 'PNRemoveChannelsFromGroupOperation',\n //\n\n // PAM\n PNAccessManagerGrant: 'PNAccessManagerGrant',\n PNAccessManagerGrantToken: 'PNAccessManagerGrantToken',\n PNAccessManagerAudit: 'PNAccessManagerAudit',\n //\n};\n"],"file":"operations.js"} \ No newline at end of file +{"version":3,"sources":["core/constants/operations.js"],"names":["PNTimeOperation","PNHistoryOperation","PNDeleteMessagesOperation","PNFetchMessagesOperation","PNMessageCounts","PNSubscribeOperation","PNUnsubscribeOperation","PNPublishOperation","PNSignalOperation","PNAddMessageActionOperation","PNRemoveMessageActionOperation","PNGetMessageActionsOperation","PNCreateUserOperation","PNUpdateUserOperation","PNDeleteUserOperation","PNGetUserOperation","PNGetUsersOperation","PNCreateSpaceOperation","PNUpdateSpaceOperation","PNDeleteSpaceOperation","PNGetSpaceOperation","PNGetSpacesOperation","PNGetMembersOperation","PNUpdateMembersOperation","PNGetMembershipsOperation","PNUpdateMembershipsOperation","PNListFilesOperation","PNGenerateUploadUrlOperation","PNPublishFileOperation","PNGetFileUrlOperation","PNDownloadFileOperation","PNGetAllUUIDMetadataOperation","PNGetUUIDMetadataOperation","PNSetUUIDMetadataOperation","PNRemoveUUIDMetadataOperation","PNGetAllChannelMetadataOperation","PNGetChannelMetadataOperation","PNSetChannelMetadataOperation","PNRemoveChannelMetadataOperation","PNSetMembersOperation","PNSetMembershipsOperation","PNPushNotificationEnabledChannelsOperation","PNRemoveAllPushNotificationsOperation","PNWhereNowOperation","PNSetStateOperation","PNHereNowOperation","PNGetStateOperation","PNHeartbeatOperation","PNChannelGroupsOperation","PNRemoveGroupOperation","PNChannelsForGroupOperation","PNAddChannelsToGroupOperation","PNRemoveChannelsFromGroupOperation","PNAccessManagerGrant","PNAccessManagerGrantToken","PNAccessManagerAudit"],"mappings":";;;;;;eACe;AACbA,EAAAA,eAAe,EAAE,iBADJ;AAGbC,EAAAA,kBAAkB,EAAE,oBAHP;AAIbC,EAAAA,yBAAyB,EAAE,2BAJd;AAKbC,EAAAA,wBAAwB,EAAE,0BALb;AAMbC,EAAAA,eAAe,EAAE,0BANJ;AASbC,EAAAA,oBAAoB,EAAE,sBATT;AAUbC,EAAAA,sBAAsB,EAAE,wBAVX;AAWbC,EAAAA,kBAAkB,EAAE,oBAXP;AAYbC,EAAAA,iBAAiB,EAAE,mBAZN;AAebC,EAAAA,2BAA2B,EAAE,sBAfhB;AAgBbC,EAAAA,8BAA8B,EAAE,gCAhBnB;AAiBbC,EAAAA,4BAA4B,EAAE,8BAjBjB;AAoBbC,EAAAA,qBAAqB,EAAE,uBApBV;AAqBbC,EAAAA,qBAAqB,EAAE,uBArBV;AAsBbC,EAAAA,qBAAqB,EAAE,uBAtBV;AAuBbC,EAAAA,kBAAkB,EAAE,qBAvBP;AAwBbC,EAAAA,mBAAmB,EAAE,qBAxBR;AAyBbC,EAAAA,sBAAsB,EAAE,wBAzBX;AA0BbC,EAAAA,sBAAsB,EAAE,wBA1BX;AA2BbC,EAAAA,sBAAsB,EAAE,wBA3BX;AA4BbC,EAAAA,mBAAmB,EAAE,sBA5BR;AA6BbC,EAAAA,oBAAoB,EAAE,sBA7BT;AA8BbC,EAAAA,qBAAqB,EAAE,uBA9BV;AA+BbC,EAAAA,wBAAwB,EAAE,0BA/Bb;AAgCbC,EAAAA,yBAAyB,EAAE,2BAhCd;AAiCbC,EAAAA,4BAA4B,EAAE,8BAjCjB;AAoCbC,EAAAA,oBAAoB,EAAE,sBApCT;AAqCbC,EAAAA,4BAA4B,EAAE,8BArCjB;AAsCbC,EAAAA,sBAAsB,EAAE,wBAtCX;AAuCbC,EAAAA,qBAAqB,EAAE,uBAvCV;AAwCbC,EAAAA,uBAAuB,EAAE,yBAxCZ;AA4CbC,EAAAA,6BAA6B,EAAE,+BA5ClB;AA6CbC,EAAAA,0BAA0B,EAAE,4BA7Cf;AA8CbC,EAAAA,0BAA0B,EAAE,4BA9Cf;AA+CbC,EAAAA,6BAA6B,EAAE,+BA/ClB;AAiDbC,EAAAA,gCAAgC,EAAE,kCAjDrB;AAkDbC,EAAAA,6BAA6B,EAAE,+BAlDlB;AAmDbC,EAAAA,6BAA6B,EAAE,+BAnDlB;AAoDbC,EAAAA,gCAAgC,EAAE,kCApDrB;AAuDbC,EAAAA,qBAAqB,EAAE,uBAvDV;AAyDbC,EAAAA,yBAAyB,EAAE,2BAzDd;AA4DbC,EAAAA,0CAA0C,EAAE,4CA5D/B;AA6DbC,EAAAA,qCAAqC,EAAE,uCA7D1B;AAiEbC,EAAAA,mBAAmB,EAAE,qBAjER;AAkEbC,EAAAA,mBAAmB,EAAE,qBAlER;AAmEbC,EAAAA,kBAAkB,EAAE,oBAnEP;AAoEbC,EAAAA,mBAAmB,EAAE,qBApER;AAqEbC,EAAAA,oBAAoB,EAAE,sBArET;AAyEbC,EAAAA,wBAAwB,EAAE,0BAzEb;AA0EbC,EAAAA,sBAAsB,EAAE,wBA1EX;AA2EbC,EAAAA,2BAA2B,EAAE,6BA3EhB;AA4EbC,EAAAA,6BAA6B,EAAE,+BA5ElB;AA6EbC,EAAAA,kCAAkC,EAAE,oCA7EvB;AAiFbC,EAAAA,oBAAoB,EAAE,sBAjFT;AAkFbC,EAAAA,yBAAyB,EAAE,2BAlFd;AAmFbC,EAAAA,oBAAoB,EAAE;AAnFT,C","sourcesContent":["/* @flow */\nexport default {\n PNTimeOperation: 'PNTimeOperation',\n\n PNHistoryOperation: 'PNHistoryOperation',\n PNDeleteMessagesOperation: 'PNDeleteMessagesOperation',\n PNFetchMessagesOperation: 'PNFetchMessagesOperation',\n PNMessageCounts: 'PNMessageCountsOperation',\n\n // pubsub\n PNSubscribeOperation: 'PNSubscribeOperation',\n PNUnsubscribeOperation: 'PNUnsubscribeOperation',\n PNPublishOperation: 'PNPublishOperation',\n PNSignalOperation: 'PNSignalOperation',\n\n // Actions API\n PNAddMessageActionOperation: 'PNAddActionOperation',\n PNRemoveMessageActionOperation: 'PNRemoveMessageActionOperation',\n PNGetMessageActionsOperation: 'PNGetMessageActionsOperation',\n\n // Objects API\n PNCreateUserOperation: 'PNCreateUserOperation',\n PNUpdateUserOperation: 'PNUpdateUserOperation',\n PNDeleteUserOperation: 'PNDeleteUserOperation',\n PNGetUserOperation: 'PNGetUsersOperation',\n PNGetUsersOperation: 'PNGetUsersOperation',\n PNCreateSpaceOperation: 'PNCreateSpaceOperation',\n PNUpdateSpaceOperation: 'PNUpdateSpaceOperation',\n PNDeleteSpaceOperation: 'PNDeleteSpaceOperation',\n PNGetSpaceOperation: 'PNGetSpacesOperation',\n PNGetSpacesOperation: 'PNGetSpacesOperation',\n PNGetMembersOperation: 'PNGetMembersOperation',\n PNUpdateMembersOperation: 'PNUpdateMembersOperation',\n PNGetMembershipsOperation: 'PNGetMembershipsOperation',\n PNUpdateMembershipsOperation: 'PNUpdateMembershipsOperation',\n\n // File Upload API v1\n PNListFilesOperation: 'PNListFilesOperation',\n PNGenerateUploadUrlOperation: 'PNGenerateUploadUrlOperation',\n PNPublishFileOperation: 'PNPublishFileOperation',\n PNGetFileUrlOperation: 'PNGetFileUrlOperation',\n PNDownloadFileOperation: 'PNDownloadFileOperation',\n\n // Objects API v2\n // UUID\n PNGetAllUUIDMetadataOperation: 'PNGetAllUUIDMetadataOperation',\n PNGetUUIDMetadataOperation: 'PNGetUUIDMetadataOperation',\n PNSetUUIDMetadataOperation: 'PNSetUUIDMetadataOperation',\n PNRemoveUUIDMetadataOperation: 'PNRemoveUUIDMetadataOperation',\n // channel\n PNGetAllChannelMetadataOperation: 'PNGetAllChannelMetadataOperation',\n PNGetChannelMetadataOperation: 'PNGetChannelMetadataOperation',\n PNSetChannelMetadataOperation: 'PNSetChannelMetadataOperation',\n PNRemoveChannelMetadataOperation: 'PNRemoveChannelMetadataOperation',\n // member\n // PNGetMembersOperation: 'PNGetMembersOperation',\n PNSetMembersOperation: 'PNSetMembersOperation',\n // PNGetMembershipsOperation: 'PNGetMembersOperation',\n PNSetMembershipsOperation: 'PNSetMembershipsOperation',\n\n // push\n PNPushNotificationEnabledChannelsOperation: 'PNPushNotificationEnabledChannelsOperation',\n PNRemoveAllPushNotificationsOperation: 'PNRemoveAllPushNotificationsOperation',\n //\n\n // presence\n PNWhereNowOperation: 'PNWhereNowOperation',\n PNSetStateOperation: 'PNSetStateOperation',\n PNHereNowOperation: 'PNHereNowOperation',\n PNGetStateOperation: 'PNGetStateOperation',\n PNHeartbeatOperation: 'PNHeartbeatOperation',\n //\n\n // channel group\n PNChannelGroupsOperation: 'PNChannelGroupsOperation',\n PNRemoveGroupOperation: 'PNRemoveGroupOperation',\n PNChannelsForGroupOperation: 'PNChannelsForGroupOperation',\n PNAddChannelsToGroupOperation: 'PNAddChannelsToGroupOperation',\n PNRemoveChannelsFromGroupOperation: 'PNRemoveChannelsFromGroupOperation',\n //\n\n // PAM\n PNAccessManagerGrant: 'PNAccessManagerGrant',\n PNAccessManagerGrantToken: 'PNAccessManagerGrantToken',\n PNAccessManagerAudit: 'PNAccessManagerAudit',\n //\n};\n"],"file":"operations.js"} \ No newline at end of file diff --git a/lib/core/endpoints/access_manager/audit.js b/lib/core/endpoints/access_manager/audit.js index ba62a2169..8f04f0d71 100644 --- a/lib/core/endpoints/access_manager/audit.js +++ b/lib/core/endpoints/access_manager/audit.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNAccessManagerAudit; } diff --git a/lib/core/endpoints/access_manager/audit.js.map b/lib/core/endpoints/access_manager/audit.js.map index e953c6488..0b1303c65 100644 --- a/lib/core/endpoints/access_manager/audit.js.map +++ b/lib/core/endpoints/access_manager/audit.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/access_manager/audit.js"],"names":["getOperation","operationConstants","PNAccessManagerAudit","validateParams","modules","config","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","incomingParams","channel","channelGroup","authKeys","params","length","auth","join","handleResponse","serverResponse","payload"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,oBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAErD,0CAAiCA,MAAM,CAACC,YAAxC;AACD;;AAEM,SAASE,iBAAT,OAA8D;AAAA,MAAjCH,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACI,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,KAAP;AACD;;AAEM,SAASC,aAAT,CAAuBP,OAAvB,EAA+CQ,cAA/C,EAAuF;AAAA,MACpFC,OADoF,GAC3CD,cAD2C,CACpFC,OADoF;AAAA,MAC3EC,YAD2E,GAC3CF,cAD2C,CAC3EE,YAD2E;AAAA,8BAC3CF,cAD2C,CAC7DG,QAD6D;AAAA,MAC7DA,QAD6D,sCAClD,EADkD;AAE5F,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,OAAJ,EAAa;AACXG,IAAAA,MAAM,CAACH,OAAP,GAAiBA,OAAjB;AACD;;AAED,MAAIC,YAAJ,EAAkB;AAChBE,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BF,YAA1B;AACD;;AAED,MAAIC,QAAQ,CAACE,MAAT,GAAkB,CAAtB,EAAyB;AACvBD,IAAAA,MAAM,CAACE,IAAP,GAAcH,QAAQ,CAACI,IAAT,CAAc,GAAd,CAAd;AACD;;AAED,SAAOH,MAAP;AACD;;AAEM,SAASI,cAAT,CAAwBhB,OAAxB,EAAgDiB,cAAhD,EAAgF;AACrF,SAAOA,cAAc,CAACC,OAAtB;AACD","sourcesContent":["/* @flow */\n\nimport { AuditArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNAccessManagerAudit;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v2/auth/audit/sub-key/${config.subscribeKey}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return false;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: AuditArguments): Object {\n const { channel, channelGroup, authKeys = [] } = incomingParams;\n const params = {};\n\n if (channel) {\n params.channel = channel;\n }\n\n if (channelGroup) {\n params['channel-group'] = channelGroup;\n }\n\n if (authKeys.length > 0) {\n params.auth = authKeys.join(',');\n }\n\n return params;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): Object {\n return serverResponse.payload;\n}\n"],"file":"audit.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/access_manager/audit.js"],"names":["getOperation","operationConstants","PNAccessManagerAudit","validateParams","modules","config","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","incomingParams","channel","channelGroup","authKeys","params","length","auth","join","handleResponse","serverResponse","payload"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,oBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAErD,0CAAiCA,MAAM,CAACC,YAAxC;AACD;;AAEM,SAASE,iBAAT,OAA8D;AAAA,MAAjCH,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACI,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,KAAP;AACD;;AAEM,SAASC,aAAT,CAAuBP,OAAvB,EAA+CQ,cAA/C,EAAuF;AAAA,MACpFC,OADoF,GAC3CD,cAD2C,CACpFC,OADoF;AAAA,MAC3EC,YAD2E,GAC3CF,cAD2C,CAC3EE,YAD2E;AAAA,8BAC3CF,cAD2C,CAC7DG,QAD6D;AAAA,MAC7DA,QAD6D,sCAClD,EADkD;AAE5F,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,OAAJ,EAAa;AACXG,IAAAA,MAAM,CAACH,OAAP,GAAiBA,OAAjB;AACD;;AAED,MAAIC,YAAJ,EAAkB;AAChBE,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BF,YAA1B;AACD;;AAED,MAAIC,QAAQ,CAACE,MAAT,GAAkB,CAAtB,EAAyB;AACvBD,IAAAA,MAAM,CAACE,IAAP,GAAcH,QAAQ,CAACI,IAAT,CAAc,GAAd,CAAd;AACD;;AAED,SAAOH,MAAP;AACD;;AAEM,SAASI,cAAT,CAAwBhB,OAAxB,EAAgDiB,cAAhD,EAAgF;AACrF,SAAOA,cAAc,CAACC,OAAtB;AACD","sourcesContent":["/* @flow */\n\nimport { AuditArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNAccessManagerAudit;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v2/auth/audit/sub-key/${config.subscribeKey}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return false;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: AuditArguments): Object {\n const { channel, channelGroup, authKeys = [] } = incomingParams;\n const params = {};\n\n if (channel) {\n params.channel = channel;\n }\n\n if (channelGroup) {\n params['channel-group'] = channelGroup;\n }\n\n if (authKeys.length > 0) {\n params.auth = authKeys.join(',');\n }\n\n return params;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): Object {\n return serverResponse.payload;\n}\n"],"file":"audit.js"} \ No newline at end of file diff --git a/lib/core/endpoints/access_manager/grant.js b/lib/core/endpoints/access_manager/grant.js index 17ccf51c1..987a2758f 100644 --- a/lib/core/endpoints/access_manager/grant.js +++ b/lib/core/endpoints/access_manager/grant.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNAccessManagerGrant; } diff --git a/lib/core/endpoints/access_manager/grant.js.map b/lib/core/endpoints/access_manager/grant.js.map index 5dd3a0008..e6dc8253d 100644 --- a/lib/core/endpoints/access_manager/grant.js.map +++ b/lib/core/endpoints/access_manager/grant.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/access_manager/grant.js"],"names":["getOperation","operationConstants","PNAccessManagerGrant","validateParams","modules","config","subscribeKey","publishKey","secretKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","incomingParams","channels","channelGroups","ttl","read","write","manage","authKeys","deleteParam","params","r","w","m","d","length","channel","join","auth","handleResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,oBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAI,CAACD,MAAM,CAACE,UAAZ,EAAwB,OAAO,qBAAP;AACxB,MAAI,CAACF,MAAM,CAACG,SAAZ,EAAuB,OAAO,oBAAP;AACxB;;AAEM,SAASC,MAAT,CAAgBL,OAAhB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAErD,0CAAiCA,MAAM,CAACC,YAAxC;AACD;;AAEM,SAASI,iBAAT,OAA8D;AAAA,MAAjCL,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACM,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,KAAP;AACD;;AAEM,SAASC,aAAT,CAAuBT,OAAvB,EAA+CU,cAA/C,EAAuF;AAAA,8BACmBA,cADnB,CACpFC,QADoF;AAAA,MACpFA,QADoF,sCACzE,EADyE;AAAA,+BACmBD,cADnB,CACrEE,aADqE;AAAA,MACrEA,aADqE,uCACrD,EADqD;AAAA,MACjDC,GADiD,GACmBH,cADnB,CACjDG,GADiD;AAAA,6BACmBH,cADnB,CAC5CI,IAD4C;AAAA,MAC5CA,IAD4C,qCACrC,KADqC;AAAA,8BACmBJ,cADnB,CAC9BK,KAD8B;AAAA,MAC9BA,KAD8B,sCACtB,KADsB;AAAA,8BACmBL,cADnB,CACfM,MADe;AAAA,MACfA,MADe,sCACN,KADM;AAAA,8BACmBN,cADnB,CACCO,QADD;AAAA,MACCA,QADD,sCACY,EADZ;AAE5F,MAAMC,WAAW,GAAGR,cAAc,UAAlC;AACA,MAAMS,MAAM,GAAG,EAAf;AAEAA,EAAAA,MAAM,CAACC,CAAP,GAAYN,IAAD,GAAS,GAAT,GAAe,GAA1B;AACAK,EAAAA,MAAM,CAACE,CAAP,GAAYN,KAAD,GAAU,GAAV,GAAgB,GAA3B;AACAI,EAAAA,MAAM,CAACG,CAAP,GAAYN,MAAD,GAAW,GAAX,GAAiB,GAA5B;AACAG,EAAAA,MAAM,CAACI,CAAP,GAAYL,WAAD,GAAgB,GAAhB,GAAsB,GAAjC;;AAEA,MAAIP,QAAQ,CAACa,MAAT,GAAkB,CAAtB,EAAyB;AACvBL,IAAAA,MAAM,CAACM,OAAP,GAAiBd,QAAQ,CAACe,IAAT,CAAc,GAAd,CAAjB;AACD;;AAED,MAAId,aAAa,CAACY,MAAd,GAAuB,CAA3B,EAA8B;AAC5BL,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BP,aAAa,CAACc,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAED,MAAIT,QAAQ,CAACO,MAAT,GAAkB,CAAtB,EAAyB;AACvBL,IAAAA,MAAM,CAACQ,IAAP,GAAcV,QAAQ,CAACS,IAAT,CAAc,GAAd,CAAd;AACD;;AAED,MAAIb,GAAG,IAAIA,GAAG,KAAK,CAAnB,EAAsB;AACpBM,IAAAA,MAAM,CAACN,GAAP,GAAaA,GAAb;AACD;;AAED,SAAOM,MAAP;AACD;;AAEM,SAASS,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { GrantArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNAccessManagerGrant;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!config.publishKey) return 'Missing Publish Key';\n if (!config.secretKey) return 'Missing Secret Key';\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v2/auth/grant/sub-key/${config.subscribeKey}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return false;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: GrantArguments): Object {\n const { channels = [], channelGroups = [], ttl, read = false, write = false, manage = false, authKeys = [] } = incomingParams;\n const deleteParam = incomingParams.delete;\n const params = {};\n\n params.r = (read) ? '1' : '0';\n params.w = (write) ? '1' : '0';\n params.m = (manage) ? '1' : '0';\n params.d = (deleteParam) ? '1' : '0';\n\n if (channels.length > 0) {\n params.channel = channels.join(',');\n }\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n if (authKeys.length > 0) {\n params.auth = authKeys.join(',');\n }\n\n if (ttl || ttl === 0) {\n params.ttl = ttl;\n }\n\n return params;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"grant.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/access_manager/grant.js"],"names":["getOperation","operationConstants","PNAccessManagerGrant","validateParams","modules","config","subscribeKey","publishKey","secretKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","incomingParams","channels","channelGroups","ttl","read","write","manage","authKeys","deleteParam","params","r","w","m","d","length","channel","join","auth","handleResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,oBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAI,CAACD,MAAM,CAACE,UAAZ,EAAwB,OAAO,qBAAP;AACxB,MAAI,CAACF,MAAM,CAACG,SAAZ,EAAuB,OAAO,oBAAP;AACxB;;AAEM,SAASC,MAAT,CAAgBL,OAAhB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAErD,0CAAiCA,MAAM,CAACC,YAAxC;AACD;;AAEM,SAASI,iBAAT,OAA8D;AAAA,MAAjCL,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACM,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,KAAP;AACD;;AAEM,SAASC,aAAT,CAAuBT,OAAvB,EAA+CU,cAA/C,EAAuF;AAAA,8BACmBA,cADnB,CACpFC,QADoF;AAAA,MACpFA,QADoF,sCACzE,EADyE;AAAA,+BACmBD,cADnB,CACrEE,aADqE;AAAA,MACrEA,aADqE,uCACrD,EADqD;AAAA,MACjDC,GADiD,GACmBH,cADnB,CACjDG,GADiD;AAAA,6BACmBH,cADnB,CAC5CI,IAD4C;AAAA,MAC5CA,IAD4C,qCACrC,KADqC;AAAA,8BACmBJ,cADnB,CAC9BK,KAD8B;AAAA,MAC9BA,KAD8B,sCACtB,KADsB;AAAA,8BACmBL,cADnB,CACfM,MADe;AAAA,MACfA,MADe,sCACN,KADM;AAAA,8BACmBN,cADnB,CACCO,QADD;AAAA,MACCA,QADD,sCACY,EADZ;AAE5F,MAAMC,WAAW,GAAGR,cAAc,UAAlC;AACA,MAAMS,MAAM,GAAG,EAAf;AAEAA,EAAAA,MAAM,CAACC,CAAP,GAAYN,IAAD,GAAS,GAAT,GAAe,GAA1B;AACAK,EAAAA,MAAM,CAACE,CAAP,GAAYN,KAAD,GAAU,GAAV,GAAgB,GAA3B;AACAI,EAAAA,MAAM,CAACG,CAAP,GAAYN,MAAD,GAAW,GAAX,GAAiB,GAA5B;AACAG,EAAAA,MAAM,CAACI,CAAP,GAAYL,WAAD,GAAgB,GAAhB,GAAsB,GAAjC;;AAEA,MAAIP,QAAQ,CAACa,MAAT,GAAkB,CAAtB,EAAyB;AACvBL,IAAAA,MAAM,CAACM,OAAP,GAAiBd,QAAQ,CAACe,IAAT,CAAc,GAAd,CAAjB;AACD;;AAED,MAAId,aAAa,CAACY,MAAd,GAAuB,CAA3B,EAA8B;AAC5BL,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BP,aAAa,CAACc,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAED,MAAIT,QAAQ,CAACO,MAAT,GAAkB,CAAtB,EAAyB;AACvBL,IAAAA,MAAM,CAACQ,IAAP,GAAcV,QAAQ,CAACS,IAAT,CAAc,GAAd,CAAd;AACD;;AAED,MAAIb,GAAG,IAAIA,GAAG,KAAK,CAAnB,EAAsB;AACpBM,IAAAA,MAAM,CAACN,GAAP,GAAaA,GAAb;AACD;;AAED,SAAOM,MAAP;AACD;;AAEM,SAASS,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { GrantArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNAccessManagerGrant;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!config.publishKey) return 'Missing Publish Key';\n if (!config.secretKey) return 'Missing Secret Key';\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v2/auth/grant/sub-key/${config.subscribeKey}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return false;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: GrantArguments): Object {\n const { channels = [], channelGroups = [], ttl, read = false, write = false, manage = false, authKeys = [] } = incomingParams;\n const deleteParam = incomingParams.delete;\n const params = {};\n\n params.r = (read) ? '1' : '0';\n params.w = (write) ? '1' : '0';\n params.m = (manage) ? '1' : '0';\n params.d = (deleteParam) ? '1' : '0';\n\n if (channels.length > 0) {\n params.channel = channels.join(',');\n }\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n if (authKeys.length > 0) {\n params.auth = authKeys.join(',');\n }\n\n if (ttl || ttl === 0) {\n params.ttl = ttl;\n }\n\n return params;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"grant.js"} \ No newline at end of file diff --git a/lib/core/endpoints/access_manager/grant_token.js b/lib/core/endpoints/access_manager/grant_token.js index d492441fb..8777f0462 100644 --- a/lib/core/endpoints/access_manager/grant_token.js +++ b/lib/core/endpoints/access_manager/grant_token.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -18,8 +20,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNAccessManagerGrantToken; } diff --git a/lib/core/endpoints/access_manager/grant_token.js.map b/lib/core/endpoints/access_manager/grant_token.js.map index 19b824e85..25fd96976 100644 --- a/lib/core/endpoints/access_manager/grant_token.js.map +++ b/lib/core/endpoints/access_manager/grant_token.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/access_manager/grant_token.js"],"names":["getOperation","operationConstants","PNAccessManagerGrantToken","extractPermissions","permissions","permissionsResult","create","manage","write","read","prepareMessagePayload","modules","incomingParams","ttl","resources","patterns","meta","params","channels","groups","users","spaces","Object","keys","forEach","user","space","validateParams","config","subscribeKey","publishKey","secretKey","length","postURL","usePost","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","postPayload","handleResponse","response","token","data"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport { GrantTokenInput, GrantTokenObject, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNAccessManagerGrantToken;\n}\n\nexport function extractPermissions(permissions: GrantTokenObject) {\n let permissionsResult = 0;\n\n /* eslint-disable */\n\n if (permissions.create) {\n permissionsResult |= 16;\n }\n\n if (permissions.delete) {\n permissionsResult |= 8;\n }\n\n if (permissions.manage) {\n permissionsResult |= 4;\n }\n\n if (permissions.write) {\n permissionsResult |= 2;\n }\n\n if (permissions.read) {\n permissionsResult |= 1;\n }\n\n /* eslint-enable */\n\n return permissionsResult;\n}\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { ttl, resources, patterns, meta } = incomingParams;\n const params = {\n ttl: 0,\n permissions: {\n resources: {\n channels: {},\n groups: {},\n users: {},\n spaces: {}\n },\n patterns: {\n channels: {},\n groups: {},\n users: {},\n spaces: {}\n },\n meta: {}\n }\n };\n\n if (resources) {\n const { users, spaces } = resources;\n\n if (users) {\n Object.keys(users).forEach((user) => {\n params.permissions.resources.users[user] = extractPermissions(users[user]);\n });\n }\n\n if (spaces) {\n Object.keys(spaces).forEach((space) => {\n params.permissions.resources.spaces[space] = extractPermissions(spaces[space]);\n });\n }\n }\n\n if (patterns) {\n const { users, spaces } = patterns;\n\n if (users) {\n Object.keys(users).forEach((user) => {\n params.permissions.patterns.users[user] = extractPermissions(users[user]);\n });\n }\n\n if (spaces) {\n Object.keys(spaces).forEach((space) => {\n params.permissions.patterns.spaces[space] = extractPermissions(spaces[space]);\n });\n }\n }\n\n if (ttl || ttl === 0) {\n params.ttl = ttl;\n }\n\n if (meta) {\n params.permissions.meta = meta;\n }\n\n return params;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: GrantTokenInput\n) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!config.publishKey) return 'Missing Publish Key';\n if (!config.secretKey) return 'Missing Secret Key';\n\n if (!incomingParams.resources && !incomingParams.patterns) return 'Missing either Resources or Patterns.';\n\n if (\n (\n (incomingParams.resources) &&\n (!incomingParams.resources.users || Object.keys(incomingParams.resources.users).length === 0) &&\n (!incomingParams.resources.spaces || Object.keys(incomingParams.resources.spaces).length === 0)\n ) ||\n (\n (incomingParams.patterns) &&\n (!incomingParams.patterns.users || Object.keys(incomingParams.patterns.users).length === 0) &&\n (!incomingParams.patterns.spaces || Object.keys(incomingParams.patterns.spaces).length === 0)\n )\n ) {\n return 'Missing values for either Resources or Patterns.';\n }\n}\n\nexport function postURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v3/pam/${config.subscribeKey}/grant`;\n}\n\nexport function usePost() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return false;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function postPayload(\n modules: ModulesInject,\n incomingParams: GrantTokenInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n response: Object\n): string {\n let token = response.data.token;\n\n return token;\n}\n"],"file":"grant_token.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/access_manager/grant_token.js"],"names":["getOperation","operationConstants","PNAccessManagerGrantToken","extractPermissions","permissions","permissionsResult","create","manage","write","read","prepareMessagePayload","modules","incomingParams","ttl","resources","patterns","meta","params","channels","groups","users","spaces","Object","keys","forEach","user","space","validateParams","config","subscribeKey","publishKey","secretKey","length","postURL","usePost","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","postPayload","handleResponse","response","token","data"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport { GrantTokenInput, GrantTokenObject, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNAccessManagerGrantToken;\n}\n\nexport function extractPermissions(permissions: GrantTokenObject) {\n let permissionsResult = 0;\n\n /* eslint-disable */\n\n if (permissions.create) {\n permissionsResult |= 16;\n }\n\n if (permissions.delete) {\n permissionsResult |= 8;\n }\n\n if (permissions.manage) {\n permissionsResult |= 4;\n }\n\n if (permissions.write) {\n permissionsResult |= 2;\n }\n\n if (permissions.read) {\n permissionsResult |= 1;\n }\n\n /* eslint-enable */\n\n return permissionsResult;\n}\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { ttl, resources, patterns, meta } = incomingParams;\n const params = {\n ttl: 0,\n permissions: {\n resources: {\n channels: {},\n groups: {},\n users: {},\n spaces: {}\n },\n patterns: {\n channels: {},\n groups: {},\n users: {},\n spaces: {}\n },\n meta: {}\n }\n };\n\n if (resources) {\n const { users, spaces } = resources;\n\n if (users) {\n Object.keys(users).forEach((user) => {\n params.permissions.resources.users[user] = extractPermissions(users[user]);\n });\n }\n\n if (spaces) {\n Object.keys(spaces).forEach((space) => {\n params.permissions.resources.spaces[space] = extractPermissions(spaces[space]);\n });\n }\n }\n\n if (patterns) {\n const { users, spaces } = patterns;\n\n if (users) {\n Object.keys(users).forEach((user) => {\n params.permissions.patterns.users[user] = extractPermissions(users[user]);\n });\n }\n\n if (spaces) {\n Object.keys(spaces).forEach((space) => {\n params.permissions.patterns.spaces[space] = extractPermissions(spaces[space]);\n });\n }\n }\n\n if (ttl || ttl === 0) {\n params.ttl = ttl;\n }\n\n if (meta) {\n params.permissions.meta = meta;\n }\n\n return params;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: GrantTokenInput\n) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!config.publishKey) return 'Missing Publish Key';\n if (!config.secretKey) return 'Missing Secret Key';\n\n if (!incomingParams.resources && !incomingParams.patterns) return 'Missing either Resources or Patterns.';\n\n if (\n (\n (incomingParams.resources) &&\n (!incomingParams.resources.users || Object.keys(incomingParams.resources.users).length === 0) &&\n (!incomingParams.resources.spaces || Object.keys(incomingParams.resources.spaces).length === 0)\n ) ||\n (\n (incomingParams.patterns) &&\n (!incomingParams.patterns.users || Object.keys(incomingParams.patterns.users).length === 0) &&\n (!incomingParams.patterns.spaces || Object.keys(incomingParams.patterns.spaces).length === 0)\n )\n ) {\n return 'Missing values for either Resources or Patterns.';\n }\n}\n\nexport function postURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v3/pam/${config.subscribeKey}/grant`;\n}\n\nexport function usePost() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return false;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function postPayload(\n modules: ModulesInject,\n incomingParams: GrantTokenInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n response: Object\n): string {\n let token = response.data.token;\n\n return token;\n}\n"],"file":"grant_token.js"} \ No newline at end of file diff --git a/lib/core/endpoints/actions/add_message_action.js b/lib/core/endpoints/actions/add_message_action.js index 68e9c1321..65be4ccd8 100644 --- a/lib/core/endpoints/actions/add_message_action.js +++ b/lib/core/endpoints/actions/add_message_action.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -18,8 +20,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNAddMessageActionOperation; } diff --git a/lib/core/endpoints/actions/add_message_action.js.map b/lib/core/endpoints/actions/add_message_action.js.map index 18a43c984..c7afef953 100644 --- a/lib/core/endpoints/actions/add_message_action.js.map +++ b/lib/core/endpoints/actions/add_message_action.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/actions/add_message_action.js"],"names":["getOperation","operationConstants","PNAddMessageActionOperation","validateParams","incomingParams","config","action","channel","messageTimetoken","subscribeKey","value","type","length","usePost","postURL","getRequestTimeout","getTransactionTimeout","getRequestHeaders","isAuthSupported","prepareParams","postPayload","modules","handleResponse","addMessageActionResponse","data"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AAKA;;;;AAGO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,2BAA1B;AACD;;AAEM,SAASC,cAAT,OAELC,cAFK,EAGL;AAAA,MAFEC,MAEF,QAFEA,MAEF;AAAA,MACMC,MADN,GAC4CF,cAD5C,CACME,MADN;AAAA,MACcC,OADd,GAC4CH,cAD5C,CACcG,OADd;AAAA,MACuBC,gBADvB,GAC4CJ,cAD5C,CACuBI,gBADvB;AAGA,MAAI,CAACA,gBAAL,EAAuB,OAAO,2BAAP;AACvB,MAAI,CAACH,MAAM,CAACI,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAI,CAACF,OAAL,EAAc,OAAO,yBAAP;AACd,MAAI,CAACD,MAAL,EAAa,OAAO,gBAAP;AACb,MAAI,CAACA,MAAM,CAACI,KAAZ,EAAmB,OAAO,sBAAP;AACnB,MAAI,CAACJ,MAAM,CAACK,IAAZ,EAAkB,OAAO,qBAAP;AAClB,MAAIL,MAAM,CAACK,IAAP,CAAYC,MAAZ,GAAqB,EAAzB,EAA6B,OAAO,+CAAP;AAC9B;;AAEM,SAASC,OAAT,GAAmB;AACxB,SAAO,IAAP;AACD;;AAEM,SAASC,OAAT,QAELV,cAFK,EAGG;AAAA,MAFNC,MAEM,SAFNA,MAEM;AAAA,MACFE,OADE,GAC4BH,cAD5B,CACFG,OADE;AAAA,MACOC,gBADP,GAC4BJ,cAD5B,CACOI,gBADP;AAGR,uCAA8BH,MAAM,CAACI,YAArC,sBAA6DF,OAA7D,sBAAgFC,gBAAhF;AACD;;AAEM,SAASO,iBAAT,QAAsD;AAAA,MAAzBV,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACW,qBAAP,EAAP;AACD;;AAEM,SAASC,iBAAT,GAAqC;AAC1C,SAAO;AAAE,oBAAgB;AAAlB,GAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,WAAT,CACLC,OADK,EAELjB,cAFK,EAGG;AACR,SAAOA,cAAc,CAACE,MAAtB;AACD;;AAEM,SAASgB,cAAT,CACLD,OADK,EAELE,wBAFK,EAGqB;AAC1B,SAAO;AAAEC,IAAAA,IAAI,EAAED,wBAAwB,CAACC;AAAjC,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n AddMessageActionInput,\n AddMessageActionResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\n\nexport function getOperation(): string {\n return operationConstants.PNAddMessageActionOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: AddMessageActionInput\n) {\n let { action, channel, messageTimetoken } = incomingParams;\n\n if (!messageTimetoken) return 'Missing message timetoken';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!channel) return 'Missing message channel';\n if (!action) return 'Missing Action';\n if (!action.value) return 'Missing Action.value';\n if (!action.type) return 'Missing Action.type';\n if (action.type.length > 15) return 'Action.type value exceed maximum length of 15';\n}\n\nexport function usePost() {\n return true;\n}\n\nexport function postURL(\n { config }: ModulesInject,\n incomingParams: AddMessageActionInput\n): string {\n let { channel, messageTimetoken } = incomingParams;\n\n return `/v1/message-actions/${config.subscribeKey}/channel/${channel}/message/${messageTimetoken}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function getRequestHeaders(): Object {\n return { 'Content-Type': 'application/json' };\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function postPayload(\n modules: ModulesInject,\n incomingParams: AddMessageActionInput\n): string {\n return incomingParams.action;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n addMessageActionResponse: Object\n): AddMessageActionResponse {\n return { data: addMessageActionResponse.data };\n}\n"],"file":"add_message_action.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/actions/add_message_action.js"],"names":["getOperation","operationConstants","PNAddMessageActionOperation","validateParams","incomingParams","config","action","channel","messageTimetoken","subscribeKey","value","type","length","usePost","postURL","getRequestTimeout","getTransactionTimeout","getRequestHeaders","isAuthSupported","prepareParams","postPayload","modules","handleResponse","addMessageActionResponse","data"],"mappings":";;;;;;;;;;;;;;;;;;AAEA;;AAKA;;AAGO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,2BAA1B;AACD;;AAEM,SAASC,cAAT,OAELC,cAFK,EAGL;AAAA,MAFEC,MAEF,QAFEA,MAEF;AAAA,MACMC,MADN,GAC4CF,cAD5C,CACME,MADN;AAAA,MACcC,OADd,GAC4CH,cAD5C,CACcG,OADd;AAAA,MACuBC,gBADvB,GAC4CJ,cAD5C,CACuBI,gBADvB;AAGA,MAAI,CAACA,gBAAL,EAAuB,OAAO,2BAAP;AACvB,MAAI,CAACH,MAAM,CAACI,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAI,CAACF,OAAL,EAAc,OAAO,yBAAP;AACd,MAAI,CAACD,MAAL,EAAa,OAAO,gBAAP;AACb,MAAI,CAACA,MAAM,CAACI,KAAZ,EAAmB,OAAO,sBAAP;AACnB,MAAI,CAACJ,MAAM,CAACK,IAAZ,EAAkB,OAAO,qBAAP;AAClB,MAAIL,MAAM,CAACK,IAAP,CAAYC,MAAZ,GAAqB,EAAzB,EAA6B,OAAO,+CAAP;AAC9B;;AAEM,SAASC,OAAT,GAAmB;AACxB,SAAO,IAAP;AACD;;AAEM,SAASC,OAAT,QAELV,cAFK,EAGG;AAAA,MAFNC,MAEM,SAFNA,MAEM;AAAA,MACFE,OADE,GAC4BH,cAD5B,CACFG,OADE;AAAA,MACOC,gBADP,GAC4BJ,cAD5B,CACOI,gBADP;AAGR,uCAA8BH,MAAM,CAACI,YAArC,sBAA6DF,OAA7D,sBAAgFC,gBAAhF;AACD;;AAEM,SAASO,iBAAT,QAAsD;AAAA,MAAzBV,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACW,qBAAP,EAAP;AACD;;AAEM,SAASC,iBAAT,GAAqC;AAC1C,SAAO;AAAE,oBAAgB;AAAlB,GAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,WAAT,CACLC,OADK,EAELjB,cAFK,EAGG;AACR,SAAOA,cAAc,CAACE,MAAtB;AACD;;AAEM,SAASgB,cAAT,CACLD,OADK,EAELE,wBAFK,EAGqB;AAC1B,SAAO;AAAEC,IAAAA,IAAI,EAAED,wBAAwB,CAACC;AAAjC,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n AddMessageActionInput,\n AddMessageActionResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\n\nexport function getOperation(): string {\n return operationConstants.PNAddMessageActionOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: AddMessageActionInput\n) {\n let { action, channel, messageTimetoken } = incomingParams;\n\n if (!messageTimetoken) return 'Missing message timetoken';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!channel) return 'Missing message channel';\n if (!action) return 'Missing Action';\n if (!action.value) return 'Missing Action.value';\n if (!action.type) return 'Missing Action.type';\n if (action.type.length > 15) return 'Action.type value exceed maximum length of 15';\n}\n\nexport function usePost() {\n return true;\n}\n\nexport function postURL(\n { config }: ModulesInject,\n incomingParams: AddMessageActionInput\n): string {\n let { channel, messageTimetoken } = incomingParams;\n\n return `/v1/message-actions/${config.subscribeKey}/channel/${channel}/message/${messageTimetoken}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function getRequestHeaders(): Object {\n return { 'Content-Type': 'application/json' };\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function postPayload(\n modules: ModulesInject,\n incomingParams: AddMessageActionInput\n): string {\n return incomingParams.action;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n addMessageActionResponse: Object\n): AddMessageActionResponse {\n return { data: addMessageActionResponse.data };\n}\n"],"file":"add_message_action.js"} \ No newline at end of file diff --git a/lib/core/endpoints/actions/get_message_actions.js b/lib/core/endpoints/actions/get_message_actions.js index 182053e78..1a5520a46 100644 --- a/lib/core/endpoints/actions/get_message_actions.js +++ b/lib/core/endpoints/actions/get_message_actions.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNGetMessageActionsOperation; } diff --git a/lib/core/endpoints/actions/get_message_actions.js.map b/lib/core/endpoints/actions/get_message_actions.js.map index eb14bf305..a4ee10feb 100644 --- a/lib/core/endpoints/actions/get_message_actions.js.map +++ b/lib/core/endpoints/actions/get_message_actions.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/actions/get_message_actions.js"],"names":["getOperation","operationConstants","PNGetMessageActionsOperation","validateParams","incomingParams","config","channel","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","modules","limit","start","end","outgoingParams","handleResponse","getMessageActionsResponse","response","data","length","actionTimetoken"],"mappings":";;;;;;;;;;;;;AAEA;;AAKA;;;;AAGO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,4BAA1B;AACD;;AAEM,SAASC,cAAT,OAELC,cAFK,EAGL;AAAA,MAFEC,MAEF,QAFEA,MAEF;AAAA,MACMC,OADN,GACkBF,cADlB,CACME,OADN;AAGA,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAI,CAACD,OAAL,EAAc,OAAO,yBAAP;AACf;;AAGM,SAASE,MAAT,QAELJ,cAFK,EAGG;AAAA,MAFNC,MAEM,SAFNA,MAEM;AAAA,MACFC,OADE,GACUF,cADV,CACFE,OADE;AAGR,uCAA8BD,MAAM,CAACE,YAArC,sBAA6DD,OAA7D;AACD;;AAEM,SAASG,iBAAT,QAAsD;AAAA,MAAzBJ,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACK,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CACLC,OADK,EAELT,cAFK,EAGG;AAAA,MACAU,KADA,GACsBV,cADtB,CACAU,KADA;AAAA,MACOC,KADP,GACsBX,cADtB,CACOW,KADP;AAAA,MACcC,GADd,GACsBZ,cADtB,CACcY,GADd;AAER,MAAIC,cAAsB,GAAG,EAA7B;AAEA,MAAIH,KAAJ,EAAWG,cAAc,CAACH,KAAf,GAAuBA,KAAvB;AACX,MAAIC,KAAJ,EAAWE,cAAc,CAACF,KAAf,GAAuBA,KAAvB;AACX,MAAIC,GAAJ,EAASC,cAAc,CAACD,GAAf,GAAqBA,GAArB;AAET,SAAOC,cAAP;AACD;;AAEM,SAASC,cAAT,CACLL,OADK,EAELM,yBAFK,EAGsB;AAE3B,MAAIC,QAAQ,GAAG;AAAEC,IAAAA,IAAI,EAAEF,yBAAyB,CAACE,IAAlC;AAAwCN,IAAAA,KAAK,EAAE,IAA/C;AAAqDC,IAAAA,GAAG,EAAE;AAA1D,GAAf;;AAEA,MAAII,QAAQ,CAACC,IAAT,CAAcC,MAAlB,EAA0B;AACxBF,IAAAA,QAAQ,CAACJ,GAAT,GAAeI,QAAQ,CAACC,IAAT,CAAcD,QAAQ,CAACC,IAAT,CAAcC,MAAd,GAAuB,CAArC,EAAwCC,eAAvD;AACAH,IAAAA,QAAQ,CAACL,KAAT,GAAiBK,QAAQ,CAACC,IAAT,CAAc,CAAd,EAAiBE,eAAlC;AACD;;AAED,SAAOH,QAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n GetMessageActionsInput,\n GetMessageActionsResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\n\nexport function getOperation(): string {\n return operationConstants.PNGetMessageActionsOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: GetMessageActionsInput\n) {\n let { channel } = incomingParams;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!channel) return 'Missing message channel';\n}\n\n\nexport function getURL(\n { config }: ModulesInject,\n incomingParams: GetMessageActionsInput\n): string {\n let { channel } = incomingParams;\n\n return `/v1/message-actions/${config.subscribeKey}/channel/${channel}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: GetMessageActionsInput\n): Object {\n const { limit, start, end } = incomingParams;\n let outgoingParams: Object = {};\n\n if (limit) outgoingParams.limit = limit;\n if (start) outgoingParams.start = start;\n if (end) outgoingParams.end = end;\n\n return outgoingParams;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n getMessageActionsResponse: Object\n): GetMessageActionsResponse {\n /** @type GetMessageActionsResponse */\n let response = { data: getMessageActionsResponse.data, start: null, end: null };\n\n if (response.data.length) {\n response.end = response.data[response.data.length - 1].actionTimetoken;\n response.start = response.data[0].actionTimetoken;\n }\n\n return response;\n}\n"],"file":"get_message_actions.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/actions/get_message_actions.js"],"names":["getOperation","operationConstants","PNGetMessageActionsOperation","validateParams","incomingParams","config","channel","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","modules","limit","start","end","outgoingParams","handleResponse","getMessageActionsResponse","response","data","length","actionTimetoken"],"mappings":";;;;;;;;;;;;;;;AAEA;;AAKA;;AAGO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,4BAA1B;AACD;;AAEM,SAASC,cAAT,OAELC,cAFK,EAGL;AAAA,MAFEC,MAEF,QAFEA,MAEF;AAAA,MACMC,OADN,GACkBF,cADlB,CACME,OADN;AAGA,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAI,CAACD,OAAL,EAAc,OAAO,yBAAP;AACf;;AAGM,SAASE,MAAT,QAELJ,cAFK,EAGG;AAAA,MAFNC,MAEM,SAFNA,MAEM;AAAA,MACFC,OADE,GACUF,cADV,CACFE,OADE;AAGR,uCAA8BD,MAAM,CAACE,YAArC,sBAA6DD,OAA7D;AACD;;AAEM,SAASG,iBAAT,QAAsD;AAAA,MAAzBJ,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACK,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CACLC,OADK,EAELT,cAFK,EAGG;AAAA,MACAU,KADA,GACsBV,cADtB,CACAU,KADA;AAAA,MACOC,KADP,GACsBX,cADtB,CACOW,KADP;AAAA,MACcC,GADd,GACsBZ,cADtB,CACcY,GADd;AAER,MAAIC,cAAsB,GAAG,EAA7B;AAEA,MAAIH,KAAJ,EAAWG,cAAc,CAACH,KAAf,GAAuBA,KAAvB;AACX,MAAIC,KAAJ,EAAWE,cAAc,CAACF,KAAf,GAAuBA,KAAvB;AACX,MAAIC,GAAJ,EAASC,cAAc,CAACD,GAAf,GAAqBA,GAArB;AAET,SAAOC,cAAP;AACD;;AAEM,SAASC,cAAT,CACLL,OADK,EAELM,yBAFK,EAGsB;AAE3B,MAAIC,QAAQ,GAAG;AAAEC,IAAAA,IAAI,EAAEF,yBAAyB,CAACE,IAAlC;AAAwCN,IAAAA,KAAK,EAAE,IAA/C;AAAqDC,IAAAA,GAAG,EAAE;AAA1D,GAAf;;AAEA,MAAII,QAAQ,CAACC,IAAT,CAAcC,MAAlB,EAA0B;AACxBF,IAAAA,QAAQ,CAACJ,GAAT,GAAeI,QAAQ,CAACC,IAAT,CAAcD,QAAQ,CAACC,IAAT,CAAcC,MAAd,GAAuB,CAArC,EAAwCC,eAAvD;AACAH,IAAAA,QAAQ,CAACL,KAAT,GAAiBK,QAAQ,CAACC,IAAT,CAAc,CAAd,EAAiBE,eAAlC;AACD;;AAED,SAAOH,QAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n GetMessageActionsInput,\n GetMessageActionsResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\n\nexport function getOperation(): string {\n return operationConstants.PNGetMessageActionsOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: GetMessageActionsInput\n) {\n let { channel } = incomingParams;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!channel) return 'Missing message channel';\n}\n\n\nexport function getURL(\n { config }: ModulesInject,\n incomingParams: GetMessageActionsInput\n): string {\n let { channel } = incomingParams;\n\n return `/v1/message-actions/${config.subscribeKey}/channel/${channel}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: GetMessageActionsInput\n): Object {\n const { limit, start, end } = incomingParams;\n let outgoingParams: Object = {};\n\n if (limit) outgoingParams.limit = limit;\n if (start) outgoingParams.start = start;\n if (end) outgoingParams.end = end;\n\n return outgoingParams;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n getMessageActionsResponse: Object\n): GetMessageActionsResponse {\n /** @type GetMessageActionsResponse */\n let response = { data: getMessageActionsResponse.data, start: null, end: null };\n\n if (response.data.length) {\n response.end = response.data[response.data.length - 1].actionTimetoken;\n response.start = response.data[0].actionTimetoken;\n }\n\n return response;\n}\n"],"file":"get_message_actions.js"} \ No newline at end of file diff --git a/lib/core/endpoints/actions/remove_message_action.js b/lib/core/endpoints/actions/remove_message_action.js index 11a664e7a..4b609906c 100644 --- a/lib/core/endpoints/actions/remove_message_action.js +++ b/lib/core/endpoints/actions/remove_message_action.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -16,8 +18,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNRemoveMessageActionOperation; } diff --git a/lib/core/endpoints/actions/remove_message_action.js.map b/lib/core/endpoints/actions/remove_message_action.js.map index 8c39c1312..daeeb3e39 100644 --- a/lib/core/endpoints/actions/remove_message_action.js.map +++ b/lib/core/endpoints/actions/remove_message_action.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/actions/remove_message_action.js"],"names":["getOperation","operationConstants","PNRemoveMessageActionOperation","validateParams","incomingParams","config","channel","actionTimetoken","messageTimetoken","subscribeKey","useDelete","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","handleResponse","modules","removeMessageActionResponse","data"],"mappings":";;;;;;;;;;;;;;AAEA;;AAKA;;;;AAGO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,8BAA1B;AACD;;AAEM,SAASC,cAAT,OAELC,cAFK,EAGL;AAAA,MAFEC,MAEF,QAFEA,MAEF;AAAA,MACMC,OADN,GACqDF,cADrD,CACME,OADN;AAAA,MACeC,eADf,GACqDH,cADrD,CACeG,eADf;AAAA,MACgCC,gBADhC,GACqDJ,cADrD,CACgCI,gBADhC;AAGA,MAAI,CAACA,gBAAL,EAAuB,OAAO,2BAAP;AACvB,MAAI,CAACD,eAAL,EAAsB,OAAO,0BAAP;AACtB,MAAI,CAACF,MAAM,CAACI,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAI,CAACH,OAAL,EAAc,OAAO,yBAAP;AACf;;AAEM,SAASI,SAAT,GAAqB;AAC1B,SAAO,IAAP;AACD;;AAEM,SAASC,MAAT,QAELP,cAFK,EAGG;AAAA,MAFNC,MAEM,SAFNA,MAEM;AAAA,MACFC,OADE,GAC6CF,cAD7C,CACFE,OADE;AAAA,MACOC,eADP,GAC6CH,cAD7C,CACOG,eADP;AAAA,MACwBC,gBADxB,GAC6CJ,cAD7C,CACwBI,gBADxB;AAGR,uCAA8BH,MAAM,CAACI,YAArC,sBAA6DH,OAA7D,sBAAgFE,gBAAhF,qBAA2GD,eAA3G;AACD;;AAEM,SAASK,iBAAT,QAAsD;AAAA,MAAzBP,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACQ,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CACLC,OADK,EAELC,2BAFK,EAGwB;AAC7B,SAAO;AAAEC,IAAAA,IAAI,EAAED,2BAA2B,CAACC;AAApC,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n RemoveMessageActionInput,\n RemoveMessageActionResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\n\nexport function getOperation(): string {\n return operationConstants.PNRemoveMessageActionOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: RemoveMessageActionInput\n) {\n let { channel, actionTimetoken, messageTimetoken } = incomingParams;\n\n if (!messageTimetoken) return 'Missing message timetoken';\n if (!actionTimetoken) return 'Missing action timetoken';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!channel) return 'Missing message channel';\n}\n\nexport function useDelete() {\n return true;\n}\n\nexport function getURL(\n { config }: ModulesInject,\n incomingParams: RemoveMessageActionInput\n): string {\n let { channel, actionTimetoken, messageTimetoken } = incomingParams;\n\n return `/v1/message-actions/${config.subscribeKey}/channel/${channel}/message/${messageTimetoken}/action/${actionTimetoken}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n removeMessageActionResponse: Object\n): RemoveMessageActionResponse {\n return { data: removeMessageActionResponse.data };\n}\n"],"file":"remove_message_action.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/actions/remove_message_action.js"],"names":["getOperation","operationConstants","PNRemoveMessageActionOperation","validateParams","incomingParams","config","channel","actionTimetoken","messageTimetoken","subscribeKey","useDelete","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","handleResponse","modules","removeMessageActionResponse","data"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AAKA;;AAGO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,8BAA1B;AACD;;AAEM,SAASC,cAAT,OAELC,cAFK,EAGL;AAAA,MAFEC,MAEF,QAFEA,MAEF;AAAA,MACMC,OADN,GACqDF,cADrD,CACME,OADN;AAAA,MACeC,eADf,GACqDH,cADrD,CACeG,eADf;AAAA,MACgCC,gBADhC,GACqDJ,cADrD,CACgCI,gBADhC;AAGA,MAAI,CAACA,gBAAL,EAAuB,OAAO,2BAAP;AACvB,MAAI,CAACD,eAAL,EAAsB,OAAO,0BAAP;AACtB,MAAI,CAACF,MAAM,CAACI,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAI,CAACH,OAAL,EAAc,OAAO,yBAAP;AACf;;AAEM,SAASI,SAAT,GAAqB;AAC1B,SAAO,IAAP;AACD;;AAEM,SAASC,MAAT,QAELP,cAFK,EAGG;AAAA,MAFNC,MAEM,SAFNA,MAEM;AAAA,MACFC,OADE,GAC6CF,cAD7C,CACFE,OADE;AAAA,MACOC,eADP,GAC6CH,cAD7C,CACOG,eADP;AAAA,MACwBC,gBADxB,GAC6CJ,cAD7C,CACwBI,gBADxB;AAGR,uCAA8BH,MAAM,CAACI,YAArC,sBAA6DH,OAA7D,sBAAgFE,gBAAhF,qBAA2GD,eAA3G;AACD;;AAEM,SAASK,iBAAT,QAAsD;AAAA,MAAzBP,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACQ,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CACLC,OADK,EAELC,2BAFK,EAGwB;AAC7B,SAAO;AAAEC,IAAAA,IAAI,EAAED,2BAA2B,CAACC;AAApC,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n RemoveMessageActionInput,\n RemoveMessageActionResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\n\nexport function getOperation(): string {\n return operationConstants.PNRemoveMessageActionOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: RemoveMessageActionInput\n) {\n let { channel, actionTimetoken, messageTimetoken } = incomingParams;\n\n if (!messageTimetoken) return 'Missing message timetoken';\n if (!actionTimetoken) return 'Missing action timetoken';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (!channel) return 'Missing message channel';\n}\n\nexport function useDelete() {\n return true;\n}\n\nexport function getURL(\n { config }: ModulesInject,\n incomingParams: RemoveMessageActionInput\n): string {\n let { channel, actionTimetoken, messageTimetoken } = incomingParams;\n\n return `/v1/message-actions/${config.subscribeKey}/channel/${channel}/message/${messageTimetoken}/action/${actionTimetoken}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n removeMessageActionResponse: Object\n): RemoveMessageActionResponse {\n return { data: removeMessageActionResponse.data };\n}\n"],"file":"remove_message_action.js"} \ No newline at end of file diff --git a/lib/core/endpoints/channel_groups/add_channels.js b/lib/core/endpoints/channel_groups/add_channels.js index 9bad63a20..63dcdefe5 100644 --- a/lib/core/endpoints/channel_groups/add_channels.js +++ b/lib/core/endpoints/channel_groups/add_channels.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNAddChannelsToGroupOperation; } diff --git a/lib/core/endpoints/channel_groups/add_channels.js.map b/lib/core/endpoints/channel_groups/add_channels.js.map index e4919751d..816e5a93c 100644 --- a/lib/core/endpoints/channel_groups/add_channels.js.map +++ b/lib/core/endpoints/channel_groups/add_channels.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/channel_groups/add_channels.js"],"names":["getOperation","operationConstants","PNAddChannelsToGroupOperation","validateParams","modules","incomingParams","channels","channelGroup","config","length","subscribeKey","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","add","join","handleResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,6BAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,QADiF,GACtDD,cADsD,CACjFC,QADiF;AAAA,MACvEC,YADuE,GACtDF,cADsD,CACvEE,YADuE;AAAA,MAEjFC,MAFiF,GAEtEJ,OAFsE,CAEjFI,MAFiF;AAIvF,MAAI,CAACD,YAAL,EAAmB,OAAO,uBAAP;AACnB,MAAI,CAACD,QAAD,IAAaA,QAAQ,CAACG,MAAT,KAAoB,CAArC,EAAwC,OAAO,kBAAP;AACxC,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBP,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFE,YADiF,GAChEF,cADgE,CACjFE,YADiF;AAAA,MAEjFC,MAFiF,GAEtEJ,OAFsE,CAEjFI,MAFiF;AAGvF,oDAA2CA,MAAM,CAACE,YAAlD,4BAAgFE,kBAAMC,YAAN,CAAmBN,YAAnB,CAAhF;AACD;;AAEM,SAASO,iBAAT,OAA8D;AAAA,MAAjCN,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBb,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,8BACtEA,cADsE,CACxFC,QADwF;AAAA,MACxFA,QADwF,sCAC7E,EAD6E;AAG9F,SAAO;AACLY,IAAAA,GAAG,EAAEZ,QAAQ,CAACa,IAAT,CAAc,GAAd;AADA,GAAP;AAGD;;AAEM,SAASC,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { AddChannelParams, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNAddChannelsToGroupOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: AddChannelParams) {\n let { channels, channelGroup } = incomingParams;\n let { config } = modules;\n\n if (!channelGroup) return 'Missing Channel Group';\n if (!channels || channels.length === 0) return 'Missing Channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: AddChannelParams): string {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group/${utils.encodeString(channelGroup)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: AddChannelParams): Object {\n let { channels = [] } = incomingParams;\n\n return {\n add: channels.join(',')\n };\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"add_channels.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/channel_groups/add_channels.js"],"names":["getOperation","operationConstants","PNAddChannelsToGroupOperation","validateParams","modules","incomingParams","channels","channelGroup","config","length","subscribeKey","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","add","join","handleResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,6BAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,QADiF,GACtDD,cADsD,CACjFC,QADiF;AAAA,MACvEC,YADuE,GACtDF,cADsD,CACvEE,YADuE;AAAA,MAEjFC,MAFiF,GAEtEJ,OAFsE,CAEjFI,MAFiF;AAIvF,MAAI,CAACD,YAAL,EAAmB,OAAO,uBAAP;AACnB,MAAI,CAACD,QAAD,IAAaA,QAAQ,CAACG,MAAT,KAAoB,CAArC,EAAwC,OAAO,kBAAP;AACxC,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBP,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFE,YADiF,GAChEF,cADgE,CACjFE,YADiF;AAAA,MAEjFC,MAFiF,GAEtEJ,OAFsE,CAEjFI,MAFiF;AAGvF,oDAA2CA,MAAM,CAACE,YAAlD,4BAAgFE,kBAAMC,YAAN,CAAmBN,YAAnB,CAAhF;AACD;;AAEM,SAASO,iBAAT,OAA8D;AAAA,MAAjCN,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBb,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,8BACtEA,cADsE,CACxFC,QADwF;AAAA,MACxFA,QADwF,sCAC7E,EAD6E;AAG9F,SAAO;AACLY,IAAAA,GAAG,EAAEZ,QAAQ,CAACa,IAAT,CAAc,GAAd;AADA,GAAP;AAGD;;AAEM,SAASC,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { AddChannelParams, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNAddChannelsToGroupOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: AddChannelParams) {\n let { channels, channelGroup } = incomingParams;\n let { config } = modules;\n\n if (!channelGroup) return 'Missing Channel Group';\n if (!channels || channels.length === 0) return 'Missing Channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: AddChannelParams): string {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group/${utils.encodeString(channelGroup)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: AddChannelParams): Object {\n let { channels = [] } = incomingParams;\n\n return {\n add: channels.join(',')\n };\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"add_channels.js"} \ No newline at end of file diff --git a/lib/core/endpoints/channel_groups/delete_group.js b/lib/core/endpoints/channel_groups/delete_group.js index d08ed5ffc..0720d59c6 100644 --- a/lib/core/endpoints/channel_groups/delete_group.js +++ b/lib/core/endpoints/channel_groups/delete_group.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNRemoveGroupOperation; } diff --git a/lib/core/endpoints/channel_groups/delete_group.js.map b/lib/core/endpoints/channel_groups/delete_group.js.map index ad2d67c3b..490579c35 100644 --- a/lib/core/endpoints/channel_groups/delete_group.js.map +++ b/lib/core/endpoints/channel_groups/delete_group.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/channel_groups/delete_group.js"],"names":["getOperation","operationConstants","PNRemoveGroupOperation","validateParams","modules","incomingParams","channelGroup","config","subscribeKey","getURL","utils","encodeString","isAuthSupported","getRequestTimeout","getTransactionTimeout","prepareParams","handleResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,sBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAmF;AAAA,MAClFC,YADkF,GACjED,cADiE,CAClFC,YADkF;AAAA,MAElFC,MAFkF,GAEvEH,OAFuE,CAElFG,MAFkF;AAIxF,MAAI,CAACD,YAAL,EAAmB,OAAO,uBAAP;AACnB,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBL,OAAhB,EAAwCC,cAAxC,EAAmF;AAAA,MAClFC,YADkF,GACjED,cADiE,CAClFC,YADkF;AAAA,MAElFC,MAFkF,GAEvEH,OAFuE,CAElFG,MAFkF;AAGxF,oDAA2CA,MAAM,CAACC,YAAlD,4BAAgFE,kBAAMC,YAAN,CAAmBL,YAAnB,CAAhF;AACD;;AAEM,SAASM,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBN,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { DeleteGroupParams, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNRemoveGroupOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: DeleteGroupParams) {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n\n if (!channelGroup) return 'Missing Channel Group';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: DeleteGroupParams): string {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group/${utils.encodeString(channelGroup)}/remove`;\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"delete_group.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/channel_groups/delete_group.js"],"names":["getOperation","operationConstants","PNRemoveGroupOperation","validateParams","modules","incomingParams","channelGroup","config","subscribeKey","getURL","utils","encodeString","isAuthSupported","getRequestTimeout","getTransactionTimeout","prepareParams","handleResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,sBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAmF;AAAA,MAClFC,YADkF,GACjED,cADiE,CAClFC,YADkF;AAAA,MAElFC,MAFkF,GAEvEH,OAFuE,CAElFG,MAFkF;AAIxF,MAAI,CAACD,YAAL,EAAmB,OAAO,uBAAP;AACnB,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBL,OAAhB,EAAwCC,cAAxC,EAAmF;AAAA,MAClFC,YADkF,GACjED,cADiE,CAClFC,YADkF;AAAA,MAElFC,MAFkF,GAEvEH,OAFuE,CAElFG,MAFkF;AAGxF,oDAA2CA,MAAM,CAACC,YAAlD,4BAAgFE,kBAAMC,YAAN,CAAmBL,YAAnB,CAAhF;AACD;;AAEM,SAASM,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBN,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { DeleteGroupParams, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNRemoveGroupOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: DeleteGroupParams) {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n\n if (!channelGroup) return 'Missing Channel Group';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: DeleteGroupParams): string {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group/${utils.encodeString(channelGroup)}/remove`;\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"delete_group.js"} \ No newline at end of file diff --git a/lib/core/endpoints/channel_groups/list_channels.js b/lib/core/endpoints/channel_groups/list_channels.js index 6b8543689..556388973 100644 --- a/lib/core/endpoints/channel_groups/list_channels.js +++ b/lib/core/endpoints/channel_groups/list_channels.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNChannelsForGroupOperation; } diff --git a/lib/core/endpoints/channel_groups/list_channels.js.map b/lib/core/endpoints/channel_groups/list_channels.js.map index 6efb46c73..fc9a4a179 100644 --- a/lib/core/endpoints/channel_groups/list_channels.js.map +++ b/lib/core/endpoints/channel_groups/list_channels.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/channel_groups/list_channels.js"],"names":["getOperation","operationConstants","PNChannelsForGroupOperation","validateParams","modules","incomingParams","channelGroup","config","subscribeKey","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","handleResponse","serverResponse","channels","payload"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,2BAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAoF;AAAA,MACnFC,YADmF,GAClED,cADkE,CACnFC,YADmF;AAAA,MAEnFC,MAFmF,GAExEH,OAFwE,CAEnFG,MAFmF;AAIzF,MAAI,CAACD,YAAL,EAAmB,OAAO,uBAAP;AACnB,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBL,OAAhB,EAAwCC,cAAxC,EAAoF;AAAA,MACnFC,YADmF,GAClED,cADkE,CACnFC,YADmF;AAAA,MAEnFC,MAFmF,GAExEH,OAFwE,CAEnFG,MAFmF;AAGzF,oDAA2CA,MAAM,CAACC,YAAlD,4BAAgFE,kBAAMC,YAAN,CAAmBL,YAAnB,CAAhF;AACD;;AAEM,SAASM,iBAAT,OAAsD;AAAA,MAAzBL,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACM,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CAAwBZ,OAAxB,EAAgDa,cAAhD,EAA8F;AACnG,SAAO;AACLC,IAAAA,QAAQ,EAAED,cAAc,CAACE,OAAf,CAAuBD;AAD5B,GAAP;AAGD","sourcesContent":["/* @flow */\n\nimport { ListChannelsParams, ListChannelsResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNChannelsForGroupOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: ListChannelsParams) {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n\n if (!channelGroup) return 'Missing Channel Group';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: ListChannelsParams): string {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group/${utils.encodeString(channelGroup)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): ListChannelsResponse {\n return {\n channels: serverResponse.payload.channels\n };\n}\n"],"file":"list_channels.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/channel_groups/list_channels.js"],"names":["getOperation","operationConstants","PNChannelsForGroupOperation","validateParams","modules","incomingParams","channelGroup","config","subscribeKey","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","handleResponse","serverResponse","channels","payload"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,2BAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAoF;AAAA,MACnFC,YADmF,GAClED,cADkE,CACnFC,YADmF;AAAA,MAEnFC,MAFmF,GAExEH,OAFwE,CAEnFG,MAFmF;AAIzF,MAAI,CAACD,YAAL,EAAmB,OAAO,uBAAP;AACnB,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBL,OAAhB,EAAwCC,cAAxC,EAAoF;AAAA,MACnFC,YADmF,GAClED,cADkE,CACnFC,YADmF;AAAA,MAEnFC,MAFmF,GAExEH,OAFwE,CAEnFG,MAFmF;AAGzF,oDAA2CA,MAAM,CAACC,YAAlD,4BAAgFE,kBAAMC,YAAN,CAAmBL,YAAnB,CAAhF;AACD;;AAEM,SAASM,iBAAT,OAAsD;AAAA,MAAzBL,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACM,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CAAwBZ,OAAxB,EAAgDa,cAAhD,EAA8F;AACnG,SAAO;AACLC,IAAAA,QAAQ,EAAED,cAAc,CAACE,OAAf,CAAuBD;AAD5B,GAAP;AAGD","sourcesContent":["/* @flow */\n\nimport { ListChannelsParams, ListChannelsResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNChannelsForGroupOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: ListChannelsParams) {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n\n if (!channelGroup) return 'Missing Channel Group';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: ListChannelsParams): string {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group/${utils.encodeString(channelGroup)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): ListChannelsResponse {\n return {\n channels: serverResponse.payload.channels\n };\n}\n"],"file":"list_channels.js"} \ No newline at end of file diff --git a/lib/core/endpoints/channel_groups/list_groups.js b/lib/core/endpoints/channel_groups/list_groups.js index b0161fda0..eea36067a 100644 --- a/lib/core/endpoints/channel_groups/list_groups.js +++ b/lib/core/endpoints/channel_groups/list_groups.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNChannelGroupsOperation; } diff --git a/lib/core/endpoints/channel_groups/list_groups.js.map b/lib/core/endpoints/channel_groups/list_groups.js.map index a79998a2e..64d02de58 100644 --- a/lib/core/endpoints/channel_groups/list_groups.js.map +++ b/lib/core/endpoints/channel_groups/list_groups.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/channel_groups/list_groups.js"],"names":["getOperation","operationConstants","PNChannelGroupsOperation","validateParams","modules","config","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","handleResponse","serverResponse","groups","payload"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,wBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAErD,oDAA2CA,MAAM,CAACC,YAAlD;AACD;;AAEM,SAASE,iBAAT,OAAsD;AAAA,MAAzBH,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACI,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CAAwBR,OAAxB,EAAgDS,cAAhD,EAA+F;AACpG,SAAO;AACLC,IAAAA,MAAM,EAAED,cAAc,CAACE,OAAf,CAAuBD;AAD1B,GAAP;AAGD","sourcesContent":["/* @flow */\n\nimport { ListAllGroupsResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNChannelGroupsOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): ListAllGroupsResponse {\n return {\n groups: serverResponse.payload.groups\n };\n}\n"],"file":"list_groups.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/channel_groups/list_groups.js"],"names":["getOperation","operationConstants","PNChannelGroupsOperation","validateParams","modules","config","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","handleResponse","serverResponse","groups","payload"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,wBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAErD,oDAA2CA,MAAM,CAACC,YAAlD;AACD;;AAEM,SAASE,iBAAT,OAAsD;AAAA,MAAzBH,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACI,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CAAwBR,OAAxB,EAAgDS,cAAhD,EAA+F;AACpG,SAAO;AACLC,IAAAA,MAAM,EAAED,cAAc,CAACE,OAAf,CAAuBD;AAD1B,GAAP;AAGD","sourcesContent":["/* @flow */\n\nimport { ListAllGroupsResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNChannelGroupsOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): ListAllGroupsResponse {\n return {\n groups: serverResponse.payload.groups\n };\n}\n"],"file":"list_groups.js"} \ No newline at end of file diff --git a/lib/core/endpoints/channel_groups/remove_channels.js b/lib/core/endpoints/channel_groups/remove_channels.js index 966114231..2f7f15f22 100644 --- a/lib/core/endpoints/channel_groups/remove_channels.js +++ b/lib/core/endpoints/channel_groups/remove_channels.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNRemoveChannelsFromGroupOperation; } diff --git a/lib/core/endpoints/channel_groups/remove_channels.js.map b/lib/core/endpoints/channel_groups/remove_channels.js.map index f328a2e94..d3351a53e 100644 --- a/lib/core/endpoints/channel_groups/remove_channels.js.map +++ b/lib/core/endpoints/channel_groups/remove_channels.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/channel_groups/remove_channels.js"],"names":["getOperation","operationConstants","PNRemoveChannelsFromGroupOperation","validateParams","modules","incomingParams","channels","channelGroup","config","length","subscribeKey","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","remove","join","handleResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,kCAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAqF;AAAA,MACpFC,QADoF,GACzDD,cADyD,CACpFC,QADoF;AAAA,MAC1EC,YAD0E,GACzDF,cADyD,CAC1EE,YAD0E;AAAA,MAEpFC,MAFoF,GAEzEJ,OAFyE,CAEpFI,MAFoF;AAI1F,MAAI,CAACD,YAAL,EAAmB,OAAO,uBAAP;AACnB,MAAI,CAACD,QAAD,IAAaA,QAAQ,CAACG,MAAT,KAAoB,CAArC,EAAwC,OAAO,kBAAP;AACxC,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBP,OAAhB,EAAwCC,cAAxC,EAAqF;AAAA,MACpFE,YADoF,GACnEF,cADmE,CACpFE,YADoF;AAAA,MAEpFC,MAFoF,GAEzEJ,OAFyE,CAEpFI,MAFoF;AAG1F,oDAA2CA,MAAM,CAACE,YAAlD,4BAAgFE,kBAAMC,YAAN,CAAmBN,YAAnB,CAAhF;AACD;;AAEM,SAASO,iBAAT,OAAsD;AAAA,MAAzBN,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBb,OAAvB,EAA+CC,cAA/C,EAA4F;AAAA,8BACzEA,cADyE,CAC3FC,QAD2F;AAAA,MAC3FA,QAD2F,sCAChF,EADgF;AAGjG,SAAO;AACLY,IAAAA,MAAM,EAAEZ,QAAQ,CAACa,IAAT,CAAc,GAAd;AADH,GAAP;AAGD;;AAEM,SAASC,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { RemoveChannelParams, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNRemoveChannelsFromGroupOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: RemoveChannelParams) {\n let { channels, channelGroup } = incomingParams;\n let { config } = modules;\n\n if (!channelGroup) return 'Missing Channel Group';\n if (!channels || channels.length === 0) return 'Missing Channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: RemoveChannelParams): string {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group/${utils.encodeString(channelGroup)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: RemoveChannelParams): Object {\n let { channels = [] } = incomingParams;\n\n return {\n remove: channels.join(',')\n };\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"remove_channels.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/channel_groups/remove_channels.js"],"names":["getOperation","operationConstants","PNRemoveChannelsFromGroupOperation","validateParams","modules","incomingParams","channels","channelGroup","config","length","subscribeKey","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","remove","join","handleResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,kCAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAqF;AAAA,MACpFC,QADoF,GACzDD,cADyD,CACpFC,QADoF;AAAA,MAC1EC,YAD0E,GACzDF,cADyD,CAC1EE,YAD0E;AAAA,MAEpFC,MAFoF,GAEzEJ,OAFyE,CAEpFI,MAFoF;AAI1F,MAAI,CAACD,YAAL,EAAmB,OAAO,uBAAP;AACnB,MAAI,CAACD,QAAD,IAAaA,QAAQ,CAACG,MAAT,KAAoB,CAArC,EAAwC,OAAO,kBAAP;AACxC,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBP,OAAhB,EAAwCC,cAAxC,EAAqF;AAAA,MACpFE,YADoF,GACnEF,cADmE,CACpFE,YADoF;AAAA,MAEpFC,MAFoF,GAEzEJ,OAFyE,CAEpFI,MAFoF;AAG1F,oDAA2CA,MAAM,CAACE,YAAlD,4BAAgFE,kBAAMC,YAAN,CAAmBN,YAAnB,CAAhF;AACD;;AAEM,SAASO,iBAAT,OAAsD;AAAA,MAAzBN,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBb,OAAvB,EAA+CC,cAA/C,EAA4F;AAAA,8BACzEA,cADyE,CAC3FC,QAD2F;AAAA,MAC3FA,QAD2F,sCAChF,EADgF;AAGjG,SAAO;AACLY,IAAAA,MAAM,EAAEZ,QAAQ,CAACa,IAAT,CAAc,GAAd;AADH,GAAP;AAGD;;AAEM,SAASC,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { RemoveChannelParams, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNRemoveChannelsFromGroupOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: RemoveChannelParams) {\n let { channels, channelGroup } = incomingParams;\n let { config } = modules;\n\n if (!channelGroup) return 'Missing Channel Group';\n if (!channels || channels.length === 0) return 'Missing Channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: RemoveChannelParams): string {\n let { channelGroup } = incomingParams;\n let { config } = modules;\n return `/v1/channel-registration/sub-key/${config.subscribeKey}/channel-group/${utils.encodeString(channelGroup)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: RemoveChannelParams): Object {\n let { channels = [] } = incomingParams;\n\n return {\n remove: channels.join(',')\n };\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"remove_channels.js"} \ No newline at end of file diff --git a/lib/core/endpoints/fetch_messages.js b/lib/core/endpoints/fetch_messages.js index cebafddbc..7be745911 100644 --- a/lib/core/endpoints/fetch_messages.js +++ b/lib/core/endpoints/fetch_messages.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../constants/operations")); var _utils = _interopRequireDefault(require("../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function __processMessage(modules, message) { var config = modules.config, crypto = modules.crypto; @@ -75,13 +75,19 @@ function prepareParams(modules, incomingParams) { _incomingParams$strin = incomingParams.stringifiedTimeToken, stringifiedTimeToken = _incomingParams$strin === void 0 ? false : _incomingParams$strin, _incomingParams$inclu3 = incomingParams.includeMeta, - includeMeta = _incomingParams$inclu3 === void 0 ? false : _incomingParams$inclu3; + includeMeta = _incomingParams$inclu3 === void 0 ? false : _incomingParams$inclu3, + _incomingParams$inclu4 = incomingParams.includeUuid, + includeUuid = _incomingParams$inclu4 === void 0 ? true : _incomingParams$inclu4, + _incomingParams$inclu5 = incomingParams.includeMessageType, + includeMessageType = _incomingParams$inclu5 === void 0 ? true : _incomingParams$inclu5; var outgoingParams = {}; if (count) outgoingParams.max = count; if (start) outgoingParams.start = start; if (end) outgoingParams.end = end; if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; if (includeMeta) outgoingParams.include_meta = 'true'; + if (includeUuid) outgoingParams.include_uuid = 'true'; + if (includeMessageType) outgoingParams.include_message_type = 'true'; return outgoingParams; } @@ -96,6 +102,8 @@ function handleResponse(modules, serverResponse) { announce.channel = channelName; announce.timetoken = messageEnvelope.timetoken; announce.message = __processMessage(modules, messageEnvelope.message); + announce.messageType = messageEnvelope.message_type; + announce.uuid = messageEnvelope.uuid; if (messageEnvelope.actions) { announce.actions = messageEnvelope.actions; diff --git a/lib/core/endpoints/fetch_messages.js.map b/lib/core/endpoints/fetch_messages.js.map index 90b1a0f94..1a337efb0 100644 --- a/lib/core/endpoints/fetch_messages.js.map +++ b/lib/core/endpoints/fetch_messages.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/fetch_messages.js"],"names":["__processMessage","modules","message","config","crypto","cipherKey","decrypt","e","getOperation","operationConstants","PNFetchMessagesOperation","validateParams","incomingParams","channels","includeMessageActions","length","subscribeKey","TypeError","getURL","endpoint","stringifiedChannels","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","start","end","count","stringifiedTimeToken","includeMeta","outgoingParams","max","string_message_token","include_meta","handleResponse","serverResponse","response","Object","keys","forEach","channelName","messageEnvelope","announce","channel","timetoken","actions","data","meta","push"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n FetchMessagesArguments,\n FetchMessagesResponse,\n MessageAnnouncement,\n HistoryV3Response,\n ModulesInject,\n} from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\nimport utils from '../utils';\n\nfunction __processMessage(modules, message: Object): Object | null {\n let { config, crypto } = modules;\n if (!config.cipherKey) return message;\n\n try {\n return crypto.decrypt(message);\n } catch (e) {\n return message;\n }\n}\n\nexport function getOperation(): string {\n return operationConstants.PNFetchMessagesOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: FetchMessagesArguments\n) {\n let { channels, includeMessageActions = false } = incomingParams;\n let { config } = modules;\n\n if (!channels || channels.length === 0) return 'Missing channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (includeMessageActions && channels.length > 1) {\n throw new TypeError('History can return actions data for a single channel only. Either pass a single channel or disable the includeMessageActions flag.');\n }\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: FetchMessagesArguments\n): string {\n let { channels = [], includeMessageActions = false } = incomingParams;\n let { config } = modules;\n const endpoint = !includeMessageActions ? 'history' : 'history-with-actions';\n\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v3/${endpoint}/sub-key/${\n config.subscribeKey\n }/channel/${utils.encodeString(stringifiedChannels)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): boolean {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: FetchMessagesArguments\n): Object {\n const {\n start,\n end,\n count,\n stringifiedTimeToken = false,\n includeMeta = false,\n } = incomingParams;\n let outgoingParams: Object = {};\n\n if (count) outgoingParams.max = count;\n if (start) outgoingParams.start = start;\n if (end) outgoingParams.end = end;\n if (stringifiedTimeToken) outgoingParams.string_message_token = 'true';\n if (includeMeta) outgoingParams.include_meta = 'true';\n\n return outgoingParams;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: HistoryV3Response\n): FetchMessagesResponse {\n const response: FetchMessagesResponse = {\n channels: {},\n };\n\n Object.keys(serverResponse.channels || {}).forEach((channelName) => {\n response.channels[channelName] = [];\n\n (serverResponse.channels[channelName] || []).forEach((messageEnvelope) => {\n let announce: MessageAnnouncement = {};\n announce.channel = channelName;\n announce.timetoken = messageEnvelope.timetoken;\n announce.message = __processMessage(modules, messageEnvelope.message);\n\n if (messageEnvelope.actions) {\n announce.actions = messageEnvelope.actions;\n\n // This should be kept for few updates for existing clients consistency.\n announce.data = messageEnvelope.actions;\n }\n if (messageEnvelope.meta) {\n announce.meta = messageEnvelope.meta;\n }\n\n response.channels[channelName].push(announce);\n });\n });\n\n return response;\n}\n"],"file":"fetch_messages.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/fetch_messages.js"],"names":["__processMessage","modules","message","config","crypto","cipherKey","decrypt","e","getOperation","operationConstants","PNFetchMessagesOperation","validateParams","incomingParams","channels","includeMessageActions","length","subscribeKey","TypeError","getURL","endpoint","stringifiedChannels","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","start","end","count","stringifiedTimeToken","includeMeta","includeUuid","includeMessageType","outgoingParams","max","string_message_token","include_meta","include_uuid","include_message_type","handleResponse","serverResponse","response","Object","keys","forEach","channelName","messageEnvelope","announce","channel","timetoken","messageType","message_type","uuid","actions","data","meta","push"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n FetchMessagesArguments,\n FetchMessagesResponse,\n MessageAnnouncement,\n HistoryV3Response,\n ModulesInject,\n} from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\nimport utils from '../utils';\n\nfunction __processMessage(modules, message: Object): Object | null {\n let { config, crypto } = modules;\n if (!config.cipherKey) return message;\n\n try {\n return crypto.decrypt(message);\n } catch (e) {\n return message;\n }\n}\n\nexport function getOperation(): string {\n return operationConstants.PNFetchMessagesOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: FetchMessagesArguments\n) {\n let { channels, includeMessageActions = false } = incomingParams;\n let { config } = modules;\n\n if (!channels || channels.length === 0) return 'Missing channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (includeMessageActions && channels.length > 1) {\n throw new TypeError('History can return actions data for a single channel only. Either pass a single channel or disable the includeMessageActions flag.');\n }\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: FetchMessagesArguments\n): string {\n let { channels = [], includeMessageActions = false } = incomingParams;\n let { config } = modules;\n const endpoint = !includeMessageActions ? 'history' : 'history-with-actions';\n\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v3/${endpoint}/sub-key/${\n config.subscribeKey\n }/channel/${utils.encodeString(stringifiedChannels)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): boolean {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: FetchMessagesArguments\n): Object {\n const {\n start,\n end,\n count,\n stringifiedTimeToken = false,\n includeMeta = false,\n includeUuid = true,\n includeMessageType = true\n } = incomingParams;\n let outgoingParams: Object = {};\n\n if (count) outgoingParams.max = count;\n if (start) outgoingParams.start = start;\n if (end) outgoingParams.end = end;\n if (stringifiedTimeToken) outgoingParams.string_message_token = 'true';\n if (includeMeta) outgoingParams.include_meta = 'true';\n if (includeUuid) outgoingParams.include_uuid = 'true';\n if (includeMessageType) outgoingParams.include_message_type = 'true';\n\n return outgoingParams;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: HistoryV3Response\n): FetchMessagesResponse {\n const response: FetchMessagesResponse = {\n channels: {},\n };\n\n Object.keys(serverResponse.channels || {}).forEach((channelName) => {\n response.channels[channelName] = [];\n\n (serverResponse.channels[channelName] || []).forEach((messageEnvelope) => {\n let announce: MessageAnnouncement = {};\n announce.channel = channelName;\n announce.timetoken = messageEnvelope.timetoken;\n announce.message = __processMessage(modules, messageEnvelope.message);\n announce.messageType = messageEnvelope.message_type;\n announce.uuid = messageEnvelope.uuid;\n\n if (messageEnvelope.actions) {\n announce.actions = messageEnvelope.actions;\n\n // This should be kept for few updates for existing clients consistency.\n announce.data = messageEnvelope.actions;\n }\n if (messageEnvelope.meta) {\n announce.meta = messageEnvelope.meta;\n }\n\n response.channels[channelName].push(announce);\n });\n });\n\n return response;\n}\n"],"file":"fetch_messages.js"} \ No newline at end of file diff --git a/lib/core/endpoints/file_upload/delete_file.js b/lib/core/endpoints/file_upload/delete_file.js new file mode 100644 index 000000000..49d90e34e --- /dev/null +++ b/lib/core/endpoints/file_upload/delete_file.js @@ -0,0 +1,59 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _operations = _interopRequireDefault(require("../../constants/operations")); + +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNListFilesOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return "channel can't be empty"; + } + + if (!(params === null || params === void 0 ? void 0 : params.id)) { + return "file id can't be empty"; + } + + if (!(params === null || params === void 0 ? void 0 : params.name)) { + return "file name can't be empty"; + } + }, + useDelete: function useDelete() { + return true; + }, + getURL: function getURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/files/").concat(params.id, "/").concat(params.name); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function handleResponse(_, response) { + return { + status: response.status + }; + } +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; +//# sourceMappingURL=delete_file.js.map diff --git a/lib/core/endpoints/file_upload/delete_file.js.map b/lib/core/endpoints/file_upload/delete_file.js.map new file mode 100644 index 000000000..8d004643c --- /dev/null +++ b/lib/core/endpoints/file_upload/delete_file.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["core/endpoints/file_upload/delete_file.js"],"names":["endpoint","getOperation","operationConstants","PNListFilesOperation","validateParams","_","params","channel","id","name","useDelete","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","handleResponse","response","status"],"mappings":";;;;;;;;;AAGA;;AAGA,IAAMA,QAA4D,GAAG;AACnEC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,oBAAzB;AAAA,GADqD;AAGnEC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,wBAAP;AACD;;AAED,QAAI,EAACD,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEE,EAAT,CAAJ,EAAiB;AACf,aAAO,wBAAP;AACD;;AAED,QAAI,EAACF,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEG,IAAT,CAAJ,EAAmB;AACjB,aAAO,0BAAP;AACD;AACF,GAfkE;AAiBnEC,EAAAA,SAAS,EAAE;AAAA,WAAM,IAAN;AAAA,GAjBwD;AAkBnEC,EAAAA,MAAM,EAAE,sBAAaL,MAAb;AAAA,QAAGM,MAAH,QAAGA,MAAH;AAAA,+BAAqCA,MAAM,CAACC,YAA5C,uBAAqEP,MAAM,CAACC,OAA5E,oBAA6FD,MAAM,CAACE,EAApG,cAA0GF,MAAM,CAACG,IAAjH;AAAA,GAlB2D;AAoBnEK,EAAAA,iBAAiB,EAAE;AAAA,QAAGF,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACG,qBAAP,EAAhB;AAAA,GApBgD;AAsBnEC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAtBkD;AAwBnEC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,YAAtB,CAAtB;AAAA,GAxBqD;AA0BnEC,EAAAA,aAAa,EAAE;AAAA,WAAO,EAAP;AAAA,GA1BoD;AA4BnEC,EAAAA,cAAc,EAAE,wBAAChB,CAAD,EAAIiB,QAAJ;AAAA,WAAoC;AAClDC,MAAAA,MAAM,EAAED,QAAQ,CAACC;AADiC,KAApC;AAAA;AA5BmD,CAArE;eAiCevB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../endpoint';\nimport operationConstants from '../../constants/operations';\nimport type { DeleteFileParams, DeleteFileResult } from './types';\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNListFilesOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return \"channel can't be empty\";\n }\n\n if (!params?.id) {\n return \"file id can't be empty\";\n }\n\n if (!params?.name) {\n return \"file name can't be empty\";\n }\n },\n\n useDelete: () => true,\n getURL: ({ config }, params) => `/v1/files/${config.subscribeKey}/channels/${params.channel}/files/${params.id}/${params.name}`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'),\n\n prepareParams: () => ({}),\n\n handleResponse: (_, response): DeleteFileResult => ({\n status: response.status,\n }),\n};\n\nexport default endpoint;\n"],"file":"delete_file.js"} \ No newline at end of file diff --git a/lib/core/endpoints/file_upload/download_file.js b/lib/core/endpoints/file_upload/download_file.js new file mode 100644 index 000000000..109f56664 --- /dev/null +++ b/lib/core/endpoints/file_upload/download_file.js @@ -0,0 +1,106 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); + +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); + +var _operations = _interopRequireDefault(require("../../constants/operations")); + +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNDownloadFileOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return "channel can't be empty"; + } + + if (!(params === null || params === void 0 ? void 0 : params.name)) { + return "name can't be empty"; + } + + if (!(params === null || params === void 0 ? void 0 : params.id)) { + return "id can't be empty"; + } + }, + getURL: function getURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/files/").concat(params.id, "/").concat(params.name); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + ignoreBody: function ignoreBody() { + return true; + }, + forceBuffered: function forceBuffered() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function () { + var _handleResponse = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(_ref4, res, params) { + var _res$response$name; + + var PubNubFile, config, cryptography, body, _params$cipherKey; + + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + PubNubFile = _ref4.PubNubFile, config = _ref4.config, cryptography = _ref4.cryptography; + body = res.response.body; + + if (!config.cipherKey) { + _context.next = 6; + break; + } + + _context.next = 5; + return cryptography.decrypt((_params$cipherKey = params.cipherKey) !== null && _params$cipherKey !== void 0 ? _params$cipherKey : config.cipherKey, body); + + case 5: + body = _context.sent; + + case 6: + return _context.abrupt("return", PubNubFile.create({ + data: body, + name: (_res$response$name = res.response.name) !== null && _res$response$name !== void 0 ? _res$response$name : params.name, + mimeType: res.response.type + })); + + case 7: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + function handleResponse(_x, _x2, _x3) { + return _handleResponse.apply(this, arguments); + } + + return handleResponse; + }() +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; +//# sourceMappingURL=download_file.js.map diff --git a/lib/core/endpoints/file_upload/download_file.js.map b/lib/core/endpoints/file_upload/download_file.js.map new file mode 100644 index 000000000..91d10e79a --- /dev/null +++ b/lib/core/endpoints/file_upload/download_file.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["core/endpoints/file_upload/download_file.js"],"names":["endpoint","getOperation","operationConstants","PNDownloadFileOperation","validateParams","_","params","channel","name","id","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","ignoreBody","forceBuffered","getAuthToken","tokenManager","getToken","prepareParams","handleResponse","res","PubNubFile","cryptography","body","response","cipherKey","decrypt","create","data","mimeType","type"],"mappings":";;;;;;;;;;;;;AAGA;;AAGA,IAAMA,QAAgE,GAAG;AACvEC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,uBAAzB;AAAA,GADyD;AAGvEC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,wBAAP;AACD;;AAED,QAAI,EAACD,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEE,IAAT,CAAJ,EAAmB;AACjB,aAAO,qBAAP;AACD;;AAED,QAAI,EAACF,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEG,EAAT,CAAJ,EAAiB;AACf,aAAO,mBAAP;AACD;AACF,GAfsE;AAiBvEC,EAAAA,MAAM,EAAE,sBAAaJ,MAAb;AAAA,QAAGK,MAAH,QAAGA,MAAH;AAAA,+BACOA,MAAM,CAACC,YADd,uBACuCN,MAAM,CAACC,OAD9C,oBAC+DD,MAAM,CAACG,EADtE,cAC4EH,MAAM,CAACE,IADnF;AAAA,GAjB+D;AAoBvEK,EAAAA,iBAAiB,EAAE;AAAA,QAAGF,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACG,qBAAP,EAAhB;AAAA,GApBoD;AAsBvEC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAtBsD;AAuBvEC,EAAAA,UAAU,EAAE;AAAA,WAAM,IAAN;AAAA,GAvB2D;AAwBvEC,EAAAA,aAAa,EAAE;AAAA,WAAM,IAAN;AAAA,GAxBwD;AA0BvEC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,YAAtB,CAAtB;AAAA,GA1ByD;AA4BvEC,EAAAA,aAAa,EAAE;AAAA,WAAO,EAAP;AAAA,GA5BwD;AA8BvEC,EAAAA,cAAc;AAAA,0FAAE,wBAA6CC,GAA7C,EAAkDjB,MAAlD;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAASkB,cAAAA,UAAT,SAASA,UAAT,EAAqBb,MAArB,SAAqBA,MAArB,EAA6Bc,YAA7B,SAA6BA,YAA7B;AACVC,cAAAA,IADU,GACHH,GAAG,CAACI,QAAJ,CAAaD,IADV;;AAAA,mBAGVf,MAAM,CAACiB,SAHG;AAAA;AAAA;AAAA;;AAAA;AAAA,qBAICH,YAAY,CAACI,OAAb,sBAAqBvB,MAAM,CAACsB,SAA5B,iEAAyCjB,MAAM,CAACiB,SAAhD,EAA2DF,IAA3D,CAJD;;AAAA;AAIZA,cAAAA,IAJY;;AAAA;AAAA,+CAOPF,UAAU,CAACM,MAAX,CAAkB;AACvBC,gBAAAA,IAAI,EAAEL,IADiB;AAEvBlB,gBAAAA,IAAI,wBAAEe,GAAG,CAACI,QAAJ,CAAanB,IAAf,mEAAuBF,MAAM,CAACE,IAFX;AAGvBwB,gBAAAA,QAAQ,EAAET,GAAG,CAACI,QAAJ,CAAaM;AAHA,eAAlB,CAPO;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA;AA9ByD,CAAzE;eA6CejC,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../endpoint';\nimport operationConstants from '../../constants/operations';\nimport type { DownloadFileParams, DownloadFileResult } from './types';\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNDownloadFileOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return \"channel can't be empty\";\n }\n\n if (!params?.name) {\n return \"name can't be empty\";\n }\n\n if (!params?.id) {\n return \"id can't be empty\";\n }\n },\n\n getURL: ({ config }, params) =>\n `/v1/files/${config.subscribeKey}/channels/${params.channel}/files/${params.id}/${params.name}`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n ignoreBody: () => true,\n forceBuffered: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'),\n\n prepareParams: () => ({}),\n\n handleResponse: async ({ PubNubFile, config, cryptography }, res, params): Promise => {\n let body = res.response.body;\n\n if (config.cipherKey) {\n body = await cryptography.decrypt(params.cipherKey ?? config.cipherKey, body);\n }\n\n return PubNubFile.create({\n data: body,\n name: res.response.name ?? params.name,\n mimeType: res.response.type,\n });\n },\n};\n\nexport default endpoint;\n"],"file":"download_file.js"} \ No newline at end of file diff --git a/lib/core/endpoints/file_upload/generate_upload_url.js b/lib/core/endpoints/file_upload/generate_upload_url.js new file mode 100644 index 000000000..48854d5f6 --- /dev/null +++ b/lib/core/endpoints/file_upload/generate_upload_url.js @@ -0,0 +1,62 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _operations = _interopRequireDefault(require("../../constants/operations")); + +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNGenerateUploadUrlOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return 'channel can\'t be empty'; + } + + if (!(params === null || params === void 0 ? void 0 : params.name)) { + return 'name can\'t be empty'; + } + }, + usePost: function usePost() { + return true; + }, + postURL: function postURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/generate-upload-url"); + }, + postPayload: function postPayload(_, params) { + return { + name: params.name + }; + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function handleResponse(_, response) { + return { + status: response.status, + data: response.data, + file_upload_request: response.file_upload_request + }; + } +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; +//# sourceMappingURL=generate_upload_url.js.map diff --git a/lib/core/endpoints/file_upload/generate_upload_url.js.map b/lib/core/endpoints/file_upload/generate_upload_url.js.map new file mode 100644 index 000000000..47e4250f4 --- /dev/null +++ b/lib/core/endpoints/file_upload/generate_upload_url.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["core/endpoints/file_upload/generate_upload_url.js"],"names":["endpoint","getOperation","operationConstants","PNGenerateUploadUrlOperation","validateParams","_","params","channel","name","usePost","postURL","config","subscribeKey","postPayload","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","handleResponse","response","status","data","file_upload_request"],"mappings":";;;;;;;;;AAGA;;AAGA,IAAMA,QAA0E,GAAG;AACjFC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,4BAAzB;AAAA,GADmE;AAGjFC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,yBAAP;AACD;;AAED,QAAI,EAACD,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEE,IAAT,CAAJ,EAAmB;AACjB,aAAO,sBAAP;AACD;AACF,GAXgF;AAajFC,EAAAA,OAAO,EAAE;AAAA,WAAM,IAAN;AAAA,GAbwE;AAcjFC,EAAAA,OAAO,EAAE,uBAAaJ,MAAb;AAAA,QAAGK,MAAH,QAAGA,MAAH;AAAA,+BAAqCA,MAAM,CAACC,YAA5C,uBAAqEN,MAAM,CAACC,OAA5E;AAAA,GAdwE;AAgBjFM,EAAAA,WAAW,EAAE,qBAACR,CAAD,EAAIC,MAAJ;AAAA,WAAgB;AAC3BE,MAAAA,IAAI,EAAEF,MAAM,CAACE;AADc,KAAhB;AAAA,GAhBoE;AAoBjFM,EAAAA,iBAAiB,EAAE;AAAA,QAAGH,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACI,qBAAP,EAAhB;AAAA,GApB8D;AAsBjFC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAtBgE;AAwBjFC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,YAAtB,CAAtB;AAAA,GAxBmE;AA0BjFC,EAAAA,aAAa,EAAE;AAAA,WAAO,EAAP;AAAA,GA1BkE;AA4BjFC,EAAAA,cAAc,EAAE,wBAAChB,CAAD,EAAIiB,QAAJ;AAAA,WAA2C;AACzDC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADwC;AAEzDC,MAAAA,IAAI,EAAEF,QAAQ,CAACE,IAF0C;AAGzDC,MAAAA,mBAAmB,EAAEH,QAAQ,CAACG;AAH2B,KAA3C;AAAA;AA5BiE,CAAnF;eAmCezB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../endpoint';\nimport operationConstants from '../../constants/operations';\nimport type { GenerateUploadUrlParams, GenerateUploadUrlResult } from './types';\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGenerateUploadUrlOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'channel can\\'t be empty';\n }\n\n if (!params?.name) {\n return 'name can\\'t be empty';\n }\n },\n\n usePost: () => true,\n postURL: ({ config }, params) => `/v1/files/${config.subscribeKey}/channels/${params.channel}/generate-upload-url`,\n\n postPayload: (_, params) => ({\n name: params.name\n }),\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'),\n\n prepareParams: () => ({}),\n\n handleResponse: (_, response): GenerateUploadUrlResult => ({\n status: response.status,\n data: response.data,\n file_upload_request: response.file_upload_request,\n }),\n};\n\nexport default endpoint;\n"],"file":"generate_upload_url.js"} \ No newline at end of file diff --git a/lib/core/endpoints/file_upload/get_file_url.js b/lib/core/endpoints/file_upload/get_file_url.js new file mode 100644 index 000000000..8bc216285 --- /dev/null +++ b/lib/core/endpoints/file_upload/get_file_url.js @@ -0,0 +1,33 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _endpoint = require("../../components/endpoint"); + +var _default = function _default(_ref, _ref2) { + var config = _ref.config; + var channel = _ref2.channel, + id = _ref2.id, + name = _ref2.name; + + if (!channel) { + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("channel can't be empty")); + } + + if (!id) { + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("file id can't be empty")); + } + + if (!name) { + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("file name can't be empty")); + } + + return "".concat(config.origin, "/v1/files/").concat(config.subscribeKey, "/channels/").concat(channel, "/files/").concat(id, "/").concat(name); +}; + +exports["default"] = _default; +module.exports = exports.default; +//# sourceMappingURL=get_file_url.js.map diff --git a/lib/core/endpoints/file_upload/get_file_url.js.map b/lib/core/endpoints/file_upload/get_file_url.js.map new file mode 100644 index 000000000..36c4d3b7e --- /dev/null +++ b/lib/core/endpoints/file_upload/get_file_url.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["core/endpoints/file_upload/get_file_url.js"],"names":["config","channel","id","name","PubNubError","origin","subscribeKey"],"mappings":";;;;;;;AAEA;;eAIe,+BAAoF;AAAA,MAAjFA,MAAiF,QAAjFA,MAAiF;AAAA,MAA5DC,OAA4D,SAA5DA,OAA4D;AAAA,MAAnDC,EAAmD,SAAnDA,EAAmD;AAAA,MAA/CC,IAA+C,SAA/CA,IAA+C;;AACjG,MAAI,CAACF,OAAL,EAAc;AACZ,UAAM,IAAIG,qBAAJ,CACJ,6CADI,EAEJ,qCAAsB,wBAAtB,CAFI,CAAN;AAID;;AAED,MAAI,CAACF,EAAL,EAAS;AACP,UAAM,IAAIE,qBAAJ,CACJ,6CADI,EAEJ,qCAAsB,wBAAtB,CAFI,CAAN;AAID;;AAED,MAAI,CAACD,IAAL,EAAW;AACT,UAAM,IAAIC,qBAAJ,CACJ,6CADI,EAEJ,qCAAsB,0BAAtB,CAFI,CAAN;AAID;;AAED,mBAAUJ,MAAM,CAACK,MAAjB,uBAAoCL,MAAM,CAACM,YAA3C,uBAAoEL,OAApE,oBAAqFC,EAArF,cAA2FC,IAA3F;AACD,C","sourcesContent":["/** @flow */\n\nimport { PubNubError, createValidationError } from '../../components/endpoint';\nimport type { Modules } from '../endpoint';\nimport type { GetFileUrlParams, GetFileUrlResult } from './types';\n\nexport default ({ config }: Modules, { channel, id, name }: GetFileUrlParams): GetFileUrlResult => {\n if (!channel) {\n throw new PubNubError(\n 'Validation failed, check status for details',\n createValidationError(\"channel can't be empty\")\n );\n }\n\n if (!id) {\n throw new PubNubError(\n 'Validation failed, check status for details',\n createValidationError(\"file id can't be empty\")\n );\n }\n\n if (!name) {\n throw new PubNubError(\n 'Validation failed, check status for details',\n createValidationError(\"file name can't be empty\")\n );\n }\n\n return `${config.origin}/v1/files/${config.subscribeKey}/channels/${channel}/files/${id}/${name}`;\n};\n"],"file":"get_file_url.js"} \ No newline at end of file diff --git a/lib/core/endpoints/file_upload/list_files.js b/lib/core/endpoints/file_upload/list_files.js new file mode 100644 index 000000000..bcf0e2f0f --- /dev/null +++ b/lib/core/endpoints/file_upload/list_files.js @@ -0,0 +1,49 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _operations = _interopRequireDefault(require("../../constants/operations")); + +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNListFilesOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return 'channel can\'t be empty'; + } + }, + getURL: function getURL(_ref, params) { + var config = _ref.config; + return "/v1/files/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/files"); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams() { + return {}; + }, + handleResponse: function handleResponse(_, response) { + return { + status: response.status, + data: response.data + }; + } +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; +//# sourceMappingURL=list_files.js.map diff --git a/lib/core/endpoints/file_upload/list_files.js.map b/lib/core/endpoints/file_upload/list_files.js.map new file mode 100644 index 000000000..8420dfb8c --- /dev/null +++ b/lib/core/endpoints/file_upload/list_files.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["core/endpoints/file_upload/list_files.js"],"names":["endpoint","getOperation","operationConstants","PNListFilesOperation","validateParams","_","params","channel","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","handleResponse","response","status","data"],"mappings":";;;;;;;;;AAGA;;AAGA,IAAMA,QAA0D,GAAG;AACjEC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,oBAAzB;AAAA,GADmD;AAGjEC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,yBAAP;AACD;AACF,GAPgE;AASjEC,EAAAA,MAAM,EAAE,sBAAaF,MAAb;AAAA,QAAGG,MAAH,QAAGA,MAAH;AAAA,+BAAqCA,MAAM,CAACC,YAA5C,uBAAqEJ,MAAM,CAACC,OAA5E;AAAA,GATyD;AAWjEI,EAAAA,iBAAiB,EAAE;AAAA,QAAGF,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACG,qBAAP,EAAhB;AAAA,GAX8C;AAajEC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAbgD;AAejEC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,YAAtB,CAAtB;AAAA,GAfmD;AAiBjEC,EAAAA,aAAa,EAAE;AAAA,WAAO,EAAP;AAAA,GAjBkD;AAmBjEC,EAAAA,cAAc,EAAE,wBAACb,CAAD,EAAIc,QAAJ;AAAA,WAAmC;AACjDC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADgC;AAEjDC,MAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFkC,KAAnC;AAAA;AAnBiD,CAAnE;eAyBerB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../endpoint';\nimport operationConstants from '../../constants/operations';\nimport type { ListFilesParams, ListFilesResult } from './types';\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNListFilesOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'channel can\\'t be empty';\n }\n },\n\n getURL: ({ config }, params) => `/v1/files/${config.subscribeKey}/channels/${params.channel}/files`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'),\n\n prepareParams: () => ({}),\n\n handleResponse: (_, response): ListFilesResult => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"list_files.js"} \ No newline at end of file diff --git a/lib/core/endpoints/file_upload/publish_file.js b/lib/core/endpoints/file_upload/publish_file.js new file mode 100644 index 000000000..cbcec82a9 --- /dev/null +++ b/lib/core/endpoints/file_upload/publish_file.js @@ -0,0 +1,97 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); + +var _operations = _interopRequireDefault(require("../../constants/operations")); + +var _utils = _interopRequireDefault(require("../../utils")); + +var preparePayload = function preparePayload(_ref, payload) { + var crypto = _ref.crypto, + config = _ref.config; + var stringifiedPayload = JSON.stringify(payload); + + if (config.cipherKey) { + stringifiedPayload = crypto.encrypt(stringifiedPayload); + stringifiedPayload = JSON.stringify(stringifiedPayload); + } + + return stringifiedPayload || ''; +}; + +var endpoint = { + getOperation: function getOperation() { + return _operations["default"].PNPublishFileOperation; + }, + validateParams: function validateParams(_, params) { + if (!(params === null || params === void 0 ? void 0 : params.channel)) { + return "channel can't be empty"; + } + + if (!(params === null || params === void 0 ? void 0 : params.fileId)) { + return "file id can't be empty"; + } + + if (!(params === null || params === void 0 ? void 0 : params.fileName)) { + return "file name can't be empty"; + } + }, + getURL: function getURL(modules, params) { + var _modules$config = modules.config, + publishKey = _modules$config.publishKey, + subscribeKey = _modules$config.subscribeKey; + var message = { + message: params.message, + file: { + name: params.fileName, + id: params.fileId + } + }; + var payload = preparePayload(modules, message); + return "/v1/files/publish-file/".concat(publishKey, "/").concat(subscribeKey, "/0/").concat(params.channel, "/0/").concat(_utils["default"].encodeString(payload)); + }, + getRequestTimeout: function getRequestTimeout(_ref2) { + var config = _ref2.config; + return config.getTransactionTimeout(); + }, + isAuthSupported: function isAuthSupported() { + return true; + }, + getAuthToken: function getAuthToken(_ref3) { + var tokenManager = _ref3.tokenManager; + return tokenManager.getToken('fileUpload'); + }, + prepareParams: function prepareParams(_, params) { + var outParams = {}; + + if (params.ttl) { + outParams.ttl = params.ttl; + } + + if (params.store) { + outParams.store = params.store ? '1' : '0'; + } + + if (params.meta && (0, _typeof2["default"])(params.meta) === 'object') { + outParams.meta = JSON.stringify(params.meta); + } + + return outParams; + }, + handleResponse: function handleResponse(_, response) { + return { + timetoken: response['2'] + }; + } +}; +var _default = endpoint; +exports["default"] = _default; +module.exports = exports.default; +//# sourceMappingURL=publish_file.js.map diff --git a/lib/core/endpoints/file_upload/publish_file.js.map b/lib/core/endpoints/file_upload/publish_file.js.map new file mode 100644 index 000000000..241309b9f --- /dev/null +++ b/lib/core/endpoints/file_upload/publish_file.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["core/endpoints/file_upload/publish_file.js"],"names":["preparePayload","payload","crypto","config","stringifiedPayload","JSON","stringify","cipherKey","encrypt","endpoint","getOperation","operationConstants","PNPublishFileOperation","validateParams","_","params","channel","fileId","fileName","getURL","modules","publishKey","subscribeKey","message","file","name","id","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","outParams","ttl","store","meta","handleResponse","response","timetoken"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig, Modules } from '../endpoint';\nimport operationConstants from '../../constants/operations';\nimport type { PublishFileParams, PublishFileResult } from './types';\nimport utils from '../../utils';\n\nconst preparePayload = ({ crypto, config }: Modules, payload: any): string => {\n let stringifiedPayload = JSON.stringify(payload);\n\n if (config.cipherKey) {\n stringifiedPayload = crypto.encrypt(stringifiedPayload);\n stringifiedPayload = JSON.stringify(stringifiedPayload);\n }\n\n return stringifiedPayload || '';\n};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNPublishFileOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return \"channel can't be empty\";\n }\n\n if (!params?.fileId) {\n return \"file id can't be empty\";\n }\n\n if (!params?.fileName) {\n return \"file name can't be empty\";\n }\n },\n\n getURL: (modules, params) => {\n const { publishKey, subscribeKey } = modules.config;\n\n const message = {\n message: params.message,\n file: {\n name: params.fileName,\n id: params.fileId,\n },\n };\n\n const payload = preparePayload(modules, message);\n\n return `/v1/files/publish-file/${publishKey}/${subscribeKey}/0/${params.channel}/0/${utils.encodeString(payload)}`;\n },\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'),\n\n prepareParams: (_, params) => {\n const outParams = {};\n\n if (params.ttl) {\n outParams.ttl = params.ttl;\n }\n\n if (params.store) {\n outParams.store = params.store ? '1' : '0';\n }\n\n if (params.meta && typeof params.meta === 'object') {\n outParams.meta = JSON.stringify(params.meta);\n }\n\n return outParams;\n },\n\n handleResponse: (_, response): PublishFileResult => ({\n timetoken: response['2'],\n }),\n};\n\nexport default endpoint;\n"],"file":"publish_file.js"} \ No newline at end of file diff --git a/lib/core/endpoints/file_upload/send_file.js b/lib/core/endpoints/file_upload/send_file.js new file mode 100644 index 000000000..0f07f46c7 --- /dev/null +++ b/lib/core/endpoints/file_upload/send_file.js @@ -0,0 +1,234 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); + +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); + +var _endpoint = require("../../components/endpoint"); + +var sendFile = function sendFile(_ref) { + var generateUploadUrl = _ref.generateUploadUrl, + publishFile = _ref.publishFile, + _ref$modules = _ref.modules, + PubNubFile = _ref$modules.PubNubFile, + config = _ref$modules.config, + cryptography = _ref$modules.cryptography, + networking = _ref$modules.networking; + return function () { + var _ref3 = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(_ref2) { + var channel, input, message, cipherKey, meta, ttl, store, file, _ref4, _ref4$file_upload_req, url, formFields, _ref4$data, id, name, formFieldsWithMimeType, result, retries, wasSuccessful; + + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + channel = _ref2.channel, input = _ref2.file, message = _ref2.message, cipherKey = _ref2.cipherKey, meta = _ref2.meta, ttl = _ref2.ttl, store = _ref2.store; + + if (channel) { + _context.next = 3; + break; + } + + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("channel can't be empty")); + + case 3: + if (input) { + _context.next = 5; + break; + } + + throw new _endpoint.PubNubError('Validation failed, check status for details', (0, _endpoint.createValidationError)("file can't be empty")); + + case 5: + file = PubNubFile.create(input); + _context.next = 8; + return generateUploadUrl({ + channel: channel, + name: file.name + }); + + case 8: + _ref4 = _context.sent; + _ref4$file_upload_req = _ref4.file_upload_request; + url = _ref4$file_upload_req.url; + formFields = _ref4$file_upload_req.form_fields; + _ref4$data = _ref4.data; + id = _ref4$data.id; + name = _ref4$data.name; + + if (!(cipherKey !== null && cipherKey !== void 0 ? cipherKey : config.cipherKey)) { + _context.next = 19; + break; + } + + _context.next = 18; + return cryptography.encryptFile(cipherKey !== null && cipherKey !== void 0 ? cipherKey : config.cipherKey, file, PubNubFile); + + case 18: + file = _context.sent; + + case 19: + formFieldsWithMimeType = formFields; + + if (file.mimeType) { + formFieldsWithMimeType = formFields.map(function (entry) { + var _file$mimeType; + + if (entry.key === 'Content-Type') return { + key: entry.key, + value: (_file$mimeType = file.mimeType) !== null && _file$mimeType !== void 0 ? _file$mimeType : '' + };else return entry; + }); + } + + _context.prev = 21; + + if (!(typeof Blob !== 'undefined')) { + _context.next = 34; + break; + } + + _context.t0 = networking; + _context.t1 = url; + _context.t2 = formFieldsWithMimeType; + _context.next = 28; + return file.toFile(); + + case 28: + _context.t3 = _context.sent; + _context.next = 31; + return _context.t0.FILE.call(_context.t0, _context.t1, _context.t2, _context.t3); + + case 31: + result = _context.sent; + _context.next = 43; + break; + + case 34: + _context.t4 = networking; + _context.t5 = url; + _context.t6 = formFieldsWithMimeType; + _context.next = 39; + return file.toBuffer(); + + case 39: + _context.t7 = _context.sent; + _context.next = 42; + return _context.t4.FILE.call(_context.t4, _context.t5, _context.t6, _context.t7); + + case 42: + result = _context.sent; + + case 43: + _context.next = 48; + break; + + case 45: + _context.prev = 45; + _context.t8 = _context["catch"](21); + throw new _endpoint.PubNubError('Upload to bucket failed', _context.t8); + + case 48: + if (!(result.status !== 204)) { + _context.next = 50; + break; + } + + throw new _endpoint.PubNubError('Upload to bucket was unsuccessful', result); + + case 50: + retries = 5; + wasSuccessful = false; + + case 52: + if (!(!wasSuccessful && retries > 0)) { + _context.next = 64; + break; + } + + _context.prev = 53; + _context.next = 56; + return publishFile({ + channel: channel, + message: message, + fileId: id, + fileName: name, + meta: meta, + store: store, + ttl: ttl + }); + + case 56: + wasSuccessful = true; + _context.next = 62; + break; + + case 59: + _context.prev = 59; + _context.t9 = _context["catch"](53); + retries -= 1; + + case 62: + _context.next = 52; + break; + + case 64: + if (wasSuccessful) { + _context.next = 68; + break; + } + + throw new _endpoint.PubNubError('Publish failed. You may want to execute that operation manually using pubnub.publishFile', { + channel: channel, + id: id, + name: name + }); + + case 68: + return _context.abrupt("return", { + id: id, + name: name + }); + + case 69: + case "end": + return _context.stop(); + } + } + }, _callee, null, [[21, 45], [53, 59]]); + })); + + return function (_x) { + return _ref3.apply(this, arguments); + }; + }(); +}; + +var _default = function _default(deps) { + var f = sendFile(deps); + return function (params, cb) { + var resultP = f(params); + + if (typeof cb === 'function') { + resultP.then(function (result) { + return cb(null, result); + })["catch"](function (error) { + return cb(error, null); + }); + return resultP; + } else { + return resultP; + } + }; +}; + +exports["default"] = _default; +module.exports = exports.default; +//# sourceMappingURL=send_file.js.map diff --git a/lib/core/endpoints/file_upload/send_file.js.map b/lib/core/endpoints/file_upload/send_file.js.map new file mode 100644 index 000000000..84ea30c79 --- /dev/null +++ b/lib/core/endpoints/file_upload/send_file.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["core/endpoints/file_upload/send_file.js"],"names":["sendFile","generateUploadUrl","publishFile","modules","PubNubFile","config","cryptography","networking","channel","input","file","message","cipherKey","meta","ttl","store","PubNubError","create","name","file_upload_request","url","formFields","form_fields","data","id","encryptFile","formFieldsWithMimeType","mimeType","map","entry","key","value","Blob","toFile","FILE","result","toBuffer","status","retries","wasSuccessful","fileId","fileName","deps","f","params","cb","resultP","then","error"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport { PubNubError, createValidationError } from '../../components/endpoint';\nimport type {\n SendFileParams,\n SendFileResult,\n GenerateUploadUrlParams,\n GenerateUploadUrlResult,\n PublishFileParams,\n PublishFileResult,\n} from './types';\n\nimport type { Modules } from '../endpoint';\n\ntype Dependencies = {|\n generateUploadUrl: (params: GenerateUploadUrlParams) => Promise,\n publishFile: (params: PublishFileParams) => Promise,\n modules: Modules,\n|};\n\nconst sendFile = ({\n generateUploadUrl,\n publishFile,\n modules: { PubNubFile, config, cryptography, networking },\n}: Dependencies) => async ({\n channel,\n file: input,\n message,\n cipherKey,\n meta,\n ttl,\n store,\n}: SendFileParams): Promise => {\n if (!channel) {\n throw new PubNubError(\n 'Validation failed, check status for details',\n createValidationError(\"channel can't be empty\")\n );\n }\n\n if (!input) {\n throw new PubNubError('Validation failed, check status for details', createValidationError(\"file can't be empty\"));\n }\n\n let file = PubNubFile.create(input);\n\n const {\n file_upload_request: { url, form_fields: formFields },\n data: { id, name },\n } = await generateUploadUrl({ channel, name: file.name });\n\n if (cipherKey ?? config.cipherKey) {\n file = await cryptography.encryptFile(cipherKey ?? config.cipherKey, file, PubNubFile);\n }\n\n let formFieldsWithMimeType = formFields;\n\n if (file.mimeType) {\n formFieldsWithMimeType = formFields.map((entry) => {\n if (entry.key === 'Content-Type') return { key: entry.key, value: file.mimeType ?? '' };\n else return entry;\n });\n }\n\n let result;\n\n try {\n if (typeof Blob !== 'undefined') {\n result = await networking.FILE(url, formFieldsWithMimeType, await file.toFile());\n } else {\n result = await networking.FILE(url, formFieldsWithMimeType, await file.toBuffer());\n }\n } catch (e) {\n throw new PubNubError('Upload to bucket failed', e);\n }\n\n if (result.status !== 204) {\n throw new PubNubError('Upload to bucket was unsuccessful', result);\n }\n\n let retries = 5;\n let wasSuccessful = false;\n\n while (!wasSuccessful && retries > 0) {\n try {\n await publishFile({\n channel,\n message,\n fileId: id,\n fileName: name,\n meta,\n store,\n ttl,\n });\n\n wasSuccessful = true;\n } catch (e) {\n retries -= 1;\n }\n }\n if (!wasSuccessful) {\n throw new PubNubError('Publish failed. You may want to execute that operation manually using pubnub.publishFile', {\n channel,\n id,\n name,\n });\n } else {\n return {\n id,\n name,\n };\n }\n};\n\nexport default (deps: Dependencies) => {\n const f = sendFile(deps);\n\n return (params: SendFileParams, cb?: (error: any, params: SendFileResult) => void): Promise => {\n const resultP = f(params);\n\n if (typeof cb === 'function') {\n resultP.then((result) => cb(null, result)).catch((error) => cb(error, (null: any)));\n\n return resultP;\n } else {\n return resultP;\n }\n };\n};\n"],"file":"send_file.js"} \ No newline at end of file diff --git a/lib/core/endpoints/file_upload/types.js b/lib/core/endpoints/file_upload/types.js new file mode 100644 index 000000000..8b2679e74 --- /dev/null +++ b/lib/core/endpoints/file_upload/types.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=types.js.map diff --git a/lib/core/endpoints/file_upload/types.js.map b/lib/core/endpoints/file_upload/types.js.map new file mode 100644 index 000000000..036ac15b9 --- /dev/null +++ b/lib/core/endpoints/file_upload/types.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"} \ No newline at end of file diff --git a/lib/core/endpoints/history/delete_messages.js b/lib/core/endpoints/history/delete_messages.js index 1a7ca4a14..c7d571b84 100644 --- a/lib/core/endpoints/history/delete_messages.js +++ b/lib/core/endpoints/history/delete_messages.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -18,8 +20,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNDeleteMessagesOperation; } diff --git a/lib/core/endpoints/history/delete_messages.js.map b/lib/core/endpoints/history/delete_messages.js.map index daaa58793..264987c66 100644 --- a/lib/core/endpoints/history/delete_messages.js.map +++ b/lib/core/endpoints/history/delete_messages.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/history/delete_messages.js"],"names":["getOperation","operationConstants","PNDeleteMessagesOperation","validateParams","modules","incomingParams","channel","config","subscribeKey","useDelete","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","start","end","outgoingParams","handleResponse","serverResponse","payload"],"mappings":";;;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,yBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAuF;AAAA,MACtFC,OADsF,GAC1ED,cAD0E,CACtFC,OADsF;AAAA,MAEtFC,MAFsF,GAE3EH,OAF2E,CAEtFG,MAFsF;AAI5F,MAAI,CAACD,OAAL,EAAc,OAAO,iBAAP;AACd,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,SAAT,GAAqB;AAC1B,SAAO,IAAP;AACD;;AAEM,SAASC,MAAT,CAAgBN,OAAhB,EAAwCC,cAAxC,EAAuF;AAAA,MACtFC,OADsF,GAC1ED,cAD0E,CACtFC,OADsF;AAAA,MAEtFC,MAFsF,GAE3EH,OAF2E,CAEtFG,MAFsF;AAI5F,uCAA8BA,MAAM,CAACC,YAArC,sBAA6DG,kBAAMC,YAAN,CAAmBN,OAAnB,CAA7D;AACD;;AAEM,SAASO,iBAAT,OAA+D;AAAA,MAAlCN,MAAkC,QAAlCA,MAAkC;AACpE,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBZ,OAAvB,EAA+CC,cAA/C,EAA8F;AAAA,MAC3FY,KAD2F,GAC5EZ,cAD4E,CAC3FY,KAD2F;AAAA,MACpFC,GADoF,GAC5Eb,cAD4E,CACpFa,GADoF;AAGnG,MAAIC,cAAsB,GAAG,EAA7B;AAEA,MAAIF,KAAJ,EAAWE,cAAc,CAACF,KAAf,GAAuBA,KAAvB;AACX,MAAIC,GAAJ,EAASC,cAAc,CAACD,GAAf,GAAqBA,GAArB;AAET,SAAOC,cAAP;AACD;;AAEM,SAASC,cAAT,CAAwBhB,OAAxB,EAAgDiB,cAAhD,EAAyF;AAC9F,SAAOA,cAAc,CAACC,OAAtB;AACD","sourcesContent":["/* @flow */\n\nimport { FetchHistoryArguments, HistoryResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNDeleteMessagesOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: FetchHistoryArguments) {\n let { channel } = incomingParams;\n let { config } = modules;\n\n if (!channel) return 'Missing channel';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function useDelete() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: FetchHistoryArguments): string {\n let { channel } = incomingParams;\n let { config } = modules;\n\n return `/v3/history/sub-key/${config.subscribeKey}/channel/${utils.encodeString(channel)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): boolean {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: FetchHistoryArguments): Object {\n const { start, end } = incomingParams;\n\n let outgoingParams: Object = {};\n\n if (start) outgoingParams.start = start;\n if (end) outgoingParams.end = end;\n\n return outgoingParams;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): HistoryResponse {\n return serverResponse.payload;\n}\n"],"file":"delete_messages.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/history/delete_messages.js"],"names":["getOperation","operationConstants","PNDeleteMessagesOperation","validateParams","modules","incomingParams","channel","config","subscribeKey","useDelete","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","start","end","outgoingParams","handleResponse","serverResponse","payload"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,yBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAuF;AAAA,MACtFC,OADsF,GAC1ED,cAD0E,CACtFC,OADsF;AAAA,MAEtFC,MAFsF,GAE3EH,OAF2E,CAEtFG,MAFsF;AAI5F,MAAI,CAACD,OAAL,EAAc,OAAO,iBAAP;AACd,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,SAAT,GAAqB;AAC1B,SAAO,IAAP;AACD;;AAEM,SAASC,MAAT,CAAgBN,OAAhB,EAAwCC,cAAxC,EAAuF;AAAA,MACtFC,OADsF,GAC1ED,cAD0E,CACtFC,OADsF;AAAA,MAEtFC,MAFsF,GAE3EH,OAF2E,CAEtFG,MAFsF;AAI5F,uCAA8BA,MAAM,CAACC,YAArC,sBAA6DG,kBAAMC,YAAN,CAAmBN,OAAnB,CAA7D;AACD;;AAEM,SAASO,iBAAT,OAA+D;AAAA,MAAlCN,MAAkC,QAAlCA,MAAkC;AACpE,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBZ,OAAvB,EAA+CC,cAA/C,EAA8F;AAAA,MAC3FY,KAD2F,GAC5EZ,cAD4E,CAC3FY,KAD2F;AAAA,MACpFC,GADoF,GAC5Eb,cAD4E,CACpFa,GADoF;AAGnG,MAAIC,cAAsB,GAAG,EAA7B;AAEA,MAAIF,KAAJ,EAAWE,cAAc,CAACF,KAAf,GAAuBA,KAAvB;AACX,MAAIC,GAAJ,EAASC,cAAc,CAACD,GAAf,GAAqBA,GAArB;AAET,SAAOC,cAAP;AACD;;AAEM,SAASC,cAAT,CAAwBhB,OAAxB,EAAgDiB,cAAhD,EAAyF;AAC9F,SAAOA,cAAc,CAACC,OAAtB;AACD","sourcesContent":["/* @flow */\n\nimport { FetchHistoryArguments, HistoryResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNDeleteMessagesOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: FetchHistoryArguments) {\n let { channel } = incomingParams;\n let { config } = modules;\n\n if (!channel) return 'Missing channel';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function useDelete() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: FetchHistoryArguments): string {\n let { channel } = incomingParams;\n let { config } = modules;\n\n return `/v3/history/sub-key/${config.subscribeKey}/channel/${utils.encodeString(channel)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): boolean {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: FetchHistoryArguments): Object {\n const { start, end } = incomingParams;\n\n let outgoingParams: Object = {};\n\n if (start) outgoingParams.start = start;\n if (end) outgoingParams.end = end;\n\n return outgoingParams;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): HistoryResponse {\n return serverResponse.payload;\n}\n"],"file":"delete_messages.js"} \ No newline at end of file diff --git a/lib/core/endpoints/history/get_history.js b/lib/core/endpoints/history/get_history.js index 45b74b762..c1e33754a 100644 --- a/lib/core/endpoints/history/get_history.js +++ b/lib/core/endpoints/history/get_history.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function __processMessage(modules, message) { var config = modules.config, crypto = modules.crypto; @@ -66,7 +66,11 @@ function prepareParams(modules, incomingParams) { _incomingParams$strin = incomingParams.stringifiedTimeToken, stringifiedTimeToken = _incomingParams$strin === void 0 ? false : _incomingParams$strin, _incomingParams$inclu = incomingParams.includeMeta, - includeMeta = _incomingParams$inclu === void 0 ? false : _incomingParams$inclu; + includeMeta = _incomingParams$inclu === void 0 ? false : _incomingParams$inclu, + _incomingParams$inclu2 = incomingParams.includeUuid, + includeUuid = _incomingParams$inclu2 === void 0 ? true : _incomingParams$inclu2, + _incomingParams$inclu3 = incomingParams.includeMessageType, + includeMessageType = _incomingParams$inclu3 === void 0 ? true : _incomingParams$inclu3; var outgoingParams = { include_token: 'true' }; @@ -76,6 +80,8 @@ function prepareParams(modules, incomingParams) { if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; if (reverse != null) outgoingParams.reverse = reverse.toString(); if (includeMeta) outgoingParams.include_meta = 'true'; + if (includeUuid) outgoingParams.include_uuid = 'true'; + if (includeMessageType) outgoingParams.include_message_type = 'true'; return outgoingParams; } diff --git a/lib/core/endpoints/history/get_history.js.map b/lib/core/endpoints/history/get_history.js.map index fa476cea9..3ccab5f05 100644 --- a/lib/core/endpoints/history/get_history.js.map +++ b/lib/core/endpoints/history/get_history.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/history/get_history.js"],"names":["__processMessage","modules","message","config","crypto","cipherKey","decrypt","e","getOperation","operationConstants","PNHistoryOperation","validateParams","incomingParams","channel","subscribeKey","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","start","end","reverse","count","stringifiedTimeToken","includeMeta","outgoingParams","include_token","string_message_token","toString","include_meta","handleResponse","serverResponse","response","messages","startTimeToken","endTimeToken","Array","isArray","forEach","serverHistoryItem","item","timetoken","entry","meta","push"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n FetchHistoryArguments,\n HistoryResponse,\n HistoryItem,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nfunction __processMessage(modules, message: Object): Object | null {\n let { config, crypto } = modules;\n if (!config.cipherKey) return message;\n\n try {\n return crypto.decrypt(message);\n } catch (e) {\n return message;\n }\n}\n\nexport function getOperation(): string {\n return operationConstants.PNHistoryOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: FetchHistoryArguments\n) {\n let { channel } = incomingParams;\n let { config } = modules;\n\n if (!channel) return 'Missing channel';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: FetchHistoryArguments\n): string {\n let { channel } = incomingParams;\n let { config } = modules;\n return `/v2/history/sub-key/${\n config.subscribeKey\n }/channel/${utils.encodeString(channel)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): boolean {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: FetchHistoryArguments\n): Object {\n const {\n start,\n end,\n reverse,\n count = 100,\n stringifiedTimeToken = false,\n includeMeta = false,\n } = incomingParams;\n let outgoingParams: Object = {\n include_token: 'true',\n };\n\n outgoingParams.count = count;\n if (start) outgoingParams.start = start;\n if (end) outgoingParams.end = end;\n if (stringifiedTimeToken) outgoingParams.string_message_token = 'true';\n if (reverse != null) outgoingParams.reverse = reverse.toString();\n if (includeMeta) outgoingParams.include_meta = 'true';\n\n return outgoingParams;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: FetchHistoryArguments\n): HistoryResponse {\n const response: HistoryResponse = {\n messages: [],\n startTimeToken: serverResponse[1],\n endTimeToken: serverResponse[2],\n };\n\n if (Array.isArray(serverResponse[0])) {\n serverResponse[0].forEach((serverHistoryItem) => {\n const item: HistoryItem = {\n timetoken: serverHistoryItem.timetoken,\n entry: __processMessage(modules, serverHistoryItem.message),\n };\n\n if (serverHistoryItem.meta) {\n item.meta = serverHistoryItem.meta;\n }\n\n response.messages.push(item);\n });\n }\n\n return response;\n}\n"],"file":"get_history.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/history/get_history.js"],"names":["__processMessage","modules","message","config","crypto","cipherKey","decrypt","e","getOperation","operationConstants","PNHistoryOperation","validateParams","incomingParams","channel","subscribeKey","getURL","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","start","end","reverse","count","stringifiedTimeToken","includeMeta","includeUuid","includeMessageType","outgoingParams","include_token","string_message_token","toString","include_meta","include_uuid","include_message_type","handleResponse","serverResponse","response","messages","startTimeToken","endTimeToken","Array","isArray","forEach","serverHistoryItem","item","timetoken","entry","meta","push"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n FetchHistoryArguments,\n HistoryResponse,\n HistoryItem,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nfunction __processMessage(modules, message: Object): Object | null {\n let { config, crypto } = modules;\n if (!config.cipherKey) return message;\n\n try {\n return crypto.decrypt(message);\n } catch (e) {\n return message;\n }\n}\n\nexport function getOperation(): string {\n return operationConstants.PNHistoryOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: FetchHistoryArguments\n) {\n let { channel } = incomingParams;\n let { config } = modules;\n\n if (!channel) return 'Missing channel';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: FetchHistoryArguments\n): string {\n let { channel } = incomingParams;\n let { config } = modules;\n return `/v2/history/sub-key/${\n config.subscribeKey\n }/channel/${utils.encodeString(channel)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): boolean {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: FetchHistoryArguments\n): Object {\n const {\n start,\n end,\n reverse,\n count = 100,\n stringifiedTimeToken = false,\n includeMeta = false,\n includeUuid = true,\n includeMessageType = true\n } = incomingParams;\n let outgoingParams: Object = {\n include_token: 'true',\n };\n\n outgoingParams.count = count;\n if (start) outgoingParams.start = start;\n if (end) outgoingParams.end = end;\n if (stringifiedTimeToken) outgoingParams.string_message_token = 'true';\n if (reverse != null) outgoingParams.reverse = reverse.toString();\n if (includeMeta) outgoingParams.include_meta = 'true';\n if (includeUuid) outgoingParams.include_uuid = 'true';\n if (includeMessageType) outgoingParams.include_message_type = 'true';\n\n return outgoingParams;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: FetchHistoryArguments\n): HistoryResponse {\n const response: HistoryResponse = {\n messages: [],\n startTimeToken: serverResponse[1],\n endTimeToken: serverResponse[2],\n };\n\n if (Array.isArray(serverResponse[0])) {\n serverResponse[0].forEach((serverHistoryItem) => {\n const item: HistoryItem = {\n timetoken: serverHistoryItem.timetoken,\n entry: __processMessage(modules, serverHistoryItem.message),\n };\n\n if (serverHistoryItem.meta) {\n item.meta = serverHistoryItem.meta;\n }\n\n response.messages.push(item);\n });\n }\n\n return response;\n}\n"],"file":"get_history.js"} \ No newline at end of file diff --git a/lib/core/endpoints/history/message_counts.js b/lib/core/endpoints/history/message_counts.js index 703122dc4..2eaf3b753 100644 --- a/lib/core/endpoints/history/message_counts.js +++ b/lib/core/endpoints/history/message_counts.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -11,20 +13,12 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; +var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); + var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - function getOperation() { return _operations["default"].PNMessageCounts; } @@ -62,7 +56,7 @@ function prepareParams(modules, incomingParams) { var outgoingParams = {}; if (channelTimetokens && channelTimetokens.length === 1) { - var _channelTimetokens = _slicedToArray(channelTimetokens, 1), + var _channelTimetokens = (0, _slicedToArray2["default"])(channelTimetokens, 1), tt = _channelTimetokens[0]; outgoingParams.timetoken = tt; diff --git a/lib/core/endpoints/history/message_counts.js.map b/lib/core/endpoints/history/message_counts.js.map index 564c64318..afb5b9274 100644 --- a/lib/core/endpoints/history/message_counts.js.map +++ b/lib/core/endpoints/history/message_counts.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/history/message_counts.js"],"names":["getOperation","operationConstants","PNMessageCounts","validateParams","modules","incomingParams","channels","timetoken","channelTimetokens","config","length","subscribeKey","getURL","stringifiedChannels","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","outgoingParams","tt","channelsTimetoken","handleResponse","serverResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;;;;;;;;;AAQO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,eAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAyF;AAAA,MACxFC,QADwF,GAC7CD,cAD6C,CACxFC,QADwF;AAAA,MAC9EC,SAD8E,GAC7CF,cAD6C,CAC9EE,SAD8E;AAAA,MACnEC,iBADmE,GAC7CH,cAD6C,CACnEG,iBADmE;AAAA,MAExFC,MAFwF,GAE7EL,OAF6E,CAExFK,MAFwF;AAI9F,MAAI,CAACH,QAAL,EAAe,OAAO,iBAAP;AACf,MAAIC,SAAS,IAAIC,iBAAjB,EAAoC,OAAO,2DAAP;AACpC,MAAKD,SAAS,IAAIC,iBAAd,IAAqCA,iBAAiB,CAACE,MAAlB,GAA2B,CAAhE,IAAuEJ,QAAQ,CAACI,MAAT,KAAoBF,iBAAiB,CAACE,MAAjH,EAA0H,OAAO,uDAAP;AAC1H,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBR,OAAhB,EAAwCC,cAAxC,EAAyF;AAAA,MACxFC,QADwF,GAC3ED,cAD2E,CACxFC,QADwF;AAAA,MAExFG,MAFwF,GAE7EL,OAF6E,CAExFK,MAFwF;AAI9F,MAAII,mBAAmB,GAAGP,QAAQ,CAACQ,IAAT,CAAc,GAAd,CAA1B;AAEA,uCAA8BL,MAAM,CAACE,YAArC,6BAAoEI,kBAAMC,YAAN,CAAmBH,mBAAnB,CAApE;AACD;;AAEM,SAASI,iBAAT,OAA+D;AAAA,MAAlCR,MAAkC,QAAlCA,MAAkC;AACpE,SAAOA,MAAM,CAACS,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBhB,OAAvB,EAA+CC,cAA/C,EAAgG;AAAA,MAC7FE,SAD6F,GAC5DF,cAD4D,CAC7FE,SAD6F;AAAA,MAClFC,iBADkF,GAC5DH,cAD4D,CAClFG,iBADkF;AAErG,MAAIa,cAAsB,GAAG,EAA7B;;AAEA,MAAKb,iBAAD,IAAwBA,iBAAiB,CAACE,MAAlB,KAA6B,CAAzD,EAA6D;AAAA,4CAChDF,iBADgD;AAAA,QACtDc,EADsD;;AAE3DD,IAAAA,cAAc,CAACd,SAAf,GAA2Be,EAA3B;AACD,GAHD,MAGO,IAAId,iBAAJ,EAAuB;AAC5Ba,IAAAA,cAAc,CAACE,iBAAf,GAAmCf,iBAAiB,CAACM,IAAlB,CAAuB,GAAvB,CAAnC;AACD,GAFM,MAEA,IAAIP,SAAJ,EAAe;AACpBc,IAAAA,cAAc,CAACd,SAAf,GAA2BA,SAA3B;AACD;;AAED,SAAOc,cAAP;AACD;;AAEM,SAASG,cAAT,CAAwBpB,OAAxB,EAAgDqB,cAAhD,EAAkH;AACvH,SAAO;AAAEnB,IAAAA,QAAQ,EAAEmB,cAAc,CAACnB;AAA3B,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\nimport type {\n MessageCounterArguments,\n MessageCountersResponse,\n ModulesInject\n} from '../../flow_interfaces';\n\n\nexport function getOperation(): string {\n return operationConstants.PNMessageCounts;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: MessageCounterArguments) {\n let { channels, timetoken, channelTimetokens } = incomingParams;\n let { config } = modules;\n\n if (!channels) return 'Missing channel';\n if (timetoken && channelTimetokens) return 'timetoken and channelTimetokens are incompatible together';\n if ((timetoken && channelTimetokens) && (channelTimetokens.length > 1) && (channels.length !== channelTimetokens.length)) return 'Length of channelTimetokens and channels do not match';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: MessageCounterArguments): string {\n let { channels } = incomingParams;\n let { config } = modules;\n\n let stringifiedChannels = channels.join(',');\n\n return `/v3/history/sub-key/${config.subscribeKey}/message-counts/${utils.encodeString(stringifiedChannels)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): boolean {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: MessageCounterArguments): Object {\n const { timetoken, channelTimetokens } = incomingParams;\n let outgoingParams: Object = {};\n\n if ((channelTimetokens) && (channelTimetokens.length === 1)) {\n let [tt] = channelTimetokens;\n outgoingParams.timetoken = tt;\n } else if (channelTimetokens) {\n outgoingParams.channelsTimetoken = channelTimetokens.join(',');\n } else if (timetoken) {\n outgoingParams.timetoken = timetoken;\n }\n\n return outgoingParams;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: MessageCounterArguments): MessageCountersResponse {\n return { channels: serverResponse.channels };\n}\n"],"file":"message_counts.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/history/message_counts.js"],"names":["getOperation","operationConstants","PNMessageCounts","validateParams","modules","incomingParams","channels","timetoken","channelTimetokens","config","length","subscribeKey","getURL","stringifiedChannels","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","outgoingParams","tt","channelsTimetoken","handleResponse","serverResponse"],"mappings":";;;;;;;;;;;;;;;;;AAEA;;AACA;;AAQO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,eAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAyF;AAAA,MACxFC,QADwF,GAC7CD,cAD6C,CACxFC,QADwF;AAAA,MAC9EC,SAD8E,GAC7CF,cAD6C,CAC9EE,SAD8E;AAAA,MACnEC,iBADmE,GAC7CH,cAD6C,CACnEG,iBADmE;AAAA,MAExFC,MAFwF,GAE7EL,OAF6E,CAExFK,MAFwF;AAI9F,MAAI,CAACH,QAAL,EAAe,OAAO,iBAAP;AACf,MAAIC,SAAS,IAAIC,iBAAjB,EAAoC,OAAO,2DAAP;AACpC,MAAKD,SAAS,IAAIC,iBAAd,IAAqCA,iBAAiB,CAACE,MAAlB,GAA2B,CAAhE,IAAuEJ,QAAQ,CAACI,MAAT,KAAoBF,iBAAiB,CAACE,MAAjH,EAA0H,OAAO,uDAAP;AAC1H,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBR,OAAhB,EAAwCC,cAAxC,EAAyF;AAAA,MACxFC,QADwF,GAC3ED,cAD2E,CACxFC,QADwF;AAAA,MAExFG,MAFwF,GAE7EL,OAF6E,CAExFK,MAFwF;AAI9F,MAAII,mBAAmB,GAAGP,QAAQ,CAACQ,IAAT,CAAc,GAAd,CAA1B;AAEA,uCAA8BL,MAAM,CAACE,YAArC,6BAAoEI,kBAAMC,YAAN,CAAmBH,mBAAnB,CAApE;AACD;;AAEM,SAASI,iBAAT,OAA+D;AAAA,MAAlCR,MAAkC,QAAlCA,MAAkC;AACpE,SAAOA,MAAM,CAACS,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBhB,OAAvB,EAA+CC,cAA/C,EAAgG;AAAA,MAC7FE,SAD6F,GAC5DF,cAD4D,CAC7FE,SAD6F;AAAA,MAClFC,iBADkF,GAC5DH,cAD4D,CAClFG,iBADkF;AAErG,MAAIa,cAAsB,GAAG,EAA7B;;AAEA,MAAKb,iBAAD,IAAwBA,iBAAiB,CAACE,MAAlB,KAA6B,CAAzD,EAA6D;AAAA,6DAChDF,iBADgD;AAAA,QACtDc,EADsD;;AAE3DD,IAAAA,cAAc,CAACd,SAAf,GAA2Be,EAA3B;AACD,GAHD,MAGO,IAAId,iBAAJ,EAAuB;AAC5Ba,IAAAA,cAAc,CAACE,iBAAf,GAAmCf,iBAAiB,CAACM,IAAlB,CAAuB,GAAvB,CAAnC;AACD,GAFM,MAEA,IAAIP,SAAJ,EAAe;AACpBc,IAAAA,cAAc,CAACd,SAAf,GAA2BA,SAA3B;AACD;;AAED,SAAOc,cAAP;AACD;;AAEM,SAASG,cAAT,CAAwBpB,OAAxB,EAAgDqB,cAAhD,EAAkH;AACvH,SAAO;AAAEnB,IAAAA,QAAQ,EAAEmB,cAAc,CAACnB;AAA3B,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\nimport type {\n MessageCounterArguments,\n MessageCountersResponse,\n ModulesInject\n} from '../../flow_interfaces';\n\n\nexport function getOperation(): string {\n return operationConstants.PNMessageCounts;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: MessageCounterArguments) {\n let { channels, timetoken, channelTimetokens } = incomingParams;\n let { config } = modules;\n\n if (!channels) return 'Missing channel';\n if (timetoken && channelTimetokens) return 'timetoken and channelTimetokens are incompatible together';\n if ((timetoken && channelTimetokens) && (channelTimetokens.length > 1) && (channels.length !== channelTimetokens.length)) return 'Length of channelTimetokens and channels do not match';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: MessageCounterArguments): string {\n let { channels } = incomingParams;\n let { config } = modules;\n\n let stringifiedChannels = channels.join(',');\n\n return `/v3/history/sub-key/${config.subscribeKey}/message-counts/${utils.encodeString(stringifiedChannels)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): boolean {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: MessageCounterArguments): Object {\n const { timetoken, channelTimetokens } = incomingParams;\n let outgoingParams: Object = {};\n\n if ((channelTimetokens) && (channelTimetokens.length === 1)) {\n let [tt] = channelTimetokens;\n outgoingParams.timetoken = tt;\n } else if (channelTimetokens) {\n outgoingParams.channelsTimetoken = channelTimetokens.join(',');\n } else if (timetoken) {\n outgoingParams.timetoken = timetoken;\n }\n\n return outgoingParams;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: MessageCounterArguments): MessageCountersResponse {\n return { channels: serverResponse.channels };\n}\n"],"file":"message_counts.js"} \ No newline at end of file diff --git a/lib/core/endpoints/memberships/add_members.js b/lib/core/endpoints/memberships/add_members.js index 9cf8a609a..182d2ecb3 100644 --- a/lib/core/endpoints/memberships/add_members.js +++ b/lib/core/endpoints/memberships/add_members.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { var users = incomingParams.users; var payload = {}; diff --git a/lib/core/endpoints/memberships/add_members.js.map b/lib/core/endpoints/memberships/add_members.js.map index d52e0a612..4f2f7c702 100644 --- a/lib/core/endpoints/memberships/add_members.js.map +++ b/lib/core/endpoints/memberships/add_members.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/memberships/add_members.js"],"names":["prepareMessagePayload","modules","incomingParams","users","payload","length","add","forEach","addMember","currentAdd","id","custom","push","getOperation","operationConstants","PNUpdateMembersOperation","validateParams","spaceId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membersResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n AddMembers,\n MembersInput,\n MembersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { users } = incomingParams;\n let payload = {};\n\n if (users && users.length > 0) {\n payload.add = [];\n\n users.forEach((addMember) => {\n let currentAdd: AddMembers = { id: addMember.id };\n\n if (addMember.custom) {\n currentAdd.custom = addMember.custom;\n }\n\n payload.add.push(currentAdd);\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembersOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n) {\n let { spaceId, users } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n if (!users) return 'Missing users';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembersInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membersResponse: Object\n): MembersListResponse {\n return membersResponse;\n}\n"],"file":"add_members.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/memberships/add_members.js"],"names":["prepareMessagePayload","modules","incomingParams","users","payload","length","add","forEach","addMember","currentAdd","id","custom","push","getOperation","operationConstants","PNUpdateMembersOperation","validateParams","spaceId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membersResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n AddMembers,\n MembersInput,\n MembersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { users } = incomingParams;\n let payload = {};\n\n if (users && users.length > 0) {\n payload.add = [];\n\n users.forEach((addMember) => {\n let currentAdd: AddMembers = { id: addMember.id };\n\n if (addMember.custom) {\n currentAdd.custom = addMember.custom;\n }\n\n payload.add.push(currentAdd);\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembersOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n) {\n let { spaceId, users } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n if (!users) return 'Missing users';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembersInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membersResponse: Object\n): MembersListResponse {\n return membersResponse;\n}\n"],"file":"add_members.js"} \ No newline at end of file diff --git a/lib/core/endpoints/memberships/get_members.js b/lib/core/endpoints/memberships/get_members.js index efa711427..51de6edfd 100644 --- a/lib/core/endpoints/memberships/get_members.js +++ b/lib/core/endpoints/memberships/get_members.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -16,8 +18,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNGetMembersOperation; } diff --git a/lib/core/endpoints/memberships/get_members.js.map b/lib/core/endpoints/memberships/get_members.js.map index c3b5d27ca..fd87c5e3a 100644 --- a/lib/core/endpoints/memberships/get_members.js.map +++ b/lib/core/endpoints/memberships/get_members.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/memberships/get_members.js"],"names":["getOperation","operationConstants","PNGetMembersOperation","validateParams","modules","incomingParams","spaceId","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","filter","params","includes","totalCount","count","customFields","push","userFields","customUserFields","includesString","join","length","next","start","prev","end","handleResponse","membersResponse"],"mappings":";;;;;;;;;;;;;;AAEA;;AAKA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,qBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAA8E;AAAA,MAC7EC,OAD6E,GACjED,cADiE,CAC7EC,OAD6E;AAGnF,MAAI,CAACA,OAAL,EAAc,OAAO,iBAAP;AACf;;AAEM,SAASC,MAAT,CACLH,OADK,EAELC,cAFK,EAGG;AAAA,MACFG,MADE,GACSJ,OADT,CACFI,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,qBAAoDJ,cAAc,CAACC,OAAnE;AACD;;AAEM,SAASI,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBT,OAAtB,EAA8CC,cAA9C,EAAoF;AACzF,MAAIS,KAAK,GACPV,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,EAAuCX,cAAc,CAACC,OAAtD,KACAF,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLb,OADK,EAELC,cAFK,EAGG;AAAA,MACAa,OADA,GACiCb,cADjC,CACAa,OADA;AAAA,MACSC,KADT,GACiCd,cADjC,CACSc,KADT;AAAA,MACgBC,IADhB,GACiCf,cADjC,CACgBe,IADhB;AAAA,MACsBC,MADtB,GACiChB,cADjC,CACsBgB,MADtB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,KAAJ,EAAW;AACTG,IAAAA,MAAM,CAACH,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAIK,QAAQ,GAAG,EAAf;;AAEA,QAAIL,OAAO,CAACM,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIP,OAAO,CAACQ,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACI,IAAT,CAAc,QAAd;AACD;;AAED,QAAIT,OAAO,CAACU,UAAZ,EAAwB;AACtBL,MAAAA,QAAQ,CAACI,IAAT,CAAc,MAAd;AACD;;AAED,QAAIT,OAAO,CAACW,gBAAZ,EAA8B;AAC5BN,MAAAA,QAAQ,CAACI,IAAT,CAAc,aAAd;AACD;;AAED,QAAIG,cAAc,GAAGP,QAAQ,CAACQ,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BV,MAAAA,MAAM,CAACJ,OAAP,GAAiBY,cAAjB;AACD;AACF;;AAED,MAAIV,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACa,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,KAAP,GAAed,IAAI,CAACa,IAApB;AACD;;AACD,QAAIb,IAAI,CAACe,IAAT,EAAe;AACbb,MAAAA,MAAM,CAACc,GAAP,GAAahB,IAAI,CAACe,IAAlB;AACD;AACF;;AAED,MAAId,MAAJ,EAAY;AACVC,IAAAA,MAAM,CAACD,MAAP,GAAgBA,MAAhB;AACD;;AAED,SAAOC,MAAP;AACD;;AAEM,SAASe,cAAT,CACLjC,OADK,EAELkC,eAFK,EAGgB;AACrB,SAAOA,eAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n MembersInput,\n MembersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetMembersOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: MembersInput) {\n let { spaceId } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembersInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n const { include, limit, page, filter } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.userFields) {\n includes.push('user');\n }\n\n if (include.customUserFields) {\n includes.push('user.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n if (filter) {\n params.filter = filter;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membersResponse: Object\n): MembersListResponse {\n return membersResponse;\n}\n"],"file":"get_members.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/memberships/get_members.js"],"names":["getOperation","operationConstants","PNGetMembersOperation","validateParams","modules","incomingParams","spaceId","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","filter","params","includes","totalCount","count","customFields","push","userFields","customUserFields","includesString","join","length","next","start","prev","end","handleResponse","membersResponse"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AAKA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,qBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAA8E;AAAA,MAC7EC,OAD6E,GACjED,cADiE,CAC7EC,OAD6E;AAGnF,MAAI,CAACA,OAAL,EAAc,OAAO,iBAAP;AACf;;AAEM,SAASC,MAAT,CACLH,OADK,EAELC,cAFK,EAGG;AAAA,MACFG,MADE,GACSJ,OADT,CACFI,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,qBAAoDJ,cAAc,CAACC,OAAnE;AACD;;AAEM,SAASI,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBT,OAAtB,EAA8CC,cAA9C,EAAoF;AACzF,MAAIS,KAAK,GACPV,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,EAAuCX,cAAc,CAACC,OAAtD,KACAF,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLb,OADK,EAELC,cAFK,EAGG;AAAA,MACAa,OADA,GACiCb,cADjC,CACAa,OADA;AAAA,MACSC,KADT,GACiCd,cADjC,CACSc,KADT;AAAA,MACgBC,IADhB,GACiCf,cADjC,CACgBe,IADhB;AAAA,MACsBC,MADtB,GACiChB,cADjC,CACsBgB,MADtB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,KAAJ,EAAW;AACTG,IAAAA,MAAM,CAACH,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAIK,QAAQ,GAAG,EAAf;;AAEA,QAAIL,OAAO,CAACM,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIP,OAAO,CAACQ,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACI,IAAT,CAAc,QAAd;AACD;;AAED,QAAIT,OAAO,CAACU,UAAZ,EAAwB;AACtBL,MAAAA,QAAQ,CAACI,IAAT,CAAc,MAAd;AACD;;AAED,QAAIT,OAAO,CAACW,gBAAZ,EAA8B;AAC5BN,MAAAA,QAAQ,CAACI,IAAT,CAAc,aAAd;AACD;;AAED,QAAIG,cAAc,GAAGP,QAAQ,CAACQ,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BV,MAAAA,MAAM,CAACJ,OAAP,GAAiBY,cAAjB;AACD;AACF;;AAED,MAAIV,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACa,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,KAAP,GAAed,IAAI,CAACa,IAApB;AACD;;AACD,QAAIb,IAAI,CAACe,IAAT,EAAe;AACbb,MAAAA,MAAM,CAACc,GAAP,GAAahB,IAAI,CAACe,IAAlB;AACD;AACF;;AAED,MAAId,MAAJ,EAAY;AACVC,IAAAA,MAAM,CAACD,MAAP,GAAgBA,MAAhB;AACD;;AAED,SAAOC,MAAP;AACD;;AAEM,SAASe,cAAT,CACLjC,OADK,EAELkC,eAFK,EAGgB;AACrB,SAAOA,eAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n MembersInput,\n MembersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetMembersOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: MembersInput) {\n let { spaceId } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembersInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n const { include, limit, page, filter } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.userFields) {\n includes.push('user');\n }\n\n if (include.customUserFields) {\n includes.push('user.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n if (filter) {\n params.filter = filter;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membersResponse: Object\n): MembersListResponse {\n return membersResponse;\n}\n"],"file":"get_members.js"} \ No newline at end of file diff --git a/lib/core/endpoints/memberships/get_memberships.js b/lib/core/endpoints/memberships/get_memberships.js index a333d62b9..2334e2b52 100644 --- a/lib/core/endpoints/memberships/get_memberships.js +++ b/lib/core/endpoints/memberships/get_memberships.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -16,8 +18,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNGetMembershipsOperation; } diff --git a/lib/core/endpoints/memberships/get_memberships.js.map b/lib/core/endpoints/memberships/get_memberships.js.map index 48e4c6ace..a4be4466a 100644 --- a/lib/core/endpoints/memberships/get_memberships.js.map +++ b/lib/core/endpoints/memberships/get_memberships.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/memberships/get_memberships.js"],"names":["getOperation","operationConstants","PNGetMembershipsOperation","validateParams","modules","incomingParams","userId","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","filter","params","includes","totalCount","count","customFields","push","spaceFields","customSpaceFields","includesString","join","length","next","start","prev","end","handleResponse","membershipsResponse"],"mappings":";;;;;;;;;;;;;;AAEA;;AAKA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,yBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GACtED,cADsE,CACjFC,MADiF;AAGvF,MAAI,CAACA,MAAL,EAAa,OAAO,gBAAP;AACd;;AAEM,SAASC,MAAT,CACLH,OADK,EAELC,cAFK,EAGG;AAAA,MACFG,MADE,GACSJ,OADT,CACFI,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,oBAAmDJ,cAAc,CAACC,MAAlE;AACD;;AAEM,SAASI,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBT,OAAtB,EAA8CC,cAA9C,EAAwF;AAC7F,MAAIS,KAAK,GACPV,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,EAAsCX,cAAc,CAACC,MAArD,KACAF,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLb,OADK,EAELC,cAFK,EAGG;AAAA,MACAa,OADA,GACiCb,cADjC,CACAa,OADA;AAAA,MACSC,KADT,GACiCd,cADjC,CACSc,KADT;AAAA,MACgBC,IADhB,GACiCf,cADjC,CACgBe,IADhB;AAAA,MACsBC,MADtB,GACiChB,cADjC,CACsBgB,MADtB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,KAAJ,EAAW;AACTG,IAAAA,MAAM,CAACH,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAIK,QAAQ,GAAG,EAAf;;AAEA,QAAIL,OAAO,CAACM,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIP,OAAO,CAACQ,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACI,IAAT,CAAc,QAAd;AACD;;AAED,QAAIT,OAAO,CAACU,WAAZ,EAAyB;AACvBL,MAAAA,QAAQ,CAACI,IAAT,CAAc,OAAd;AACD;;AAED,QAAIT,OAAO,CAACW,iBAAZ,EAA+B;AAC7BN,MAAAA,QAAQ,CAACI,IAAT,CAAc,cAAd;AACD;;AAED,QAAIG,cAAc,GAAGP,QAAQ,CAACQ,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BV,MAAAA,MAAM,CAACJ,OAAP,GAAiBY,cAAjB;AACD;AACF;;AAED,MAAIV,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACa,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,KAAP,GAAed,IAAI,CAACa,IAApB;AACD;;AACD,QAAIb,IAAI,CAACe,IAAT,EAAe;AACbb,MAAAA,MAAM,CAACc,GAAP,GAAahB,IAAI,CAACe,IAAlB;AACD;AACF;;AAED,MAAId,MAAJ,EAAY;AACVC,IAAAA,MAAM,CAACD,MAAP,GAAgBA,MAAhB;AACD;;AAED,SAAOC,MAAP;AACD;;AAEM,SAASe,cAAT,CACLjC,OADK,EAELkC,mBAFK,EAGoB;AACzB,SAAOA,mBAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n MembershipsInput,\n MembershipsListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetMembershipsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: MembershipsInput) {\n let { userId } = incomingParams;\n\n if (!userId) return 'Missing userId';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembershipsInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n const { include, limit, page, filter } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n if (filter) {\n params.filter = filter;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membershipsResponse: Object\n): MembershipsListResponse {\n return membershipsResponse;\n}\n"],"file":"get_memberships.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/memberships/get_memberships.js"],"names":["getOperation","operationConstants","PNGetMembershipsOperation","validateParams","modules","incomingParams","userId","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","filter","params","includes","totalCount","count","customFields","push","spaceFields","customSpaceFields","includesString","join","length","next","start","prev","end","handleResponse","membershipsResponse"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AAKA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,yBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GACtED,cADsE,CACjFC,MADiF;AAGvF,MAAI,CAACA,MAAL,EAAa,OAAO,gBAAP;AACd;;AAEM,SAASC,MAAT,CACLH,OADK,EAELC,cAFK,EAGG;AAAA,MACFG,MADE,GACSJ,OADT,CACFI,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,oBAAmDJ,cAAc,CAACC,MAAlE;AACD;;AAEM,SAASI,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBT,OAAtB,EAA8CC,cAA9C,EAAwF;AAC7F,MAAIS,KAAK,GACPV,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,EAAsCX,cAAc,CAACC,MAArD,KACAF,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLb,OADK,EAELC,cAFK,EAGG;AAAA,MACAa,OADA,GACiCb,cADjC,CACAa,OADA;AAAA,MACSC,KADT,GACiCd,cADjC,CACSc,KADT;AAAA,MACgBC,IADhB,GACiCf,cADjC,CACgBe,IADhB;AAAA,MACsBC,MADtB,GACiChB,cADjC,CACsBgB,MADtB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,KAAJ,EAAW;AACTG,IAAAA,MAAM,CAACH,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAIK,QAAQ,GAAG,EAAf;;AAEA,QAAIL,OAAO,CAACM,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIP,OAAO,CAACQ,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACI,IAAT,CAAc,QAAd;AACD;;AAED,QAAIT,OAAO,CAACU,WAAZ,EAAyB;AACvBL,MAAAA,QAAQ,CAACI,IAAT,CAAc,OAAd;AACD;;AAED,QAAIT,OAAO,CAACW,iBAAZ,EAA+B;AAC7BN,MAAAA,QAAQ,CAACI,IAAT,CAAc,cAAd;AACD;;AAED,QAAIG,cAAc,GAAGP,QAAQ,CAACQ,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BV,MAAAA,MAAM,CAACJ,OAAP,GAAiBY,cAAjB;AACD;AACF;;AAED,MAAIV,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACa,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,KAAP,GAAed,IAAI,CAACa,IAApB;AACD;;AACD,QAAIb,IAAI,CAACe,IAAT,EAAe;AACbb,MAAAA,MAAM,CAACc,GAAP,GAAahB,IAAI,CAACe,IAAlB;AACD;AACF;;AAED,MAAId,MAAJ,EAAY;AACVC,IAAAA,MAAM,CAACD,MAAP,GAAgBA,MAAhB;AACD;;AAED,SAAOC,MAAP;AACD;;AAEM,SAASe,cAAT,CACLjC,OADK,EAELkC,mBAFK,EAGoB;AACzB,SAAOA,mBAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n MembershipsInput,\n MembershipsListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetMembershipsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: MembershipsInput) {\n let { userId } = incomingParams;\n\n if (!userId) return 'Missing userId';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembershipsInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n const { include, limit, page, filter } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n if (filter) {\n params.filter = filter;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membershipsResponse: Object\n): MembershipsListResponse {\n return membershipsResponse;\n}\n"],"file":"get_memberships.js"} \ No newline at end of file diff --git a/lib/core/endpoints/memberships/join_spaces.js b/lib/core/endpoints/memberships/join_spaces.js index d551e1506..a204209c6 100644 --- a/lib/core/endpoints/memberships/join_spaces.js +++ b/lib/core/endpoints/memberships/join_spaces.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { var spaces = incomingParams.spaces; var payload = {}; diff --git a/lib/core/endpoints/memberships/join_spaces.js.map b/lib/core/endpoints/memberships/join_spaces.js.map index 715edaea5..de455f8ef 100644 --- a/lib/core/endpoints/memberships/join_spaces.js.map +++ b/lib/core/endpoints/memberships/join_spaces.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/memberships/join_spaces.js"],"names":["prepareMessagePayload","modules","incomingParams","spaces","payload","length","add","forEach","addMembership","currentAdd","id","custom","push","getOperation","operationConstants","PNUpdateMembershipsOperation","validateParams","userId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membershipsResponse"],"mappings":";;;;;;;;;;;;;;;;;AAEA;;AAMA;;;;AAEA,SAASA,qBAAT,CAA+BC,OAA/B,EAAwCC,cAAxC,EAAwD;AAAA,MAC9CC,MAD8C,GACnCD,cADmC,CAC9CC,MAD8C;AAEtD,MAAIC,OAAO,GAAG,EAAd;;AAEA,MAAID,MAAM,IAAIA,MAAM,CAACE,MAAP,GAAgB,CAA9B,EAAiC;AAC/BD,IAAAA,OAAO,CAACE,GAAR,GAAc,EAAd;AAEAH,IAAAA,MAAM,CAACI,OAAP,CAAe,UAACC,aAAD,EAAmB;AAChC,UAAIC,UAA0B,GAAG;AAAEC,QAAAA,EAAE,EAAEF,aAAa,CAACE;AAApB,OAAjC;;AAEA,UAAIF,aAAa,CAACG,MAAlB,EAA0B;AACxBF,QAAAA,UAAU,CAACE,MAAX,GAAoBH,aAAa,CAACG,MAAlC;AACD;;AAEDP,MAAAA,OAAO,CAACE,GAAR,CAAYM,IAAZ,CAAiBH,UAAjB;AACD,KARD;AASD;;AAED,SAAOL,OAAP;AACD;;AAEM,SAASS,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,4BAA1B;AACD;;AAEM,SAASC,cAAT,CACLf,OADK,EAELC,cAFK,EAGL;AAAA,MACMe,MADN,GACyBf,cADzB,CACMe,MADN;AAAA,MACcd,MADd,GACyBD,cADzB,CACcC,MADd;AAGA,MAAI,CAACc,MAAL,EAAa,OAAO,gBAAP;AACb,MAAI,CAACd,MAAL,EAAa,OAAO,gBAAP;AACd;;AAEM,SAASe,MAAT,CACLjB,OADK,EAELC,cAFK,EAGG;AAAA,MACFiB,MADE,GACSlB,OADT,CACFkB,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,oBAAmDlB,cAAc,CAACe,MAAlE;AACD;;AAEM,SAASI,QAAT,CACLpB,OADK,EAELC,cAFK,EAGG;AAAA,MACFiB,MADE,GACSlB,OADT,CACFkB,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,oBAAmDlB,cAAc,CAACe,MAAlE;AACD;;AAEM,SAASK,QAAT,GAAoB;AACzB,SAAO,IAAP;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBJ,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACK,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBzB,OAAtB,EAA8CC,cAA9C,EAAwF;AAC7F,MAAIyB,KAAK,GACP1B,OAAO,CAAC2B,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,EAAsC3B,cAAc,CAACe,MAArD,KACAhB,OAAO,CAAC2B,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACL7B,OADK,EAELC,cAFK,EAGG;AAAA,MACA6B,OADA,GACyB7B,cADzB,CACA6B,OADA;AAAA,MACSC,KADT,GACyB9B,cADzB,CACS8B,KADT;AAAA,MACgBC,IADhB,GACyB/B,cADzB,CACgB+B,IADhB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIF,KAAJ,EAAW;AACTE,IAAAA,MAAM,CAACF,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAII,QAAQ,GAAG,EAAf;;AAEA,QAAIJ,OAAO,CAACK,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIN,OAAO,CAACO,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACvB,IAAT,CAAc,QAAd;AACD;;AAED,QAAImB,OAAO,CAACQ,WAAZ,EAAyB;AACvBJ,MAAAA,QAAQ,CAACvB,IAAT,CAAc,OAAd;AACD;;AAED,QAAImB,OAAO,CAACS,iBAAZ,EAA+B;AAC7BL,MAAAA,QAAQ,CAACvB,IAAT,CAAc,cAAd;AACD;;AAED,QAAI6B,cAAc,GAAGN,QAAQ,CAACO,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACpC,MAAf,GAAwB,CAA5B,EAA+B;AAC7B6B,MAAAA,MAAM,CAACH,OAAP,GAAiBU,cAAjB;AACD;AACF;;AAED,MAAIR,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACU,IAAT,EAAe;AACbT,MAAAA,MAAM,CAACU,KAAP,GAAeX,IAAI,CAACU,IAApB;AACD;;AACD,QAAIV,IAAI,CAACY,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,GAAP,GAAab,IAAI,CAACY,IAAlB;AACD;AACF;;AAED,SAAOX,MAAP;AACD;;AAEM,SAASa,YAAT,CACL9C,OADK,EAELC,cAFK,EAGG;AACR,SAAOF,qBAAqB,CAACC,OAAD,EAAUC,cAAV,CAA5B;AACD;;AAEM,SAAS8C,cAAT,CACL/C,OADK,EAELgD,mBAFK,EAGoB;AACzB,SAAOA,mBAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n AddMemberships,\n MembershipsInput,\n MembershipsListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { spaces } = incomingParams;\n let payload = {};\n\n if (spaces && spaces.length > 0) {\n payload.add = [];\n\n spaces.forEach((addMembership) => {\n let currentAdd: AddMemberships = { id: addMembership.id };\n\n if (addMembership.custom) {\n currentAdd.custom = addMembership.custom;\n }\n\n payload.add.push(currentAdd);\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembershipsOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n) {\n let { userId, spaces } = incomingParams;\n\n if (!userId) return 'Missing userId';\n if (!spaces) return 'Missing spaces';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembershipsInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membershipsResponse: Object\n): MembershipsListResponse {\n return membershipsResponse;\n}\n"],"file":"join_spaces.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/memberships/join_spaces.js"],"names":["prepareMessagePayload","modules","incomingParams","spaces","payload","length","add","forEach","addMembership","currentAdd","id","custom","push","getOperation","operationConstants","PNUpdateMembershipsOperation","validateParams","userId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membershipsResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n AddMemberships,\n MembershipsInput,\n MembershipsListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { spaces } = incomingParams;\n let payload = {};\n\n if (spaces && spaces.length > 0) {\n payload.add = [];\n\n spaces.forEach((addMembership) => {\n let currentAdd: AddMemberships = { id: addMembership.id };\n\n if (addMembership.custom) {\n currentAdd.custom = addMembership.custom;\n }\n\n payload.add.push(currentAdd);\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembershipsOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n) {\n let { userId, spaces } = incomingParams;\n\n if (!userId) return 'Missing userId';\n if (!spaces) return 'Missing spaces';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembershipsInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membershipsResponse: Object\n): MembershipsListResponse {\n return membershipsResponse;\n}\n"],"file":"join_spaces.js"} \ No newline at end of file diff --git a/lib/core/endpoints/memberships/leave_spaces.js b/lib/core/endpoints/memberships/leave_spaces.js index 014abb5d2..358f2d6fe 100644 --- a/lib/core/endpoints/memberships/leave_spaces.js +++ b/lib/core/endpoints/memberships/leave_spaces.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { var spaces = incomingParams.spaces; var payload = {}; diff --git a/lib/core/endpoints/memberships/leave_spaces.js.map b/lib/core/endpoints/memberships/leave_spaces.js.map index 7c0b34a73..9fb4b9eb3 100644 --- a/lib/core/endpoints/memberships/leave_spaces.js.map +++ b/lib/core/endpoints/memberships/leave_spaces.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/memberships/leave_spaces.js"],"names":["prepareMessagePayload","modules","incomingParams","spaces","payload","length","remove","forEach","removeMembershipId","push","id","getOperation","operationConstants","PNUpdateMembershipsOperation","validateParams","userId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membershipsResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n MembershipsInput,\n MembershipsListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { spaces } = incomingParams;\n let payload = {};\n\n if (spaces && spaces.length > 0) {\n payload.remove = [];\n\n spaces.forEach((removeMembershipId) => {\n payload.remove.push({ id: removeMembershipId });\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembershipsOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n) {\n let { userId, spaces } = incomingParams;\n\n if (!userId) return 'Missing userId';\n if (!spaces) return 'Missing spaces';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembershipsInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membershipsResponse: Object\n): MembershipsListResponse {\n return membershipsResponse;\n}\n"],"file":"leave_spaces.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/memberships/leave_spaces.js"],"names":["prepareMessagePayload","modules","incomingParams","spaces","payload","length","remove","forEach","removeMembershipId","push","id","getOperation","operationConstants","PNUpdateMembershipsOperation","validateParams","userId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membershipsResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n MembershipsInput,\n MembershipsListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { spaces } = incomingParams;\n let payload = {};\n\n if (spaces && spaces.length > 0) {\n payload.remove = [];\n\n spaces.forEach((removeMembershipId) => {\n payload.remove.push({ id: removeMembershipId });\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembershipsOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n) {\n let { userId, spaces } = incomingParams;\n\n if (!userId) return 'Missing userId';\n if (!spaces) return 'Missing spaces';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembershipsInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membershipsResponse: Object\n): MembershipsListResponse {\n return membershipsResponse;\n}\n"],"file":"leave_spaces.js"} \ No newline at end of file diff --git a/lib/core/endpoints/memberships/remove_members.js b/lib/core/endpoints/memberships/remove_members.js index 5e7fd09fe..a2a4ca153 100644 --- a/lib/core/endpoints/memberships/remove_members.js +++ b/lib/core/endpoints/memberships/remove_members.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { var users = incomingParams.users; var payload = {}; diff --git a/lib/core/endpoints/memberships/remove_members.js.map b/lib/core/endpoints/memberships/remove_members.js.map index a16ed04af..365c0f837 100644 --- a/lib/core/endpoints/memberships/remove_members.js.map +++ b/lib/core/endpoints/memberships/remove_members.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/memberships/remove_members.js"],"names":["prepareMessagePayload","modules","incomingParams","users","payload","length","remove","forEach","removeMemberId","push","id","getOperation","operationConstants","PNUpdateMembersOperation","validateParams","spaceId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membersResponse"],"mappings":";;;;;;;;;;;;;;;;;AAEA;;AAKA;;;;AAEA,SAASA,qBAAT,CAA+BC,OAA/B,EAAwCC,cAAxC,EAAwD;AAAA,MAC9CC,KAD8C,GACpCD,cADoC,CAC9CC,KAD8C;AAEtD,MAAIC,OAAO,GAAG,EAAd;;AAEA,MAAID,KAAK,IAAIA,KAAK,CAACE,MAAN,GAAe,CAA5B,EAA+B;AAC7BD,IAAAA,OAAO,CAACE,MAAR,GAAiB,EAAjB;AAEAH,IAAAA,KAAK,CAACI,OAAN,CAAc,UAACC,cAAD,EAAoB;AAChCJ,MAAAA,OAAO,CAACE,MAAR,CAAeG,IAAf,CAAoB;AAAEC,QAAAA,EAAE,EAAEF;AAAN,OAApB;AACD,KAFD;AAGD;;AAED,SAAOJ,OAAP;AACD;;AAEM,SAASO,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,wBAA1B;AACD;;AAEM,SAASC,cAAT,CACLb,OADK,EAELC,cAFK,EAGL;AAAA,MACMa,OADN,GACyBb,cADzB,CACMa,OADN;AAAA,MACeZ,KADf,GACyBD,cADzB,CACeC,KADf;AAGA,MAAI,CAACY,OAAL,EAAc,OAAO,iBAAP;AACd,MAAI,CAACZ,KAAL,EAAY,OAAO,eAAP;AACb;;AAEM,SAASa,MAAT,CACLf,OADK,EAELC,cAFK,EAGG;AAAA,MACFe,MADE,GACShB,OADT,CACFgB,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,qBAAoDhB,cAAc,CAACa,OAAnE;AACD;;AAEM,SAASI,QAAT,CACLlB,OADK,EAELC,cAFK,EAGG;AAAA,MACFe,MADE,GACShB,OADT,CACFgB,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,qBAAoDhB,cAAc,CAACa,OAAnE;AACD;;AAEM,SAASK,QAAT,GAAoB;AACzB,SAAO,IAAP;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBJ,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACK,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBvB,OAAtB,EAA8CC,cAA9C,EAAoF;AACzF,MAAIuB,KAAK,GACPxB,OAAO,CAACyB,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,EAAuCzB,cAAc,CAACa,OAAtD,KACAd,OAAO,CAACyB,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACL3B,OADK,EAELC,cAFK,EAGG;AAAA,MACA2B,OADA,GACyB3B,cADzB,CACA2B,OADA;AAAA,MACSC,KADT,GACyB5B,cADzB,CACS4B,KADT;AAAA,MACgBC,IADhB,GACyB7B,cADzB,CACgB6B,IADhB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIF,KAAJ,EAAW;AACTE,IAAAA,MAAM,CAACF,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAII,QAAQ,GAAG,EAAf;;AAEA,QAAIJ,OAAO,CAACK,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIN,OAAO,CAACO,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACxB,IAAT,CAAc,QAAd;AACD;;AAED,QAAIoB,OAAO,CAACQ,WAAZ,EAAyB;AACvBJ,MAAAA,QAAQ,CAACxB,IAAT,CAAc,OAAd;AACD;;AAED,QAAIoB,OAAO,CAACS,iBAAZ,EAA+B;AAC7BL,MAAAA,QAAQ,CAACxB,IAAT,CAAc,cAAd;AACD;;AAED,QAAI8B,cAAc,GAAGN,QAAQ,CAACO,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAAClC,MAAf,GAAwB,CAA5B,EAA+B;AAC7B2B,MAAAA,MAAM,CAACH,OAAP,GAAiBU,cAAjB;AACD;AACF;;AAED,MAAIR,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACU,IAAT,EAAe;AACbT,MAAAA,MAAM,CAACU,KAAP,GAAeX,IAAI,CAACU,IAApB;AACD;;AACD,QAAIV,IAAI,CAACY,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,GAAP,GAAab,IAAI,CAACY,IAAlB;AACD;AACF;;AAED,SAAOX,MAAP;AACD;;AAEM,SAASa,YAAT,CACL5C,OADK,EAELC,cAFK,EAGG;AACR,SAAOF,qBAAqB,CAACC,OAAD,EAAUC,cAAV,CAA5B;AACD;;AAEM,SAAS4C,cAAT,CACL7C,OADK,EAEL8C,eAFK,EAGgB;AACrB,SAAOA,eAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n MembersInput,\n MembersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { users } = incomingParams;\n let payload = {};\n\n if (users && users.length > 0) {\n payload.remove = [];\n\n users.forEach((removeMemberId) => {\n payload.remove.push({ id: removeMemberId });\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembersOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n) {\n let { spaceId, users } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n if (!users) return 'Missing users';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembersInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membersResponse: Object\n): MembersListResponse {\n return membersResponse;\n}\n"],"file":"remove_members.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/memberships/remove_members.js"],"names":["prepareMessagePayload","modules","incomingParams","users","payload","length","remove","forEach","removeMemberId","push","id","getOperation","operationConstants","PNUpdateMembersOperation","validateParams","spaceId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membersResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n MembersInput,\n MembersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { users } = incomingParams;\n let payload = {};\n\n if (users && users.length > 0) {\n payload.remove = [];\n\n users.forEach((removeMemberId) => {\n payload.remove.push({ id: removeMemberId });\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembersOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n) {\n let { spaceId, users } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n if (!users) return 'Missing users';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembersInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membersResponse: Object\n): MembersListResponse {\n return membersResponse;\n}\n"],"file":"remove_members.js"} \ No newline at end of file diff --git a/lib/core/endpoints/memberships/update_members.js b/lib/core/endpoints/memberships/update_members.js index 15e7c97bd..01f4ded06 100644 --- a/lib/core/endpoints/memberships/update_members.js +++ b/lib/core/endpoints/memberships/update_members.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { var addMembers = incomingParams.addMembers, updateMembers = incomingParams.updateMembers, diff --git a/lib/core/endpoints/memberships/update_members.js.map b/lib/core/endpoints/memberships/update_members.js.map index a78de4455..cceef235e 100644 --- a/lib/core/endpoints/memberships/update_members.js.map +++ b/lib/core/endpoints/memberships/update_members.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/memberships/update_members.js"],"names":["prepareMessagePayload","modules","incomingParams","addMembers","updateMembers","removeMembers","users","payload","length","add","forEach","addMember","currentAdd","id","custom","push","update","updateMember","currentUpdate","remove","removeMemberId","getOperation","operationConstants","PNUpdateMembersOperation","validateParams","spaceId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membersResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n AddMembers,\n UpdateMembers,\n MembersInput,\n MembersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { addMembers, updateMembers, removeMembers, users } = incomingParams;\n let payload = {};\n\n if (addMembers && addMembers.length > 0) {\n payload.add = [];\n\n addMembers.forEach((addMember) => {\n let currentAdd: AddMembers = { id: addMember.id };\n\n if (addMember.custom) {\n currentAdd.custom = addMember.custom;\n }\n\n payload.add.push(currentAdd);\n });\n }\n\n if (updateMembers && updateMembers.length > 0) {\n payload.update = [];\n\n updateMembers.forEach((updateMember) => {\n let currentUpdate: UpdateMembers = { id: updateMember.id };\n\n if (updateMember.custom) {\n currentUpdate.custom = updateMember.custom;\n }\n\n payload.update.push(currentUpdate);\n });\n }\n\n // if users is present then it is an update\n if (users && users.length > 0) {\n payload.update = payload.update || [];\n\n users.forEach((updateMember) => {\n let currentUpdate: UpdateMembers = { id: updateMember.id };\n\n if (updateMember.custom) {\n currentUpdate.custom = updateMember.custom;\n }\n\n payload.update.push(currentUpdate);\n });\n }\n\n if (removeMembers && removeMembers.length > 0) {\n payload.remove = [];\n\n removeMembers.forEach((removeMemberId) => {\n payload.remove.push({ id: removeMemberId });\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembersOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n) {\n let { spaceId, users } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n if (!users) return 'Missing users';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembersInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membersResponse: Object\n): MembersListResponse {\n return membersResponse;\n}\n"],"file":"update_members.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/memberships/update_members.js"],"names":["prepareMessagePayload","modules","incomingParams","addMembers","updateMembers","removeMembers","users","payload","length","add","forEach","addMember","currentAdd","id","custom","push","update","updateMember","currentUpdate","remove","removeMemberId","getOperation","operationConstants","PNUpdateMembersOperation","validateParams","spaceId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membersResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n AddMembers,\n UpdateMembers,\n MembersInput,\n MembersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { addMembers, updateMembers, removeMembers, users } = incomingParams;\n let payload = {};\n\n if (addMembers && addMembers.length > 0) {\n payload.add = [];\n\n addMembers.forEach((addMember) => {\n let currentAdd: AddMembers = { id: addMember.id };\n\n if (addMember.custom) {\n currentAdd.custom = addMember.custom;\n }\n\n payload.add.push(currentAdd);\n });\n }\n\n if (updateMembers && updateMembers.length > 0) {\n payload.update = [];\n\n updateMembers.forEach((updateMember) => {\n let currentUpdate: UpdateMembers = { id: updateMember.id };\n\n if (updateMember.custom) {\n currentUpdate.custom = updateMember.custom;\n }\n\n payload.update.push(currentUpdate);\n });\n }\n\n // if users is present then it is an update\n if (users && users.length > 0) {\n payload.update = payload.update || [];\n\n users.forEach((updateMember) => {\n let currentUpdate: UpdateMembers = { id: updateMember.id };\n\n if (updateMember.custom) {\n currentUpdate.custom = updateMember.custom;\n }\n\n payload.update.push(currentUpdate);\n });\n }\n\n if (removeMembers && removeMembers.length > 0) {\n payload.remove = [];\n\n removeMembers.forEach((removeMemberId) => {\n payload.remove.push({ id: removeMemberId });\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembersOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n) {\n let { spaceId, users } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n if (!users) return 'Missing users';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembersInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}/users`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembersInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembersInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membersResponse: Object\n): MembersListResponse {\n return membersResponse;\n}\n"],"file":"update_members.js"} \ No newline at end of file diff --git a/lib/core/endpoints/memberships/update_memberships.js b/lib/core/endpoints/memberships/update_memberships.js index dd1238875..f28060a03 100644 --- a/lib/core/endpoints/memberships/update_memberships.js +++ b/lib/core/endpoints/memberships/update_memberships.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { var addMemberships = incomingParams.addMemberships, updateMemberships = incomingParams.updateMemberships, diff --git a/lib/core/endpoints/memberships/update_memberships.js.map b/lib/core/endpoints/memberships/update_memberships.js.map index 3d8316093..45c0e62f6 100644 --- a/lib/core/endpoints/memberships/update_memberships.js.map +++ b/lib/core/endpoints/memberships/update_memberships.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/memberships/update_memberships.js"],"names":["prepareMessagePayload","modules","incomingParams","addMemberships","updateMemberships","removeMemberships","spaces","payload","length","add","forEach","addMembership","currentAdd","id","custom","push","update","updateMembership","currentUpdate","remove","removeMembershipId","getOperation","operationConstants","PNUpdateMembershipsOperation","validateParams","userId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membershipsResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n AddMemberships,\n UpdateMemberships,\n MembershipsInput,\n MembershipsListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { addMemberships, updateMemberships, removeMemberships, spaces } = incomingParams;\n let payload = {};\n\n if (addMemberships && addMemberships.length > 0) {\n payload.add = [];\n\n addMemberships.forEach((addMembership) => {\n let currentAdd: AddMemberships = { id: addMembership.id };\n\n if (addMembership.custom) {\n currentAdd.custom = addMembership.custom;\n }\n\n payload.add.push(currentAdd);\n });\n }\n\n if (updateMemberships && updateMemberships.length > 0) {\n payload.update = [];\n\n updateMemberships.forEach((updateMembership) => {\n let currentUpdate: UpdateMemberships = { id: updateMembership.id };\n\n if (updateMembership.custom) {\n currentUpdate.custom = updateMembership.custom;\n }\n\n payload.update.push(currentUpdate);\n });\n }\n\n // if spaces is present then it is an update\n if (spaces && spaces.length > 0) {\n payload.update = payload.update || [];\n\n spaces.forEach((updateMembership) => {\n let currentUpdate: UpdateMemberships = { id: updateMembership.id };\n\n if (updateMembership.custom) {\n currentUpdate.custom = updateMembership.custom;\n }\n\n payload.update.push(currentUpdate);\n });\n }\n\n if (removeMemberships && removeMemberships.length > 0) {\n payload.remove = [];\n\n removeMemberships.forEach((removeMembershipId) => {\n payload.remove.push({ id: removeMembershipId });\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembershipsOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n) {\n let { userId, spaces } = incomingParams;\n\n if (!userId) return 'Missing userId';\n if (!spaces) return 'Missing spaces';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembershipsInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membershipsResponse: Object\n): MembershipsListResponse {\n return membershipsResponse;\n}\n"],"file":"update_memberships.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/memberships/update_memberships.js"],"names":["prepareMessagePayload","modules","incomingParams","addMemberships","updateMemberships","removeMemberships","spaces","payload","length","add","forEach","addMembership","currentAdd","id","custom","push","update","updateMembership","currentUpdate","remove","removeMembershipId","getOperation","operationConstants","PNUpdateMembershipsOperation","validateParams","userId","getURL","config","subscribeKey","patchURL","usePatch","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","limit","page","params","includes","totalCount","count","customFields","spaceFields","customSpaceFields","includesString","join","next","start","prev","end","patchPayload","handleResponse","membershipsResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n AddMemberships,\n UpdateMemberships,\n MembershipsInput,\n MembershipsListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n const { addMemberships, updateMemberships, removeMemberships, spaces } = incomingParams;\n let payload = {};\n\n if (addMemberships && addMemberships.length > 0) {\n payload.add = [];\n\n addMemberships.forEach((addMembership) => {\n let currentAdd: AddMemberships = { id: addMembership.id };\n\n if (addMembership.custom) {\n currentAdd.custom = addMembership.custom;\n }\n\n payload.add.push(currentAdd);\n });\n }\n\n if (updateMemberships && updateMemberships.length > 0) {\n payload.update = [];\n\n updateMemberships.forEach((updateMembership) => {\n let currentUpdate: UpdateMemberships = { id: updateMembership.id };\n\n if (updateMembership.custom) {\n currentUpdate.custom = updateMembership.custom;\n }\n\n payload.update.push(currentUpdate);\n });\n }\n\n // if spaces is present then it is an update\n if (spaces && spaces.length > 0) {\n payload.update = payload.update || [];\n\n spaces.forEach((updateMembership) => {\n let currentUpdate: UpdateMemberships = { id: updateMembership.id };\n\n if (updateMembership.custom) {\n currentUpdate.custom = updateMembership.custom;\n }\n\n payload.update.push(currentUpdate);\n });\n }\n\n if (removeMemberships && removeMemberships.length > 0) {\n payload.remove = [];\n\n removeMemberships.forEach((removeMembershipId) => {\n payload.remove.push({ id: removeMembershipId });\n });\n }\n\n return payload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateMembershipsOperation;\n}\n\nexport function validateParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n) {\n let { userId, spaces } = incomingParams;\n\n if (!userId) return 'Missing userId';\n if (!spaces) return 'Missing spaces';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function patchURL(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}/spaces`;\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: MembershipsInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n const { include, limit, page } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n if (include.spaceFields) {\n includes.push('space');\n }\n\n if (include.customSpaceFields) {\n includes.push('space.custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: MembershipsInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n membershipsResponse: Object\n): MembershipsListResponse {\n return membershipsResponse;\n}\n"],"file":"update_memberships.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/channel/get.js b/lib/core/endpoints/objects/channel/get.js index 2315cb20e..e7b7ebfd1 100644 --- a/lib/core/endpoints/objects/channel/get.js +++ b/lib/core/endpoints/objects/channel/get.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -7,8 +9,6 @@ exports["default"] = void 0; var _operations = _interopRequireDefault(require("../../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - var endpoint = { getOperation: function getOperation() { return _operations["default"].PNGetChannelMetadataOperation; @@ -37,7 +37,7 @@ var endpoint = { var _ref4, _params$include; return { - include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && ['custom'] + include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { diff --git a/lib/core/endpoints/objects/channel/get.js.map b/lib/core/endpoints/objects/channel/get.js.map index 7559d6a04..88867030c 100644 --- a/lib/core/endpoints/objects/channel/get.js.map +++ b/lib/core/endpoints/objects/channel/get.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/channel/get.js"],"names":["endpoint","getOperation","operationConstants","PNGetChannelMetadataOperation","validateParams","_","params","channel","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","include","customFields","handleResponse","response","status","data"],"mappings":";;;;;;;AAGA;;;;AAeA,IAAMA,QAA4E,GAAG;AACnFC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,6BAAzB;AAAA,GADqE;AAInFC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,yBAAP;AACD;AACF,GARkF;AAUnFC,EAAAA,MAAM,EAAE,sBAAaF,MAAb;AAAA,QAAGG,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,uBAAuEJ,MAAM,CAACC,OAA9E;AAAA,GAV2E;AAYnFI,EAAAA,iBAAiB,EAAE;AAAA,QAAGF,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACG,qBAAP,EAAhB;AAAA,GAZgE;AAcnFC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAdkE;AAgBnFC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,SAAtB,CAAtB;AAAA,GAhBqE;AAkBnFC,EAAAA,aAAa,EAAE,uBAACZ,CAAD,EAAIC,MAAJ;AAAA;;AAAA,WAAgB;AAC7BY,MAAAA,OAAO,EAAE,UAACZ,MAAD,aAACA,MAAD,0CAACA,MAAM,CAAEY,OAAT,oDAAC,gBAAiBC,YAAlB,yCAAkC,IAAlC,KAA2C,CAAC,QAAD;AADvB,KAAhB;AAAA,GAlBoE;AAsBnFC,EAAAA,cAAc,EAAE,wBAACf,CAAD,EAAIgB,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCC,MAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFiB,KAAlB;AAAA;AAtBmE,CAArF;eA4BevB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { ChannelMetadata } from './channel';\n\nexport type GetChannelMetadataParams = {|\n channel: string,\n include?: {|\n customFields: ?boolean,\n |},\n|};\n\nexport type GetChannelMetadataResult = {|\n status: 200,\n data: ChannelMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetChannelMetadataOperation,\n\n // No required parameters.\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'Channel cannot be empty';\n }\n },\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('channel'),\n\n prepareParams: (_, params) => ({\n include: (params?.include?.customFields ?? true) && ['custom'],\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"get.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/channel/get.js"],"names":["endpoint","getOperation","operationConstants","PNGetChannelMetadataOperation","validateParams","_","params","channel","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","include","customFields","handleResponse","response","status","data"],"mappings":";;;;;;;;;AAGA;;AAeA,IAAMA,QAA4E,GAAG;AACnFC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,6BAAzB;AAAA,GADqE;AAInFC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,yBAAP;AACD;AACF,GARkF;AAUnFC,EAAAA,MAAM,EAAE,sBAAaF,MAAb;AAAA,QAAGG,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,uBAAuEJ,MAAM,CAACC,OAA9E;AAAA,GAV2E;AAYnFI,EAAAA,iBAAiB,EAAE;AAAA,QAAGF,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACG,qBAAP,EAAhB;AAAA,GAZgE;AAcnFC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAdkE;AAgBnFC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,SAAtB,CAAtB;AAAA,GAhBqE;AAkBnFC,EAAAA,aAAa,EAAE,uBAACZ,CAAD,EAAIC,MAAJ;AAAA;;AAAA,WAAgB;AAC7BY,MAAAA,OAAO,EAAE,UAACZ,MAAD,aAACA,MAAD,0CAACA,MAAM,CAAEY,OAAT,oDAAC,gBAAiBC,YAAlB,yCAAkC,IAAlC,KAA2C;AADvB,KAAhB;AAAA,GAlBoE;AAsBnFC,EAAAA,cAAc,EAAE,wBAACf,CAAD,EAAIgB,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCC,MAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFiB,KAAlB;AAAA;AAtBmE,CAArF;eA4BevB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { ChannelMetadata } from './channel';\n\nexport type GetChannelMetadataParams = {|\n channel: string,\n include?: {|\n customFields: ?boolean,\n |},\n|};\n\nexport type GetChannelMetadataResult = {|\n status: 200,\n data: ChannelMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetChannelMetadataOperation,\n\n // No required parameters.\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'Channel cannot be empty';\n }\n },\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('channel'),\n\n prepareParams: (_, params) => ({\n include: (params?.include?.customFields ?? true) && 'custom',\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"get.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/channel/get_all.js b/lib/core/endpoints/objects/channel/get_all.js index ee0de5bbb..a0efba7da 100644 --- a/lib/core/endpoints/objects/channel/get_all.js +++ b/lib/core/endpoints/objects/channel/get_all.js @@ -1,21 +1,15 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(require("../../../constants/operations")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(require("../../../constants/operations")); var endpoint = { getOperation: function getOperation() { @@ -43,7 +37,7 @@ var endpoint = { var queryParams = {}; if (params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) { - queryParams.include = ['custom']; + queryParams.include = 'custom'; } if (params === null || params === void 0 ? void 0 : (_params$include2 = params.include) === null || _params$include2 === void 0 ? void 0 : _params$include2.totalCount) { @@ -76,7 +70,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref4) { - var _ref5 = _slicedToArray(_ref4, 2), + var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2), key = _ref5[0], value = _ref5[1]; diff --git a/lib/core/endpoints/objects/channel/get_all.js.map b/lib/core/endpoints/objects/channel/get_all.js.map index af7eceee7..a610dee6c 100644 --- a/lib/core/endpoints/objects/channel/get_all.js.map +++ b/lib/core/endpoints/objects/channel/get_all.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/channel/get_all.js"],"names":["endpoint","getOperation","operationConstants","PNGetAllChannelMetadataOperation","validateParams","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","params","queryParams","include","customFields","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","map","key","value","handleResponse","_","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { ChannelMetadata } from './channel';\n\nexport type GetAllChannelMetadataParams = {|\n filter?: string,\n sort?: { [key: string]: 'asc' | 'desc' | null },\n limit?: number,\n page?: {|\n next?: string,\n prev?: string,\n |},\n include?: {|\n totalCount?: boolean,\n customFields?: boolean,\n |},\n|};\n\nexport type GetAllChannelMetadataResult = {|\n status: 200,\n data: ChannelMetadata[],\n totalCount?: number,\n prev?: string,\n next?: string\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetAllChannelMetadataOperation,\n\n // No required parameters.\n validateParams: () => {},\n\n getURL: ({ config }) => `/v2/objects/${config.subscribeKey}/channels`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('channel'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include?.customFields) {\n queryParams.include = ['custom'];\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = params.include?.totalCount;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n if (params?.limit) {\n queryParams.limit = params.limit;\n }\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response): GetAllChannelMetadataResult => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"get_all.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/channel/get_all.js"],"names":["endpoint","getOperation","operationConstants","PNGetAllChannelMetadataOperation","validateParams","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","params","queryParams","include","customFields","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","map","key","value","handleResponse","_","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { ChannelMetadata } from './channel';\n\nexport type GetAllChannelMetadataParams = {|\n filter?: string,\n sort?: { [key: string]: 'asc' | 'desc' | null },\n limit?: number,\n page?: {|\n next?: string,\n prev?: string,\n |},\n include?: {|\n totalCount?: boolean,\n customFields?: boolean,\n |},\n|};\n\nexport type GetAllChannelMetadataResult = {|\n status: 200,\n data: ChannelMetadata[],\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetAllChannelMetadataOperation,\n\n // No required parameters.\n validateParams: () => {},\n\n getURL: ({ config }) => `/v2/objects/${config.subscribeKey}/channels`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('channel'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include?.customFields) {\n queryParams.include = 'custom';\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = params.include?.totalCount;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n if (params?.limit) {\n queryParams.limit = params.limit;\n }\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response): GetAllChannelMetadataResult => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"get_all.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/channel/remove.js b/lib/core/endpoints/objects/channel/remove.js index 77ad705af..9a57e9d0f 100644 --- a/lib/core/endpoints/objects/channel/remove.js +++ b/lib/core/endpoints/objects/channel/remove.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -7,8 +9,6 @@ exports["default"] = void 0; var _operations = _interopRequireDefault(require("../../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - var endpoint = { getOperation: function getOperation() { return _operations["default"].PNRemoveChannelMetadataOperation; diff --git a/lib/core/endpoints/objects/channel/remove.js.map b/lib/core/endpoints/objects/channel/remove.js.map index 52643404a..0174578da 100644 --- a/lib/core/endpoints/objects/channel/remove.js.map +++ b/lib/core/endpoints/objects/channel/remove.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/channel/remove.js"],"names":["endpoint","getOperation","operationConstants","PNRemoveChannelMetadataOperation","validateParams","_","params","channel","getURL","config","subscribeKey","useDelete","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","handleResponse","response","status","data"],"mappings":";;;;;;;AAGA;;;;AAYA,IAAMA,QAAkF,GAAG;AACzFC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,gCAAzB;AAAA,GAD2E;AAGzFC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,yBAAP;AACD;AACF,GAPwF;AASzFC,EAAAA,MAAM,EAAE,sBAAaF,MAAb;AAAA,QAAGG,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,uBAAuEJ,MAAM,CAACC,OAA9E;AAAA,GATiF;AAUzFI,EAAAA,SAAS,EAAE;AAAA,WAAM,IAAN;AAAA,GAV8E;AAYzFC,EAAAA,iBAAiB,EAAE;AAAA,QAAGH,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACI,qBAAP,EAAhB;AAAA,GAZsE;AAczFC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAdwE;AAgBzFC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,SAAtB,CAAtB;AAAA,GAhB2E;AAkBzFC,EAAAA,aAAa,EAAE;AAAA,WAAO,EAAP;AAAA,GAlB0E;AAoBzFC,EAAAA,cAAc,EAAE,wBAACd,CAAD,EAAIe,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCC,MAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFiB,KAAlB;AAAA;AApByE,CAA3F;eA0BetB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { ChannelMetadata } from './channel';\n\nexport type RemoveChannelMetadataParams = {|\n channel: string,\n|};\n\nexport type RemoveChannelMetadataResult = {|\n status: 200,\n data: ChannelMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNRemoveChannelMetadataOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'Channel cannot be empty';\n }\n },\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}`,\n useDelete: () => true,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('channel'),\n\n prepareParams: () => ({}),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"remove.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/channel/remove.js"],"names":["endpoint","getOperation","operationConstants","PNRemoveChannelMetadataOperation","validateParams","_","params","channel","getURL","config","subscribeKey","useDelete","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","handleResponse","response","status","data"],"mappings":";;;;;;;;;AAGA;;AAYA,IAAMA,QAAkF,GAAG;AACzFC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,gCAAzB;AAAA,GAD2E;AAGzFC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,yBAAP;AACD;AACF,GAPwF;AASzFC,EAAAA,MAAM,EAAE,sBAAaF,MAAb;AAAA,QAAGG,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,uBAAuEJ,MAAM,CAACC,OAA9E;AAAA,GATiF;AAUzFI,EAAAA,SAAS,EAAE;AAAA,WAAM,IAAN;AAAA,GAV8E;AAYzFC,EAAAA,iBAAiB,EAAE;AAAA,QAAGH,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACI,qBAAP,EAAhB;AAAA,GAZsE;AAczFC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAdwE;AAgBzFC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,SAAtB,CAAtB;AAAA,GAhB2E;AAkBzFC,EAAAA,aAAa,EAAE;AAAA,WAAO,EAAP;AAAA,GAlB0E;AAoBzFC,EAAAA,cAAc,EAAE,wBAACd,CAAD,EAAIe,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCC,MAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFiB,KAAlB;AAAA;AApByE,CAA3F;eA0BetB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { ChannelMetadata } from './channel';\n\nexport type RemoveChannelMetadataParams = {|\n channel: string,\n|};\n\nexport type RemoveChannelMetadataResult = {|\n status: 200,\n data: ChannelMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNRemoveChannelMetadataOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'Channel cannot be empty';\n }\n },\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}`,\n useDelete: () => true,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('channel'),\n\n prepareParams: () => ({}),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"remove.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/channel/set.js b/lib/core/endpoints/objects/channel/set.js index ae869da20..5433cd219 100644 --- a/lib/core/endpoints/objects/channel/set.js +++ b/lib/core/endpoints/objects/channel/set.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -7,8 +9,6 @@ exports["default"] = void 0; var _operations = _interopRequireDefault(require("../../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - var endpoint = { getOperation: function getOperation() { return _operations["default"].PNSetChannelMetadataOperation; @@ -47,7 +47,7 @@ var endpoint = { var _ref4, _params$include; return { - include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && ['custom'] + include: ((_ref4 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref4 !== void 0 ? _ref4 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { diff --git a/lib/core/endpoints/objects/channel/set.js.map b/lib/core/endpoints/objects/channel/set.js.map index 560d7da05..5daa0ed21 100644 --- a/lib/core/endpoints/objects/channel/set.js.map +++ b/lib/core/endpoints/objects/channel/set.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/channel/set.js"],"names":["endpoint","getOperation","operationConstants","PNSetChannelMetadataOperation","validateParams","_","params","channel","data","usePatch","patchURL","config","subscribeKey","patchPayload","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","include","customFields","handleResponse","response","status"],"mappings":";;;;;;;AAGA;;;;AAgBA,IAAMA,QAA4E,GAAG;AACnFC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,6BAAzB;AAAA,GADqE;AAGnFC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,yBAAP;AACD;;AAED,QAAI,EAACD,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEE,IAAT,CAAJ,EAAmB;AACjB,aAAO,sBAAP;AACD;AACF,GAXkF;AAanFC,EAAAA,QAAQ,EAAE;AAAA,WAAM,IAAN;AAAA,GAbyE;AAenFC,EAAAA,QAAQ,EAAE,wBAAaJ,MAAb;AAAA,QAAGK,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,uBAAuEN,MAAM,CAACC,OAA9E;AAAA,GAfyE;AAiBnFM,EAAAA,YAAY,EAAE,sBAACR,CAAD,EAAIC,MAAJ;AAAA,WAAeA,MAAM,CAACE,IAAtB;AAAA,GAjBqE;AAmBnFM,EAAAA,iBAAiB,EAAE;AAAA,QAAGH,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACI,qBAAP,EAAhB;AAAA,GAnBgE;AAqBnFC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GArBkE;AAuBnFC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,SAAtB,CAAtB;AAAA,GAvBqE;AAyBnFC,EAAAA,aAAa,EAAE,uBAACf,CAAD,EAAIC,MAAJ;AAAA;;AAAA,WAAgB;AAC7Be,MAAAA,OAAO,EAAE,UAACf,MAAD,aAACA,MAAD,0CAACA,MAAM,CAAEe,OAAT,oDAAC,gBAAiBC,YAAlB,yCAAkC,IAAlC,KAA2C,CAAC,QAAD;AADvB,KAAhB;AAAA,GAzBoE;AA6BnFC,EAAAA,cAAc,EAAE,wBAAClB,CAAD,EAAImB,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCjB,MAAAA,IAAI,EAAEgB,QAAQ,CAAChB;AAFiB,KAAlB;AAAA;AA7BmE,CAArF;eAmCeR,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { ChannelMetadata } from './channel';\n\nexport type SetChannelMetadataParams = {|\n channel: string,\n include?: {|\n customFields: ?boolean,\n |},\n data: $Shape,\n|};\n\nexport type SetChannelMetadataResult = {|\n status: 200,\n data: ChannelMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNSetChannelMetadataOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'Channel cannot be empty';\n }\n\n if (!params?.data) {\n return 'Data cannot be empty';\n }\n },\n\n usePatch: () => true,\n\n patchURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}`,\n\n patchPayload: (_, params) => params.data,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('channel'),\n\n prepareParams: (_, params) => ({\n include: (params?.include?.customFields ?? true) && ['custom'],\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"set.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/channel/set.js"],"names":["endpoint","getOperation","operationConstants","PNSetChannelMetadataOperation","validateParams","_","params","channel","data","usePatch","patchURL","config","subscribeKey","patchPayload","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","include","customFields","handleResponse","response","status"],"mappings":";;;;;;;;;AAGA;;AAgBA,IAAMA,QAA4E,GAAG;AACnFC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,6BAAzB;AAAA,GADqE;AAGnFC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,OAAT,CAAJ,EAAsB;AACpB,aAAO,yBAAP;AACD;;AAED,QAAI,EAACD,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEE,IAAT,CAAJ,EAAmB;AACjB,aAAO,sBAAP;AACD;AACF,GAXkF;AAanFC,EAAAA,QAAQ,EAAE;AAAA,WAAM,IAAN;AAAA,GAbyE;AAenFC,EAAAA,QAAQ,EAAE,wBAAaJ,MAAb;AAAA,QAAGK,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,uBAAuEN,MAAM,CAACC,OAA9E;AAAA,GAfyE;AAiBnFM,EAAAA,YAAY,EAAE,sBAACR,CAAD,EAAIC,MAAJ;AAAA,WAAeA,MAAM,CAACE,IAAtB;AAAA,GAjBqE;AAmBnFM,EAAAA,iBAAiB,EAAE;AAAA,QAAGH,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACI,qBAAP,EAAhB;AAAA,GAnBgE;AAqBnFC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GArBkE;AAuBnFC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,SAAtB,CAAtB;AAAA,GAvBqE;AAyBnFC,EAAAA,aAAa,EAAE,uBAACf,CAAD,EAAIC,MAAJ;AAAA;;AAAA,WAAgB;AAC7Be,MAAAA,OAAO,EAAE,UAACf,MAAD,aAACA,MAAD,0CAACA,MAAM,CAAEe,OAAT,oDAAC,gBAAiBC,YAAlB,yCAAkC,IAAlC,KAA2C;AADvB,KAAhB;AAAA,GAzBoE;AA6BnFC,EAAAA,cAAc,EAAE,wBAAClB,CAAD,EAAImB,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCjB,MAAAA,IAAI,EAAEgB,QAAQ,CAAChB;AAFiB,KAAlB;AAAA;AA7BmE,CAArF;eAmCeR,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { ChannelMetadata } from './channel';\n\nexport type SetChannelMetadataParams = {|\n channel: string,\n include?: {|\n customFields: ?boolean,\n |},\n data: $Shape,\n|};\n\nexport type SetChannelMetadataResult = {|\n status: 200,\n data: ChannelMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNSetChannelMetadataOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'Channel cannot be empty';\n }\n\n if (!params?.data) {\n return 'Data cannot be empty';\n }\n },\n\n usePatch: () => true,\n\n patchURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}`,\n\n patchPayload: (_, params) => params.data,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('channel'),\n\n prepareParams: (_, params) => ({\n include: (params?.include?.customFields ?? true) && 'custom',\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"set.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/member/get.js b/lib/core/endpoints/objects/member/get.js index e4622bf29..27bb88861 100644 --- a/lib/core/endpoints/objects/member/get.js +++ b/lib/core/endpoints/objects/member/get.js @@ -1,21 +1,15 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(require("../../../constants/operations")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(require("../../../constants/operations")); var endpoint = { getOperation: function getOperation() { @@ -62,6 +56,8 @@ var endpoint = { if ((_ref4 = (_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.UUIDFields) !== null && _ref4 !== void 0 ? _ref4 : true) { queryParams.include.push('uuid'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -92,7 +88,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref6) { - var _ref7 = _slicedToArray(_ref6, 2), + var _ref7 = (0, _slicedToArray2["default"])(_ref6, 2), key = _ref7[0], value = _ref7[1]; diff --git a/lib/core/endpoints/objects/member/get.js.map b/lib/core/endpoints/objects/member/get.js.map index a4c2c254c..0b8f87efc 100644 --- a/lib/core/endpoints/objects/member/get.js.map +++ b/lib/core/endpoints/objects/member/get.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/member/get.js"],"names":["endpoint","getOperation","operationConstants","PNGetMembersOperation","validateParams","_","params","channel","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","queryParams","include","customFields","push","customUUIDFields","UUIDFields","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","map","key","value","handleResponse","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { Member, PaginatedResultParams } from './member';\n\nexport type GetMembersParams = {\n channel: string,\n} & PaginatedResultParams;\n\nexport type GetMembersResult = {|\n status: 200,\n data: Member[],\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetMembersOperation,\n\n // No required parameters.\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'UUID cannot be empty';\n }\n },\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}/uuids`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('member'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include) {\n queryParams.include = [];\n\n if (params.include?.customFields) {\n queryParams.include.push('custom');\n }\n\n if (params.include?.customUUIDFields) {\n queryParams.include.push('uuid.custom');\n }\n\n if (params.include?.UUIDFields ?? true) {\n queryParams.include.push('uuid');\n }\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = params.include?.totalCount;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n queryParams.limit = params?.limit ?? 100;\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response): GetMembersResult => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"get.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/member/get.js"],"names":["endpoint","getOperation","operationConstants","PNGetMembersOperation","validateParams","_","params","channel","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","queryParams","include","customFields","push","customUUIDFields","UUIDFields","join","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","map","key","value","handleResponse","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { Member, PaginatedResultParams } from './member';\n\nexport type GetMembersParams = {\n channel: string,\n} & PaginatedResultParams;\n\nexport type GetMembersResult = {|\n status: 200,\n data: Member[],\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetMembersOperation,\n\n // No required parameters.\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'UUID cannot be empty';\n }\n },\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}/uuids`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('member'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include) {\n queryParams.include = [];\n\n if (params.include?.customFields) {\n queryParams.include.push('custom');\n }\n\n if (params.include?.customUUIDFields) {\n queryParams.include.push('uuid.custom');\n }\n\n if (params.include?.UUIDFields ?? true) {\n queryParams.include.push('uuid');\n }\n\n queryParams.include = queryParams.include.join(',');\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = params.include?.totalCount;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n queryParams.limit = params?.limit ?? 100;\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response): GetMembersResult => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"get.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/member/set.js b/lib/core/endpoints/objects/member/set.js index 2d977a18b..ef99e3d03 100644 --- a/lib/core/endpoints/objects/member/set.js +++ b/lib/core/endpoints/objects/member/set.js @@ -1,23 +1,17 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(require("../../../constants/operations")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _operations = _interopRequireDefault(require("../../../constants/operations")); var endpoint = { getOperation: function getOperation() { @@ -40,7 +34,7 @@ var endpoint = { return "/v2/objects/".concat(config.subscribeKey, "/channels/").concat(params.channel, "/uuids"); }, patchPayload: function patchPayload(_, params) { - return _defineProperty({ + return (0, _defineProperty2["default"])({ set: [], remove: [] }, params.type, params.uuids.map(function (uuid) { @@ -92,6 +86,8 @@ var endpoint = { if ((_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.UUIDFields) { queryParams.include.push('uuid'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -122,7 +118,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), + var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2), key = _ref6[0], value = _ref6[1]; diff --git a/lib/core/endpoints/objects/member/set.js.map b/lib/core/endpoints/objects/member/set.js.map index ee6994d20..a1c9dbec7 100644 --- a/lib/core/endpoints/objects/member/set.js.map +++ b/lib/core/endpoints/objects/member/set.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/member/set.js"],"names":["endpoint","getOperation","operationConstants","PNSetMembersOperation","validateParams","_","params","channel","uuids","length","usePatch","patchURL","config","subscribeKey","patchPayload","set","remove","type","map","uuid","id","custom","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","queryParams","include","customFields","push","customUUIDFields","UUIDFields","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","key","value","handleResponse","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { Member, PaginatedResultParams } from './member';\n\ntype CommonParams = {\n channel: string,\n};\n\nexport type RemoveMembersParams = {\n type: 'delete',\n uuids: (string | { id: string, custom?: empty })[],\n} & CommonParams & PaginatedResultParams;\n\nexport type UpsertMembersParams = {\n type: 'set',\n uuids: (string | { id: string, custom?: any })[]\n} & CommonParams & PaginatedResultParams;\n\nexport type SetMembersParams = RemoveMembersParams | UpsertMembersParams;\n\nexport type SetMembersResult = {|\n status: 200,\n data: Member,\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNSetMembersOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'Channel cannot be empty';\n }\n\n if (!params?.uuids || params?.uuids.length === 0) {\n return 'UUIDs cannot be empty';\n }\n },\n\n usePatch: () => true,\n\n patchURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}/uuids`,\n\n patchPayload: (_, params) => ({\n set: [],\n remove: [],\n [params.type]: params.uuids.map((uuid) => {\n if (typeof uuid === 'string') {\n return {\n uuid: {\n id: uuid\n }\n };\n } else {\n return {\n uuid: { id: uuid.id },\n custom: uuid.custom,\n };\n }\n })\n }),\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('member'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include) {\n queryParams.include = [];\n\n if (params.include?.customFields) {\n queryParams.include.push('custom');\n }\n\n if (params.include?.customUUIDFields) {\n queryParams.include.push('uuid.custom');\n }\n\n if (params.include?.UUIDFields) {\n queryParams.include.push('uuid');\n }\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = true;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n if (params?.limit) {\n queryParams.limit = params.limit;\n }\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"set.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/member/set.js"],"names":["endpoint","getOperation","operationConstants","PNSetMembersOperation","validateParams","_","params","channel","uuids","length","usePatch","patchURL","config","subscribeKey","patchPayload","set","remove","type","map","uuid","id","custom","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","queryParams","include","customFields","push","customUUIDFields","UUIDFields","join","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","key","value","handleResponse","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { Member, PaginatedResultParams } from './member';\n\ntype CommonParams = {\n channel: string,\n};\n\nexport type RemoveMembersParams = {\n type: 'delete',\n uuids: (string | { id: string, custom?: empty })[],\n} & CommonParams &\n PaginatedResultParams;\n\nexport type UpsertMembersParams = {\n type: 'set',\n uuids: (string | { id: string, custom?: any })[],\n} & CommonParams &\n PaginatedResultParams;\n\nexport type SetMembersParams = RemoveMembersParams | UpsertMembersParams;\n\nexport type SetMembersResult = {|\n status: 200,\n data: Member,\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNSetMembersOperation,\n\n validateParams: (_, params) => {\n if (!params?.channel) {\n return 'Channel cannot be empty';\n }\n\n if (!params?.uuids || params?.uuids.length === 0) {\n return 'UUIDs cannot be empty';\n }\n },\n\n usePatch: () => true,\n\n patchURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/channels/${params.channel}/uuids`,\n\n patchPayload: (_, params) => ({\n set: [],\n remove: [],\n [params.type]: params.uuids.map((uuid) => {\n if (typeof uuid === 'string') {\n return {\n uuid: {\n id: uuid,\n },\n };\n } else {\n return {\n uuid: { id: uuid.id },\n custom: uuid.custom,\n };\n }\n }),\n }),\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('member'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include) {\n queryParams.include = [];\n\n if (params.include?.customFields) {\n queryParams.include.push('custom');\n }\n\n if (params.include?.customUUIDFields) {\n queryParams.include.push('uuid.custom');\n }\n\n if (params.include?.UUIDFields) {\n queryParams.include.push('uuid');\n }\n\n queryParams.include = queryParams.include.join(',');\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = true;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n if (params?.limit) {\n queryParams.limit = params.limit;\n }\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"set.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/membership/get.js b/lib/core/endpoints/objects/membership/get.js index 947239a5a..dc0495b7a 100644 --- a/lib/core/endpoints/objects/membership/get.js +++ b/lib/core/endpoints/objects/membership/get.js @@ -1,21 +1,15 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(require("../../../constants/operations")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(require("../../../constants/operations")); var endpoint = { getOperation: function getOperation() { @@ -62,6 +56,8 @@ var endpoint = { if ((_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.channelFields) { queryParams.include.push('channel'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -92,7 +88,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), + var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2), key = _ref6[0], value = _ref6[1]; diff --git a/lib/core/endpoints/objects/membership/get.js.map b/lib/core/endpoints/objects/membership/get.js.map index b4c004d18..492ca2afb 100644 --- a/lib/core/endpoints/objects/membership/get.js.map +++ b/lib/core/endpoints/objects/membership/get.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/membership/get.js"],"names":["endpoint","getOperation","operationConstants","PNGetMembershipsOperation","validateParams","_","params","uuid","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","queryParams","include","customFields","push","customChannelFields","channelFields","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","map","key","value","handleResponse","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { Membership, PaginatedResultParams } from './membership';\n\nexport type GetMembershipsParams = {\n uuid: string,\n} & PaginatedResultParams;\n\nexport type GetMembershipsResult = {|\n status: 200,\n data: Membership[],\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetMembershipsOperation,\n\n validateParams: (_, params) => {\n if (!params?.uuid) {\n return 'UUID cannot be empty';\n }\n },\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params.uuid}/channels`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('membership'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include) {\n queryParams.include = [];\n\n if (params.include?.customFields) {\n queryParams.include.push('custom');\n }\n\n if (params.include?.customChannelFields) {\n queryParams.include.push('channel.custom');\n }\n\n if (params.include?.channelFields) {\n queryParams.include.push('channel');\n }\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = params.include?.totalCount;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n queryParams.limit = params?.limit ?? 100;\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response): GetMembershipsResult => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"get.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/membership/get.js"],"names":["endpoint","getOperation","operationConstants","PNGetMembershipsOperation","validateParams","_","params","uuid","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","queryParams","include","customFields","push","customChannelFields","channelFields","join","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","map","key","value","handleResponse","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { Membership, PaginatedResultParams } from './membership';\n\nexport type GetMembershipsParams = {\n uuid: string,\n} & PaginatedResultParams;\n\nexport type GetMembershipsResult = {|\n status: 200,\n data: Membership[],\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetMembershipsOperation,\n\n validateParams: (_, params) => {\n if (!params?.uuid) {\n return 'UUID cannot be empty';\n }\n },\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params.uuid}/channels`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('membership'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include) {\n queryParams.include = [];\n\n if (params.include?.customFields) {\n queryParams.include.push('custom');\n }\n\n if (params.include?.customChannelFields) {\n queryParams.include.push('channel.custom');\n }\n\n if (params.include?.channelFields) {\n queryParams.include.push('channel');\n }\n\n queryParams.include = queryParams.include.join(',');\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = params.include?.totalCount;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n queryParams.limit = params?.limit ?? 100;\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response): GetMembershipsResult => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"get.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/membership/set.js b/lib/core/endpoints/objects/membership/set.js index 097044987..1416b12f6 100644 --- a/lib/core/endpoints/objects/membership/set.js +++ b/lib/core/endpoints/objects/membership/set.js @@ -1,23 +1,17 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(require("../../../constants/operations")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _operations = _interopRequireDefault(require("../../../constants/operations")); var endpoint = { getOperation: function getOperation() { @@ -38,7 +32,7 @@ var endpoint = { return "/v2/objects/".concat(config.subscribeKey, "/uuids/").concat((_params$uuid = params.uuid) !== null && _params$uuid !== void 0 ? _params$uuid : config.getUUID(), "/channels"); }, patchPayload: function patchPayload(_, params) { - return _defineProperty({ + return (0, _defineProperty2["default"])({ set: [], remove: [] }, params.type, params.channels.map(function (channel) { @@ -90,6 +84,8 @@ var endpoint = { if ((_params$include3 = params.include) === null || _params$include3 === void 0 ? void 0 : _params$include3.channelFields) { queryParams.include.push('channel'); } + + queryParams.include = queryParams.include.join(','); } if (params === null || params === void 0 ? void 0 : (_params$include4 = params.include) === null || _params$include4 === void 0 ? void 0 : _params$include4.totalCount) { @@ -120,7 +116,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), + var _ref6 = (0, _slicedToArray2["default"])(_ref5, 2), key = _ref6[0], value = _ref6[1]; diff --git a/lib/core/endpoints/objects/membership/set.js.map b/lib/core/endpoints/objects/membership/set.js.map index 7710de266..1c3020e80 100644 --- a/lib/core/endpoints/objects/membership/set.js.map +++ b/lib/core/endpoints/objects/membership/set.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/membership/set.js"],"names":["endpoint","getOperation","operationConstants","PNSetMembershipsOperation","validateParams","_","params","channels","length","usePatch","patchURL","config","subscribeKey","uuid","getUUID","patchPayload","set","remove","type","map","channel","id","custom","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","queryParams","include","customFields","push","customChannelFields","channelFields","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","key","value","handleResponse","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { Membership, PaginatedResultParams } from './membership';\n\ntype CommonParams = {|\n uuid?: string,\n|};\n\nexport type RemoveMembershipsParams = {|\n type: 'delete',\n channels: (string | { id: string, custom?: empty })[],\n|} & CommonParams & PaginatedResultParams;\n\nexport type UpsertMembershipsParams = {|\n type: 'set',\n channels: (string | { id: string, custom?: any })[],\n|} & CommonParams & PaginatedResultParams;\n\nexport type SetMembershipsParams = RemoveMembershipsParams | UpsertMembershipsParams;\n\nexport type SetMembershipsResult = {|\n status: 200,\n data: Membership,\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNSetMembershipsOperation,\n\n validateParams: (_, params) => {\n if (!params?.channels || params?.channels.length === 0) {\n return 'Channels cannot be empty';\n }\n },\n\n usePatch: () => true,\n\n patchURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params.uuid ?? config.getUUID()}/channels`,\n\n patchPayload: (_, params) => ({\n set: [],\n remove: [],\n [params.type]: params.channels.map((channel) => {\n if (typeof channel === 'string') {\n return {\n channel: {\n id: channel\n }\n };\n } else {\n return {\n channel: { id: channel.id },\n custom: channel.custom,\n };\n }\n })\n }),\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('membership'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include) {\n queryParams.include = [];\n\n if (params.include?.customFields) {\n queryParams.include.push('custom');\n }\n\n if (params.include?.customChannelFields) {\n queryParams.include.push('channel.custom');\n }\n\n if (params.include?.channelFields) {\n queryParams.include.push('channel');\n }\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = true;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n if (params?.limit) {\n queryParams.limit = params.limit;\n }\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"set.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/membership/set.js"],"names":["endpoint","getOperation","operationConstants","PNSetMembershipsOperation","validateParams","_","params","channels","length","usePatch","patchURL","config","subscribeKey","uuid","getUUID","patchPayload","set","remove","type","map","channel","id","custom","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","queryParams","include","customFields","push","customChannelFields","channelFields","join","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","key","value","handleResponse","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { Membership, PaginatedResultParams } from './membership';\n\ntype CommonParams = {|\n uuid?: string,\n|};\n\nexport type RemoveMembershipsParams = {|\n type: 'delete',\n channels: (string | { id: string, custom?: empty })[],\n|} & CommonParams &\n PaginatedResultParams;\n\nexport type UpsertMembershipsParams = {|\n type: 'set',\n channels: (string | { id: string, custom?: any })[],\n|} & CommonParams &\n PaginatedResultParams;\n\nexport type SetMembershipsParams = RemoveMembershipsParams | UpsertMembershipsParams;\n\nexport type SetMembershipsResult = {|\n status: 200,\n data: Membership,\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNSetMembershipsOperation,\n\n validateParams: (_, params) => {\n if (!params?.channels || params?.channels.length === 0) {\n return 'Channels cannot be empty';\n }\n },\n\n usePatch: () => true,\n\n patchURL: ({ config }, params) =>\n `/v2/objects/${config.subscribeKey}/uuids/${params.uuid ?? config.getUUID()}/channels`,\n\n patchPayload: (_, params) => ({\n set: [],\n remove: [],\n [params.type]: params.channels.map((channel) => {\n if (typeof channel === 'string') {\n return {\n channel: {\n id: channel,\n },\n };\n } else {\n return {\n channel: { id: channel.id },\n custom: channel.custom,\n };\n }\n }),\n }),\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('membership'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include) {\n queryParams.include = [];\n\n if (params.include?.customFields) {\n queryParams.include.push('custom');\n }\n\n if (params.include?.customChannelFields) {\n queryParams.include.push('channel.custom');\n }\n\n if (params.include?.channelFields) {\n queryParams.include.push('channel');\n }\n\n queryParams.include = queryParams.include.join(',');\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = true;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n if (params?.limit) {\n queryParams.limit = params.limit;\n }\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n prev: response.prev,\n next: response.next,\n }),\n};\n\nexport default endpoint;\n"],"file":"set.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/uuid/get.js b/lib/core/endpoints/objects/uuid/get.js index 0399dadf6..5bdea754c 100644 --- a/lib/core/endpoints/objects/uuid/get.js +++ b/lib/core/endpoints/objects/uuid/get.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -7,8 +9,6 @@ exports["default"] = void 0; var _operations = _interopRequireDefault(require("../../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - var endpoint = { getOperation: function getOperation() { return _operations["default"].PNGetUUIDMetadataOperation; @@ -37,7 +37,7 @@ var endpoint = { var config = _ref5.config; return { uuid: (_ref6 = params === null || params === void 0 ? void 0 : params.uuid) !== null && _ref6 !== void 0 ? _ref6 : config.getUUID(), - include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && ['custom'] + include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { diff --git a/lib/core/endpoints/objects/uuid/get.js.map b/lib/core/endpoints/objects/uuid/get.js.map index 6f6c35aad..88de2ad9b 100644 --- a/lib/core/endpoints/objects/uuid/get.js.map +++ b/lib/core/endpoints/objects/uuid/get.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/uuid/get.js"],"names":["endpoint","getOperation","operationConstants","PNGetUUIDMetadataOperation","validateParams","getURL","params","config","subscribeKey","uuid","getUUID","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","include","customFields","handleResponse","_","response","status","data"],"mappings":";;;;;;;AAGA;;;;AAeA,IAAMA,QAAsE,GAAG;AAC7EC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,0BAAzB;AAAA,GAD+D;AAI7EC,EAAAA,cAAc,EAAE,0BAAM,CAAE,CAJqD;AAM7EC,EAAAA,MAAM,EAAE,sBAAaC,MAAb;AAAA;;AAAA,QAAGC,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,6BAAoEF,MAApE,aAAoEA,MAApE,uBAAoEA,MAAM,CAAEG,IAA5E,yCAAoFF,MAAM,CAACG,OAAP,EAApF;AAAA,GANqE;AAQ7EC,EAAAA,iBAAiB,EAAE;AAAA,QAAGJ,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACK,qBAAP,EAAhB;AAAA,GAR0D;AAU7EC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAV4D;AAY7EC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,MAAtB,CAAtB;AAAA,GAZ+D;AAc7EC,EAAAA,aAAa,EAAE,8BAAaX,MAAb;AAAA;;AAAA,QAAGC,MAAH,SAAGA,MAAH;AAAA,WAAyB;AACtCE,MAAAA,IAAI,WAAEH,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEG,IAAV,yCAAkBF,MAAM,CAACG,OAAP,EADgB;AAEtCQ,MAAAA,OAAO,EAAE,UAACZ,MAAD,aAACA,MAAD,0CAACA,MAAM,CAAEY,OAAT,oDAAC,gBAAiBC,YAAlB,yCAAkC,IAAlC,KAA2C,CAAC,QAAD;AAFd,KAAzB;AAAA,GAd8D;AAmB7EC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCC,MAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFiB,KAAlB;AAAA;AAnB6D,CAA/E;eAyBexB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { UUIDMetadata } from './uuid';\n\nexport type GetUUIDMetadataParams = {|\n uuid?: string,\n include?: {|\n customFields: ?boolean,\n |},\n|};\n\nexport type GetUUIDMetadataResult = {|\n status: 200,\n data: UUIDMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetUUIDMetadataOperation,\n\n // No required parameters.\n validateParams: () => {},\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params?.uuid ?? config.getUUID()}`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('user'),\n\n prepareParams: ({ config }, params) => ({\n uuid: params?.uuid ?? config.getUUID(),\n include: (params?.include?.customFields ?? true) && ['custom'],\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"get.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/uuid/get.js"],"names":["endpoint","getOperation","operationConstants","PNGetUUIDMetadataOperation","validateParams","getURL","params","config","subscribeKey","uuid","getUUID","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","include","customFields","handleResponse","_","response","status","data"],"mappings":";;;;;;;;;AAGA;;AAeA,IAAMA,QAAsE,GAAG;AAC7EC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,0BAAzB;AAAA,GAD+D;AAI7EC,EAAAA,cAAc,EAAE,0BAAM,CAAE,CAJqD;AAM7EC,EAAAA,MAAM,EAAE,sBAAaC,MAAb;AAAA;;AAAA,QAAGC,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,6BAAoEF,MAApE,aAAoEA,MAApE,uBAAoEA,MAAM,CAAEG,IAA5E,yCAAoFF,MAAM,CAACG,OAAP,EAApF;AAAA,GANqE;AAQ7EC,EAAAA,iBAAiB,EAAE;AAAA,QAAGJ,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACK,qBAAP,EAAhB;AAAA,GAR0D;AAU7EC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAV4D;AAY7EC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,MAAtB,CAAtB;AAAA,GAZ+D;AAc7EC,EAAAA,aAAa,EAAE,8BAAaX,MAAb;AAAA;;AAAA,QAAGC,MAAH,SAAGA,MAAH;AAAA,WAAyB;AACtCE,MAAAA,IAAI,WAAEH,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEG,IAAV,yCAAkBF,MAAM,CAACG,OAAP,EADgB;AAEtCQ,MAAAA,OAAO,EAAE,UAACZ,MAAD,aAACA,MAAD,0CAACA,MAAM,CAAEY,OAAT,oDAAC,gBAAiBC,YAAlB,yCAAkC,IAAlC,KAA2C;AAFd,KAAzB;AAAA,GAd8D;AAmB7EC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCC,MAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFiB,KAAlB;AAAA;AAnB6D,CAA/E;eAyBexB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { UUIDMetadata } from './uuid';\n\nexport type GetUUIDMetadataParams = {|\n uuid?: string,\n include?: {|\n customFields: ?boolean,\n |},\n|};\n\nexport type GetUUIDMetadataResult = {|\n status: 200,\n data: UUIDMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetUUIDMetadataOperation,\n\n // No required parameters.\n validateParams: () => {},\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params?.uuid ?? config.getUUID()}`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('user'),\n\n prepareParams: ({ config }, params) => ({\n uuid: params?.uuid ?? config.getUUID(),\n include: (params?.include?.customFields ?? true) && 'custom',\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"get.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/uuid/get_all.js b/lib/core/endpoints/objects/uuid/get_all.js index c7584adb9..4b4ad78ec 100644 --- a/lib/core/endpoints/objects/uuid/get_all.js +++ b/lib/core/endpoints/objects/uuid/get_all.js @@ -1,21 +1,15 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _operations = _interopRequireDefault(require("../../../constants/operations")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _operations = _interopRequireDefault(require("../../../constants/operations")); var endpoint = { getOperation: function getOperation() { @@ -43,7 +37,7 @@ var endpoint = { var queryParams = {}; if (params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) { - queryParams.include = ['custom']; + queryParams.include = 'custom'; } if (params === null || params === void 0 ? void 0 : (_params$include2 = params.include) === null || _params$include2 === void 0 ? void 0 : _params$include2.totalCount) { @@ -74,7 +68,7 @@ var endpoint = { var _params$sort; queryParams.sort = Object.entries((_params$sort = params.sort) !== null && _params$sort !== void 0 ? _params$sort : {}).map(function (_ref4) { - var _ref5 = _slicedToArray(_ref4, 2), + var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2), key = _ref5[0], value = _ref5[1]; diff --git a/lib/core/endpoints/objects/uuid/get_all.js.map b/lib/core/endpoints/objects/uuid/get_all.js.map index a60996d4f..3a971cce3 100644 --- a/lib/core/endpoints/objects/uuid/get_all.js.map +++ b/lib/core/endpoints/objects/uuid/get_all.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/uuid/get_all.js"],"names":["endpoint","getOperation","operationConstants","PNGetAllUUIDMetadataOperation","validateParams","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","params","queryParams","include","customFields","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","map","key","value","handleResponse","_","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { UUIDMetadata } from './uuid';\n\nexport type GetAllUUIDMetadataParams = {|\n filter?: string,\n sort?: { [key: string]: 'asc' | 'desc' | null },\n limit?: number,\n page?: {|\n next?: string,\n prev?: string,\n |},\n include?: {|\n totalCount?: boolean,\n customFields?: boolean,\n |},\n|};\n\nexport type GetAllUUIDMetadataResult = {|\n status: 200,\n data: UUIDMetadata[],\n totalCount?: number,\n prev?: string,\n next?: string\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetAllUUIDMetadataOperation,\n\n // No required parameters.\n validateParams: () => {},\n\n getURL: ({ config }) => `/v2/objects/${config.subscribeKey}/uuids`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('user'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include?.customFields) {\n queryParams.include = ['custom'];\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = params.include?.totalCount;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n queryParams.limit = params?.limit;\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response): GetAllUUIDMetadataResult => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n next: response.next,\n prev: response.prev,\n }),\n};\n\nexport default endpoint;\n"],"file":"get_all.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/uuid/get_all.js"],"names":["endpoint","getOperation","operationConstants","PNGetAllUUIDMetadataOperation","validateParams","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","_modules","params","queryParams","include","customFields","totalCount","count","page","next","start","prev","end","filter","limit","sort","Object","entries","map","key","value","handleResponse","_","response","status","data"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { UUIDMetadata } from './uuid';\n\nexport type GetAllUUIDMetadataParams = {|\n filter?: string,\n sort?: { [key: string]: 'asc' | 'desc' | null },\n limit?: number,\n page?: {|\n next?: string,\n prev?: string,\n |},\n include?: {|\n totalCount?: boolean,\n customFields?: boolean,\n |},\n|};\n\nexport type GetAllUUIDMetadataResult = {|\n status: 200,\n data: UUIDMetadata[],\n totalCount?: number,\n prev?: string,\n next?: string,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNGetAllUUIDMetadataOperation,\n\n // No required parameters.\n validateParams: () => {},\n\n getURL: ({ config }) => `/v2/objects/${config.subscribeKey}/uuids`,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('user'),\n\n prepareParams: (_modules, params) => {\n const queryParams = {};\n\n if (params?.include?.customFields) {\n queryParams.include = 'custom';\n }\n\n if (params?.include?.totalCount) {\n queryParams.count = params.include?.totalCount;\n }\n\n if (params?.page?.next) {\n queryParams.start = params.page?.next;\n }\n\n if (params?.page?.prev) {\n queryParams.end = params.page?.prev;\n }\n\n if (params?.filter) {\n queryParams.filter = params.filter;\n }\n\n queryParams.limit = params?.limit;\n\n if (params?.sort) {\n queryParams.sort = Object.entries(params.sort ?? {}).map(([key, value]) => {\n if (value === 'asc' || value === 'desc') {\n return `${key}:${value}`;\n } else {\n return key;\n }\n });\n }\n\n return queryParams;\n },\n\n handleResponse: (_, response): GetAllUUIDMetadataResult => ({\n status: response.status,\n data: response.data,\n totalCount: response.totalCount,\n next: response.next,\n prev: response.prev,\n }),\n};\n\nexport default endpoint;\n"],"file":"get_all.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/uuid/remove.js b/lib/core/endpoints/objects/uuid/remove.js index e758b4dbc..515ebfd95 100644 --- a/lib/core/endpoints/objects/uuid/remove.js +++ b/lib/core/endpoints/objects/uuid/remove.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -7,8 +9,6 @@ exports["default"] = void 0; var _operations = _interopRequireDefault(require("../../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - var endpoint = { getOperation: function getOperation() { return _operations["default"].PNRemoveUUIDMetadataOperation; diff --git a/lib/core/endpoints/objects/uuid/remove.js.map b/lib/core/endpoints/objects/uuid/remove.js.map index 00534fa40..48f3e8a62 100644 --- a/lib/core/endpoints/objects/uuid/remove.js.map +++ b/lib/core/endpoints/objects/uuid/remove.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/uuid/remove.js"],"names":["endpoint","getOperation","operationConstants","PNRemoveUUIDMetadataOperation","validateParams","getURL","params","config","subscribeKey","uuid","getUUID","useDelete","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","handleResponse","_","response","status","data"],"mappings":";;;;;;;AAGA;;;;AAYA,IAAMA,QAA4E,GAAG;AACnFC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,6BAAzB;AAAA,GADqE;AAInFC,EAAAA,cAAc,EAAE,0BAAM,CAAE,CAJ2D;AAMnFC,EAAAA,MAAM,EAAE,sBAAaC,MAAb;AAAA;;AAAA,QAAGC,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,6BAAoEF,MAApE,aAAoEA,MAApE,uBAAoEA,MAAM,CAAEG,IAA5E,yCAAoFF,MAAM,CAACG,OAAP,EAApF;AAAA,GAN2E;AAOnFC,EAAAA,SAAS,EAAE;AAAA,WAAM,IAAN;AAAA,GAPwE;AASnFC,EAAAA,iBAAiB,EAAE;AAAA,QAAGL,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACM,qBAAP,EAAhB;AAAA,GATgE;AAWnFC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAXkE;AAanFC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,MAAtB,CAAtB;AAAA,GAbqE;AAenFC,EAAAA,aAAa,EAAE,8BAAaZ,MAAb;AAAA;;AAAA,QAAGC,MAAH,SAAGA,MAAH;AAAA,WAAyB;AACtCE,MAAAA,IAAI,WAAEH,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEG,IAAV,yCAAkBF,MAAM,CAACG,OAAP;AADgB,KAAzB;AAAA,GAfoE;AAmBnFS,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCC,MAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFiB,KAAlB;AAAA;AAnBmE,CAArF;eAyBevB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { UUIDMetadata } from './uuid';\n\nexport type RemoveUUIDMetadataParams = {|\n uuid?: string,\n|};\n\nexport type RemoveUUIDMetadataResult = {|\n status: 200,\n data: UUIDMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNRemoveUUIDMetadataOperation,\n\n // No required parameters.\n validateParams: () => {},\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params?.uuid ?? config.getUUID()}`,\n useDelete: () => true,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('user'),\n\n prepareParams: ({ config }, params) => ({\n uuid: params?.uuid ?? config.getUUID(),\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"remove.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/uuid/remove.js"],"names":["endpoint","getOperation","operationConstants","PNRemoveUUIDMetadataOperation","validateParams","getURL","params","config","subscribeKey","uuid","getUUID","useDelete","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","handleResponse","_","response","status","data"],"mappings":";;;;;;;;;AAGA;;AAYA,IAAMA,QAA4E,GAAG;AACnFC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,6BAAzB;AAAA,GADqE;AAInFC,EAAAA,cAAc,EAAE,0BAAM,CAAE,CAJ2D;AAMnFC,EAAAA,MAAM,EAAE,sBAAaC,MAAb;AAAA;;AAAA,QAAGC,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,6BAAoEF,MAApE,aAAoEA,MAApE,uBAAoEA,MAAM,CAAEG,IAA5E,yCAAoFF,MAAM,CAACG,OAAP,EAApF;AAAA,GAN2E;AAOnFC,EAAAA,SAAS,EAAE;AAAA,WAAM,IAAN;AAAA,GAPwE;AASnFC,EAAAA,iBAAiB,EAAE;AAAA,QAAGL,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACM,qBAAP,EAAhB;AAAA,GATgE;AAWnFC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAXkE;AAanFC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,MAAtB,CAAtB;AAAA,GAbqE;AAenFC,EAAAA,aAAa,EAAE,8BAAaZ,MAAb;AAAA;;AAAA,QAAGC,MAAH,SAAGA,MAAH;AAAA,WAAyB;AACtCE,MAAAA,IAAI,WAAEH,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEG,IAAV,yCAAkBF,MAAM,CAACG,OAAP;AADgB,KAAzB;AAAA,GAfoE;AAmBnFS,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCC,MAAAA,IAAI,EAAEF,QAAQ,CAACE;AAFiB,KAAlB;AAAA;AAnBmE,CAArF;eAyBevB,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { UUIDMetadata } from './uuid';\n\nexport type RemoveUUIDMetadataParams = {|\n uuid?: string,\n|};\n\nexport type RemoveUUIDMetadataResult = {|\n status: 200,\n data: UUIDMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNRemoveUUIDMetadataOperation,\n\n // No required parameters.\n validateParams: () => {},\n\n getURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params?.uuid ?? config.getUUID()}`,\n useDelete: () => true,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('user'),\n\n prepareParams: ({ config }, params) => ({\n uuid: params?.uuid ?? config.getUUID(),\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"remove.js"} \ No newline at end of file diff --git a/lib/core/endpoints/objects/uuid/set.js b/lib/core/endpoints/objects/uuid/set.js index f6e408335..3d8796a8a 100644 --- a/lib/core/endpoints/objects/uuid/set.js +++ b/lib/core/endpoints/objects/uuid/set.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -7,8 +9,6 @@ exports["default"] = void 0; var _operations = _interopRequireDefault(require("../../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - var endpoint = { getOperation: function getOperation() { return _operations["default"].PNSetUUIDMetadataOperation; @@ -47,7 +47,7 @@ var endpoint = { var config = _ref5.config; return { uuid: (_ref6 = params === null || params === void 0 ? void 0 : params.uuid) !== null && _ref6 !== void 0 ? _ref6 : config.getUUID(), - include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && ['custom'] + include: ((_ref7 = params === null || params === void 0 ? void 0 : (_params$include = params.include) === null || _params$include === void 0 ? void 0 : _params$include.customFields) !== null && _ref7 !== void 0 ? _ref7 : true) && 'custom' }; }, handleResponse: function handleResponse(_, response) { diff --git a/lib/core/endpoints/objects/uuid/set.js.map b/lib/core/endpoints/objects/uuid/set.js.map index 7d3b8caea..b05d762de 100644 --- a/lib/core/endpoints/objects/uuid/set.js.map +++ b/lib/core/endpoints/objects/uuid/set.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/objects/uuid/set.js"],"names":["endpoint","getOperation","operationConstants","PNSetUUIDMetadataOperation","validateParams","_","params","data","usePatch","patchURL","config","subscribeKey","uuid","getUUID","patchPayload","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","include","customFields","handleResponse","response","status"],"mappings":";;;;;;;AAGA;;;;AAgBA,IAAMA,QAAsE,GAAG;AAC7EC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,0BAAzB;AAAA,GAD+D;AAG7EC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,IAAT,CAAJ,EAAmB;AACjB,aAAO,sBAAP;AACD;AACF,GAP4E;AAS7EC,EAAAA,QAAQ,EAAE;AAAA,WAAM,IAAN;AAAA,GATmE;AAW7EC,EAAAA,QAAQ,EAAE,wBAAaH,MAAb;AAAA;;AAAA,QAAGI,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,6BAAoEL,MAApE,aAAoEA,MAApE,uBAAoEA,MAAM,CAAEM,IAA5E,yCAAoFF,MAAM,CAACG,OAAP,EAApF;AAAA,GAXmE;AAa7EC,EAAAA,YAAY,EAAE,sBAACT,CAAD,EAAIC,MAAJ;AAAA,WAAeA,MAAM,CAACC,IAAtB;AAAA,GAb+D;AAe7EQ,EAAAA,iBAAiB,EAAE;AAAA,QAAGL,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACM,qBAAP,EAAhB;AAAA,GAf0D;AAiB7EC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAjB4D;AAmB7EC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,MAAtB,CAAtB;AAAA,GAnB+D;AAqB7EC,EAAAA,aAAa,EAAE,8BAAaf,MAAb;AAAA;;AAAA,QAAGI,MAAH,SAAGA,MAAH;AAAA,WAAyB;AACtCE,MAAAA,IAAI,WAAEN,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEM,IAAV,yCAAkBF,MAAM,CAACG,OAAP,EADgB;AAEtCS,MAAAA,OAAO,EAAE,UAAChB,MAAD,aAACA,MAAD,0CAACA,MAAM,CAAEgB,OAAT,oDAAC,gBAAiBC,YAAlB,yCAAkC,IAAlC,KAA2C,CAAC,QAAD;AAFd,KAAzB;AAAA,GArB8D;AA0B7EC,EAAAA,cAAc,EAAE,wBAACnB,CAAD,EAAIoB,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCnB,MAAAA,IAAI,EAAEkB,QAAQ,CAAClB;AAFiB,KAAlB;AAAA;AA1B6D,CAA/E;eAgCeP,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { UUIDMetadata } from './uuid';\n\nexport type SetUUIDMetadataParams = {|\n uuid?: string,\n include?: {|\n customFields: ?boolean,\n |},\n data: $Shape,\n|};\n\nexport type SetUUIDMetadataResult = {|\n status: 200,\n data: UUIDMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNSetUUIDMetadataOperation,\n\n validateParams: (_, params) => {\n if (!params?.data) {\n return 'Data cannot be empty';\n }\n },\n\n usePatch: () => true,\n\n patchURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params?.uuid ?? config.getUUID()}`,\n\n patchPayload: (_, params) => params.data,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('user'),\n\n prepareParams: ({ config }, params) => ({\n uuid: params?.uuid ?? config.getUUID(),\n include: (params?.include?.customFields ?? true) && ['custom'],\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"set.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/objects/uuid/set.js"],"names":["endpoint","getOperation","operationConstants","PNSetUUIDMetadataOperation","validateParams","_","params","data","usePatch","patchURL","config","subscribeKey","uuid","getUUID","patchPayload","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","tokenManager","getToken","prepareParams","include","customFields","handleResponse","response","status"],"mappings":";;;;;;;;;AAGA;;AAgBA,IAAMA,QAAsE,GAAG;AAC7EC,EAAAA,YAAY,EAAE;AAAA,WAAMC,uBAAmBC,0BAAzB;AAAA,GAD+D;AAG7EC,EAAAA,cAAc,EAAE,wBAACC,CAAD,EAAIC,MAAJ,EAAe;AAC7B,QAAI,EAACA,MAAD,aAACA,MAAD,uBAACA,MAAM,CAAEC,IAAT,CAAJ,EAAmB;AACjB,aAAO,sBAAP;AACD;AACF,GAP4E;AAS7EC,EAAAA,QAAQ,EAAE;AAAA,WAAM,IAAN;AAAA,GATmE;AAW7EC,EAAAA,QAAQ,EAAE,wBAAaH,MAAb;AAAA;;AAAA,QAAGI,MAAH,QAAGA,MAAH;AAAA,iCAAuCA,MAAM,CAACC,YAA9C,6BAAoEL,MAApE,aAAoEA,MAApE,uBAAoEA,MAAM,CAAEM,IAA5E,yCAAoFF,MAAM,CAACG,OAAP,EAApF;AAAA,GAXmE;AAa7EC,EAAAA,YAAY,EAAE,sBAACT,CAAD,EAAIC,MAAJ;AAAA,WAAeA,MAAM,CAACC,IAAtB;AAAA,GAb+D;AAe7EQ,EAAAA,iBAAiB,EAAE;AAAA,QAAGL,MAAH,SAAGA,MAAH;AAAA,WAAgBA,MAAM,CAACM,qBAAP,EAAhB;AAAA,GAf0D;AAiB7EC,EAAAA,eAAe,EAAE;AAAA,WAAM,IAAN;AAAA,GAjB4D;AAmB7EC,EAAAA,YAAY,EAAE;AAAA,QAAGC,YAAH,SAAGA,YAAH;AAAA,WAAsBA,YAAY,CAACC,QAAb,CAAsB,MAAtB,CAAtB;AAAA,GAnB+D;AAqB7EC,EAAAA,aAAa,EAAE,8BAAaf,MAAb;AAAA;;AAAA,QAAGI,MAAH,SAAGA,MAAH;AAAA,WAAyB;AACtCE,MAAAA,IAAI,WAAEN,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEM,IAAV,yCAAkBF,MAAM,CAACG,OAAP,EADgB;AAEtCS,MAAAA,OAAO,EAAE,UAAChB,MAAD,aAACA,MAAD,0CAACA,MAAM,CAAEgB,OAAT,oDAAC,gBAAiBC,YAAlB,yCAAkC,IAAlC,KAA2C;AAFd,KAAzB;AAAA,GArB8D;AA0B7EC,EAAAA,cAAc,EAAE,wBAACnB,CAAD,EAAIoB,QAAJ;AAAA,WAAkB;AAChCC,MAAAA,MAAM,EAAED,QAAQ,CAACC,MADe;AAEhCnB,MAAAA,IAAI,EAAEkB,QAAQ,CAAClB;AAFiB,KAAlB;AAAA;AA1B6D,CAA/E;eAgCeP,Q","sourcesContent":["/** @flow */\n\nimport type { EndpointConfig } from '../../endpoint';\nimport operationConstants from '../../../constants/operations';\nimport type { UUIDMetadata } from './uuid';\n\nexport type SetUUIDMetadataParams = {|\n uuid?: string,\n include?: {|\n customFields: ?boolean,\n |},\n data: $Shape,\n|};\n\nexport type SetUUIDMetadataResult = {|\n status: 200,\n data: UUIDMetadata,\n|};\n\nconst endpoint: EndpointConfig = {\n getOperation: () => operationConstants.PNSetUUIDMetadataOperation,\n\n validateParams: (_, params) => {\n if (!params?.data) {\n return 'Data cannot be empty';\n }\n },\n\n usePatch: () => true,\n\n patchURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params?.uuid ?? config.getUUID()}`,\n\n patchPayload: (_, params) => params.data,\n\n getRequestTimeout: ({ config }) => config.getTransactionTimeout(),\n\n isAuthSupported: () => true,\n\n getAuthToken: ({ tokenManager }) => tokenManager.getToken('user'),\n\n prepareParams: ({ config }, params) => ({\n uuid: params?.uuid ?? config.getUUID(),\n include: (params?.include?.customFields ?? true) && 'custom',\n }),\n\n handleResponse: (_, response) => ({\n status: response.status,\n data: response.data,\n }),\n};\n\nexport default endpoint;\n"],"file":"set.js"} \ No newline at end of file diff --git a/lib/core/endpoints/presence/get_state.js b/lib/core/endpoints/presence/get_state.js index f41c94d27..1f3cabb9c 100644 --- a/lib/core/endpoints/presence/get_state.js +++ b/lib/core/endpoints/presence/get_state.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNGetStateOperation; } diff --git a/lib/core/endpoints/presence/get_state.js.map b/lib/core/endpoints/presence/get_state.js.map index 0d698c03f..18a6507d4 100644 --- a/lib/core/endpoints/presence/get_state.js.map +++ b/lib/core/endpoints/presence/get_state.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/presence/get_state.js"],"names":["getOperation","operationConstants","PNGetStateOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","uuid","UUID","channels","stringifiedChannels","length","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","channelGroups","params","handleResponse","serverResponse","channelsResponse","payload"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAwCI,cAAxC,EAAmF;AAAA,MAClFH,MADkF,GACvED,OADuE,CAClFC,MADkF;AAAA,6BAE5CG,cAF4C,CAElFC,IAFkF;AAAA,MAElFA,IAFkF,qCAE3EJ,MAAM,CAACK,IAFoE;AAAA,8BAE5CF,cAF4C,CAE9DG,QAF8D;AAAA,MAE9DA,QAF8D,sCAEnD,EAFmD;AAGxF,MAAIC,mBAAmB,GAAGD,QAAQ,CAACE,MAAT,GAAkB,CAAlB,GAAsBF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAAtB,GAA2C,GAArE;AACA,wCAA+BT,MAAM,CAACC,YAAtC,sBAA8DS,kBAAMC,YAAN,CAAmBJ,mBAAnB,CAA9D,mBAA8GH,IAA9G;AACD;;AAEM,SAASQ,iBAAT,OAA8D;AAAA,MAAjCZ,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACa,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBhB,OAAvB,EAA+CI,cAA/C,EAA0F;AAAA,+BAClEA,cADkE,CACzFa,aADyF;AAAA,MACzFA,aADyF,uCACzE,EADyE;AAE/F,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAID,aAAa,CAACR,MAAd,GAAuB,CAA3B,EAA8B;AAC5BS,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BD,aAAa,CAACP,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAED,SAAOQ,MAAP;AACD;;AAEM,SAASC,cAAT,CAAwBnB,OAAxB,EAAgDoB,cAAhD,EAAwEhB,cAAxE,EAA6H;AAAA,+BACtFA,cADsF,CAC5HG,QAD4H;AAAA,MAC5HA,QAD4H,uCACjH,EADiH;AAAA,+BACtFH,cADsF,CAC7Ga,aAD6G;AAAA,MAC7GA,aAD6G,uCAC7F,EAD6F;AAElI,MAAII,gBAAgB,GAAG,EAAvB;;AAEA,MAAId,QAAQ,CAACE,MAAT,KAAoB,CAApB,IAAyBQ,aAAa,CAACR,MAAd,KAAyB,CAAtD,EAAyD;AACvDY,IAAAA,gBAAgB,CAACd,QAAQ,CAAC,CAAD,CAAT,CAAhB,GAAgCa,cAAc,CAACE,OAA/C;AACD,GAFD,MAEO;AACLD,IAAAA,gBAAgB,GAAGD,cAAc,CAACE,OAAlC;AACD;;AAED,SAAO;AAAEf,IAAAA,QAAQ,EAAEc;AAAZ,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport { GetStateArguments, GetStateResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNGetStateOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: GetStateArguments): string {\n let { config } = modules;\n let { uuid = config.UUID, channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/presence/sub-key/${config.subscribeKey}/channel/${utils.encodeString(stringifiedChannels)}/uuid/${uuid}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: GetStateArguments): Object {\n let { channelGroups = [] } = incomingParams;\n const params = {};\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n return params;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object, incomingParams: GetStateArguments): GetStateResponse {\n let { channels = [], channelGroups = [] } = incomingParams;\n let channelsResponse = {};\n\n if (channels.length === 1 && channelGroups.length === 0) {\n channelsResponse[channels[0]] = serverResponse.payload;\n } else {\n channelsResponse = serverResponse.payload;\n }\n\n return { channels: channelsResponse };\n}\n"],"file":"get_state.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/presence/get_state.js"],"names":["getOperation","operationConstants","PNGetStateOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","uuid","UUID","channels","stringifiedChannels","length","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","channelGroups","params","handleResponse","serverResponse","channelsResponse","payload"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAwCI,cAAxC,EAAmF;AAAA,MAClFH,MADkF,GACvED,OADuE,CAClFC,MADkF;AAAA,6BAE5CG,cAF4C,CAElFC,IAFkF;AAAA,MAElFA,IAFkF,qCAE3EJ,MAAM,CAACK,IAFoE;AAAA,8BAE5CF,cAF4C,CAE9DG,QAF8D;AAAA,MAE9DA,QAF8D,sCAEnD,EAFmD;AAGxF,MAAIC,mBAAmB,GAAGD,QAAQ,CAACE,MAAT,GAAkB,CAAlB,GAAsBF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAAtB,GAA2C,GAArE;AACA,wCAA+BT,MAAM,CAACC,YAAtC,sBAA8DS,kBAAMC,YAAN,CAAmBJ,mBAAnB,CAA9D,mBAA8GH,IAA9G;AACD;;AAEM,SAASQ,iBAAT,OAA8D;AAAA,MAAjCZ,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACa,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBhB,OAAvB,EAA+CI,cAA/C,EAA0F;AAAA,+BAClEA,cADkE,CACzFa,aADyF;AAAA,MACzFA,aADyF,uCACzE,EADyE;AAE/F,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAID,aAAa,CAACR,MAAd,GAAuB,CAA3B,EAA8B;AAC5BS,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BD,aAAa,CAACP,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAED,SAAOQ,MAAP;AACD;;AAEM,SAASC,cAAT,CAAwBnB,OAAxB,EAAgDoB,cAAhD,EAAwEhB,cAAxE,EAA6H;AAAA,+BACtFA,cADsF,CAC5HG,QAD4H;AAAA,MAC5HA,QAD4H,uCACjH,EADiH;AAAA,+BACtFH,cADsF,CAC7Ga,aAD6G;AAAA,MAC7GA,aAD6G,uCAC7F,EAD6F;AAElI,MAAII,gBAAgB,GAAG,EAAvB;;AAEA,MAAId,QAAQ,CAACE,MAAT,KAAoB,CAApB,IAAyBQ,aAAa,CAACR,MAAd,KAAyB,CAAtD,EAAyD;AACvDY,IAAAA,gBAAgB,CAACd,QAAQ,CAAC,CAAD,CAAT,CAAhB,GAAgCa,cAAc,CAACE,OAA/C;AACD,GAFD,MAEO;AACLD,IAAAA,gBAAgB,GAAGD,cAAc,CAACE,OAAlC;AACD;;AAED,SAAO;AAAEf,IAAAA,QAAQ,EAAEc;AAAZ,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport { GetStateArguments, GetStateResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNGetStateOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: GetStateArguments): string {\n let { config } = modules;\n let { uuid = config.UUID, channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/presence/sub-key/${config.subscribeKey}/channel/${utils.encodeString(stringifiedChannels)}/uuid/${uuid}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: GetStateArguments): Object {\n let { channelGroups = [] } = incomingParams;\n const params = {};\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n return params;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object, incomingParams: GetStateArguments): GetStateResponse {\n let { channels = [], channelGroups = [] } = incomingParams;\n let channelsResponse = {};\n\n if (channels.length === 1 && channelGroups.length === 0) {\n channelsResponse[channels[0]] = serverResponse.payload;\n } else {\n channelsResponse = serverResponse.payload;\n }\n\n return { channels: channelsResponse };\n}\n"],"file":"get_state.js"} \ No newline at end of file diff --git a/lib/core/endpoints/presence/heartbeat.js b/lib/core/endpoints/presence/heartbeat.js index f3c4fe37a..6f23aaa6d 100644 --- a/lib/core/endpoints/presence/heartbeat.js +++ b/lib/core/endpoints/presence/heartbeat.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNHeartbeatOperation; } diff --git a/lib/core/endpoints/presence/heartbeat.js.map b/lib/core/endpoints/presence/heartbeat.js.map index 9518662b9..9d6231c76 100644 --- a/lib/core/endpoints/presence/heartbeat.js.map +++ b/lib/core/endpoints/presence/heartbeat.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/presence/heartbeat.js"],"names":["getOperation","operationConstants","PNHeartbeatOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","channels","stringifiedChannels","length","join","utils","encodeString","isAuthSupported","getRequestTimeout","getTransactionTimeout","prepareParams","channelGroups","state","params","JSON","stringify","heartbeat","getPresenceTimeout","handleResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,oBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAwCI,cAAxC,EAAoF;AAAA,MACnFH,MADmF,GACxED,OADwE,CACnFC,MADmF;AAAA,8BAEjEG,cAFiE,CAEnFC,QAFmF;AAAA,MAEnFA,QAFmF,sCAExE,EAFwE;AAGzF,MAAIC,mBAAmB,GAAGD,QAAQ,CAACE,MAAT,GAAkB,CAAlB,GAAsBF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAAtB,GAA2C,GAArE;AACA,wCAA+BP,MAAM,CAACC,YAAtC,sBAA8DO,kBAAMC,YAAN,CAAmBJ,mBAAnB,CAA9D;AACD;;AAEM,SAASK,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBX,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACY,qBAAP,EAAP;AACD;;AAEM,SAASC,aAAT,CAAuBd,OAAvB,EAA+CI,cAA/C,EAA2F;AAAA,+BACvDA,cADuD,CAC1FW,aAD0F;AAAA,MAC1FA,aAD0F,uCAC1E,EAD0E;AAAA,8BACvDX,cADuD,CACtEY,KADsE;AAAA,MACtEA,KADsE,sCAC9D,EAD8D;AAAA,MAE1Ff,MAF0F,GAE/ED,OAF+E,CAE1FC,MAF0F;AAGhG,MAAMgB,MAAM,GAAG,EAAf;;AAEA,MAAIF,aAAa,CAACR,MAAd,GAAuB,CAA3B,EAA8B;AAC5BU,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BF,aAAa,CAACP,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAEDS,EAAAA,MAAM,CAACD,KAAP,GAAeE,IAAI,CAACC,SAAL,CAAeH,KAAf,CAAf;AACAC,EAAAA,MAAM,CAACG,SAAP,GAAmBnB,MAAM,CAACoB,kBAAP,EAAnB;AACA,SAAOJ,MAAP;AACD;;AAEM,SAASK,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { HeartbeatArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNHeartbeatOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: HeartbeatArguments): string {\n let { config } = modules;\n let { channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/presence/sub-key/${config.subscribeKey}/channel/${utils.encodeString(stringifiedChannels)}/heartbeat`;\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: HeartbeatArguments): Object {\n let { channelGroups = [], state = {} } = incomingParams;\n let { config } = modules;\n const params = {};\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n params.state = JSON.stringify(state);\n params.heartbeat = config.getPresenceTimeout();\n return params;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"heartbeat.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/presence/heartbeat.js"],"names":["getOperation","operationConstants","PNHeartbeatOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","channels","stringifiedChannels","length","join","utils","encodeString","isAuthSupported","getRequestTimeout","getTransactionTimeout","prepareParams","channelGroups","state","params","JSON","stringify","heartbeat","getPresenceTimeout","handleResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,oBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAwCI,cAAxC,EAAoF;AAAA,MACnFH,MADmF,GACxED,OADwE,CACnFC,MADmF;AAAA,8BAEjEG,cAFiE,CAEnFC,QAFmF;AAAA,MAEnFA,QAFmF,sCAExE,EAFwE;AAGzF,MAAIC,mBAAmB,GAAGD,QAAQ,CAACE,MAAT,GAAkB,CAAlB,GAAsBF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAAtB,GAA2C,GAArE;AACA,wCAA+BP,MAAM,CAACC,YAAtC,sBAA8DO,kBAAMC,YAAN,CAAmBJ,mBAAnB,CAA9D;AACD;;AAEM,SAASK,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBX,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACY,qBAAP,EAAP;AACD;;AAEM,SAASC,aAAT,CAAuBd,OAAvB,EAA+CI,cAA/C,EAA2F;AAAA,+BACvDA,cADuD,CAC1FW,aAD0F;AAAA,MAC1FA,aAD0F,uCAC1E,EAD0E;AAAA,8BACvDX,cADuD,CACtEY,KADsE;AAAA,MACtEA,KADsE,sCAC9D,EAD8D;AAAA,MAE1Ff,MAF0F,GAE/ED,OAF+E,CAE1FC,MAF0F;AAGhG,MAAMgB,MAAM,GAAG,EAAf;;AAEA,MAAIF,aAAa,CAACR,MAAd,GAAuB,CAA3B,EAA8B;AAC5BU,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BF,aAAa,CAACP,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAEDS,EAAAA,MAAM,CAACD,KAAP,GAAeE,IAAI,CAACC,SAAL,CAAeH,KAAf,CAAf;AACAC,EAAAA,MAAM,CAACG,SAAP,GAAmBnB,MAAM,CAACoB,kBAAP,EAAnB;AACA,SAAOJ,MAAP;AACD;;AAEM,SAASK,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { HeartbeatArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNHeartbeatOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: HeartbeatArguments): string {\n let { config } = modules;\n let { channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/presence/sub-key/${config.subscribeKey}/channel/${utils.encodeString(stringifiedChannels)}/heartbeat`;\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: HeartbeatArguments): Object {\n let { channelGroups = [], state = {} } = incomingParams;\n let { config } = modules;\n const params = {};\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n params.state = JSON.stringify(state);\n params.heartbeat = config.getPresenceTimeout();\n return params;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"heartbeat.js"} \ No newline at end of file diff --git a/lib/core/endpoints/presence/here_now.js b/lib/core/endpoints/presence/here_now.js index 5aa5c1a7b..02bc20b4f 100644 --- a/lib/core/endpoints/presence/here_now.js +++ b/lib/core/endpoints/presence/here_now.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -11,19 +13,17 @@ exports.isAuthSupported = isAuthSupported; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); + var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function getOperation() { return _operations["default"].PNHereNowOperation; diff --git a/lib/core/endpoints/presence/here_now.js.map b/lib/core/endpoints/presence/here_now.js.map index 06092cd4d..76fb645aa 100644 --- a/lib/core/endpoints/presence/here_now.js.map +++ b/lib/core/endpoints/presence/here_now.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/presence/here_now.js"],"names":["getOperation","operationConstants","PNHereNowOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","channels","channelGroups","baseURL","length","stringifiedChannels","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","includeUUIDs","includeState","queryParameters","params","disable_uuids","state","handleResponse","serverResponse","prepareSingularChannel","response","occupantsList","totalChannels","totalOccupancy","occupancy","occupants","name","uuids","forEach","uuidEntry","push","uuid","prepareMultipleChannel","payload","total_channels","total_occupancy","Object","keys","channelName","channelEntry"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport { HereNowArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNHereNowOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: HereNowArguments\n): string {\n let { config } = modules;\n let { channels = [], channelGroups = [] } = incomingParams;\n let baseURL = `/v2/presence/sub-key/${config.subscribeKey}`;\n\n if (channels.length > 0 || channelGroups.length > 0) {\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n baseURL += `/channel/${utils.encodeString(stringifiedChannels)}`;\n }\n\n return baseURL;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: HereNowArguments\n): Object {\n let {\n channelGroups = [],\n includeUUIDs = true,\n includeState = false,\n queryParameters = {}\n } = incomingParams;\n let params = {};\n\n if (!includeUUIDs) params.disable_uuids = 1;\n if (includeState) params.state = 1;\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n params = { ...params, ...queryParameters };\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: Object,\n incomingParams: HereNowArguments\n): Object {\n let {\n channels = [],\n channelGroups = [],\n includeUUIDs = true,\n includeState = false,\n } = incomingParams;\n\n let prepareSingularChannel = () => {\n let response = {};\n let occupantsList = [];\n response.totalChannels = 1;\n response.totalOccupancy = serverResponse.occupancy;\n response.channels = {};\n response.channels[channels[0]] = {\n occupants: occupantsList,\n name: channels[0],\n occupancy: serverResponse.occupancy,\n };\n\n // We have had issues in the past with server returning responses\n // that contain no uuids array\n if (includeUUIDs && serverResponse.uuids) {\n serverResponse.uuids.forEach((uuidEntry) => {\n if (includeState) {\n occupantsList.push({ state: uuidEntry.state, uuid: uuidEntry.uuid });\n } else {\n occupantsList.push({ state: null, uuid: uuidEntry });\n }\n });\n }\n\n return response;\n };\n\n let prepareMultipleChannel = () => {\n let response = {};\n response.totalChannels = serverResponse.payload.total_channels;\n response.totalOccupancy = serverResponse.payload.total_occupancy;\n response.channels = {};\n\n Object.keys(serverResponse.payload.channels).forEach((channelName) => {\n let channelEntry = serverResponse.payload.channels[channelName];\n let occupantsList = [];\n response.channels[channelName] = {\n occupants: occupantsList,\n name: channelName,\n occupancy: channelEntry.occupancy,\n };\n\n if (includeUUIDs) {\n channelEntry.uuids.forEach((uuidEntry) => {\n if (includeState) {\n occupantsList.push({\n state: uuidEntry.state,\n uuid: uuidEntry.uuid,\n });\n } else {\n occupantsList.push({ state: null, uuid: uuidEntry });\n }\n });\n }\n\n return response;\n });\n\n return response;\n };\n\n let response;\n if (\n channels.length > 1 ||\n channelGroups.length > 0 ||\n (channelGroups.length === 0 && channels.length === 0)\n ) {\n response = prepareMultipleChannel();\n } else {\n response = prepareSingularChannel();\n }\n\n return response;\n}\n"],"file":"here_now.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/presence/here_now.js"],"names":["getOperation","operationConstants","PNHereNowOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","channels","channelGroups","baseURL","length","stringifiedChannels","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","includeUUIDs","includeState","queryParameters","params","disable_uuids","state","handleResponse","serverResponse","prepareSingularChannel","response","occupantsList","totalChannels","totalOccupancy","occupancy","occupants","name","uuids","forEach","uuidEntry","push","uuid","prepareMultipleChannel","payload","total_channels","total_occupancy","Object","keys","channelName","channelEntry"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport { HereNowArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNHereNowOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: HereNowArguments\n): string {\n let { config } = modules;\n let { channels = [], channelGroups = [] } = incomingParams;\n let baseURL = `/v2/presence/sub-key/${config.subscribeKey}`;\n\n if (channels.length > 0 || channelGroups.length > 0) {\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n baseURL += `/channel/${utils.encodeString(stringifiedChannels)}`;\n }\n\n return baseURL;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: HereNowArguments\n): Object {\n let {\n channelGroups = [],\n includeUUIDs = true,\n includeState = false,\n queryParameters = {}\n } = incomingParams;\n let params = {};\n\n if (!includeUUIDs) params.disable_uuids = 1;\n if (includeState) params.state = 1;\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n params = { ...params, ...queryParameters };\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: Object,\n incomingParams: HereNowArguments\n): Object {\n let {\n channels = [],\n channelGroups = [],\n includeUUIDs = true,\n includeState = false,\n } = incomingParams;\n\n let prepareSingularChannel = () => {\n let response = {};\n let occupantsList = [];\n response.totalChannels = 1;\n response.totalOccupancy = serverResponse.occupancy;\n response.channels = {};\n response.channels[channels[0]] = {\n occupants: occupantsList,\n name: channels[0],\n occupancy: serverResponse.occupancy,\n };\n\n // We have had issues in the past with server returning responses\n // that contain no uuids array\n if (includeUUIDs && serverResponse.uuids) {\n serverResponse.uuids.forEach((uuidEntry) => {\n if (includeState) {\n occupantsList.push({ state: uuidEntry.state, uuid: uuidEntry.uuid });\n } else {\n occupantsList.push({ state: null, uuid: uuidEntry });\n }\n });\n }\n\n return response;\n };\n\n let prepareMultipleChannel = () => {\n let response = {};\n response.totalChannels = serverResponse.payload.total_channels;\n response.totalOccupancy = serverResponse.payload.total_occupancy;\n response.channels = {};\n\n Object.keys(serverResponse.payload.channels).forEach((channelName) => {\n let channelEntry = serverResponse.payload.channels[channelName];\n let occupantsList = [];\n response.channels[channelName] = {\n occupants: occupantsList,\n name: channelName,\n occupancy: channelEntry.occupancy,\n };\n\n if (includeUUIDs) {\n channelEntry.uuids.forEach((uuidEntry) => {\n if (includeState) {\n occupantsList.push({\n state: uuidEntry.state,\n uuid: uuidEntry.uuid,\n });\n } else {\n occupantsList.push({ state: null, uuid: uuidEntry });\n }\n });\n }\n\n return response;\n });\n\n return response;\n };\n\n let response;\n if (\n channels.length > 1 ||\n channelGroups.length > 0 ||\n (channelGroups.length === 0 && channels.length === 0)\n ) {\n response = prepareMultipleChannel();\n } else {\n response = prepareSingularChannel();\n }\n\n return response;\n}\n"],"file":"here_now.js"} \ No newline at end of file diff --git a/lib/core/endpoints/presence/leave.js b/lib/core/endpoints/presence/leave.js index 8e325a9df..8ffe5e666 100644 --- a/lib/core/endpoints/presence/leave.js +++ b/lib/core/endpoints/presence/leave.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNUnsubscribeOperation; } diff --git a/lib/core/endpoints/presence/leave.js.map b/lib/core/endpoints/presence/leave.js.map index b57a27225..d79d6604b 100644 --- a/lib/core/endpoints/presence/leave.js.map +++ b/lib/core/endpoints/presence/leave.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/presence/leave.js"],"names":["getOperation","operationConstants","PNUnsubscribeOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","channels","stringifiedChannels","length","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","channelGroups","params","handleResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,sBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAwCI,cAAxC,EAAgF;AAAA,MAC/EH,MAD+E,GACpED,OADoE,CAC/EC,MAD+E;AAAA,8BAE7DG,cAF6D,CAE/EC,QAF+E;AAAA,MAE/EA,QAF+E,sCAEpE,EAFoE;AAGrF,MAAIC,mBAAmB,GAAGD,QAAQ,CAACE,MAAT,GAAkB,CAAlB,GAAsBF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAAtB,GAA2C,GAArE;AACA,wCAA+BP,MAAM,CAACC,YAAtC,sBAA8DO,kBAAMC,YAAN,CAAmBJ,mBAAnB,CAA9D;AACD;;AAEM,SAASK,iBAAT,OAAsD;AAAA,MAAzBV,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACW,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBd,OAAvB,EAA+CI,cAA/C,EAAuF;AAAA,+BAC/DA,cAD+D,CACtFW,aADsF;AAAA,MACtFA,aADsF,uCACtE,EADsE;AAE5F,MAAIC,MAAM,GAAG,EAAb;;AAEA,MAAID,aAAa,CAACR,MAAd,GAAuB,CAA3B,EAA8B;AAC5BS,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BD,aAAa,CAACP,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAED,SAAOQ,MAAP;AACD;;AAEM,SAASC,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { LeaveArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNUnsubscribeOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: LeaveArguments): string {\n let { config } = modules;\n let { channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/presence/sub-key/${config.subscribeKey}/channel/${utils.encodeString(stringifiedChannels)}/leave`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: LeaveArguments): Object {\n let { channelGroups = [] } = incomingParams;\n let params = {};\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n return params;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"leave.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/presence/leave.js"],"names":["getOperation","operationConstants","PNUnsubscribeOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","channels","stringifiedChannels","length","join","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","channelGroups","params","handleResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,sBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAwCI,cAAxC,EAAgF;AAAA,MAC/EH,MAD+E,GACpED,OADoE,CAC/EC,MAD+E;AAAA,8BAE7DG,cAF6D,CAE/EC,QAF+E;AAAA,MAE/EA,QAF+E,sCAEpE,EAFoE;AAGrF,MAAIC,mBAAmB,GAAGD,QAAQ,CAACE,MAAT,GAAkB,CAAlB,GAAsBF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAAtB,GAA2C,GAArE;AACA,wCAA+BP,MAAM,CAACC,YAAtC,sBAA8DO,kBAAMC,YAAN,CAAmBJ,mBAAnB,CAA9D;AACD;;AAEM,SAASK,iBAAT,OAAsD;AAAA,MAAzBV,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACW,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBd,OAAvB,EAA+CI,cAA/C,EAAuF;AAAA,+BAC/DA,cAD+D,CACtFW,aADsF;AAAA,MACtFA,aADsF,uCACtE,EADsE;AAE5F,MAAIC,MAAM,GAAG,EAAb;;AAEA,MAAID,aAAa,CAACR,MAAd,GAAuB,CAA3B,EAA8B;AAC5BS,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0BD,aAAa,CAACP,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAED,SAAOQ,MAAP;AACD;;AAEM,SAASC,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { LeaveArguments, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNUnsubscribeOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: LeaveArguments): string {\n let { config } = modules;\n let { channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/presence/sub-key/${config.subscribeKey}/channel/${utils.encodeString(stringifiedChannels)}/leave`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: LeaveArguments): Object {\n let { channelGroups = [] } = incomingParams;\n let params = {};\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n return params;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"leave.js"} \ No newline at end of file diff --git a/lib/core/endpoints/presence/set_state.js b/lib/core/endpoints/presence/set_state.js index 9acf50d78..25c7e76f3 100644 --- a/lib/core/endpoints/presence/set_state.js +++ b/lib/core/endpoints/presence/set_state.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../../constants/operations")); var _utils = _interopRequireDefault(require("../../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNSetStateOperation; } diff --git a/lib/core/endpoints/presence/set_state.js.map b/lib/core/endpoints/presence/set_state.js.map index 941c7610c..738f6723f 100644 --- a/lib/core/endpoints/presence/set_state.js.map +++ b/lib/core/endpoints/presence/set_state.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/presence/set_state.js"],"names":["getOperation","operationConstants","PNSetStateOperation","validateParams","modules","incomingParams","config","state","channels","channelGroups","subscribeKey","length","getURL","stringifiedChannels","join","utils","encodeString","UUID","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","params","JSON","stringify","handleResponse","serverResponse","payload"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAmF;AAAA,MAClFC,MADkF,GACvEF,OADuE,CAClFE,MADkF;AAAA,MAElFC,KAFkF,GAErCF,cAFqC,CAElFE,KAFkF;AAAA,8BAErCF,cAFqC,CAE3EG,QAF2E;AAAA,MAE3EA,QAF2E,sCAEhE,EAFgE;AAAA,+BAErCH,cAFqC,CAE5DI,aAF4D;AAAA,MAE5DA,aAF4D,uCAE5C,EAF4C;AAIxF,MAAI,CAACF,KAAL,EAAY,OAAO,eAAP;AACZ,MAAI,CAACD,MAAM,CAACI,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAIF,QAAQ,CAACG,MAAT,KAAoB,CAApB,IAAyBF,aAAa,CAACE,MAAd,KAAyB,CAAtD,EAAyD,OAAO,yDAAP;AAC1D;;AAEM,SAASC,MAAT,CAAgBR,OAAhB,EAAwCC,cAAxC,EAAmF;AAAA,MAClFC,MADkF,GACvEF,OADuE,CAClFE,MADkF;AAAA,+BAEhED,cAFgE,CAElFG,QAFkF;AAAA,MAElFA,QAFkF,uCAEvE,EAFuE;AAGxF,MAAIK,mBAAmB,GAAGL,QAAQ,CAACG,MAAT,GAAkB,CAAlB,GAAsBH,QAAQ,CAACM,IAAT,CAAc,GAAd,CAAtB,GAA2C,GAArE;AACA,wCAA+BR,MAAM,CAACI,YAAtC,sBAA8DK,kBAAMC,YAAN,CAAmBH,mBAAnB,CAA9D,mBAA8GP,MAAM,CAACW,IAArH;AACD;;AAEM,SAASC,iBAAT,OAA8D;AAAA,MAAjCZ,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACa,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBjB,OAAvB,EAA+CC,cAA/C,EAA0F;AAAA,MACzFE,KADyF,GAC3DF,cAD2D,CACzFE,KADyF;AAAA,+BAC3DF,cAD2D,CAClFI,aADkF;AAAA,MAClFA,aADkF,uCAClE,EADkE;AAE/F,MAAMa,MAAM,GAAG,EAAf;AAEAA,EAAAA,MAAM,CAACf,KAAP,GAAegB,IAAI,CAACC,SAAL,CAAejB,KAAf,CAAf;;AAEA,MAAIE,aAAa,CAACE,MAAd,GAAuB,CAA3B,EAA8B;AAC5BW,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0Bb,aAAa,CAACK,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAED,SAAOQ,MAAP;AACD;;AAEM,SAASG,cAAT,CAAwBrB,OAAxB,EAAgDsB,cAAhD,EAA0F;AAC/F,SAAO;AAAEnB,IAAAA,KAAK,EAAEmB,cAAc,CAACC;AAAxB,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport { SetStateArguments, SetStateResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNSetStateOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: SetStateArguments) {\n let { config } = modules;\n let { state, channels = [], channelGroups = [] } = incomingParams;\n\n if (!state) return 'Missing State';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (channels.length === 0 && channelGroups.length === 0) return 'Please provide a list of channels and/or channel-groups';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: SetStateArguments): string {\n let { config } = modules;\n let { channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/presence/sub-key/${config.subscribeKey}/channel/${utils.encodeString(stringifiedChannels)}/uuid/${config.UUID}/data`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: SetStateArguments): Object {\n let { state, channelGroups = [] } = incomingParams;\n const params = {};\n\n params.state = JSON.stringify(state);\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n return params;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): SetStateResponse {\n return { state: serverResponse.payload };\n}\n"],"file":"set_state.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/presence/set_state.js"],"names":["getOperation","operationConstants","PNSetStateOperation","validateParams","modules","incomingParams","config","state","channels","channelGroups","subscribeKey","length","getURL","stringifiedChannels","join","utils","encodeString","UUID","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","params","JSON","stringify","handleResponse","serverResponse","payload"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAmF;AAAA,MAClFC,MADkF,GACvEF,OADuE,CAClFE,MADkF;AAAA,MAElFC,KAFkF,GAErCF,cAFqC,CAElFE,KAFkF;AAAA,8BAErCF,cAFqC,CAE3EG,QAF2E;AAAA,MAE3EA,QAF2E,sCAEhE,EAFgE;AAAA,+BAErCH,cAFqC,CAE5DI,aAF4D;AAAA,MAE5DA,aAF4D,uCAE5C,EAF4C;AAIxF,MAAI,CAACF,KAAL,EAAY,OAAO,eAAP;AACZ,MAAI,CAACD,MAAM,CAACI,YAAZ,EAA0B,OAAO,uBAAP;AAC1B,MAAIF,QAAQ,CAACG,MAAT,KAAoB,CAApB,IAAyBF,aAAa,CAACE,MAAd,KAAyB,CAAtD,EAAyD,OAAO,yDAAP;AAC1D;;AAEM,SAASC,MAAT,CAAgBR,OAAhB,EAAwCC,cAAxC,EAAmF;AAAA,MAClFC,MADkF,GACvEF,OADuE,CAClFE,MADkF;AAAA,+BAEhED,cAFgE,CAElFG,QAFkF;AAAA,MAElFA,QAFkF,uCAEvE,EAFuE;AAGxF,MAAIK,mBAAmB,GAAGL,QAAQ,CAACG,MAAT,GAAkB,CAAlB,GAAsBH,QAAQ,CAACM,IAAT,CAAc,GAAd,CAAtB,GAA2C,GAArE;AACA,wCAA+BR,MAAM,CAACI,YAAtC,sBAA8DK,kBAAMC,YAAN,CAAmBH,mBAAnB,CAA9D,mBAA8GP,MAAM,CAACW,IAArH;AACD;;AAEM,SAASC,iBAAT,OAA8D;AAAA,MAAjCZ,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACa,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBjB,OAAvB,EAA+CC,cAA/C,EAA0F;AAAA,MACzFE,KADyF,GAC3DF,cAD2D,CACzFE,KADyF;AAAA,+BAC3DF,cAD2D,CAClFI,aADkF;AAAA,MAClFA,aADkF,uCAClE,EADkE;AAE/F,MAAMa,MAAM,GAAG,EAAf;AAEAA,EAAAA,MAAM,CAACf,KAAP,GAAegB,IAAI,CAACC,SAAL,CAAejB,KAAf,CAAf;;AAEA,MAAIE,aAAa,CAACE,MAAd,GAAuB,CAA3B,EAA8B;AAC5BW,IAAAA,MAAM,CAAC,eAAD,CAAN,GAA0Bb,aAAa,CAACK,IAAd,CAAmB,GAAnB,CAA1B;AACD;;AAED,SAAOQ,MAAP;AACD;;AAEM,SAASG,cAAT,CAAwBrB,OAAxB,EAAgDsB,cAAhD,EAA0F;AAC/F,SAAO;AAAEnB,IAAAA,KAAK,EAAEmB,cAAc,CAACC;AAAxB,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport { SetStateArguments, SetStateResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\nimport utils from '../../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNSetStateOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: SetStateArguments) {\n let { config } = modules;\n let { state, channels = [], channelGroups = [] } = incomingParams;\n\n if (!state) return 'Missing State';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n if (channels.length === 0 && channelGroups.length === 0) return 'Please provide a list of channels and/or channel-groups';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: SetStateArguments): string {\n let { config } = modules;\n let { channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/presence/sub-key/${config.subscribeKey}/channel/${utils.encodeString(stringifiedChannels)}/uuid/${config.UUID}/data`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: SetStateArguments): Object {\n let { state, channelGroups = [] } = incomingParams;\n const params = {};\n\n params.state = JSON.stringify(state);\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n return params;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): SetStateResponse {\n return { state: serverResponse.payload };\n}\n"],"file":"set_state.js"} \ No newline at end of file diff --git a/lib/core/endpoints/presence/where_now.js b/lib/core/endpoints/presence/where_now.js index 1d0577c17..be38beecf 100644 --- a/lib/core/endpoints/presence/where_now.js +++ b/lib/core/endpoints/presence/where_now.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNWhereNowOperation; } diff --git a/lib/core/endpoints/presence/where_now.js.map b/lib/core/endpoints/presence/where_now.js.map index 8812935de..b1a3c7803 100644 --- a/lib/core/endpoints/presence/where_now.js.map +++ b/lib/core/endpoints/presence/where_now.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/presence/where_now.js"],"names":["getOperation","operationConstants","PNWhereNowOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","uuid","UUID","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","handleResponse","serverResponse","payload","channels"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAwCI,cAAxC,EAAmF;AAAA,MAClFH,MADkF,GACvED,OADuE,CAClFC,MADkF;AAAA,6BAE3DG,cAF2D,CAElFC,IAFkF;AAAA,MAElFA,IAFkF,qCAE3EJ,MAAM,CAACK,IAFoE;AAGxF,wCAA+BL,MAAM,CAACC,YAAtC,mBAA2DG,IAA3D;AACD;;AAEM,SAASE,iBAAT,OAAsD;AAAA,MAAzBN,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CAAwBX,OAAxB,EAAgDY,cAAhD,EAA0F;AAG/F,MAAI,CAACA,cAAc,CAACC,OAApB,EAA6B;AAC3B,WAAO;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAAP;AACD;;AACD,SAAO;AAAEA,IAAAA,QAAQ,EAAEF,cAAc,CAACC,OAAf,CAAuBC;AAAnC,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport { WhereNowArguments, WhereNowResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNWhereNowOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: WhereNowArguments): string {\n let { config } = modules;\n let { uuid = config.UUID } = incomingParams;\n return `/v2/presence/sub-key/${config.subscribeKey}/uuid/${uuid}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): WhereNowResponse {\n // This is a quick fix for when the server does not include a payload\n // in where now responses\n if (!serverResponse.payload) {\n return { channels: [] };\n }\n return { channels: serverResponse.payload.channels };\n}\n"],"file":"where_now.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/presence/where_now.js"],"names":["getOperation","operationConstants","PNWhereNowOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","uuid","UUID","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","handleResponse","serverResponse","payload","channels"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgD;AAAA,MAC/CC,MAD+C,GACpCD,OADoC,CAC/CC,MAD+C;AAGrD,MAAI,CAACA,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBH,OAAhB,EAAwCI,cAAxC,EAAmF;AAAA,MAClFH,MADkF,GACvED,OADuE,CAClFC,MADkF;AAAA,6BAE3DG,cAF2D,CAElFC,IAFkF;AAAA,MAElFA,IAFkF,qCAE3EJ,MAAM,CAACK,IAFoE;AAGxF,wCAA+BL,MAAM,CAACC,YAAtC,mBAA2DG,IAA3D;AACD;;AAEM,SAASE,iBAAT,OAAsD;AAAA,MAAzBN,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACO,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CAAwBX,OAAxB,EAAgDY,cAAhD,EAA0F;AAG/F,MAAI,CAACA,cAAc,CAACC,OAApB,EAA6B;AAC3B,WAAO;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAAP;AACD;;AACD,SAAO;AAAEA,IAAAA,QAAQ,EAAEF,cAAc,CAACC,OAAf,CAAuBC;AAAnC,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport { WhereNowArguments, WhereNowResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNWhereNowOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: WhereNowArguments): string {\n let { config } = modules;\n let { uuid = config.UUID } = incomingParams;\n return `/v2/presence/sub-key/${config.subscribeKey}/uuid/${uuid}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): WhereNowResponse {\n // This is a quick fix for when the server does not include a payload\n // in where now responses\n if (!serverResponse.payload) {\n return { channels: [] };\n }\n return { channels: serverResponse.payload.channels };\n}\n"],"file":"where_now.js"} \ No newline at end of file diff --git a/lib/core/endpoints/publish.js b/lib/core/endpoints/publish.js index 5d6c06a29..872d0e1f9 100644 --- a/lib/core/endpoints/publish.js +++ b/lib/core/endpoints/publish.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -14,16 +16,14 @@ exports.postPayload = postPayload; exports.prepareParams = prepareParams; exports.handleResponse = handleResponse; +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); + var _flow_interfaces = require("../flow_interfaces"); var _operations = _interopRequireDefault(require("../constants/operations")); var _utils = _interopRequireDefault(require("../utils")); -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 prepareMessagePayload(modules, messagePayload) { var crypto = modules.crypto, config = modules.config; @@ -108,7 +108,7 @@ function prepareParams(modules, incomingParams) { params.norep = 'true'; } - if (meta && _typeof(meta) === 'object') { + if (meta && (0, _typeof2["default"])(meta) === 'object') { params.meta = JSON.stringify(meta); } diff --git a/lib/core/endpoints/publish.js.map b/lib/core/endpoints/publish.js.map index e7edf44ab..7d845bc3f 100644 --- a/lib/core/endpoints/publish.js.map +++ b/lib/core/endpoints/publish.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/publish.js"],"names":["prepareMessagePayload","modules","messagePayload","crypto","config","stringifiedPayload","JSON","stringify","cipherKey","encrypt","getOperation","operationConstants","PNPublishOperation","validateParams","incomingParams","message","channel","subscribeKey","usePost","sendByPost","getURL","publishKey","utils","encodeString","postURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","postPayload","prepareParams","meta","replicate","storeInHistory","ttl","params","store","norep","handleResponse","serverResponse","timetoken"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport { PublishResponse, PublishArguments, ModulesInject } from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\nimport utils from '../utils';\n\nfunction prepareMessagePayload(modules, messagePayload) {\n const { crypto, config } = modules;\n let stringifiedPayload = JSON.stringify(messagePayload);\n\n if (config.cipherKey) {\n stringifiedPayload = crypto.encrypt(stringifiedPayload);\n stringifiedPayload = JSON.stringify(stringifiedPayload);\n }\n\n return stringifiedPayload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNPublishOperation;\n}\n\nexport function validateParams({ config }: ModulesInject, incomingParams: PublishArguments) {\n let { message, channel } = incomingParams;\n\n if (!channel) return 'Missing Channel';\n if (!message) return 'Missing Message';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function usePost(modules: ModulesInject, incomingParams: PublishArguments) {\n let { sendByPost = false } = incomingParams;\n return sendByPost;\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: PublishArguments): string {\n const { config } = modules;\n const { channel, message } = incomingParams;\n let stringifiedPayload = prepareMessagePayload(modules, message);\n return `/publish/${config.publishKey}/${config.subscribeKey}/0/${utils.encodeString(channel)}/0/${utils.encodeString(stringifiedPayload)}`;\n}\n\nexport function postURL(modules: ModulesInject, incomingParams: PublishArguments): string {\n const { config } = modules;\n const { channel } = incomingParams;\n return `/publish/${config.publishKey}/${config.subscribeKey}/0/${utils.encodeString(channel)}/0`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function postPayload(modules: ModulesInject, incomingParams: PublishArguments): string {\n const { message } = incomingParams;\n return prepareMessagePayload(modules, message);\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: PublishArguments): Object {\n const { meta, replicate = true, storeInHistory, ttl } = incomingParams;\n const params = {};\n\n if (storeInHistory != null) {\n if (storeInHistory) {\n params.store = '1';\n } else {\n params.store = '0';\n }\n }\n\n if (ttl) {\n params.ttl = ttl;\n }\n\n if (replicate === false) {\n params.norep = 'true';\n }\n\n if (meta && typeof meta === 'object') {\n params.meta = JSON.stringify(meta);\n }\n\n return params;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): PublishResponse {\n return { timetoken: serverResponse[2] };\n}\n"],"file":"publish.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/publish.js"],"names":["prepareMessagePayload","modules","messagePayload","crypto","config","stringifiedPayload","JSON","stringify","cipherKey","encrypt","getOperation","operationConstants","PNPublishOperation","validateParams","incomingParams","message","channel","subscribeKey","usePost","sendByPost","getURL","publishKey","utils","encodeString","postURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","postPayload","prepareParams","meta","replicate","storeInHistory","ttl","params","store","norep","handleResponse","serverResponse","timetoken"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport { PublishResponse, PublishArguments, ModulesInject } from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\nimport utils from '../utils';\n\nfunction prepareMessagePayload(modules, messagePayload) {\n const { crypto, config } = modules;\n let stringifiedPayload = JSON.stringify(messagePayload);\n\n if (config.cipherKey) {\n stringifiedPayload = crypto.encrypt(stringifiedPayload);\n stringifiedPayload = JSON.stringify(stringifiedPayload);\n }\n\n return stringifiedPayload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNPublishOperation;\n}\n\nexport function validateParams({ config }: ModulesInject, incomingParams: PublishArguments) {\n let { message, channel } = incomingParams;\n\n if (!channel) return 'Missing Channel';\n if (!message) return 'Missing Message';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function usePost(modules: ModulesInject, incomingParams: PublishArguments) {\n let { sendByPost = false } = incomingParams;\n return sendByPost;\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: PublishArguments): string {\n const { config } = modules;\n const { channel, message } = incomingParams;\n let stringifiedPayload = prepareMessagePayload(modules, message);\n return `/publish/${config.publishKey}/${config.subscribeKey}/0/${utils.encodeString(channel)}/0/${utils.encodeString(stringifiedPayload)}`;\n}\n\nexport function postURL(modules: ModulesInject, incomingParams: PublishArguments): string {\n const { config } = modules;\n const { channel } = incomingParams;\n return `/publish/${config.publishKey}/${config.subscribeKey}/0/${utils.encodeString(channel)}/0`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function postPayload(modules: ModulesInject, incomingParams: PublishArguments): string {\n const { message } = incomingParams;\n return prepareMessagePayload(modules, message);\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: PublishArguments): Object {\n const { meta, replicate = true, storeInHistory, ttl } = incomingParams;\n const params = {};\n\n if (storeInHistory != null) {\n if (storeInHistory) {\n params.store = '1';\n } else {\n params.store = '0';\n }\n }\n\n if (ttl) {\n params.ttl = ttl;\n }\n\n if (replicate === false) {\n params.norep = 'true';\n }\n\n if (meta && typeof meta === 'object') {\n params.meta = JSON.stringify(meta);\n }\n\n return params;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): PublishResponse {\n return { timetoken: serverResponse[2] };\n}\n"],"file":"publish.js"} \ No newline at end of file diff --git a/lib/core/endpoints/push/add_push_channels.js b/lib/core/endpoints/push/add_push_channels.js index 360e45936..1a5a89fd4 100644 --- a/lib/core/endpoints/push/add_push_channels.js +++ b/lib/core/endpoints/push/add_push_channels.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNPushNotificationEnabledChannelsOperation; } diff --git a/lib/core/endpoints/push/add_push_channels.js.map b/lib/core/endpoints/push/add_push_channels.js.map index df206c2c8..b9bb98ea9 100644 --- a/lib/core/endpoints/push/add_push_channels.js.map +++ b/lib/core/endpoints/push/add_push_channels.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/push/add_push_channels.js"],"names":["getOperation","operationConstants","PNPushNotificationEnabledChannelsOperation","validateParams","modules","incomingParams","device","pushGateway","channels","topic","config","length","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","environment","parameters","type","add","join","Object","assign","handleResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,0CAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GACxCD,cADwC,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACxCF,cADwC,CACzEE,WADyE;AAAA,MAC5DC,QAD4D,GACxCH,cADwC,CAC5DG,QAD4D;AAAA,MAClDC,KADkD,GACxCJ,cADwC,CAClDI,KADkD;AAAA,MAEjFC,MAFiF,GAEtEN,OAFsE,CAEjFM,MAFiF;AAIvF,MAAI,CAACJ,MAAL,EAAa,OAAO,4BAAP;AACb,MAAI,CAACC,WAAL,EAAkB,OAAO,mDAAP;AAClB,MAAIA,WAAW,KAAK,OAAhB,IAA2B,CAACE,KAAhC,EAAuC,OAAO,qBAAP;AACvC,MAAI,CAACD,QAAD,IAAaA,QAAQ,CAACG,MAAT,KAAoB,CAArC,EAAwC,OAAO,kBAAP;AACxC,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBT,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFC,MADiF,GACzDD,cADyD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACzDF,cADyD,CACzEE,WADyE;AAAA,MAEjFG,MAFiF,GAEtEN,OAFsE,CAEjFM,MAFiF;;AAIvF,MAAIH,WAAW,KAAK,OAApB,EAA6B;AAC3B,sCAA2BG,MAAM,CAACE,YAAlC,4BAAgEN,MAAhE;AACD;;AAED,oCAA2BI,MAAM,CAACE,YAAlC,sBAA0DN,MAA1D;AACD;;AAEM,SAASQ,iBAAT,OAAsD;AAAA,MAAzBJ,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACK,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBb,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,MACxFE,WADwF,GACrBF,cADqB,CACxFE,WADwF;AAAA,8BACrBF,cADqB,CAC3EG,QAD2E;AAAA,MAC3EA,QAD2E,sCAChE,EADgE;AAAA,8BACrBH,cADqB,CAC5Da,WAD4D;AAAA,MAC5DA,WAD4D,sCAC9C,aAD8C;AAAA,MAC/BT,KAD+B,GACrBJ,cADqB,CAC/BI,KAD+B;AAE9F,MAAIU,UAAU,GAAG;AAAEC,IAAAA,IAAI,EAAEb,WAAR;AAAqBc,IAAAA,GAAG,EAAEb,QAAQ,CAACc,IAAT,CAAc,GAAd;AAA1B,GAAjB;;AAEA,MAAIf,WAAW,KAAK,OAApB,EAA6B;AAC3BY,IAAAA,UAAU,GAAGI,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBL,UAAlB,EAA8B;AAAED,MAAAA,WAAW,EAAXA,WAAF;AAAeT,MAAAA,KAAK,EAALA;AAAf,KAA9B,CAAb;AACA,WAAOU,UAAU,CAACC,IAAlB;AACD;;AAED,SAAOD,UAAP;AACD;;AAEM,SAASM,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { ModifyDeviceArgs, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNPushNotificationEnabledChannelsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: ModifyDeviceArgs) {\n let { device, pushGateway, channels, topic } = incomingParams;\n let { config } = modules;\n\n if (!device) return 'Missing Device ID (device)';\n if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)';\n if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic';\n if (!channels || channels.length === 0) return 'Missing Channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: ModifyDeviceArgs): string {\n let { device, pushGateway } = incomingParams;\n let { config } = modules;\n\n if (pushGateway === 'apns2') {\n return `/v2/push/sub-key/${config.subscribeKey}/devices-apns2/${device}`;\n }\n\n return `/v1/push/sub-key/${config.subscribeKey}/devices/${device}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: ModifyDeviceArgs): Object {\n let { pushGateway, channels = [], environment = 'development', topic } = incomingParams;\n let parameters = { type: pushGateway, add: channels.join(',') };\n\n if (pushGateway === 'apns2') {\n parameters = Object.assign({}, parameters, { environment, topic });\n delete parameters.type;\n }\n\n return parameters;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"add_push_channels.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/push/add_push_channels.js"],"names":["getOperation","operationConstants","PNPushNotificationEnabledChannelsOperation","validateParams","modules","incomingParams","device","pushGateway","channels","topic","config","length","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","environment","parameters","type","add","join","Object","assign","handleResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,0CAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GACxCD,cADwC,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACxCF,cADwC,CACzEE,WADyE;AAAA,MAC5DC,QAD4D,GACxCH,cADwC,CAC5DG,QAD4D;AAAA,MAClDC,KADkD,GACxCJ,cADwC,CAClDI,KADkD;AAAA,MAEjFC,MAFiF,GAEtEN,OAFsE,CAEjFM,MAFiF;AAIvF,MAAI,CAACJ,MAAL,EAAa,OAAO,4BAAP;AACb,MAAI,CAACC,WAAL,EAAkB,OAAO,mDAAP;AAClB,MAAIA,WAAW,KAAK,OAAhB,IAA2B,CAACE,KAAhC,EAAuC,OAAO,qBAAP;AACvC,MAAI,CAACD,QAAD,IAAaA,QAAQ,CAACG,MAAT,KAAoB,CAArC,EAAwC,OAAO,kBAAP;AACxC,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBT,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFC,MADiF,GACzDD,cADyD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACzDF,cADyD,CACzEE,WADyE;AAAA,MAEjFG,MAFiF,GAEtEN,OAFsE,CAEjFM,MAFiF;;AAIvF,MAAIH,WAAW,KAAK,OAApB,EAA6B;AAC3B,sCAA2BG,MAAM,CAACE,YAAlC,4BAAgEN,MAAhE;AACD;;AAED,oCAA2BI,MAAM,CAACE,YAAlC,sBAA0DN,MAA1D;AACD;;AAEM,SAASQ,iBAAT,OAAsD;AAAA,MAAzBJ,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACK,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBb,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,MACxFE,WADwF,GACrBF,cADqB,CACxFE,WADwF;AAAA,8BACrBF,cADqB,CAC3EG,QAD2E;AAAA,MAC3EA,QAD2E,sCAChE,EADgE;AAAA,8BACrBH,cADqB,CAC5Da,WAD4D;AAAA,MAC5DA,WAD4D,sCAC9C,aAD8C;AAAA,MAC/BT,KAD+B,GACrBJ,cADqB,CAC/BI,KAD+B;AAE9F,MAAIU,UAAU,GAAG;AAAEC,IAAAA,IAAI,EAAEb,WAAR;AAAqBc,IAAAA,GAAG,EAAEb,QAAQ,CAACc,IAAT,CAAc,GAAd;AAA1B,GAAjB;;AAEA,MAAIf,WAAW,KAAK,OAApB,EAA6B;AAC3BY,IAAAA,UAAU,GAAGI,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBL,UAAlB,EAA8B;AAAED,MAAAA,WAAW,EAAXA,WAAF;AAAeT,MAAAA,KAAK,EAALA;AAAf,KAA9B,CAAb;AACA,WAAOU,UAAU,CAACC,IAAlB;AACD;;AAED,SAAOD,UAAP;AACD;;AAEM,SAASM,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { ModifyDeviceArgs, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNPushNotificationEnabledChannelsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: ModifyDeviceArgs) {\n let { device, pushGateway, channels, topic } = incomingParams;\n let { config } = modules;\n\n if (!device) return 'Missing Device ID (device)';\n if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)';\n if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic';\n if (!channels || channels.length === 0) return 'Missing Channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: ModifyDeviceArgs): string {\n let { device, pushGateway } = incomingParams;\n let { config } = modules;\n\n if (pushGateway === 'apns2') {\n return `/v2/push/sub-key/${config.subscribeKey}/devices-apns2/${device}`;\n }\n\n return `/v1/push/sub-key/${config.subscribeKey}/devices/${device}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: ModifyDeviceArgs): Object {\n let { pushGateway, channels = [], environment = 'development', topic } = incomingParams;\n let parameters = { type: pushGateway, add: channels.join(',') };\n\n if (pushGateway === 'apns2') {\n parameters = Object.assign({}, parameters, { environment, topic });\n delete parameters.type;\n }\n\n return parameters;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"add_push_channels.js"} \ No newline at end of file diff --git a/lib/core/endpoints/push/list_push_channels.js b/lib/core/endpoints/push/list_push_channels.js index 60ba07349..5025f3940 100644 --- a/lib/core/endpoints/push/list_push_channels.js +++ b/lib/core/endpoints/push/list_push_channels.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNPushNotificationEnabledChannelsOperation; } diff --git a/lib/core/endpoints/push/list_push_channels.js.map b/lib/core/endpoints/push/list_push_channels.js.map index b0e3fb816..cc5912e89 100644 --- a/lib/core/endpoints/push/list_push_channels.js.map +++ b/lib/core/endpoints/push/list_push_channels.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/push/list_push_channels.js"],"names":["getOperation","operationConstants","PNPushNotificationEnabledChannelsOperation","validateParams","modules","incomingParams","device","pushGateway","topic","config","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","environment","parameters","type","Object","assign","handleResponse","serverResponse","channels"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,0CAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GAClDD,cADkD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GAClDF,cADkD,CACzEE,WADyE;AAAA,MAC5DC,KAD4D,GAClDH,cADkD,CAC5DG,KAD4D;AAAA,MAEjFC,MAFiF,GAEtEL,OAFsE,CAEjFK,MAFiF;AAIvF,MAAI,CAACH,MAAL,EAAa,OAAO,4BAAP;AACb,MAAI,CAACC,WAAL,EAAkB,OAAO,mDAAP;AAClB,MAAIA,WAAW,KAAK,OAAhB,IAA2B,CAACC,KAAhC,EAAuC,OAAO,qBAAP;AACvC,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBP,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFC,MADiF,GACzDD,cADyD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACzDF,cADyD,CACzEE,WADyE;AAAA,MAEjFE,MAFiF,GAEtEL,OAFsE,CAEjFK,MAFiF;;AAIvF,MAAIF,WAAW,KAAK,OAApB,EAA6B;AAC3B,sCAA2BE,MAAM,CAACC,YAAlC,4BAAgEJ,MAAhE;AACD;;AAED,oCAA2BG,MAAM,CAACC,YAAlC,sBAA0DJ,MAA1D;AACD;;AAEM,SAASM,iBAAT,OAAsD;AAAA,MAAzBH,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACI,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBX,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,MACxFE,WADwF,GACpCF,cADoC,CACxFE,WADwF;AAAA,8BACpCF,cADoC,CAC3EW,WAD2E;AAAA,MAC3EA,WAD2E,sCAC7D,aAD6D;AAAA,MAC9CR,KAD8C,GACpCH,cADoC,CAC9CG,KAD8C;AAE9F,MAAIS,UAAU,GAAG;AAAEC,IAAAA,IAAI,EAAEX;AAAR,GAAjB;;AAEA,MAAIA,WAAW,KAAK,OAApB,EAA6B;AAC3BU,IAAAA,UAAU,GAAGE,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBH,UAAlB,EAA8B;AAAED,MAAAA,WAAW,EAAXA,WAAF;AAAeR,MAAAA,KAAK,EAALA;AAAf,KAA9B,CAAb;AACA,WAAOS,UAAU,CAACC,IAAlB;AACD;;AAED,SAAOD,UAAP;AACD;;AAEM,SAASI,cAAT,CAAwBjB,OAAxB,EAAgDkB,cAAhD,EAAqG;AAC1G,SAAO;AAAEC,IAAAA,QAAQ,EAAED;AAAZ,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport { ListChannelsArgs, ListChannelsResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNPushNotificationEnabledChannelsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: ListChannelsArgs) {\n let { device, pushGateway, topic } = incomingParams;\n let { config } = modules;\n\n if (!device) return 'Missing Device ID (device)';\n if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)';\n if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: ListChannelsArgs): string {\n let { device, pushGateway } = incomingParams;\n let { config } = modules;\n\n if (pushGateway === 'apns2') {\n return `/v2/push/sub-key/${config.subscribeKey}/devices-apns2/${device}`;\n }\n\n return `/v1/push/sub-key/${config.subscribeKey}/devices/${device}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: ListChannelsArgs): Object {\n let { pushGateway, environment = 'development', topic } = incomingParams;\n let parameters = { type: pushGateway };\n\n if (pushGateway === 'apns2') {\n parameters = Object.assign({}, parameters, { environment, topic });\n delete parameters.type;\n }\n\n return parameters;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Array): ListChannelsResponse {\n return { channels: serverResponse };\n}\n"],"file":"list_push_channels.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/push/list_push_channels.js"],"names":["getOperation","operationConstants","PNPushNotificationEnabledChannelsOperation","validateParams","modules","incomingParams","device","pushGateway","topic","config","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","environment","parameters","type","Object","assign","handleResponse","serverResponse","channels"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,0CAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GAClDD,cADkD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GAClDF,cADkD,CACzEE,WADyE;AAAA,MAC5DC,KAD4D,GAClDH,cADkD,CAC5DG,KAD4D;AAAA,MAEjFC,MAFiF,GAEtEL,OAFsE,CAEjFK,MAFiF;AAIvF,MAAI,CAACH,MAAL,EAAa,OAAO,4BAAP;AACb,MAAI,CAACC,WAAL,EAAkB,OAAO,mDAAP;AAClB,MAAIA,WAAW,KAAK,OAAhB,IAA2B,CAACC,KAAhC,EAAuC,OAAO,qBAAP;AACvC,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBP,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFC,MADiF,GACzDD,cADyD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACzDF,cADyD,CACzEE,WADyE;AAAA,MAEjFE,MAFiF,GAEtEL,OAFsE,CAEjFK,MAFiF;;AAIvF,MAAIF,WAAW,KAAK,OAApB,EAA6B;AAC3B,sCAA2BE,MAAM,CAACC,YAAlC,4BAAgEJ,MAAhE;AACD;;AAED,oCAA2BG,MAAM,CAACC,YAAlC,sBAA0DJ,MAA1D;AACD;;AAEM,SAASM,iBAAT,OAAsD;AAAA,MAAzBH,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACI,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBX,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,MACxFE,WADwF,GACpCF,cADoC,CACxFE,WADwF;AAAA,8BACpCF,cADoC,CAC3EW,WAD2E;AAAA,MAC3EA,WAD2E,sCAC7D,aAD6D;AAAA,MAC9CR,KAD8C,GACpCH,cADoC,CAC9CG,KAD8C;AAE9F,MAAIS,UAAU,GAAG;AAAEC,IAAAA,IAAI,EAAEX;AAAR,GAAjB;;AAEA,MAAIA,WAAW,KAAK,OAApB,EAA6B;AAC3BU,IAAAA,UAAU,GAAGE,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBH,UAAlB,EAA8B;AAAED,MAAAA,WAAW,EAAXA,WAAF;AAAeR,MAAAA,KAAK,EAALA;AAAf,KAA9B,CAAb;AACA,WAAOS,UAAU,CAACC,IAAlB;AACD;;AAED,SAAOD,UAAP;AACD;;AAEM,SAASI,cAAT,CAAwBjB,OAAxB,EAAgDkB,cAAhD,EAAqG;AAC1G,SAAO;AAAEC,IAAAA,QAAQ,EAAED;AAAZ,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport { ListChannelsArgs, ListChannelsResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNPushNotificationEnabledChannelsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: ListChannelsArgs) {\n let { device, pushGateway, topic } = incomingParams;\n let { config } = modules;\n\n if (!device) return 'Missing Device ID (device)';\n if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)';\n if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: ListChannelsArgs): string {\n let { device, pushGateway } = incomingParams;\n let { config } = modules;\n\n if (pushGateway === 'apns2') {\n return `/v2/push/sub-key/${config.subscribeKey}/devices-apns2/${device}`;\n }\n\n return `/v1/push/sub-key/${config.subscribeKey}/devices/${device}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: ListChannelsArgs): Object {\n let { pushGateway, environment = 'development', topic } = incomingParams;\n let parameters = { type: pushGateway };\n\n if (pushGateway === 'apns2') {\n parameters = Object.assign({}, parameters, { environment, topic });\n delete parameters.type;\n }\n\n return parameters;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Array): ListChannelsResponse {\n return { channels: serverResponse };\n}\n"],"file":"list_push_channels.js"} \ No newline at end of file diff --git a/lib/core/endpoints/push/remove_device.js b/lib/core/endpoints/push/remove_device.js index 6394796ba..3e5b34555 100644 --- a/lib/core/endpoints/push/remove_device.js +++ b/lib/core/endpoints/push/remove_device.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNRemoveAllPushNotificationsOperation; } diff --git a/lib/core/endpoints/push/remove_device.js.map b/lib/core/endpoints/push/remove_device.js.map index 57fd36e5a..6757c5f0e 100644 --- a/lib/core/endpoints/push/remove_device.js.map +++ b/lib/core/endpoints/push/remove_device.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/push/remove_device.js"],"names":["getOperation","operationConstants","PNRemoveAllPushNotificationsOperation","validateParams","modules","incomingParams","device","pushGateway","topic","config","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","environment","parameters","type","Object","assign","handleResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,qCAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GAClDD,cADkD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GAClDF,cADkD,CACzEE,WADyE;AAAA,MAC5DC,KAD4D,GAClDH,cADkD,CAC5DG,KAD4D;AAAA,MAEjFC,MAFiF,GAEtEL,OAFsE,CAEjFK,MAFiF;AAIvF,MAAI,CAACH,MAAL,EAAa,OAAO,4BAAP;AACb,MAAI,CAACC,WAAL,EAAkB,OAAO,mDAAP;AAClB,MAAIA,WAAW,KAAK,OAAhB,IAA2B,CAACC,KAAhC,EAAuC,OAAO,qBAAP;AACvC,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBP,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFC,MADiF,GACzDD,cADyD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACzDF,cADyD,CACzEE,WADyE;AAAA,MAEjFE,MAFiF,GAEtEL,OAFsE,CAEjFK,MAFiF;;AAIvF,MAAIF,WAAW,KAAK,OAApB,EAA6B;AAC3B,sCAA2BE,MAAM,CAACC,YAAlC,4BAAgEJ,MAAhE;AACD;;AAED,oCAA2BG,MAAM,CAACC,YAAlC,sBAA0DJ,MAA1D;AACD;;AAEM,SAASM,iBAAT,OAA8D;AAAA,MAAjCH,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACI,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBX,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,MACxFE,WADwF,GACpCF,cADoC,CACxFE,WADwF;AAAA,8BACpCF,cADoC,CAC3EW,WAD2E;AAAA,MAC3EA,WAD2E,sCAC7D,aAD6D;AAAA,MAC9CR,KAD8C,GACpCH,cADoC,CAC9CG,KAD8C;AAE9F,MAAIS,UAAU,GAAG;AAAEC,IAAAA,IAAI,EAAEX;AAAR,GAAjB;;AAEA,MAAIA,WAAW,KAAK,OAApB,EAA6B;AAC3BU,IAAAA,UAAU,GAAGE,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBH,UAAlB,EAA8B;AAAED,MAAAA,WAAW,EAAXA,WAAF;AAAeR,MAAAA,KAAK,EAALA;AAAf,KAA9B,CAAb;AACA,WAAOS,UAAU,CAACC,IAAlB;AACD;;AAED,SAAOD,UAAP;AACD;;AAEM,SAASI,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { RemoveDeviceArgs, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNRemoveAllPushNotificationsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: RemoveDeviceArgs) {\n let { device, pushGateway, topic } = incomingParams;\n let { config } = modules;\n\n if (!device) return 'Missing Device ID (device)';\n if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)';\n if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: RemoveDeviceArgs): string {\n let { device, pushGateway } = incomingParams;\n let { config } = modules;\n\n if (pushGateway === 'apns2') {\n return `/v2/push/sub-key/${config.subscribeKey}/devices-apns2/${device}/remove`;\n }\n\n return `/v1/push/sub-key/${config.subscribeKey}/devices/${device}/remove`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: RemoveDeviceArgs): Object {\n let { pushGateway, environment = 'development', topic } = incomingParams;\n let parameters = { type: pushGateway };\n\n if (pushGateway === 'apns2') {\n parameters = Object.assign({}, parameters, { environment, topic });\n delete parameters.type;\n }\n\n return parameters;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"remove_device.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/push/remove_device.js"],"names":["getOperation","operationConstants","PNRemoveAllPushNotificationsOperation","validateParams","modules","incomingParams","device","pushGateway","topic","config","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","environment","parameters","type","Object","assign","handleResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,qCAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GAClDD,cADkD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GAClDF,cADkD,CACzEE,WADyE;AAAA,MAC5DC,KAD4D,GAClDH,cADkD,CAC5DG,KAD4D;AAAA,MAEjFC,MAFiF,GAEtEL,OAFsE,CAEjFK,MAFiF;AAIvF,MAAI,CAACH,MAAL,EAAa,OAAO,4BAAP;AACb,MAAI,CAACC,WAAL,EAAkB,OAAO,mDAAP;AAClB,MAAIA,WAAW,KAAK,OAAhB,IAA2B,CAACC,KAAhC,EAAuC,OAAO,qBAAP;AACvC,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBP,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFC,MADiF,GACzDD,cADyD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACzDF,cADyD,CACzEE,WADyE;AAAA,MAEjFE,MAFiF,GAEtEL,OAFsE,CAEjFK,MAFiF;;AAIvF,MAAIF,WAAW,KAAK,OAApB,EAA6B;AAC3B,sCAA2BE,MAAM,CAACC,YAAlC,4BAAgEJ,MAAhE;AACD;;AAED,oCAA2BG,MAAM,CAACC,YAAlC,sBAA0DJ,MAA1D;AACD;;AAEM,SAASM,iBAAT,OAA8D;AAAA,MAAjCH,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACI,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBX,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,MACxFE,WADwF,GACpCF,cADoC,CACxFE,WADwF;AAAA,8BACpCF,cADoC,CAC3EW,WAD2E;AAAA,MAC3EA,WAD2E,sCAC7D,aAD6D;AAAA,MAC9CR,KAD8C,GACpCH,cADoC,CAC9CG,KAD8C;AAE9F,MAAIS,UAAU,GAAG;AAAEC,IAAAA,IAAI,EAAEX;AAAR,GAAjB;;AAEA,MAAIA,WAAW,KAAK,OAApB,EAA6B;AAC3BU,IAAAA,UAAU,GAAGE,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBH,UAAlB,EAA8B;AAAED,MAAAA,WAAW,EAAXA,WAAF;AAAeR,MAAAA,KAAK,EAALA;AAAf,KAA9B,CAAb;AACA,WAAOS,UAAU,CAACC,IAAlB;AACD;;AAED,SAAOD,UAAP;AACD;;AAEM,SAASI,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { RemoveDeviceArgs, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNRemoveAllPushNotificationsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: RemoveDeviceArgs) {\n let { device, pushGateway, topic } = incomingParams;\n let { config } = modules;\n\n if (!device) return 'Missing Device ID (device)';\n if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)';\n if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: RemoveDeviceArgs): string {\n let { device, pushGateway } = incomingParams;\n let { config } = modules;\n\n if (pushGateway === 'apns2') {\n return `/v2/push/sub-key/${config.subscribeKey}/devices-apns2/${device}/remove`;\n }\n\n return `/v1/push/sub-key/${config.subscribeKey}/devices/${device}/remove`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported(): boolean {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: RemoveDeviceArgs): Object {\n let { pushGateway, environment = 'development', topic } = incomingParams;\n let parameters = { type: pushGateway };\n\n if (pushGateway === 'apns2') {\n parameters = Object.assign({}, parameters, { environment, topic });\n delete parameters.type;\n }\n\n return parameters;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"remove_device.js"} \ No newline at end of file diff --git a/lib/core/endpoints/push/remove_push_channels.js b/lib/core/endpoints/push/remove_push_channels.js index f42f15436..70771c114 100644 --- a/lib/core/endpoints/push/remove_push_channels.js +++ b/lib/core/endpoints/push/remove_push_channels.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNPushNotificationEnabledChannelsOperation; } diff --git a/lib/core/endpoints/push/remove_push_channels.js.map b/lib/core/endpoints/push/remove_push_channels.js.map index 642a7e927..98c3814da 100644 --- a/lib/core/endpoints/push/remove_push_channels.js.map +++ b/lib/core/endpoints/push/remove_push_channels.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/push/remove_push_channels.js"],"names":["getOperation","operationConstants","PNPushNotificationEnabledChannelsOperation","validateParams","modules","incomingParams","device","pushGateway","channels","topic","config","length","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","environment","parameters","type","remove","join","Object","assign","handleResponse"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,0CAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GACxCD,cADwC,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACxCF,cADwC,CACzEE,WADyE;AAAA,MAC5DC,QAD4D,GACxCH,cADwC,CAC5DG,QAD4D;AAAA,MAClDC,KADkD,GACxCJ,cADwC,CAClDI,KADkD;AAAA,MAEjFC,MAFiF,GAEtEN,OAFsE,CAEjFM,MAFiF;AAIvF,MAAI,CAACJ,MAAL,EAAa,OAAO,4BAAP;AACb,MAAI,CAACC,WAAL,EAAkB,OAAO,mDAAP;AAClB,MAAIA,WAAW,KAAK,OAAhB,IAA2B,CAACE,KAAhC,EAAuC,OAAO,qBAAP;AACvC,MAAI,CAACD,QAAD,IAAaA,QAAQ,CAACG,MAAT,KAAoB,CAArC,EAAwC,OAAO,kBAAP;AACxC,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBT,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFC,MADiF,GACzDD,cADyD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACzDF,cADyD,CACzEE,WADyE;AAAA,MAEjFG,MAFiF,GAEtEN,OAFsE,CAEjFM,MAFiF;;AAIvF,MAAIH,WAAW,KAAK,OAApB,EAA6B;AAC3B,sCAA2BG,MAAM,CAACE,YAAlC,4BAAgEN,MAAhE;AACD;;AAED,oCAA2BI,MAAM,CAACE,YAAlC,sBAA0DN,MAA1D;AACD;;AAEM,SAASQ,iBAAT,OAAsD;AAAA,MAAzBJ,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACK,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBb,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,MACxFE,WADwF,GACrBF,cADqB,CACxFE,WADwF;AAAA,8BACrBF,cADqB,CAC3EG,QAD2E;AAAA,MAC3EA,QAD2E,sCAChE,EADgE;AAAA,8BACrBH,cADqB,CAC5Da,WAD4D;AAAA,MAC5DA,WAD4D,sCAC9C,aAD8C;AAAA,MAC/BT,KAD+B,GACrBJ,cADqB,CAC/BI,KAD+B;AAE9F,MAAIU,UAAU,GAAG;AAAEC,IAAAA,IAAI,EAAEb,WAAR;AAAqBc,IAAAA,MAAM,EAAEb,QAAQ,CAACc,IAAT,CAAc,GAAd;AAA7B,GAAjB;;AAEA,MAAIf,WAAW,KAAK,OAApB,EAA6B;AAC3BY,IAAAA,UAAU,GAAGI,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBL,UAAlB,EAA8B;AAAED,MAAAA,WAAW,EAAXA,WAAF;AAAeT,MAAAA,KAAK,EAALA;AAAf,KAA9B,CAAb;AACA,WAAOU,UAAU,CAACC,IAAlB;AACD;;AAED,SAAOD,UAAP;AACD;;AAEM,SAASM,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { ModifyDeviceArgs, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNPushNotificationEnabledChannelsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: ModifyDeviceArgs) {\n let { device, pushGateway, channels, topic } = incomingParams;\n let { config } = modules;\n\n if (!device) return 'Missing Device ID (device)';\n if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)';\n if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic';\n if (!channels || channels.length === 0) return 'Missing Channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: ModifyDeviceArgs): string {\n let { device, pushGateway } = incomingParams;\n let { config } = modules;\n\n if (pushGateway === 'apns2') {\n return `/v2/push/sub-key/${config.subscribeKey}/devices-apns2/${device}`;\n }\n\n return `/v1/push/sub-key/${config.subscribeKey}/devices/${device}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: ModifyDeviceArgs): Object {\n let { pushGateway, channels = [], environment = 'development', topic } = incomingParams;\n let parameters = { type: pushGateway, remove: channels.join(',') };\n\n if (pushGateway === 'apns2') {\n parameters = Object.assign({}, parameters, { environment, topic });\n delete parameters.type;\n }\n\n return parameters;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"remove_push_channels.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/push/remove_push_channels.js"],"names":["getOperation","operationConstants","PNPushNotificationEnabledChannelsOperation","validateParams","modules","incomingParams","device","pushGateway","channels","topic","config","length","subscribeKey","getURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","environment","parameters","type","remove","join","Object","assign","handleResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,0CAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,MADiF,GACxCD,cADwC,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACxCF,cADwC,CACzEE,WADyE;AAAA,MAC5DC,QAD4D,GACxCH,cADwC,CAC5DG,QAD4D;AAAA,MAClDC,KADkD,GACxCJ,cADwC,CAClDI,KADkD;AAAA,MAEjFC,MAFiF,GAEtEN,OAFsE,CAEjFM,MAFiF;AAIvF,MAAI,CAACJ,MAAL,EAAa,OAAO,4BAAP;AACb,MAAI,CAACC,WAAL,EAAkB,OAAO,mDAAP;AAClB,MAAIA,WAAW,KAAK,OAAhB,IAA2B,CAACE,KAAhC,EAAuC,OAAO,qBAAP;AACvC,MAAI,CAACD,QAAD,IAAaA,QAAQ,CAACG,MAAT,KAAoB,CAArC,EAAwC,OAAO,kBAAP;AACxC,MAAI,CAACD,MAAM,CAACE,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CAAgBT,OAAhB,EAAwCC,cAAxC,EAAkF;AAAA,MACjFC,MADiF,GACzDD,cADyD,CACjFC,MADiF;AAAA,MACzEC,WADyE,GACzDF,cADyD,CACzEE,WADyE;AAAA,MAEjFG,MAFiF,GAEtEN,OAFsE,CAEjFM,MAFiF;;AAIvF,MAAIH,WAAW,KAAK,OAApB,EAA6B;AAC3B,sCAA2BG,MAAM,CAACE,YAAlC,4BAAgEN,MAAhE;AACD;;AAED,oCAA2BI,MAAM,CAACE,YAAlC,sBAA0DN,MAA1D;AACD;;AAEM,SAASQ,iBAAT,OAAsD;AAAA,MAAzBJ,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACK,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,CAAuBb,OAAvB,EAA+CC,cAA/C,EAAyF;AAAA,MACxFE,WADwF,GACrBF,cADqB,CACxFE,WADwF;AAAA,8BACrBF,cADqB,CAC3EG,QAD2E;AAAA,MAC3EA,QAD2E,sCAChE,EADgE;AAAA,8BACrBH,cADqB,CAC5Da,WAD4D;AAAA,MAC5DA,WAD4D,sCAC9C,aAD8C;AAAA,MAC/BT,KAD+B,GACrBJ,cADqB,CAC/BI,KAD+B;AAE9F,MAAIU,UAAU,GAAG;AAAEC,IAAAA,IAAI,EAAEb,WAAR;AAAqBc,IAAAA,MAAM,EAAEb,QAAQ,CAACc,IAAT,CAAc,GAAd;AAA7B,GAAjB;;AAEA,MAAIf,WAAW,KAAK,OAApB,EAA6B;AAC3BY,IAAAA,UAAU,GAAGI,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBL,UAAlB,EAA8B;AAAED,MAAAA,WAAW,EAAXA,WAAF;AAAeT,MAAAA,KAAK,EAALA;AAAf,KAA9B,CAAb;AACA,WAAOU,UAAU,CAACC,IAAlB;AACD;;AAED,SAAOD,UAAP;AACD;;AAEM,SAASM,cAAT,GAAkC;AACvC,SAAO,EAAP;AACD","sourcesContent":["/* @flow */\n\nimport { ModifyDeviceArgs, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNPushNotificationEnabledChannelsOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: ModifyDeviceArgs) {\n let { device, pushGateway, channels, topic } = incomingParams;\n let { config } = modules;\n\n if (!device) return 'Missing Device ID (device)';\n if (!pushGateway) return 'Missing GW Type (pushGateway: gcm, apns or apns2)';\n if (pushGateway === 'apns2' && !topic) return 'Missing APNS2 topic';\n if (!channels || channels.length === 0) return 'Missing Channels';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: ModifyDeviceArgs): string {\n let { device, pushGateway } = incomingParams;\n let { config } = modules;\n\n if (pushGateway === 'apns2') {\n return `/v2/push/sub-key/${config.subscribeKey}/devices-apns2/${device}`;\n }\n\n return `/v1/push/sub-key/${config.subscribeKey}/devices/${device}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(modules: ModulesInject, incomingParams: ModifyDeviceArgs): Object {\n let { pushGateway, channels = [], environment = 'development', topic } = incomingParams;\n let parameters = { type: pushGateway, remove: channels.join(',') };\n\n if (pushGateway === 'apns2') {\n parameters = Object.assign({}, parameters, { environment, topic });\n delete parameters.type;\n }\n\n return parameters;\n}\n\nexport function handleResponse(): Object {\n return {};\n}\n"],"file":"remove_push_channels.js"} \ No newline at end of file diff --git a/lib/core/endpoints/signal.js b/lib/core/endpoints/signal.js index 6d368bbc3..d53d97c6d 100644 --- a/lib/core/endpoints/signal.js +++ b/lib/core/endpoints/signal.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../constants/operations")); var _utils = _interopRequireDefault(require("../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, messagePayload) { var stringifiedPayload = JSON.stringify(messagePayload); return stringifiedPayload; diff --git a/lib/core/endpoints/signal.js.map b/lib/core/endpoints/signal.js.map index 8e26da891..94235d237 100644 --- a/lib/core/endpoints/signal.js.map +++ b/lib/core/endpoints/signal.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/signal.js"],"names":["prepareMessagePayload","modules","messagePayload","stringifiedPayload","JSON","stringify","getOperation","operationConstants","PNSignalOperation","validateParams","incomingParams","config","message","channel","subscribeKey","getURL","publishKey","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","params","handleResponse","serverResponse","timetoken"],"mappings":";;;;;;;;;;;;;AAEA;;AAKA;;AACA;;;;AAEA,SAASA,qBAAT,CAA+BC,OAA/B,EAAwCC,cAAxC,EAAwD;AACtD,MAAIC,kBAAkB,GAAGC,IAAI,CAACC,SAAL,CAAeH,cAAf,CAAzB;AAEA,SAAOC,kBAAP;AACD;;AAEM,SAASG,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,iBAA1B;AACD;;AAEM,SAASC,cAAT,OAELC,cAFK,EAGL;AAAA,MAFEC,MAEF,QAFEA,MAEF;AAAA,MACMC,OADN,GAC2BF,cAD3B,CACME,OADN;AAAA,MACeC,OADf,GAC2BH,cAD3B,CACeG,OADf;AAGA,MAAI,CAACA,OAAL,EAAc,OAAO,iBAAP;AACd,MAAI,CAACD,OAAL,EAAc,OAAO,iBAAP;AACd,MAAI,CAACD,MAAM,CAACG,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CACLd,OADK,EAELS,cAFK,EAGG;AAAA,MACAC,MADA,GACWV,OADX,CACAU,MADA;AAAA,MAEAE,OAFA,GAEqBH,cAFrB,CAEAG,OAFA;AAAA,MAESD,OAFT,GAEqBF,cAFrB,CAESE,OAFT;AAGR,MAAIT,kBAAkB,GAAGH,qBAAqB,CAACC,OAAD,EAAUW,OAAV,CAA9C;AACA,2BAAkBD,MAAM,CAACK,UAAzB,cAAuCL,MAAM,CAACG,YAA9C,gBAAgEG,kBAAMC,YAAN,CAAmBL,OAAnB,CAAhE,gBAAiGI,kBAAMC,YAAN,CAAmBf,kBAAnB,CAAjG;AACD;;AAEM,SAASgB,iBAAT,QAAsD;AAAA,MAAzBR,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACS,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,MAAMC,MAAM,GAAG,EAAf;AAEA,SAAOA,MAAP;AACD;;AAEM,SAASC,cAAT,CACLvB,OADK,EAELwB,cAFK,EAGW;AAChB,SAAO;AAAEC,IAAAA,SAAS,EAAED,cAAc,CAAC,CAAD;AAA3B,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n SignalResponse,\n SignalArguments,\n ModulesInject,\n} from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\nimport utils from '../utils';\n\nfunction prepareMessagePayload(modules, messagePayload) {\n let stringifiedPayload = JSON.stringify(messagePayload);\n\n return stringifiedPayload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNSignalOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: SignalArguments\n) {\n let { message, channel } = incomingParams;\n\n if (!channel) return 'Missing Channel';\n if (!message) return 'Missing Message';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: SignalArguments\n): string {\n const { config } = modules;\n const { channel, message } = incomingParams;\n let stringifiedPayload = prepareMessagePayload(modules, message);\n return `/signal/${config.publishKey}/${config.subscribeKey}/0/${utils.encodeString(channel)}/0/${utils.encodeString(stringifiedPayload)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n const params = {};\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: Object\n): SignalResponse {\n return { timetoken: serverResponse[2] };\n}\n"],"file":"signal.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/signal.js"],"names":["prepareMessagePayload","modules","messagePayload","stringifiedPayload","JSON","stringify","getOperation","operationConstants","PNSignalOperation","validateParams","incomingParams","config","message","channel","subscribeKey","getURL","publishKey","utils","encodeString","getRequestTimeout","getTransactionTimeout","isAuthSupported","prepareParams","params","handleResponse","serverResponse","timetoken"],"mappings":";;;;;;;;;;;;;;;AAEA;;AAKA;;AACA;;AAEA,SAASA,qBAAT,CAA+BC,OAA/B,EAAwCC,cAAxC,EAAwD;AACtD,MAAIC,kBAAkB,GAAGC,IAAI,CAACC,SAAL,CAAeH,cAAf,CAAzB;AAEA,SAAOC,kBAAP;AACD;;AAEM,SAASG,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,iBAA1B;AACD;;AAEM,SAASC,cAAT,OAELC,cAFK,EAGL;AAAA,MAFEC,MAEF,QAFEA,MAEF;AAAA,MACMC,OADN,GAC2BF,cAD3B,CACME,OADN;AAAA,MACeC,OADf,GAC2BH,cAD3B,CACeG,OADf;AAGA,MAAI,CAACA,OAAL,EAAc,OAAO,iBAAP;AACd,MAAI,CAACD,OAAL,EAAc,OAAO,iBAAP;AACd,MAAI,CAACD,MAAM,CAACG,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,MAAT,CACLd,OADK,EAELS,cAFK,EAGG;AAAA,MACAC,MADA,GACWV,OADX,CACAU,MADA;AAAA,MAEAE,OAFA,GAEqBH,cAFrB,CAEAG,OAFA;AAAA,MAESD,OAFT,GAEqBF,cAFrB,CAESE,OAFT;AAGR,MAAIT,kBAAkB,GAAGH,qBAAqB,CAACC,OAAD,EAAUW,OAAV,CAA9C;AACA,2BAAkBD,MAAM,CAACK,UAAzB,cAAuCL,MAAM,CAACG,YAA9C,gBAAgEG,kBAAMC,YAAN,CAAmBL,OAAnB,CAAhE,gBAAiGI,kBAAMC,YAAN,CAAmBf,kBAAnB,CAAjG;AACD;;AAEM,SAASgB,iBAAT,QAAsD;AAAA,MAAzBR,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACS,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,MAAMC,MAAM,GAAG,EAAf;AAEA,SAAOA,MAAP;AACD;;AAEM,SAASC,cAAT,CACLvB,OADK,EAELwB,cAFK,EAGW;AAChB,SAAO;AAAEC,IAAAA,SAAS,EAAED,cAAc,CAAC,CAAD;AAA3B,GAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n SignalResponse,\n SignalArguments,\n ModulesInject,\n} from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\nimport utils from '../utils';\n\nfunction prepareMessagePayload(modules, messagePayload) {\n let stringifiedPayload = JSON.stringify(messagePayload);\n\n return stringifiedPayload;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNSignalOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: SignalArguments\n) {\n let { message, channel } = incomingParams;\n\n if (!channel) return 'Missing Channel';\n if (!message) return 'Missing Message';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: SignalArguments\n): string {\n const { config } = modules;\n const { channel, message } = incomingParams;\n let stringifiedPayload = prepareMessagePayload(modules, message);\n return `/signal/${config.publishKey}/${config.subscribeKey}/0/${utils.encodeString(channel)}/0/${utils.encodeString(stringifiedPayload)}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(): Object {\n const params = {};\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: Object\n): SignalResponse {\n return { timetoken: serverResponse[2] };\n}\n"],"file":"signal.js"} \ No newline at end of file diff --git a/lib/core/endpoints/spaces/create_space.js b/lib/core/endpoints/spaces/create_space.js index 9b8e84b3f..b1cbab0cb 100644 --- a/lib/core/endpoints/spaces/create_space.js +++ b/lib/core/endpoints/spaces/create_space.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { return incomingParams; } diff --git a/lib/core/endpoints/spaces/create_space.js.map b/lib/core/endpoints/spaces/create_space.js.map index bf06a7a88..fe33e0811 100644 --- a/lib/core/endpoints/spaces/create_space.js.map +++ b/lib/core/endpoints/spaces/create_space.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/spaces/create_space.js"],"names":["prepareMessagePayload","modules","incomingParams","getOperation","operationConstants","PNCreateSpaceOperation","validateParams","config","id","name","custom","subscribeKey","Object","values","every","value","usePost","getURL","postURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","postPayload","handleResponse","spacesResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n SpacesObjectInput,\n SpacesResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n return incomingParams;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNCreateSpaceOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: SpacesObjectInput\n) {\n let { id, name, custom } = incomingParams;\n\n if (!id) return 'Missing Space.id';\n if (!name) return 'Missing Space.name';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (custom) {\n if (\n !Object.values(custom).every(\n (value) => typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n ) {\n return 'Invalid custom type, only string, number and boolean values are allowed.';\n }\n }\n}\n\nexport function usePost() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/spaces`;\n}\n\nexport function postURL(modules: ModulesInject): string {\n const { config } = modules;\n return `/v1/objects/${config.subscribeKey}/spaces`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: SpacesObjectInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.id) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SpacesObjectInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function postPayload(\n modules: ModulesInject,\n incomingParams: SpacesObjectInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesResponse {\n return spacesResponse;\n}\n"],"file":"create_space.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/spaces/create_space.js"],"names":["prepareMessagePayload","modules","incomingParams","getOperation","operationConstants","PNCreateSpaceOperation","validateParams","config","id","name","custom","subscribeKey","Object","values","every","value","usePost","getURL","postURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","postPayload","handleResponse","spacesResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n SpacesObjectInput,\n SpacesResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n return incomingParams;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNCreateSpaceOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: SpacesObjectInput\n) {\n let { id, name, custom } = incomingParams;\n\n if (!id) return 'Missing Space.id';\n if (!name) return 'Missing Space.name';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (custom) {\n if (\n !Object.values(custom).every(\n (value) => typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n ) {\n return 'Invalid custom type, only string, number and boolean values are allowed.';\n }\n }\n}\n\nexport function usePost() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/spaces`;\n}\n\nexport function postURL(modules: ModulesInject): string {\n const { config } = modules;\n return `/v1/objects/${config.subscribeKey}/spaces`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: SpacesObjectInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.id) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SpacesObjectInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function postPayload(\n modules: ModulesInject,\n incomingParams: SpacesObjectInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesResponse {\n return spacesResponse;\n}\n"],"file":"create_space.js"} \ No newline at end of file diff --git a/lib/core/endpoints/spaces/delete_space.js b/lib/core/endpoints/spaces/delete_space.js index 0343d6315..7f1a5e37d 100644 --- a/lib/core/endpoints/spaces/delete_space.js +++ b/lib/core/endpoints/spaces/delete_space.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNDeleteSpaceOperation; } diff --git a/lib/core/endpoints/spaces/delete_space.js.map b/lib/core/endpoints/spaces/delete_space.js.map index c29d1cf11..4444a6c51 100644 --- a/lib/core/endpoints/spaces/delete_space.js.map +++ b/lib/core/endpoints/spaces/delete_space.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/spaces/delete_space.js"],"names":["getOperation","operationConstants","PNDeleteSpaceOperation","validateParams","spaceId","config","subscribeKey","useDelete","getURL","modules","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","handleResponse","spacesResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,sBAA1B;AACD;;AAEM,SAASC,cAAT,OAAmDC,OAAnD,EAAoE;AAAA,MAA1CC,MAA0C,QAA1CA,MAA0C;AACzE,MAAI,CAACD,OAAL,EAAc,OAAO,iBAAP;AACd,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,SAAT,GAAqB;AAC1B,SAAO,IAAP;AACD;;AAEM,SAASC,MAAT,CAAgBC,OAAhB,EAAwCL,OAAxC,EAAiE;AAAA,MAChEC,MADgE,GACrDI,OADqD,CAChEJ,MADgE;AAEtE,+BAAsBA,MAAM,CAACC,YAA7B,qBAAoDF,OAApD;AACD;;AAEM,SAASM,iBAAT,QAAsD;AAAA,MAAzBL,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACM,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBJ,OAAtB,EAA8CL,OAA9C,EAAuE;AAC5E,MAAIU,KAAK,GACPL,OAAO,CAACM,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,EAAuCZ,OAAvC,KACAK,OAAO,CAACM,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CACLT,OADK,EAELU,cAFK,EAGW;AAChB,SAAOA,cAAP;AACD","sourcesContent":["/* @flow */\n\nimport { SpacesResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNDeleteSpaceOperation;\n}\n\nexport function validateParams({ config }: ModulesInject, spaceId: string) {\n if (!spaceId) return 'Missing SpaceId';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function useDelete() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, spaceId: string): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/spaces/${spaceId}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, spaceId: string): string {\n let token =\n modules.tokenManager.getToken('space', spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesResponse {\n return spacesResponse;\n}\n"],"file":"delete_space.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/spaces/delete_space.js"],"names":["getOperation","operationConstants","PNDeleteSpaceOperation","validateParams","spaceId","config","subscribeKey","useDelete","getURL","modules","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","handleResponse","spacesResponse"],"mappings":";;;;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,sBAA1B;AACD;;AAEM,SAASC,cAAT,OAAmDC,OAAnD,EAAoE;AAAA,MAA1CC,MAA0C,QAA1CA,MAA0C;AACzE,MAAI,CAACD,OAAL,EAAc,OAAO,iBAAP;AACd,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,SAAT,GAAqB;AAC1B,SAAO,IAAP;AACD;;AAEM,SAASC,MAAT,CAAgBC,OAAhB,EAAwCL,OAAxC,EAAiE;AAAA,MAChEC,MADgE,GACrDI,OADqD,CAChEJ,MADgE;AAEtE,+BAAsBA,MAAM,CAACC,YAA7B,qBAAoDF,OAApD;AACD;;AAEM,SAASM,iBAAT,QAAsD;AAAA,MAAzBL,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACM,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBJ,OAAtB,EAA8CL,OAA9C,EAAuE;AAC5E,MAAIU,KAAK,GACPL,OAAO,CAACM,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,EAAuCZ,OAAvC,KACAK,OAAO,CAACM,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CACLT,OADK,EAELU,cAFK,EAGW;AAChB,SAAOA,cAAP;AACD","sourcesContent":["/* @flow */\n\nimport { SpacesResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNDeleteSpaceOperation;\n}\n\nexport function validateParams({ config }: ModulesInject, spaceId: string) {\n if (!spaceId) return 'Missing SpaceId';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function useDelete() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, spaceId: string): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/spaces/${spaceId}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, spaceId: string): string {\n let token =\n modules.tokenManager.getToken('space', spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesResponse {\n return spacesResponse;\n}\n"],"file":"delete_space.js"} \ No newline at end of file diff --git a/lib/core/endpoints/spaces/get_space.js b/lib/core/endpoints/spaces/get_space.js index 9e8ea52a1..7f5dc4ddf 100644 --- a/lib/core/endpoints/spaces/get_space.js +++ b/lib/core/endpoints/spaces/get_space.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -16,8 +18,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNGetSpaceOperation; } diff --git a/lib/core/endpoints/spaces/get_space.js.map b/lib/core/endpoints/spaces/get_space.js.map index 82941e019..087f1b3d6 100644 --- a/lib/core/endpoints/spaces/get_space.js.map +++ b/lib/core/endpoints/spaces/get_space.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/spaces/get_space.js"],"names":["getOperation","operationConstants","PNGetSpaceOperation","validateParams","modules","incomingParams","spaceId","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","handleResponse","spacesResponse"],"mappings":";;;;;;;;;;;;;;AAEA;;AAKA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,OADiF,GACrED,cADqE,CACjFC,OADiF;AAGvF,MAAI,CAACA,OAAL,EAAc,OAAO,iBAAP;AACf;;AAEM,SAASC,MAAT,CACLH,OADK,EAELC,cAFK,EAGG;AAAA,MACFG,MADE,GACSJ,OADT,CACFI,MADE;AAER,+BAAsBA,MAAM,CAACC,YAA7B,qBAAoDJ,cAAc,CAACC,OAAnE;AACD;;AAEM,SAASI,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBT,OAAtB,EAA8CC,cAA9C,EAAwF;AAC7F,MAAIS,KAAK,GACPV,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,EAAuCX,cAAc,CAACC,OAAtD,KACAF,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLb,OADK,EAELC,cAFK,EAGG;AAAA,MACFa,OADE,GACUb,cADV,CACFa,OADE;AAER,MAAMC,MAAM,GAAG,EAAf;;AAGA,MAAI,CAACD,OAAL,EAAc;AACZA,IAAAA,OAAO,GAAG;AACRE,MAAAA,YAAY,EAAE;AADN,KAAV;AAGD,GAJD,MAIO,IAAIF,OAAO,CAACE,YAAR,KAAyBC,SAA7B,EAAwC;AAC7CH,IAAAA,OAAO,CAACE,YAAR,GAAuB,IAAvB;AACD;;AAED,MAAIF,OAAJ,EAAa;AACX,QAAII,QAAQ,GAAG,EAAf;;AAEA,QAAIJ,OAAO,CAACE,YAAZ,EAA0B;AACxBE,MAAAA,QAAQ,CAACC,IAAT,CAAc,QAAd;AACD;;AAED,QAAIC,cAAc,GAAGF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BP,MAAAA,MAAM,CAACD,OAAP,GAAiBM,cAAjB;AACD;AACF;;AAED,SAAOL,MAAP;AACD;;AAEM,SAASQ,cAAT,CACLvB,OADK,EAELwB,cAFK,EAGW;AAChB,SAAOA,cAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n SingleSpaceInput,\n SpacesResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetSpaceOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: SingleSpaceInput) {\n let { spaceId } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: SingleSpaceInput\n): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: SingleSpaceInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SingleSpaceInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesResponse {\n return spacesResponse;\n}\n"],"file":"get_space.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/spaces/get_space.js"],"names":["getOperation","operationConstants","PNGetSpaceOperation","validateParams","modules","incomingParams","spaceId","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","handleResponse","spacesResponse"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AAKA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAkF;AAAA,MACjFC,OADiF,GACrED,cADqE,CACjFC,OADiF;AAGvF,MAAI,CAACA,OAAL,EAAc,OAAO,iBAAP;AACf;;AAEM,SAASC,MAAT,CACLH,OADK,EAELC,cAFK,EAGG;AAAA,MACFG,MADE,GACSJ,OADT,CACFI,MADE;AAER,+BAAsBA,MAAM,CAACC,YAA7B,qBAAoDJ,cAAc,CAACC,OAAnE;AACD;;AAEM,SAASI,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBT,OAAtB,EAA8CC,cAA9C,EAAwF;AAC7F,MAAIS,KAAK,GACPV,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,EAAuCX,cAAc,CAACC,OAAtD,KACAF,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLb,OADK,EAELC,cAFK,EAGG;AAAA,MACFa,OADE,GACUb,cADV,CACFa,OADE;AAER,MAAMC,MAAM,GAAG,EAAf;;AAGA,MAAI,CAACD,OAAL,EAAc;AACZA,IAAAA,OAAO,GAAG;AACRE,MAAAA,YAAY,EAAE;AADN,KAAV;AAGD,GAJD,MAIO,IAAIF,OAAO,CAACE,YAAR,KAAyBC,SAA7B,EAAwC;AAC7CH,IAAAA,OAAO,CAACE,YAAR,GAAuB,IAAvB;AACD;;AAED,MAAIF,OAAJ,EAAa;AACX,QAAII,QAAQ,GAAG,EAAf;;AAEA,QAAIJ,OAAO,CAACE,YAAZ,EAA0B;AACxBE,MAAAA,QAAQ,CAACC,IAAT,CAAc,QAAd;AACD;;AAED,QAAIC,cAAc,GAAGF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BP,MAAAA,MAAM,CAACD,OAAP,GAAiBM,cAAjB;AACD;AACF;;AAED,SAAOL,MAAP;AACD;;AAEM,SAASQ,cAAT,CACLvB,OADK,EAELwB,cAFK,EAGW;AAChB,SAAOA,cAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n SingleSpaceInput,\n SpacesResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetSpaceOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: SingleSpaceInput) {\n let { spaceId } = incomingParams;\n\n if (!spaceId) return 'Missing spaceId';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: SingleSpaceInput\n): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/spaces/${incomingParams.spaceId}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: SingleSpaceInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.spaceId) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SingleSpaceInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesResponse {\n return spacesResponse;\n}\n"],"file":"get_space.js"} \ No newline at end of file diff --git a/lib/core/endpoints/spaces/get_spaces.js b/lib/core/endpoints/spaces/get_spaces.js index c720cfd47..2d8c355c6 100644 --- a/lib/core/endpoints/spaces/get_spaces.js +++ b/lib/core/endpoints/spaces/get_spaces.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -16,8 +18,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNGetSpacesOperation; } diff --git a/lib/core/endpoints/spaces/get_spaces.js.map b/lib/core/endpoints/spaces/get_spaces.js.map index c9b942599..391d50757 100644 --- a/lib/core/endpoints/spaces/get_spaces.js.map +++ b/lib/core/endpoints/spaces/get_spaces.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/spaces/get_spaces.js"],"names":["getOperation","operationConstants","PNGetSpacesOperation","validateParams","getURL","modules","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","incomingParams","include","limit","page","filter","params","includes","totalCount","count","customFields","push","includesString","join","length","next","start","prev","end","handleResponse","spacesResponse"],"mappings":";;;;;;;;;;;;;;AAEA;;AAKA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,oBAA1B;AACD;;AAEM,SAASC,cAAT,GAA0B,CAEhC;;AAEM,SAASC,MAAT,CACLC,OADK,EAEG;AAAA,MACFC,MADE,GACSD,OADT,CACFC,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBN,OAAtB,EAAsD;AAC3D,MAAIO,KAAK,GAAGP,OAAO,CAACQ,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,CAAZ;AAEA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLV,OADK,EAELW,cAFK,EAGG;AAAA,MACAC,OADA,GACiCD,cADjC,CACAC,OADA;AAAA,MACSC,KADT,GACiCF,cADjC,CACSE,KADT;AAAA,MACgBC,IADhB,GACiCH,cADjC,CACgBG,IADhB;AAAA,MACsBC,MADtB,GACiCJ,cADjC,CACsBI,MADtB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,KAAJ,EAAW;AACTG,IAAAA,MAAM,CAACH,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAIK,QAAQ,GAAG,EAAf;;AAEA,QAAIL,OAAO,CAACM,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIP,OAAO,CAACQ,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACI,IAAT,CAAc,QAAd;AACD;;AAED,QAAIC,cAAc,GAAGL,QAAQ,CAACM,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BR,MAAAA,MAAM,CAACJ,OAAP,GAAiBU,cAAjB;AACD;AACF;;AAED,MAAIR,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACW,IAAT,EAAe;AACbT,MAAAA,MAAM,CAACU,KAAP,GAAeZ,IAAI,CAACW,IAApB;AACD;;AACD,QAAIX,IAAI,CAACa,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,GAAP,GAAad,IAAI,CAACa,IAAlB;AACD;AACF;;AAED,MAAIZ,MAAJ,EAAY;AACVC,IAAAA,MAAM,CAACD,MAAP,GAAgBA,MAAhB;AACD;;AAED,SAAOC,MAAP;AACD;;AAEM,SAASa,cAAT,CACL7B,OADK,EAEL8B,cAFK,EAGe;AACpB,SAAOA,cAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n SpaceListInput,\n SpacesListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetSpacesOperation;\n}\n\nexport function validateParams() {\n // no required parameters\n}\n\nexport function getURL(\n modules: ModulesInject\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject): string {\n let token = modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SpaceListInput\n): Object {\n const { include, limit, page, filter } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n if (filter) {\n params.filter = filter;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesListResponse {\n return spacesResponse;\n}\n"],"file":"get_spaces.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/spaces/get_spaces.js"],"names":["getOperation","operationConstants","PNGetSpacesOperation","validateParams","getURL","modules","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","incomingParams","include","limit","page","filter","params","includes","totalCount","count","customFields","push","includesString","join","length","next","start","prev","end","handleResponse","spacesResponse"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AAKA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,oBAA1B;AACD;;AAEM,SAASC,cAAT,GAA0B,CAEhC;;AAEM,SAASC,MAAT,CACLC,OADK,EAEG;AAAA,MACFC,MADE,GACSD,OADT,CACFC,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBN,OAAtB,EAAsD;AAC3D,MAAIO,KAAK,GAAGP,OAAO,CAACQ,YAAR,CAAqBC,QAArB,CAA8B,OAA9B,CAAZ;AAEA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLV,OADK,EAELW,cAFK,EAGG;AAAA,MACAC,OADA,GACiCD,cADjC,CACAC,OADA;AAAA,MACSC,KADT,GACiCF,cADjC,CACSE,KADT;AAAA,MACgBC,IADhB,GACiCH,cADjC,CACgBG,IADhB;AAAA,MACsBC,MADtB,GACiCJ,cADjC,CACsBI,MADtB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,KAAJ,EAAW;AACTG,IAAAA,MAAM,CAACH,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAIK,QAAQ,GAAG,EAAf;;AAEA,QAAIL,OAAO,CAACM,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIP,OAAO,CAACQ,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACI,IAAT,CAAc,QAAd;AACD;;AAED,QAAIC,cAAc,GAAGL,QAAQ,CAACM,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BR,MAAAA,MAAM,CAACJ,OAAP,GAAiBU,cAAjB;AACD;AACF;;AAED,MAAIR,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACW,IAAT,EAAe;AACbT,MAAAA,MAAM,CAACU,KAAP,GAAeZ,IAAI,CAACW,IAApB;AACD;;AACD,QAAIX,IAAI,CAACa,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,GAAP,GAAad,IAAI,CAACa,IAAlB;AACD;AACF;;AAED,MAAIZ,MAAJ,EAAY;AACVC,IAAAA,MAAM,CAACD,MAAP,GAAgBA,MAAhB;AACD;;AAED,SAAOC,MAAP;AACD;;AAEM,SAASa,cAAT,CACL7B,OADK,EAEL8B,cAFK,EAGe;AACpB,SAAOA,cAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n SpaceListInput,\n SpacesListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetSpacesOperation;\n}\n\nexport function validateParams() {\n // no required parameters\n}\n\nexport function getURL(\n modules: ModulesInject\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/spaces`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject): string {\n let token = modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SpaceListInput\n): Object {\n const { include, limit, page, filter } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n if (filter) {\n params.filter = filter;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesListResponse {\n return spacesResponse;\n}\n"],"file":"get_spaces.js"} \ No newline at end of file diff --git a/lib/core/endpoints/spaces/update_space.js b/lib/core/endpoints/spaces/update_space.js index d914b1730..15a838b15 100644 --- a/lib/core/endpoints/spaces/update_space.js +++ b/lib/core/endpoints/spaces/update_space.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { return incomingParams; } diff --git a/lib/core/endpoints/spaces/update_space.js.map b/lib/core/endpoints/spaces/update_space.js.map index 841bb1ceb..5839c111d 100644 --- a/lib/core/endpoints/spaces/update_space.js.map +++ b/lib/core/endpoints/spaces/update_space.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/spaces/update_space.js"],"names":["prepareMessagePayload","modules","incomingParams","getOperation","operationConstants","PNUpdateSpaceOperation","validateParams","config","id","name","custom","subscribeKey","Object","values","every","value","usePatch","getURL","patchURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","patchPayload","handleResponse","spacesResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n SpacesObjectInput,\n SpacesResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n return incomingParams;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateSpaceOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: SpacesObjectInput\n) {\n let { id, name, custom } = incomingParams;\n\n if (!id) return 'Missing Space.id';\n if (!name) return 'Missing Space.name';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (custom) {\n if (\n !Object.values(custom).every(\n (value) => typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n ) {\n return 'Invalid custom type, only string, number and boolean values are allowed.';\n }\n }\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: SpacesObjectInput): string {\n let { config } = modules;\n const { id } = incomingParams;\n return `/v1/objects/${config.subscribeKey}/spaces/${id}`;\n}\n\nexport function patchURL(modules: ModulesInject, incomingParams: SpacesObjectInput): string {\n const { config } = modules;\n const { id } = incomingParams;\n return `/v1/objects/${config.subscribeKey}/spaces/${id}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: SpacesObjectInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.id) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SpacesObjectInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: SpacesObjectInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesResponse {\n return spacesResponse;\n}\n"],"file":"update_space.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/spaces/update_space.js"],"names":["prepareMessagePayload","modules","incomingParams","getOperation","operationConstants","PNUpdateSpaceOperation","validateParams","config","id","name","custom","subscribeKey","Object","values","every","value","usePatch","getURL","patchURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","patchPayload","handleResponse","spacesResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n SpacesObjectInput,\n SpacesResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n return incomingParams;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateSpaceOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: SpacesObjectInput\n) {\n let { id, name, custom } = incomingParams;\n\n if (!id) return 'Missing Space.id';\n if (!name) return 'Missing Space.name';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (custom) {\n if (\n !Object.values(custom).every(\n (value) => typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n ) {\n return 'Invalid custom type, only string, number and boolean values are allowed.';\n }\n }\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: SpacesObjectInput): string {\n let { config } = modules;\n const { id } = incomingParams;\n return `/v1/objects/${config.subscribeKey}/spaces/${id}`;\n}\n\nexport function patchURL(modules: ModulesInject, incomingParams: SpacesObjectInput): string {\n const { config } = modules;\n const { id } = incomingParams;\n return `/v1/objects/${config.subscribeKey}/spaces/${id}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: SpacesObjectInput): string {\n let token =\n modules.tokenManager.getToken('space', incomingParams.id) ||\n modules.tokenManager.getToken('space');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SpacesObjectInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: SpacesObjectInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n spacesResponse: Object\n): SpacesResponse {\n return spacesResponse;\n}\n"],"file":"update_space.js"} \ No newline at end of file diff --git a/lib/core/endpoints/subscribe.js b/lib/core/endpoints/subscribe.js index 03dc20b33..e939615b0 100644 --- a/lib/core/endpoints/subscribe.js +++ b/lib/core/endpoints/subscribe.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _operations = _interopRequireDefault(require("../constants/operations")); var _utils = _interopRequireDefault(require("../utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNSubscribeOperation; } diff --git a/lib/core/endpoints/subscribe.js.map b/lib/core/endpoints/subscribe.js.map index 683e54cba..b193709fb 100644 --- a/lib/core/endpoints/subscribe.js.map +++ b/lib/core/endpoints/subscribe.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/subscribe.js"],"names":["getOperation","operationConstants","PNSubscribeOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","channels","stringifiedChannels","length","join","utils","encodeString","getRequestTimeout","getSubscribeTimeout","isAuthSupported","prepareParams","state","channelGroups","timetoken","filterExpression","region","params","heartbeat","getPresenceTimeout","Object","keys","JSON","stringify","tt","tr","handleResponse","serverResponse","messages","m","forEach","rawMessage","publishMetaData","publishTimetoken","p","t","r","parsedMessage","shard","parseInt","a","subscriptionMatch","b","channel","c","messageType","e","payload","d","flags","f","issuingClientId","i","k","originationTimetoken","o","userMetadata","u","push","metadata"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n SubscribeArguments,\n PublishMetaData,\n SubscribeMetadata,\n SubscribeMessage,\n SubscribeEnvelope,\n ModulesInject,\n} from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\nimport utils from '../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNSubscribeOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: SubscribeArguments\n): string {\n let { config } = modules;\n let { channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/subscribe/${config.subscribeKey}/${utils.encodeString(\n stringifiedChannels\n )}/0`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getSubscribeTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(\n { config }: ModulesInject,\n incomingParams: SubscribeArguments\n): Object {\n let {\n state,\n channelGroups = [],\n timetoken,\n filterExpression,\n region,\n } = incomingParams;\n const params: Object = {\n heartbeat: config.getPresenceTimeout(),\n };\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n if (filterExpression && filterExpression.length > 0) {\n params['filter-expr'] = filterExpression;\n }\n\n if (Object.keys(state).length) {\n params.state = JSON.stringify(state);\n }\n\n if (timetoken) {\n params.tt = timetoken;\n }\n\n if (region) {\n params.tr = region;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: Object\n): SubscribeEnvelope {\n const messages: Array = [];\n\n serverResponse.m.forEach((rawMessage) => {\n let publishMetaData: PublishMetaData = {\n publishTimetoken: rawMessage.p.t,\n region: rawMessage.p.r,\n };\n let parsedMessage: SubscribeMessage = {\n shard: parseInt(rawMessage.a, 10),\n subscriptionMatch: rawMessage.b,\n channel: rawMessage.c,\n messageType: rawMessage.e,\n payload: rawMessage.d,\n flags: rawMessage.f,\n issuingClientId: rawMessage.i,\n subscribeKey: rawMessage.k,\n originationTimetoken: rawMessage.o,\n userMetadata: rawMessage.u,\n publishMetaData,\n };\n messages.push(parsedMessage);\n });\n\n const metadata: SubscribeMetadata = {\n timetoken: serverResponse.t.t,\n region: serverResponse.t.r,\n };\n\n return { messages, metadata };\n}\n"],"file":"subscribe.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/subscribe.js"],"names":["getOperation","operationConstants","PNSubscribeOperation","validateParams","modules","config","subscribeKey","getURL","incomingParams","channels","stringifiedChannels","length","join","utils","encodeString","getRequestTimeout","getSubscribeTimeout","isAuthSupported","prepareParams","state","channelGroups","timetoken","filterExpression","region","params","heartbeat","getPresenceTimeout","Object","keys","JSON","stringify","tt","tr","handleResponse","serverResponse","messages","m","forEach","rawMessage","publishMetaData","publishTimetoken","p","t","r","parsedMessage","shard","parseInt","a","subscriptionMatch","b","channel","c","messageType","e","payload","d","flags","f","issuingClientId","i","k","originationTimetoken","o","userMetadata","u","push","metadata"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n SubscribeArguments,\n PublishMetaData,\n SubscribeMetadata,\n SubscribeMessage,\n SubscribeEnvelope,\n ModulesInject,\n} from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\nimport utils from '../utils';\n\nexport function getOperation(): string {\n return operationConstants.PNSubscribeOperation;\n}\n\nexport function validateParams(modules: ModulesInject) {\n let { config } = modules;\n\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: SubscribeArguments\n): string {\n let { config } = modules;\n let { channels = [] } = incomingParams;\n let stringifiedChannels = channels.length > 0 ? channels.join(',') : ',';\n return `/v2/subscribe/${config.subscribeKey}/${utils.encodeString(\n stringifiedChannels\n )}/0`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getSubscribeTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function prepareParams(\n { config }: ModulesInject,\n incomingParams: SubscribeArguments\n): Object {\n let {\n state,\n channelGroups = [],\n timetoken,\n filterExpression,\n region,\n } = incomingParams;\n const params: Object = {\n heartbeat: config.getPresenceTimeout(),\n };\n\n if (channelGroups.length > 0) {\n params['channel-group'] = channelGroups.join(',');\n }\n\n if (filterExpression && filterExpression.length > 0) {\n params['filter-expr'] = filterExpression;\n }\n\n if (Object.keys(state).length) {\n params.state = JSON.stringify(state);\n }\n\n if (timetoken) {\n params.tt = timetoken;\n }\n\n if (region) {\n params.tr = region;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n serverResponse: Object\n): SubscribeEnvelope {\n const messages: Array = [];\n\n serverResponse.m.forEach((rawMessage) => {\n let publishMetaData: PublishMetaData = {\n publishTimetoken: rawMessage.p.t,\n region: rawMessage.p.r,\n };\n let parsedMessage: SubscribeMessage = {\n shard: parseInt(rawMessage.a, 10),\n subscriptionMatch: rawMessage.b,\n channel: rawMessage.c,\n messageType: rawMessage.e,\n payload: rawMessage.d,\n flags: rawMessage.f,\n issuingClientId: rawMessage.i,\n subscribeKey: rawMessage.k,\n originationTimetoken: rawMessage.o,\n userMetadata: rawMessage.u,\n publishMetaData,\n };\n messages.push(parsedMessage);\n });\n\n const metadata: SubscribeMetadata = {\n timetoken: serverResponse.t.t,\n region: serverResponse.t.r,\n };\n\n return { messages, metadata };\n}\n"],"file":"subscribe.js"} \ No newline at end of file diff --git a/lib/core/endpoints/time.js b/lib/core/endpoints/time.js index 9f22c1577..8587b18c7 100644 --- a/lib/core/endpoints/time.js +++ b/lib/core/endpoints/time.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -15,8 +17,6 @@ var _flow_interfaces = require("../flow_interfaces"); var _operations = _interopRequireDefault(require("../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNTimeOperation; } diff --git a/lib/core/endpoints/time.js.map b/lib/core/endpoints/time.js.map index 93f1a4db9..225f71b39 100644 --- a/lib/core/endpoints/time.js.map +++ b/lib/core/endpoints/time.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/time.js"],"names":["getOperation","operationConstants","PNTimeOperation","getURL","getRequestTimeout","config","getTransactionTimeout","prepareParams","isAuthSupported","handleResponse","modules","serverResponse","timetoken","validateParams"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,eAA1B;AACD;;AAEM,SAASC,MAAT,GAA0B;AAC/B,SAAO,SAAP;AACD;;AAEM,SAASC,iBAAT,OAA8D;AAAA,MAAjCC,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACC,qBAAP,EAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,KAAP;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAsF;AAC3F,SAAO;AACLC,IAAAA,SAAS,EAAED,cAAc,CAAC,CAAD;AADpB,GAAP;AAGD;;AAEM,SAASE,cAAT,GAA0B,CAEhC","sourcesContent":["/* @flow */\n\nimport { TimeResponse, ModulesInject } from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNTimeOperation;\n}\n\nexport function getURL(): string {\n return '/time/0';\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function isAuthSupported(): boolean {\n return false;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): TimeResponse {\n return {\n timetoken: serverResponse[0]\n };\n}\n\nexport function validateParams() {\n // pass\n}\n"],"file":"time.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/time.js"],"names":["getOperation","operationConstants","PNTimeOperation","getURL","getRequestTimeout","config","getTransactionTimeout","prepareParams","isAuthSupported","handleResponse","modules","serverResponse","timetoken","validateParams"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,eAA1B;AACD;;AAEM,SAASC,MAAT,GAA0B;AAC/B,SAAO,SAAP;AACD;;AAEM,SAASC,iBAAT,OAA8D;AAAA,MAAjCC,MAAiC,QAAjCA,MAAiC;AACnE,SAAOA,MAAM,CAACC,qBAAP,EAAP;AACD;;AAEM,SAASC,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,eAAT,GAAoC;AACzC,SAAO,KAAP;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAsF;AAC3F,SAAO;AACLC,IAAAA,SAAS,EAAED,cAAc,CAAC,CAAD;AADpB,GAAP;AAGD;;AAEM,SAASE,cAAT,GAA0B,CAEhC","sourcesContent":["/* @flow */\n\nimport { TimeResponse, ModulesInject } from '../flow_interfaces';\nimport operationConstants from '../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNTimeOperation;\n}\n\nexport function getURL(): string {\n return '/time/0';\n}\n\nexport function getRequestTimeout({ config }: ModulesInject): number {\n return config.getTransactionTimeout();\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function isAuthSupported(): boolean {\n return false;\n}\n\nexport function handleResponse(modules: ModulesInject, serverResponse: Object): TimeResponse {\n return {\n timetoken: serverResponse[0]\n };\n}\n\nexport function validateParams() {\n // pass\n}\n"],"file":"time.js"} \ No newline at end of file diff --git a/lib/core/endpoints/users/create_user.js b/lib/core/endpoints/users/create_user.js index ebf339415..b35e2a0a4 100644 --- a/lib/core/endpoints/users/create_user.js +++ b/lib/core/endpoints/users/create_user.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { return incomingParams; } diff --git a/lib/core/endpoints/users/create_user.js.map b/lib/core/endpoints/users/create_user.js.map index 6d1aa1cb0..1c2e3ad6a 100644 --- a/lib/core/endpoints/users/create_user.js.map +++ b/lib/core/endpoints/users/create_user.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/users/create_user.js"],"names":["prepareMessagePayload","modules","incomingParams","getOperation","operationConstants","PNCreateUserOperation","validateParams","config","id","name","custom","subscribeKey","Object","values","every","value","usePost","getURL","postURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","postPayload","handleResponse","usersResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n UsersObjectInput,\n UsersResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n return incomingParams;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNCreateUserOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: UsersObjectInput\n) {\n let { id, name, custom } = incomingParams;\n\n if (!id) return 'Missing User.id';\n if (!name) return 'Missing User.name';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (custom) {\n if (\n !Object.values(custom).every(\n (value) => typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n ) {\n return 'Invalid custom type, only string, number and boolean values are allowed.';\n }\n }\n}\n\nexport function usePost() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/users`;\n}\n\nexport function postURL(modules: ModulesInject): string {\n const { config } = modules;\n return `/v1/objects/${config.subscribeKey}/users`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: UsersObjectInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.id) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: UsersObjectInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function postPayload(\n modules: ModulesInject,\n incomingParams: UsersObjectInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersResponse {\n return usersResponse;\n}\n"],"file":"create_user.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/users/create_user.js"],"names":["prepareMessagePayload","modules","incomingParams","getOperation","operationConstants","PNCreateUserOperation","validateParams","config","id","name","custom","subscribeKey","Object","values","every","value","usePost","getURL","postURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","postPayload","handleResponse","usersResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n UsersObjectInput,\n UsersResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n return incomingParams;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNCreateUserOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: UsersObjectInput\n) {\n let { id, name, custom } = incomingParams;\n\n if (!id) return 'Missing User.id';\n if (!name) return 'Missing User.name';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (custom) {\n if (\n !Object.values(custom).every(\n (value) => typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n ) {\n return 'Invalid custom type, only string, number and boolean values are allowed.';\n }\n }\n}\n\nexport function usePost() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/users`;\n}\n\nexport function postURL(modules: ModulesInject): string {\n const { config } = modules;\n return `/v1/objects/${config.subscribeKey}/users`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: UsersObjectInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.id) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: UsersObjectInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function postPayload(\n modules: ModulesInject,\n incomingParams: UsersObjectInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersResponse {\n return usersResponse;\n}\n"],"file":"create_user.js"} \ No newline at end of file diff --git a/lib/core/endpoints/users/delete_user.js b/lib/core/endpoints/users/delete_user.js index e0f269bb9..5a32c6a13 100644 --- a/lib/core/endpoints/users/delete_user.js +++ b/lib/core/endpoints/users/delete_user.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -17,8 +19,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNDeleteUserOperation; } diff --git a/lib/core/endpoints/users/delete_user.js.map b/lib/core/endpoints/users/delete_user.js.map index 2af6218d3..86cdb0ce9 100644 --- a/lib/core/endpoints/users/delete_user.js.map +++ b/lib/core/endpoints/users/delete_user.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/users/delete_user.js"],"names":["getOperation","operationConstants","PNDeleteUserOperation","validateParams","userId","config","subscribeKey","useDelete","getURL","modules","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","handleResponse","usersResponse"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,qBAA1B;AACD;;AAEM,SAASC,cAAT,OAAmDC,MAAnD,EAAmE;AAAA,MAAzCC,MAAyC,QAAzCA,MAAyC;AACxE,MAAI,CAACD,MAAL,EAAa,OAAO,gBAAP;AACb,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,SAAT,GAAqB;AAC1B,SAAO,IAAP;AACD;;AAEM,SAASC,MAAT,CAAgBC,OAAhB,EAAwCL,MAAxC,EAAgE;AAAA,MAC/DC,MAD+D,GACpDI,OADoD,CAC/DJ,MAD+D;AAErE,+BAAsBA,MAAM,CAACC,YAA7B,oBAAmDF,MAAnD;AACD;;AAEM,SAASM,iBAAT,QAAsD;AAAA,MAAzBL,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACM,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBJ,OAAtB,EAA8CL,MAA9C,EAAsE;AAC3E,MAAIU,KAAK,GACPL,OAAO,CAACM,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,EAAsCZ,MAAtC,KACAK,OAAO,CAACM,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CACLT,OADK,EAELU,aAFK,EAGU;AACf,SAAOA,aAAP;AACD","sourcesContent":["/* @flow */\n\nimport { UsersResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNDeleteUserOperation;\n}\n\nexport function validateParams({ config }: ModulesInject, userId: string) {\n if (!userId) return 'Missing UserId';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function useDelete() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, userId: string): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/users/${userId}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, userId: string): string {\n let token =\n modules.tokenManager.getToken('user', userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersResponse {\n return usersResponse;\n}\n"],"file":"delete_user.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/users/delete_user.js"],"names":["getOperation","operationConstants","PNDeleteUserOperation","validateParams","userId","config","subscribeKey","useDelete","getURL","modules","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","handleResponse","usersResponse"],"mappings":";;;;;;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,qBAA1B;AACD;;AAEM,SAASC,cAAT,OAAmDC,MAAnD,EAAmE;AAAA,MAAzCC,MAAyC,QAAzCA,MAAyC;AACxE,MAAI,CAACD,MAAL,EAAa,OAAO,gBAAP;AACb,MAAI,CAACC,MAAM,CAACC,YAAZ,EAA0B,OAAO,uBAAP;AAC3B;;AAEM,SAASC,SAAT,GAAqB;AAC1B,SAAO,IAAP;AACD;;AAEM,SAASC,MAAT,CAAgBC,OAAhB,EAAwCL,MAAxC,EAAgE;AAAA,MAC/DC,MAD+D,GACpDI,OADoD,CAC/DJ,MAD+D;AAErE,+BAAsBA,MAAM,CAACC,YAA7B,oBAAmDF,MAAnD;AACD;;AAEM,SAASM,iBAAT,QAAsD;AAAA,MAAzBL,MAAyB,SAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACM,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBJ,OAAtB,EAA8CL,MAA9C,EAAsE;AAC3E,MAAIU,KAAK,GACPL,OAAO,CAACM,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,EAAsCZ,MAAtC,KACAK,OAAO,CAACM,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,GAAiC;AACtC,SAAO,EAAP;AACD;;AAEM,SAASC,cAAT,CACLT,OADK,EAELU,aAFK,EAGU;AACf,SAAOA,aAAP;AACD","sourcesContent":["/* @flow */\n\nimport { UsersResponse, ModulesInject } from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNDeleteUserOperation;\n}\n\nexport function validateParams({ config }: ModulesInject, userId: string) {\n if (!userId) return 'Missing UserId';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n}\n\nexport function useDelete() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, userId: string): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/users/${userId}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, userId: string): string {\n let token =\n modules.tokenManager.getToken('user', userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(): Object {\n return {};\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersResponse {\n return usersResponse;\n}\n"],"file":"delete_user.js"} \ No newline at end of file diff --git a/lib/core/endpoints/users/get_user.js b/lib/core/endpoints/users/get_user.js index 0dfe83e35..737dff5c7 100644 --- a/lib/core/endpoints/users/get_user.js +++ b/lib/core/endpoints/users/get_user.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -16,8 +18,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNGetUserOperation; } diff --git a/lib/core/endpoints/users/get_user.js.map b/lib/core/endpoints/users/get_user.js.map index 064009d30..7954154fb 100644 --- a/lib/core/endpoints/users/get_user.js.map +++ b/lib/core/endpoints/users/get_user.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/users/get_user.js"],"names":["getOperation","operationConstants","PNGetUserOperation","validateParams","modules","incomingParams","userId","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","handleResponse","usersResponse"],"mappings":";;;;;;;;;;;;;;AAEA;;AAKA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,kBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAiF;AAAA,MAChFC,MADgF,GACrED,cADqE,CAChFC,MADgF;AAGtF,MAAI,CAACA,MAAL,EAAa,OAAO,gBAAP;AACd;;AAEM,SAASC,MAAT,CACLH,OADK,EAELC,cAFK,EAGG;AAAA,MACFG,MADE,GACSJ,OADT,CACFI,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,oBAAmDJ,cAAc,CAACC,MAAlE;AACD;;AAEM,SAASI,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBT,OAAtB,EAA8CC,cAA9C,EAAuF;AAC5F,MAAIS,KAAK,GACPV,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,EAAsCX,cAAc,CAACC,MAArD,KACAF,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLb,OADK,EAELC,cAFK,EAGG;AAAA,MACFa,OADE,GACUb,cADV,CACFa,OADE;AAER,MAAMC,MAAM,GAAG,EAAf;;AAGA,MAAI,CAACD,OAAL,EAAc;AACZA,IAAAA,OAAO,GAAG;AACRE,MAAAA,YAAY,EAAE;AADN,KAAV;AAGD,GAJD,MAIO,IAAIF,OAAO,CAACE,YAAR,KAAyBC,SAA7B,EAAwC;AAC7CH,IAAAA,OAAO,CAACE,YAAR,GAAuB,IAAvB;AACD;;AAED,MAAIF,OAAJ,EAAa;AACX,QAAII,QAAQ,GAAG,EAAf;;AAEA,QAAIJ,OAAO,CAACE,YAAZ,EAA0B;AACxBE,MAAAA,QAAQ,CAACC,IAAT,CAAc,QAAd;AACD;;AAED,QAAIC,cAAc,GAAGF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BP,MAAAA,MAAM,CAACD,OAAP,GAAiBM,cAAjB;AACD;AACF;;AAED,SAAOL,MAAP;AACD;;AAEM,SAASQ,cAAT,CACLvB,OADK,EAELwB,aAFK,EAGU;AACf,SAAOA,aAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n SingleUserInput,\n UsersResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetUserOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: SingleUserInput) {\n let { userId } = incomingParams;\n\n if (!userId) return 'Missing userId';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: SingleUserInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: SingleUserInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SingleUserInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersResponse {\n return usersResponse;\n}\n"],"file":"get_user.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/users/get_user.js"],"names":["getOperation","operationConstants","PNGetUserOperation","validateParams","modules","incomingParams","userId","getURL","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","handleResponse","usersResponse"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AAKA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,kBAA1B;AACD;;AAEM,SAASC,cAAT,CAAwBC,OAAxB,EAAgDC,cAAhD,EAAiF;AAAA,MAChFC,MADgF,GACrED,cADqE,CAChFC,MADgF;AAGtF,MAAI,CAACA,MAAL,EAAa,OAAO,gBAAP;AACd;;AAEM,SAASC,MAAT,CACLH,OADK,EAELC,cAFK,EAGG;AAAA,MACFG,MADE,GACSJ,OADT,CACFI,MADE;AAGR,+BAAsBA,MAAM,CAACC,YAA7B,oBAAmDJ,cAAc,CAACC,MAAlE;AACD;;AAEM,SAASI,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBT,OAAtB,EAA8CC,cAA9C,EAAuF;AAC5F,MAAIS,KAAK,GACPV,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,EAAsCX,cAAc,CAACC,MAArD,KACAF,OAAO,CAACW,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,CAFF;AAIA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLb,OADK,EAELC,cAFK,EAGG;AAAA,MACFa,OADE,GACUb,cADV,CACFa,OADE;AAER,MAAMC,MAAM,GAAG,EAAf;;AAGA,MAAI,CAACD,OAAL,EAAc;AACZA,IAAAA,OAAO,GAAG;AACRE,MAAAA,YAAY,EAAE;AADN,KAAV;AAGD,GAJD,MAIO,IAAIF,OAAO,CAACE,YAAR,KAAyBC,SAA7B,EAAwC;AAC7CH,IAAAA,OAAO,CAACE,YAAR,GAAuB,IAAvB;AACD;;AAED,MAAIF,OAAJ,EAAa;AACX,QAAII,QAAQ,GAAG,EAAf;;AAEA,QAAIJ,OAAO,CAACE,YAAZ,EAA0B;AACxBE,MAAAA,QAAQ,CAACC,IAAT,CAAc,QAAd;AACD;;AAED,QAAIC,cAAc,GAAGF,QAAQ,CAACG,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BP,MAAAA,MAAM,CAACD,OAAP,GAAiBM,cAAjB;AACD;AACF;;AAED,SAAOL,MAAP;AACD;;AAEM,SAASQ,cAAT,CACLvB,OADK,EAELwB,aAFK,EAGU;AACf,SAAOA,aAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n SingleUserInput,\n UsersResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetUserOperation;\n}\n\nexport function validateParams(modules: ModulesInject, incomingParams: SingleUserInput) {\n let { userId } = incomingParams;\n\n if (!userId) return 'Missing userId';\n}\n\nexport function getURL(\n modules: ModulesInject,\n incomingParams: SingleUserInput\n): string {\n let { config } = modules;\n\n return `/v1/objects/${config.subscribeKey}/users/${incomingParams.userId}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: SingleUserInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.userId) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: SingleUserInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersResponse {\n return usersResponse;\n}\n"],"file":"get_user.js"} \ No newline at end of file diff --git a/lib/core/endpoints/users/get_users.js b/lib/core/endpoints/users/get_users.js index 95579df00..fc807d6db 100644 --- a/lib/core/endpoints/users/get_users.js +++ b/lib/core/endpoints/users/get_users.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -16,8 +18,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function getOperation() { return _operations["default"].PNGetUsersOperation; } diff --git a/lib/core/endpoints/users/get_users.js.map b/lib/core/endpoints/users/get_users.js.map index 95cc4cdb0..1796b1d64 100644 --- a/lib/core/endpoints/users/get_users.js.map +++ b/lib/core/endpoints/users/get_users.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/users/get_users.js"],"names":["getOperation","operationConstants","PNGetUsersOperation","validateParams","getURL","modules","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","incomingParams","include","limit","page","filter","params","includes","totalCount","count","customFields","push","includesString","join","length","next","start","prev","end","handleResponse","usersResponse"],"mappings":";;;;;;;;;;;;;;AAEA;;AAKA;;;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,GAA0B,CAEhC;;AAEM,SAASC,MAAT,CACLC,OADK,EAEG;AAAA,MACFC,MADE,GACSD,OADT,CACFC,MADE;AAER,+BAAsBA,MAAM,CAACC,YAA7B;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBN,OAAtB,EAAsD;AAC3D,MAAIO,KAAK,GAAGP,OAAO,CAACQ,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,CAAZ;AAEA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLV,OADK,EAELW,cAFK,EAGG;AAAA,MACAC,OADA,GACiCD,cADjC,CACAC,OADA;AAAA,MACSC,KADT,GACiCF,cADjC,CACSE,KADT;AAAA,MACgBC,IADhB,GACiCH,cADjC,CACgBG,IADhB;AAAA,MACsBC,MADtB,GACiCJ,cADjC,CACsBI,MADtB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,KAAJ,EAAW;AACTG,IAAAA,MAAM,CAACH,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAIK,QAAQ,GAAG,EAAf;;AAEA,QAAIL,OAAO,CAACM,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIP,OAAO,CAACQ,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACI,IAAT,CAAc,QAAd;AACD;;AAED,QAAIC,cAAc,GAAGL,QAAQ,CAACM,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BR,MAAAA,MAAM,CAACJ,OAAP,GAAiBU,cAAjB;AACD;AACF;;AAED,MAAIR,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACW,IAAT,EAAe;AACbT,MAAAA,MAAM,CAACU,KAAP,GAAeZ,IAAI,CAACW,IAApB;AACD;;AACD,QAAIX,IAAI,CAACa,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,GAAP,GAAad,IAAI,CAACa,IAAlB;AACD;AACF;;AAED,MAAIZ,MAAJ,EAAY;AACVC,IAAAA,MAAM,CAACD,MAAP,GAAgBA,MAAhB;AACD;;AAED,SAAOC,MAAP;AACD;;AAEM,SAASa,cAAT,CACL7B,OADK,EAEL8B,aAFK,EAGc;AACnB,SAAOA,aAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n UserListInput,\n UsersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetUsersOperation;\n}\n\nexport function validateParams() {\n // no required parameters\n}\n\nexport function getURL(\n modules: ModulesInject,\n): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/users`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject): string {\n let token = modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: UserListInput\n): Object {\n const { include, limit, page, filter } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n if (filter) {\n params.filter = filter;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersListResponse {\n return usersResponse;\n}\n"],"file":"get_users.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/users/get_users.js"],"names":["getOperation","operationConstants","PNGetUsersOperation","validateParams","getURL","modules","config","subscribeKey","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","incomingParams","include","limit","page","filter","params","includes","totalCount","count","customFields","push","includesString","join","length","next","start","prev","end","handleResponse","usersResponse"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AAKA;;AAEO,SAASA,YAAT,GAAgC;AACrC,SAAOC,uBAAmBC,mBAA1B;AACD;;AAEM,SAASC,cAAT,GAA0B,CAEhC;;AAEM,SAASC,MAAT,CACLC,OADK,EAEG;AAAA,MACFC,MADE,GACSD,OADT,CACFC,MADE;AAER,+BAAsBA,MAAM,CAACC,YAA7B;AACD;;AAEM,SAASC,iBAAT,OAAsD;AAAA,MAAzBF,MAAyB,QAAzBA,MAAyB;AAC3D,SAAOA,MAAM,CAACG,qBAAP,EAAP;AACD;;AAEM,SAASC,eAAT,GAA2B;AAChC,SAAO,IAAP;AACD;;AAEM,SAASC,YAAT,CAAsBN,OAAtB,EAAsD;AAC3D,MAAIO,KAAK,GAAGP,OAAO,CAACQ,YAAR,CAAqBC,QAArB,CAA8B,MAA9B,CAAZ;AAEA,SAAOF,KAAP;AACD;;AAEM,SAASG,aAAT,CACLV,OADK,EAELW,cAFK,EAGG;AAAA,MACAC,OADA,GACiCD,cADjC,CACAC,OADA;AAAA,MACSC,KADT,GACiCF,cADjC,CACSE,KADT;AAAA,MACgBC,IADhB,GACiCH,cADjC,CACgBG,IADhB;AAAA,MACsBC,MADtB,GACiCJ,cADjC,CACsBI,MADtB;AAER,MAAMC,MAAM,GAAG,EAAf;;AAEA,MAAIH,KAAJ,EAAW;AACTG,IAAAA,MAAM,CAACH,KAAP,GAAeA,KAAf;AACD;;AAED,MAAID,OAAJ,EAAa;AACX,QAAIK,QAAQ,GAAG,EAAf;;AAEA,QAAIL,OAAO,CAACM,UAAZ,EAAwB;AACtBF,MAAAA,MAAM,CAACG,KAAP,GAAe,IAAf;AACD;;AAED,QAAIP,OAAO,CAACQ,YAAZ,EAA0B;AACxBH,MAAAA,QAAQ,CAACI,IAAT,CAAc,QAAd;AACD;;AAED,QAAIC,cAAc,GAAGL,QAAQ,CAACM,IAAT,CAAc,GAAd,CAArB;;AAEA,QAAID,cAAc,CAACE,MAAf,GAAwB,CAA5B,EAA+B;AAC7BR,MAAAA,MAAM,CAACJ,OAAP,GAAiBU,cAAjB;AACD;AACF;;AAED,MAAIR,IAAJ,EAAU;AACR,QAAIA,IAAI,CAACW,IAAT,EAAe;AACbT,MAAAA,MAAM,CAACU,KAAP,GAAeZ,IAAI,CAACW,IAApB;AACD;;AACD,QAAIX,IAAI,CAACa,IAAT,EAAe;AACbX,MAAAA,MAAM,CAACY,GAAP,GAAad,IAAI,CAACa,IAAlB;AACD;AACF;;AAED,MAAIZ,MAAJ,EAAY;AACVC,IAAAA,MAAM,CAACD,MAAP,GAAgBA,MAAhB;AACD;;AAED,SAAOC,MAAP;AACD;;AAEM,SAASa,cAAT,CACL7B,OADK,EAEL8B,aAFK,EAGc;AACnB,SAAOA,aAAP;AACD","sourcesContent":["/* @flow */\n\nimport {\n UserListInput,\n UsersListResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nexport function getOperation(): string {\n return operationConstants.PNGetUsersOperation;\n}\n\nexport function validateParams() {\n // no required parameters\n}\n\nexport function getURL(\n modules: ModulesInject,\n): string {\n let { config } = modules;\n return `/v1/objects/${config.subscribeKey}/users`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject): string {\n let token = modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: UserListInput\n): Object {\n const { include, limit, page, filter } = incomingParams;\n const params = {};\n\n if (limit) {\n params.limit = limit;\n }\n\n if (include) {\n let includes = [];\n\n if (include.totalCount) {\n params.count = true;\n }\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n if (page) {\n if (page.next) {\n params.start = page.next;\n }\n if (page.prev) {\n params.end = page.prev;\n }\n }\n\n if (filter) {\n params.filter = filter;\n }\n\n return params;\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersListResponse {\n return usersResponse;\n}\n"],"file":"get_users.js"} \ No newline at end of file diff --git a/lib/core/endpoints/users/update_user.js b/lib/core/endpoints/users/update_user.js index 73290a762..80c9a9dc3 100644 --- a/lib/core/endpoints/users/update_user.js +++ b/lib/core/endpoints/users/update_user.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -19,8 +21,6 @@ var _flow_interfaces = require("../../flow_interfaces"); var _operations = _interopRequireDefault(require("../../constants/operations")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function prepareMessagePayload(modules, incomingParams) { return incomingParams; } diff --git a/lib/core/endpoints/users/update_user.js.map b/lib/core/endpoints/users/update_user.js.map index 4b5150a84..d801b3fe4 100644 --- a/lib/core/endpoints/users/update_user.js.map +++ b/lib/core/endpoints/users/update_user.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/endpoints/users/update_user.js"],"names":["prepareMessagePayload","modules","incomingParams","getOperation","operationConstants","PNUpdateUserOperation","validateParams","config","id","name","custom","subscribeKey","Object","values","every","value","usePatch","getURL","patchURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","patchPayload","handleResponse","usersResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n UsersObjectInput,\n UsersResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n return incomingParams;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateUserOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: UsersObjectInput\n) {\n let { id, name, custom } = incomingParams;\n\n if (!id) return 'Missing User.id';\n if (!name) return 'Missing User.name';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (custom) {\n if (\n !Object.values(custom).every(\n (value) => typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n ) {\n return 'Invalid custom type, only string, number and boolean values are allowed.';\n }\n }\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: UsersObjectInput): string {\n let { config } = modules;\n const { id } = incomingParams;\n return `/v1/objects/${config.subscribeKey}/users/${id}`;\n}\n\nexport function patchURL(modules: ModulesInject, incomingParams: UsersObjectInput): string {\n const { config } = modules;\n const { id } = incomingParams;\n return `/v1/objects/${config.subscribeKey}/users/${id}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: UsersObjectInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.id) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: UsersObjectInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: UsersObjectInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersResponse {\n return usersResponse;\n}\n"],"file":"update_user.js"} \ No newline at end of file +{"version":3,"sources":["core/endpoints/users/update_user.js"],"names":["prepareMessagePayload","modules","incomingParams","getOperation","operationConstants","PNUpdateUserOperation","validateParams","config","id","name","custom","subscribeKey","Object","values","every","value","usePatch","getURL","patchURL","getRequestTimeout","getTransactionTimeout","isAuthSupported","getAuthToken","token","tokenManager","getToken","prepareParams","include","params","customFields","undefined","includes","push","includesString","join","length","patchPayload","handleResponse","usersResponse"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport {\n UsersObjectInput,\n UsersResponse,\n ModulesInject,\n} from '../../flow_interfaces';\nimport operationConstants from '../../constants/operations';\n\nfunction prepareMessagePayload(modules, incomingParams) {\n return incomingParams;\n}\n\nexport function getOperation(): string {\n return operationConstants.PNUpdateUserOperation;\n}\n\nexport function validateParams(\n { config }: ModulesInject,\n incomingParams: UsersObjectInput\n) {\n let { id, name, custom } = incomingParams;\n\n if (!id) return 'Missing User.id';\n if (!name) return 'Missing User.name';\n if (!config.subscribeKey) return 'Missing Subscribe Key';\n\n if (custom) {\n if (\n !Object.values(custom).every(\n (value) => typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n ) {\n return 'Invalid custom type, only string, number and boolean values are allowed.';\n }\n }\n}\n\nexport function usePatch() {\n return true;\n}\n\nexport function getURL(modules: ModulesInject, incomingParams: UsersObjectInput): string {\n let { config } = modules;\n const { id } = incomingParams;\n return `/v1/objects/${config.subscribeKey}/users/${id}`;\n}\n\nexport function patchURL(modules: ModulesInject, incomingParams: UsersObjectInput): string {\n const { config } = modules;\n const { id } = incomingParams;\n return `/v1/objects/${config.subscribeKey}/users/${id}`;\n}\n\nexport function getRequestTimeout({ config }: ModulesInject) {\n return config.getTransactionTimeout();\n}\n\nexport function isAuthSupported() {\n return true;\n}\n\nexport function getAuthToken(modules: ModulesInject, incomingParams: UsersObjectInput): string {\n let token =\n modules.tokenManager.getToken('user', incomingParams.id) ||\n modules.tokenManager.getToken('user');\n\n return token;\n}\n\nexport function prepareParams(\n modules: ModulesInject,\n incomingParams: UsersObjectInput\n): Object {\n let { include } = incomingParams;\n const params = {};\n\n // default to include custom fields in response\n if (!include) {\n include = {\n customFields: true\n };\n } else if (include.customFields === undefined) {\n include.customFields = true;\n }\n\n if (include) {\n let includes = [];\n\n if (include.customFields) {\n includes.push('custom');\n }\n\n let includesString = includes.join(',');\n\n if (includesString.length > 0) {\n params.include = includesString;\n }\n }\n\n return params;\n}\n\nexport function patchPayload(\n modules: ModulesInject,\n incomingParams: UsersObjectInput\n): Object {\n return prepareMessagePayload(modules, incomingParams);\n}\n\nexport function handleResponse(\n modules: ModulesInject,\n usersResponse: Object\n): UsersResponse {\n return usersResponse;\n}\n"],"file":"update_user.js"} \ No newline at end of file diff --git a/lib/core/pubnub-common.js b/lib/core/pubnub-common.js index bd47acc69..3d24f6320 100644 --- a/lib/core/pubnub-common.js +++ b/lib/core/pubnub-common.js @@ -1,12 +1,20 @@ "use strict"; -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); } +var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); + var _config = _interopRequireDefault(require("./components/config")); var _index = _interopRequireDefault(require("./components/cryptography/index")); @@ -61,6 +69,24 @@ var removeMessageActionEndpointConfig = _interopRequireWildcard(require("./endpo var getMessageActionEndpointConfig = _interopRequireWildcard(require("./endpoints/actions/get_message_actions")); +var _file = require("../file"); + +var fileUploadTypes = _interopRequireWildcard(require("./endpoints/file_upload/types")); + +var _list_files = _interopRequireDefault(require("./endpoints/file_upload/list_files")); + +var _generate_upload_url = _interopRequireDefault(require("./endpoints/file_upload/generate_upload_url")); + +var _publish_file = _interopRequireDefault(require("./endpoints/file_upload/publish_file")); + +var _send_file = _interopRequireDefault(require("./endpoints/file_upload/send_file")); + +var _get_file_url = _interopRequireDefault(require("./endpoints/file_upload/get_file_url")); + +var _download_file = _interopRequireDefault(require("./endpoints/file_upload/download_file")); + +var _delete_file = _interopRequireDefault(require("./endpoints/file_upload/delete_file")); + var _get_all = _interopRequireDefault(require("./endpoints/objects/uuid/get_all")); var _get = _interopRequireDefault(require("./endpoints/objects/uuid/get")); @@ -151,176 +177,97 @@ var _flow_interfaces = require("./flow_interfaces"); var _uuid = _interopRequireDefault(require("./components/uuid")); -function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var _default = function () { function _default(setup) { var _this = this; - _classCallCheck(this, _default); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "_telemetryManager", void 0); - - _defineProperty(this, "_listenerManager", void 0); - - _defineProperty(this, "_tokenManager", void 0); - - _defineProperty(this, "time", void 0); - - _defineProperty(this, "publish", void 0); - - _defineProperty(this, "fire", void 0); - - _defineProperty(this, "history", void 0); - - _defineProperty(this, "deleteMessages", void 0); - - _defineProperty(this, "messageCounts", void 0); - - _defineProperty(this, "fetchMessages", void 0); - - _defineProperty(this, "channelGroups", void 0); - - _defineProperty(this, "push", void 0); - - _defineProperty(this, "hereNow", void 0); - - _defineProperty(this, "whereNow", void 0); - - _defineProperty(this, "getState", void 0); - - _defineProperty(this, "setState", void 0); - - _defineProperty(this, "grant", void 0); - - _defineProperty(this, "grantToken", void 0); - - _defineProperty(this, "audit", void 0); - - _defineProperty(this, "subscribe", void 0); - - _defineProperty(this, "signal", void 0); - - _defineProperty(this, "presence", void 0); - - _defineProperty(this, "unsubscribe", void 0); - - _defineProperty(this, "unsubscribeAll", void 0); - - _defineProperty(this, "addMessageAction", void 0); - - _defineProperty(this, "removeMessageAction", void 0); - - _defineProperty(this, "getMessageActions", void 0); - - _defineProperty(this, "objects", void 0); - - _defineProperty(this, "createUser", void 0); - - _defineProperty(this, "updateUser", void 0); - - _defineProperty(this, "deleteUser", void 0); - - _defineProperty(this, "getUser", void 0); - - _defineProperty(this, "getUsers", void 0); - - _defineProperty(this, "createSpace", void 0); - - _defineProperty(this, "updateSpace", void 0); - - _defineProperty(this, "deleteSpace", void 0); - - _defineProperty(this, "getSpaces", void 0); - - _defineProperty(this, "getSpace", void 0); - - _defineProperty(this, "getMembers", void 0); - - _defineProperty(this, "addMembers", void 0); - - _defineProperty(this, "updateMembers", void 0); - - _defineProperty(this, "removeMembers", void 0); - - _defineProperty(this, "getMemberships", void 0); - - _defineProperty(this, "joinSpaces", void 0); - - _defineProperty(this, "updateMemberships", void 0); - - _defineProperty(this, "leaveSpaces", void 0); - - _defineProperty(this, "disconnect", void 0); - - _defineProperty(this, "reconnect", void 0); - - _defineProperty(this, "destroy", void 0); - - _defineProperty(this, "stop", void 0); - - _defineProperty(this, "getSubscribedChannels", void 0); - - _defineProperty(this, "getSubscribedChannelGroups", void 0); - - _defineProperty(this, "addListener", void 0); - - _defineProperty(this, "removeListener", void 0); - - _defineProperty(this, "removeAllListeners", void 0); - - _defineProperty(this, "parseToken", void 0); - - _defineProperty(this, "setToken", void 0); - - _defineProperty(this, "setTokens", void 0); - - _defineProperty(this, "getToken", void 0); - - _defineProperty(this, "getTokens", void 0); - - _defineProperty(this, "clearTokens", void 0); - - _defineProperty(this, "getAuthKey", void 0); - - _defineProperty(this, "setAuthKey", void 0); - - _defineProperty(this, "setCipherKey", void 0); - - _defineProperty(this, "setUUID", void 0); - - _defineProperty(this, "getUUID", void 0); - - _defineProperty(this, "getFilterExpression", void 0); - - _defineProperty(this, "setFilterExpression", void 0); - - _defineProperty(this, "setHeartbeatInterval", void 0); - - _defineProperty(this, "setProxy", void 0); - - _defineProperty(this, "encrypt", void 0); - - _defineProperty(this, "decrypt", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_telemetryManager", void 0); + (0, _defineProperty2["default"])(this, "_listenerManager", void 0); + (0, _defineProperty2["default"])(this, "_tokenManager", void 0); + (0, _defineProperty2["default"])(this, "time", void 0); + (0, _defineProperty2["default"])(this, "publish", void 0); + (0, _defineProperty2["default"])(this, "fire", void 0); + (0, _defineProperty2["default"])(this, "history", void 0); + (0, _defineProperty2["default"])(this, "deleteMessages", void 0); + (0, _defineProperty2["default"])(this, "messageCounts", void 0); + (0, _defineProperty2["default"])(this, "fetchMessages", void 0); + (0, _defineProperty2["default"])(this, "channelGroups", void 0); + (0, _defineProperty2["default"])(this, "push", void 0); + (0, _defineProperty2["default"])(this, "hereNow", void 0); + (0, _defineProperty2["default"])(this, "whereNow", void 0); + (0, _defineProperty2["default"])(this, "getState", void 0); + (0, _defineProperty2["default"])(this, "setState", void 0); + (0, _defineProperty2["default"])(this, "grant", void 0); + (0, _defineProperty2["default"])(this, "grantToken", void 0); + (0, _defineProperty2["default"])(this, "audit", void 0); + (0, _defineProperty2["default"])(this, "subscribe", void 0); + (0, _defineProperty2["default"])(this, "signal", void 0); + (0, _defineProperty2["default"])(this, "presence", void 0); + (0, _defineProperty2["default"])(this, "unsubscribe", void 0); + (0, _defineProperty2["default"])(this, "unsubscribeAll", void 0); + (0, _defineProperty2["default"])(this, "addMessageAction", void 0); + (0, _defineProperty2["default"])(this, "removeMessageAction", void 0); + (0, _defineProperty2["default"])(this, "getMessageActions", void 0); + (0, _defineProperty2["default"])(this, "File", void 0); + (0, _defineProperty2["default"])(this, "encryptFile", void 0); + (0, _defineProperty2["default"])(this, "decryptFile", void 0); + (0, _defineProperty2["default"])(this, "listFiles", void 0); + (0, _defineProperty2["default"])(this, "sendFile", void 0); + (0, _defineProperty2["default"])(this, "downloadFile", void 0); + (0, _defineProperty2["default"])(this, "getFileUrl", void 0); + (0, _defineProperty2["default"])(this, "deleteFile", void 0); + (0, _defineProperty2["default"])(this, "publishFile", void 0); + (0, _defineProperty2["default"])(this, "objects", void 0); + (0, _defineProperty2["default"])(this, "createUser", void 0); + (0, _defineProperty2["default"])(this, "updateUser", void 0); + (0, _defineProperty2["default"])(this, "deleteUser", void 0); + (0, _defineProperty2["default"])(this, "getUser", void 0); + (0, _defineProperty2["default"])(this, "getUsers", void 0); + (0, _defineProperty2["default"])(this, "createSpace", void 0); + (0, _defineProperty2["default"])(this, "updateSpace", void 0); + (0, _defineProperty2["default"])(this, "deleteSpace", void 0); + (0, _defineProperty2["default"])(this, "getSpaces", void 0); + (0, _defineProperty2["default"])(this, "getSpace", void 0); + (0, _defineProperty2["default"])(this, "getMembers", void 0); + (0, _defineProperty2["default"])(this, "addMembers", void 0); + (0, _defineProperty2["default"])(this, "updateMembers", void 0); + (0, _defineProperty2["default"])(this, "removeMembers", void 0); + (0, _defineProperty2["default"])(this, "getMemberships", void 0); + (0, _defineProperty2["default"])(this, "joinSpaces", void 0); + (0, _defineProperty2["default"])(this, "updateMemberships", void 0); + (0, _defineProperty2["default"])(this, "leaveSpaces", void 0); + (0, _defineProperty2["default"])(this, "disconnect", void 0); + (0, _defineProperty2["default"])(this, "reconnect", void 0); + (0, _defineProperty2["default"])(this, "destroy", void 0); + (0, _defineProperty2["default"])(this, "stop", void 0); + (0, _defineProperty2["default"])(this, "getSubscribedChannels", void 0); + (0, _defineProperty2["default"])(this, "getSubscribedChannelGroups", void 0); + (0, _defineProperty2["default"])(this, "addListener", void 0); + (0, _defineProperty2["default"])(this, "removeListener", void 0); + (0, _defineProperty2["default"])(this, "removeAllListeners", void 0); + (0, _defineProperty2["default"])(this, "parseToken", void 0); + (0, _defineProperty2["default"])(this, "setToken", void 0); + (0, _defineProperty2["default"])(this, "setTokens", void 0); + (0, _defineProperty2["default"])(this, "getToken", void 0); + (0, _defineProperty2["default"])(this, "getTokens", void 0); + (0, _defineProperty2["default"])(this, "clearTokens", void 0); + (0, _defineProperty2["default"])(this, "getAuthKey", void 0); + (0, _defineProperty2["default"])(this, "setAuthKey", void 0); + (0, _defineProperty2["default"])(this, "setCipherKey", void 0); + (0, _defineProperty2["default"])(this, "setUUID", void 0); + (0, _defineProperty2["default"])(this, "getUUID", void 0); + (0, _defineProperty2["default"])(this, "getFilterExpression", void 0); + (0, _defineProperty2["default"])(this, "setFilterExpression", void 0); + (0, _defineProperty2["default"])(this, "setHeartbeatInterval", void 0); + (0, _defineProperty2["default"])(this, "setProxy", void 0); + (0, _defineProperty2["default"])(this, "encrypt", void 0); + (0, _defineProperty2["default"])(this, "decrypt", void 0); var db = setup.db, networking = setup.networking, cbor = setup.cbor; @@ -331,6 +278,7 @@ var _default = function () { var crypto = new _index["default"]({ config: config }); + var cryptography = setup.cryptography; networking.init(config); var tokenManager = this._tokenManager = new _token_manager["default"](config, cbor); var telemetryManager = this._telemetryManager = new _telemetry_manager["default"]({ @@ -340,8 +288,19 @@ var _default = function () { config: config, networking: networking, crypto: crypto, + cryptography: cryptography, tokenManager: tokenManager, - telemetryManager: telemetryManager + telemetryManager: telemetryManager, + PubNubFile: setup.PubNubFile + }; + this.File = setup.PubNubFile; + + this.encryptFile = function (key, file) { + return cryptography.encryptFile(key, file, _this.File); + }; + + this.decryptFile = function (key, file) { + return cryptography.decryptFile(key, file, _this.File); }; var timeEndpoint = _endpoint["default"].bind(this, modules, timeEndpointConfig); @@ -363,7 +322,10 @@ var _default = function () { subscribeEndpoint: subscribeEndpoint, crypto: modules.crypto, config: modules.config, - listenerManager: listenerManager + listenerManager: listenerManager, + getFileUrl: function getFileUrl(params) { + return (0, _get_file_url["default"])(modules, params); + } }); this.addListener = listenerManager.addListener.bind(listenerManager); this.removeListener = listenerManager.removeListener.bind(listenerManager); @@ -410,6 +372,23 @@ var _default = function () { this.addMessageAction = _endpoint["default"].bind(this, modules, addMessageActionEndpointConfig); this.removeMessageAction = _endpoint["default"].bind(this, modules, removeMessageActionEndpointConfig); this.getMessageActions = _endpoint["default"].bind(this, modules, getMessageActionEndpointConfig); + this.listFiles = _endpoint["default"].bind(this, modules, _list_files["default"]); + + var generateUploadUrl = _endpoint["default"].bind(this, modules, _generate_upload_url["default"]); + + this.publishFile = _endpoint["default"].bind(this, modules, _publish_file["default"]); + this.sendFile = (0, _send_file["default"])({ + generateUploadUrl: generateUploadUrl, + publishFile: this.publishFile, + modules: modules + }); + + this.getFileUrl = function (params) { + return (0, _get_file_url["default"])(modules, params); + }; + + this.downloadFile = _endpoint["default"].bind(this, modules, _download_file["default"]); + this.deleteFile = _endpoint["default"].bind(this, modules, _delete_file["default"]); this.objects = { getAllUUIDMetadata: _endpoint["default"].bind(this, modules, _get_all["default"]), getUUIDMetadata: _endpoint["default"].bind(this, modules, _get["default"]), @@ -512,7 +491,7 @@ var _default = function () { } } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "getVersion", value: function getVersion() { return this._config.getVersion(); @@ -551,15 +530,11 @@ var _default = function () { return _uuid["default"].createUUID(); } }]); - return _default; }(); exports["default"] = _default; - -_defineProperty(_default, "OPERATIONS", _operations["default"]); - -_defineProperty(_default, "CATEGORIES", _categories["default"]); - +(0, _defineProperty2["default"])(_default, "OPERATIONS", _operations["default"]); +(0, _defineProperty2["default"])(_default, "CATEGORIES", _categories["default"]); module.exports = exports.default; //# sourceMappingURL=pubnub-common.js.map diff --git a/lib/core/pubnub-common.js.map b/lib/core/pubnub-common.js.map index db587e3a3..c3341de6d 100644 --- a/lib/core/pubnub-common.js.map +++ b/lib/core/pubnub-common.js.map @@ -1 +1 @@ -{"version":3,"sources":["core/pubnub-common.js"],"names":["setup","db","networking","cbor","config","_config","Config","crypto","Crypto","init","tokenManager","_tokenManager","TokenManager","telemetryManager","_telemetryManager","TelemetryManager","maximumSamplesCount","modules","timeEndpoint","endpointCreator","bind","timeEndpointConfig","leaveEndpoint","presenceLeaveEndpointConfig","heartbeatEndpoint","presenceHeartbeatEndpointConfig","setStateEndpoint","presenceSetStateConfig","subscribeEndpoint","subscribeEndpointConfig","listenerManager","_listenerManager","ListenerManager","subscriptionManager","SubscriptionManager","addListener","removeListener","removeAllListeners","parseToken","setToken","setTokens","getToken","getTokens","clearTokens","channelGroups","listGroups","listChannelGroupsConfig","listChannels","listChannelsInChannelGroupConfig","addChannels","addChannelsChannelGroupConfig","removeChannels","removeChannelsChannelGroupConfig","deleteGroup","deleteChannelGroupConfig","push","addPushChannelsConfig","removePushChannelsConfig","deleteDevice","removeDevicePushConfig","listPushChannelsConfig","hereNow","presenceHereNowConfig","whereNow","presenceWhereNowEndpointConfig","getState","presenceGetStateConfig","setState","adaptStateChange","grant","grantEndpointConfig","grantToken","grantTokenEndpointConfig","audit","auditEndpointConfig","publish","publishEndpointConfig","fire","args","callback","replicate","storeInHistory","signal","signalEndpointConfig","history","historyEndpointConfig","deleteMessages","deleteMessagesEndpointConfig","messageCounts","messageCountsEndpointConfig","fetchMessages","fetchMessagesEndpointConfig","addMessageAction","addMessageActionEndpointConfig","removeMessageAction","removeMessageActionEndpointConfig","getMessageActions","getMessageActionEndpointConfig","objects","getAllUUIDMetadata","getAllUUIDMetadataEndpointConfig","getUUIDMetadata","getUUIDMetadataEndpointConfig","setUUIDMetadata","setUUIDMetadataEndpointConfig","removeUUIDMetadata","removeUUIDMetadataEndpointConfig","getAllChannelMetadata","getAllChannelMetadataEndpointConfig","getChannelMetadata","getChannelMetadataEndpointConfig","setChannelMetadata","setChannelMetadataEndpointConfig","removeChannelMetadata","removeChannelMetadataEndpointConfig","getChannelMembers","getMembersV2EndpointConfig","setChannelMembers","parameters","rest","call","setMembersV2EndpointConfig","type","removeChannelMembers","getMemberships","getMembershipsV2EndpointConfig","setMemberships","setMembershipsV2EndpointConfig","removeMemberships","createUser","createUserEndpointConfig","updateUser","updateUserEndpointConfig","deleteUser","deleteUserEndpointConfig","getUser","getUserEndpointConfig","getUsers","getUsersEndpointConfig","createSpace","createSpaceEndpointConfig","updateSpace","updateSpaceEndpointConfig","deleteSpace","deleteSpaceEndpointConfig","getSpaces","getSpacesEndpointConfig","getSpace","getSpaceEndpointConfig","addMembers","addMembersEndpointConfig","updateMembers","updateMembersEndpointConfig","removeMembers","removeMembersEndpointConfig","getMembers","getMembersEndpointConfig","getMembershipsEndpointConfig","joinSpaces","joinSpacesEndpointConfig","updateMemberships","updateMembershipsEndpointConfig","leaveSpaces","leaveSpacesEndpointConfig","time","subscribe","adaptSubscribeChange","presence","adaptPresenceChange","unsubscribe","adaptUnsubscribeChange","disconnect","reconnect","destroy","isOffline","unsubscribeAll","stop","getSubscribedChannels","getSubscribedChannelGroups","encrypt","decrypt","getAuthKey","setAuthKey","setCipherKey","getUUID","setUUID","getFilterExpression","setFilterExpression","setHeartbeatInterval","hasModule","setProxy","proxy","getVersion","name","suffix","_addPnsdkSuffix","announceNetworkDown","restore","announceNetworkUp","title","body","NotificationsPayload","uuidGenerator","createUUID","OPERATIONS","CATEGORIES"],"mappings":";;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AAGA;;AAKA;;AAKA;;AAKA;;AAKA;;AAKA;;AAKA;;AAKA;;AAKA;;AAKA;;AAMA;;AAKA;;AAQA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAEA;;AACA;;;;;;;;;;;;;;;;;;;;;AAmIE,oBAAYA,KAAZ,EAAwC;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,QAChCC,EADgC,GACPD,KADO,CAChCC,EADgC;AAAA,QAC5BC,UAD4B,GACPF,KADO,CAC5BE,UAD4B;AAAA,QAChBC,IADgB,GACPH,KADO,CAChBG,IADgB;AAGtC,QAAMC,MAAM,GAAI,KAAKC,OAAL,GAAe,IAAIC,kBAAJ,CAAW;AAAEN,MAAAA,KAAK,EAALA,KAAF;AAASC,MAAAA,EAAE,EAAFA;AAAT,KAAX,CAA/B;AACA,QAAMM,MAAM,GAAG,IAAIC,iBAAJ,CAAW;AAAEJ,MAAAA,MAAM,EAANA;AAAF,KAAX,CAAf;AAEAF,IAAAA,UAAU,CAACO,IAAX,CAAgBL,MAAhB;AAEA,QAAMM,YAAY,GAAI,KAAKC,aAAL,GAAqB,IAAIC,yBAAJ,CAAiBR,MAAjB,EAAyBD,IAAzB,CAA3C;AACA,QAAMU,gBAAgB,GAAI,KAAKC,iBAAL,GAAyB,IAAIC,6BAAJ,CAAqB;AAAEC,MAAAA,mBAAmB,EAAE;AAAvB,KAArB,CAAnD;AAEA,QAAIC,OAAO,GAAG;AAAEb,MAAAA,MAAM,EAANA,MAAF;AAAUF,MAAAA,UAAU,EAAVA,UAAV;AAAsBK,MAAAA,MAAM,EAANA,MAAtB;AAA8BG,MAAAA,YAAY,EAAZA,YAA9B;AAA4CG,MAAAA,gBAAgB,EAAhBA;AAA5C,KAAd;;AAEA,QAAMK,YAAY,GAAGC,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCI,kBAApC,CAArB;;AACA,QAAMC,aAAa,GAAGH,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCM,2BAApC,CAAtB;;AACA,QAAMC,iBAAiB,GAAGL,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCQ,+BAApC,CAA1B;;AACA,QAAMC,gBAAgB,GAAGP,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCU,sBAApC,CAAzB;;AACA,QAAMC,iBAAiB,GAAGT,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCY,uBAApC,CAA1B;;AAGA,QAAMC,eAAe,GAAI,KAAKC,gBAAL,GAAwB,IAAIC,4BAAJ,EAAjD;AAEA,QAAMC,mBAAmB,GAAG,IAAIC,gCAAJ,CAAwB;AAClDhB,MAAAA,YAAY,EAAZA,YADkD;AAElDI,MAAAA,aAAa,EAAbA,aAFkD;AAGlDE,MAAAA,iBAAiB,EAAjBA,iBAHkD;AAIlDE,MAAAA,gBAAgB,EAAhBA,gBAJkD;AAKlDE,MAAAA,iBAAiB,EAAjBA,iBALkD;AAMlDrB,MAAAA,MAAM,EAAEU,OAAO,CAACV,MANkC;AAOlDH,MAAAA,MAAM,EAAEa,OAAO,CAACb,MAPkC;AAQlD0B,MAAAA,eAAe,EAAfA;AARkD,KAAxB,CAA5B;AAWA,SAAKK,WAAL,GAAmBL,eAAe,CAACK,WAAhB,CAA4Bf,IAA5B,CAAiCU,eAAjC,CAAnB;AACA,SAAKM,cAAL,GAAsBN,eAAe,CAACM,cAAhB,CAA+BhB,IAA/B,CAAoCU,eAApC,CAAtB;AACA,SAAKO,kBAAL,GAA0BP,eAAe,CAACO,kBAAhB,CAAmCjB,IAAnC,CAAwCU,eAAxC,CAA1B;AAEA,SAAKQ,UAAL,GAAkB5B,YAAY,CAAC4B,UAAb,CAAwBlB,IAAxB,CAA6BV,YAA7B,CAAlB;AACA,SAAK6B,QAAL,GAAgB7B,YAAY,CAAC6B,QAAb,CAAsBnB,IAAtB,CAA2BV,YAA3B,CAAhB;AACA,SAAK8B,SAAL,GAAiB9B,YAAY,CAAC8B,SAAb,CAAuBpB,IAAvB,CAA4BV,YAA5B,CAAjB;AACA,SAAK+B,QAAL,GAAgB/B,YAAY,CAAC+B,QAAb,CAAsBrB,IAAtB,CAA2BV,YAA3B,CAAhB;AACA,SAAKgC,SAAL,GAAiBhC,YAAY,CAACgC,SAAb,CAAuBtB,IAAvB,CAA4BV,YAA5B,CAAjB;AACA,SAAKiC,WAAL,GAAmBjC,YAAY,CAACiC,WAAb,CAAyBvB,IAAzB,CAA8BV,YAA9B,CAAnB;AAGA,SAAKkC,aAAL,GAAqB;AACnBC,MAAAA,UAAU,EAAE1B,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC6B,uBAApC,CADO;AAEnBC,MAAAA,YAAY,EAAE5B,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC+B,gCAApC,CAFK;AAGnBC,MAAAA,WAAW,EAAE9B,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCiC,6BAApC,CAHM;AAInBC,MAAAA,cAAc,EAAEhC,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCmC,gCAApC,CAJG;AAKnBC,MAAAA,WAAW,EAAElC,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCqC,wBAApC;AALM,KAArB;AAQA,SAAKC,IAAL,GAAY;AACVN,MAAAA,WAAW,EAAE9B,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCuC,qBAApC,CADH;AAEVL,MAAAA,cAAc,EAAEhC,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCwC,wBAApC,CAFN;AAGVC,MAAAA,YAAY,EAAEvC,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC0C,sBAApC,CAHJ;AAIVZ,MAAAA,YAAY,EAAE5B,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC2C,sBAApC;AAJJ,KAAZ;AAOA,SAAKC,OAAL,GAAe1C,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC6C,qBAApC,CAAf;AACA,SAAKC,QAAL,GAAgB5C,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC+C,8BAApC,CAAhB;AACA,SAAKC,QAAL,GAAgB9C,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCiD,sBAApC,CAAhB;AACA,SAAKC,QAAL,GAAgBlC,mBAAmB,CAACmC,gBAApB,CAAqChD,IAArC,CAA0Ca,mBAA1C,CAAhB;AAEA,SAAKoC,KAAL,GAAalD,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCqD,mBAApC,CAAb;AACA,SAAKC,UAAL,GAAkBpD,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCuD,wBAApC,CAAlB;AACA,SAAKC,KAAL,GAAatD,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCyD,mBAApC,CAAb;AAEA,SAAKC,OAAL,GAAexD,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC2D,qBAApC,CAAf;;AAEA,SAAKC,IAAL,GAAY,UAACC,IAAD,EAAOC,QAAP,EAAoB;AAC9BD,MAAAA,IAAI,CAACE,SAAL,GAAiB,KAAjB;AACAF,MAAAA,IAAI,CAACG,cAAL,GAAsB,KAAtB;AACA,aAAO,KAAI,CAACN,OAAL,CAAaG,IAAb,EAAmBC,QAAnB,CAAP;AACD,KAJD;;AAMA,SAAKG,MAAL,GAAc/D,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCkE,oBAApC,CAAd;AAEA,SAAKC,OAAL,GAAejE,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCoE,qBAApC,CAAf;AACA,SAAKC,cAAL,GAAsBnE,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCsE,4BAApC,CAAtB;AACA,SAAKC,aAAL,GAAqBrE,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCwE,2BAApC,CAArB;AACA,SAAKC,aAAL,GAAqBvE,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC0E,2BAApC,CAArB;AAIA,SAAKC,gBAAL,GAAwBzE,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC4E,8BAApC,CAAxB;AAEA,SAAKC,mBAAL,GAA2B3E,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC8E,iCAApC,CAA3B;AAEA,SAAKC,iBAAL,GAAyB7E,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCgF,8BAApC,CAAzB;AAIA,SAAKC,OAAL,GAAe;AACbC,MAAAA,kBAAkB,EAAEhF,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCmF,mBAApC,CADP;AAEbC,MAAAA,eAAe,EAAElF,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCqF,eAApC,CAFJ;AAGbC,MAAAA,eAAe,EAAEpF,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCuF,eAApC,CAHJ;AAIbC,MAAAA,kBAAkB,EAAEtF,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCyF,kBAApC,CAJP;AAMbC,MAAAA,qBAAqB,EAAExF,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC2F,oBAApC,CANV;AAObC,MAAAA,kBAAkB,EAAE1F,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC6F,gBAApC,CAPP;AAQbC,MAAAA,kBAAkB,EAAE5F,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC+F,gBAApC,CARP;AASbC,MAAAA,qBAAqB,EAAE9F,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCiG,mBAApC,CATV;AAWbC,MAAAA,iBAAiB,EAAEhG,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCmG,gBAApC,CAXN;AAYbC,MAAAA,iBAAiB,EAAE,2BAACC,UAAD;AAAA,0CAAgEC,IAAhE;AAAgEA,UAAAA,IAAhE;AAAA;;AAAA,eAAyEpG,qBAAgBqG,IAAhB,8BAAqB,KAArB,EAA2BvG,OAA3B,EAAoCwG,gBAApC;AAC1FC,UAAAA,IAAI,EAAE;AADoF,WAEvFJ,UAFuF,UAGtFC,IAHsF,EAAzE;AAAA,OAZN;AAgBbI,MAAAA,oBAAoB,EAAE,8BAACL,UAAD;AAAA,2CAAgEC,IAAhE;AAAgEA,UAAAA,IAAhE;AAAA;;AAAA,eAAyEpG,qBAAgBqG,IAAhB,8BAAqB,KAArB,EAA2BvG,OAA3B,EAAoCwG,gBAApC;AAC7FC,UAAAA,IAAI,EAAE;AADuF,WAE1FJ,UAF0F,UAGzFC,IAHyF,EAAzE;AAAA,OAhBT;AAqBbK,MAAAA,cAAc,EAAEzG,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC4G,gBAApC,CArBH;AAsBbC,MAAAA,cAAc,EAAE,wBAACR,UAAD;AAAA,2CAAoEC,IAApE;AAAoEA,UAAAA,IAApE;AAAA;;AAAA,eAA6EpG,qBAAgBqG,IAAhB,8BAAqB,KAArB,EAA2BvG,OAA3B,EAAoC8G,gBAApC;AAC3FL,UAAAA,IAAI,EAAE;AADqF,WAExFJ,UAFwF,UAGvFC,IAHuF,EAA7E;AAAA,OAtBH;AA0BbS,MAAAA,iBAAiB,EAAE,2BAACV,UAAD;AAAA,2CAAoEC,IAApE;AAAoEA,UAAAA,IAApE;AAAA;;AAAA,eAA6EpG,qBAAgBqG,IAAhB,8BAAqB,KAArB,EAA2BvG,OAA3B,EAAoC8G,gBAApC;AAC9FL,UAAAA,IAAI,EAAE;AADwF,WAE3FJ,UAF2F,UAG1FC,IAH0F,EAA7E;AAAA;AA1BN,KAAf;AAkCA,SAAKU,UAAL,GAAkB,uBAAW9G,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCiH,wBAApC,CAAX,CAAlB;AAEA,SAAKC,UAAL,GAAkB,uBAAWhH,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCmH,wBAApC,CAAX,CAAlB;AAEA,SAAKC,UAAL,GAAkB,uBAAWlH,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCqH,wBAApC,CAAX,CAAlB;AAEA,SAAKC,OAAL,GAAe,uBAAWpH,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCuH,qBAApC,CAAX,CAAf;AAEA,SAAKC,QAAL,GAAgB,uBAAWtH,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCyH,sBAApC,CAAX,CAAhB;AAEA,SAAKC,WAAL,GAAmB,uBAAWxH,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC2H,yBAApC,CAAX,CAAnB;AAEA,SAAKC,WAAL,GAAmB,uBAAW1H,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC6H,yBAApC,CAAX,CAAnB;AAEA,SAAKC,WAAL,GAAmB,uBAAW5H,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC+H,yBAApC,CAAX,CAAnB;AAEA,SAAKC,SAAL,GAAiB,uBAAW9H,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCiI,uBAApC,CAAX,CAAjB;AAEA,SAAKC,QAAL,GAAgB,uBAAWhI,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCmI,sBAApC,CAAX,CAAhB;AAEA,SAAKC,UAAL,GAAkB,uBAAWlI,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCqI,wBAApC,CAAX,CAAlB;AAEA,SAAKC,aAAL,GAAqB,uBAAWpI,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCuI,2BAApC,CAAX,CAArB;AAEA,SAAKC,aAAL,GAAqB,uBAAWtI,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCyI,2BAApC,CAAX,CAArB;AAEA,SAAKC,UAAL,GAAkB,uBAAWxI,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC2I,wBAApC,CAAX,CAAlB;AAEA,SAAKhC,cAAL,GAAsB,uBAAWzG,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC4I,4BAApC,CAAX,CAAtB;AAEA,SAAKC,UAAL,GAAkB,uBAAW3I,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoC8I,wBAApC,CAAX,CAAlB;AAEA,SAAKC,iBAAL,GAAyB,uBAAW7I,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCgJ,+BAApC,CAAX,CAAzB;AAEA,SAAKC,WAAL,GAAmB,uBAAW/I,qBAAgBC,IAAhB,CAAqB,IAArB,EAA2BH,OAA3B,EAAoCkJ,yBAApC,CAAX,CAAnB;AAEA,SAAKC,IAAL,GAAYlJ,YAAZ;AAGA,SAAKmJ,SAAL,GAAiBpI,mBAAmB,CAACqI,oBAApB,CAAyClJ,IAAzC,CAA8Ca,mBAA9C,CAAjB;AACA,SAAKsI,QAAL,GAAgBtI,mBAAmB,CAACuI,mBAApB,CAAwCpJ,IAAxC,CAA6Ca,mBAA7C,CAAhB;AACA,SAAKwI,WAAL,GAAmBxI,mBAAmB,CAACyI,sBAApB,CAA2CtJ,IAA3C,CAAgDa,mBAAhD,CAAnB;AACA,SAAK0I,UAAL,GAAkB1I,mBAAmB,CAAC0I,UAApB,CAA+BvJ,IAA/B,CAAoCa,mBAApC,CAAlB;AACA,SAAK2I,SAAL,GAAiB3I,mBAAmB,CAAC2I,SAApB,CAA8BxJ,IAA9B,CAAmCa,mBAAnC,CAAjB;;AAEA,SAAK4I,OAAL,GAAe,UAACC,SAAD,EAAwB;AACrC7I,MAAAA,mBAAmB,CAAC8I,cAApB,CAAmCD,SAAnC;AACA7I,MAAAA,mBAAmB,CAAC0I,UAApB;AACD,KAHD;;AAMA,SAAKK,IAAL,GAAY,KAAKH,OAAjB;AAGA,SAAKE,cAAL,GAAsB9I,mBAAmB,CAAC8I,cAApB,CAAmC3J,IAAnC,CAAwCa,mBAAxC,CAAtB;AAEA,SAAKgJ,qBAAL,GAA6BhJ,mBAAmB,CAACgJ,qBAApB,CAA0C7J,IAA1C,CAA+Ca,mBAA/C,CAA7B;AACA,SAAKiJ,0BAAL,GAAkCjJ,mBAAmB,CAACiJ,0BAApB,CAA+C9J,IAA/C,CAAoDa,mBAApD,CAAlC;AAGA,SAAKkJ,OAAL,GAAe5K,MAAM,CAAC4K,OAAP,CAAe/J,IAAf,CAAoBb,MAApB,CAAf;AACA,SAAK6K,OAAL,GAAe7K,MAAM,CAAC6K,OAAP,CAAehK,IAAf,CAAoBb,MAApB,CAAf;AAGA,SAAK8K,UAAL,GAAkBpK,OAAO,CAACb,MAAR,CAAeiL,UAAf,CAA0BjK,IAA1B,CAA+BH,OAAO,CAACb,MAAvC,CAAlB;AACA,SAAKkL,UAAL,GAAkBrK,OAAO,CAACb,MAAR,CAAekL,UAAf,CAA0BlK,IAA1B,CAA+BH,OAAO,CAACb,MAAvC,CAAlB;AACA,SAAKmL,YAAL,GAAoBtK,OAAO,CAACb,MAAR,CAAemL,YAAf,CAA4BnK,IAA5B,CAAiCH,OAAO,CAACb,MAAzC,CAApB;AACA,SAAKoL,OAAL,GAAevK,OAAO,CAACb,MAAR,CAAeoL,OAAf,CAAuBpK,IAAvB,CAA4BH,OAAO,CAACb,MAApC,CAAf;AACA,SAAKqL,OAAL,GAAexK,OAAO,CAACb,MAAR,CAAeqL,OAAf,CAAuBrK,IAAvB,CAA4BH,OAAO,CAACb,MAApC,CAAf;AACA,SAAKsL,mBAAL,GAA2BzK,OAAO,CAACb,MAAR,CAAesL,mBAAf,CAAmCtK,IAAnC,CAAwCH,OAAO,CAACb,MAAhD,CAA3B;AACA,SAAKuL,mBAAL,GAA2B1K,OAAO,CAACb,MAAR,CAAeuL,mBAAf,CAAmCvK,IAAnC,CAAwCH,OAAO,CAACb,MAAhD,CAA3B;AAEA,SAAKwL,oBAAL,GAA4B3K,OAAO,CAACb,MAAR,CAAewL,oBAAf,CAAoCxK,IAApC,CAAyCH,OAAO,CAACb,MAAjD,CAA5B;;AAEA,QAAIF,UAAU,CAAC2L,SAAX,CAAqB,OAArB,CAAJ,EAAmC;AACjC,WAAKC,QAAL,GAAgB,UAACC,KAAD,EAAW;AACzB9K,QAAAA,OAAO,CAACb,MAAR,CAAe0L,QAAf,CAAwBC,KAAxB;;AACA,QAAA,KAAI,CAACnB,SAAL;AACD,OAHD;AAID;AACF;;;;iCAEoB;AACnB,aAAO,KAAKvK,OAAL,CAAa2L,UAAb,EAAP;AACD;;;oCAEeC,I,EAAcC,M,EAAgB;AAC5C,WAAK7L,OAAL,CAAa8L,eAAb,CAA6BF,IAA7B,EAAmCC,MAAnC;AACD;;;0CAGqB;AACpB,WAAKnK,gBAAL,CAAsBqK,mBAAtB;;AAEA,UAAI,KAAK/L,OAAL,CAAagM,OAAjB,EAA0B;AACxB,aAAK1B,UAAL;AACD,OAFD,MAEO;AACL,aAAKE,OAAL,CAAa,IAAb;AACD;AACF;;;wCAEmB;AAClB,WAAK9I,gBAAL,CAAsBuK,iBAAtB;;AACA,WAAK1B,SAAL;AACD;;;wCAE0B2B,K,EAAgBC,I,EAAqC;AAC9E,aAAO,IAAIC,wBAAJ,CAAyBF,KAAzB,EAAgCC,IAAhC,CAAP;AACD;;;mCAE6B;AAC5B,aAAOE,iBAAcC,UAAd,EAAP;AACD;;;;;;;;wCAEmBC,sB;;wCACAC,sB","sourcesContent":["/** @flow */\n\nimport Config from './components/config';\nimport Crypto from './components/cryptography/index';\nimport SubscriptionManager from './components/subscription_manager';\nimport TelemetryManager from './components/telemetry_manager';\nimport NotificationsPayload from './components/push_payload';\nimport ListenerManager from './components/listener_manager';\nimport TokenManager from './components/token_manager';\n\nimport endpointCreator from './components/endpoint';\n\nimport { deprecated } from './utils';\n\nimport * as addChannelsChannelGroupConfig from './endpoints/channel_groups/add_channels';\nimport * as removeChannelsChannelGroupConfig from './endpoints/channel_groups/remove_channels';\nimport * as deleteChannelGroupConfig from './endpoints/channel_groups/delete_group';\nimport * as listChannelGroupsConfig from './endpoints/channel_groups/list_groups';\nimport * as listChannelsInChannelGroupConfig from './endpoints/channel_groups/list_channels';\n\nimport * as addPushChannelsConfig from './endpoints/push/add_push_channels';\nimport * as removePushChannelsConfig from './endpoints/push/remove_push_channels';\nimport * as listPushChannelsConfig from './endpoints/push/list_push_channels';\nimport * as removeDevicePushConfig from './endpoints/push/remove_device';\n\nimport * as presenceLeaveEndpointConfig from './endpoints/presence/leave';\nimport * as presenceWhereNowEndpointConfig from './endpoints/presence/where_now';\nimport * as presenceHeartbeatEndpointConfig from './endpoints/presence/heartbeat';\nimport * as presenceGetStateConfig from './endpoints/presence/get_state';\nimport * as presenceSetStateConfig from './endpoints/presence/set_state';\nimport * as presenceHereNowConfig from './endpoints/presence/here_now';\n\n// Actions API\n\nimport * as addMessageActionEndpointConfig from './endpoints/actions/add_message_action';\nimport * as removeMessageActionEndpointConfig from './endpoints/actions/remove_message_action';\nimport * as getMessageActionEndpointConfig from './endpoints/actions/get_message_actions';\n\n// Object API v2\nimport getAllUUIDMetadataEndpointConfig, {\n type GetAllUUIDMetadataParams,\n type GetAllUUIDMetadataResult\n} from './endpoints/objects/uuid/get_all';\n\nimport getUUIDMetadataEndpointConfig, {\n type GetUUIDMetadataParams,\n type GetUUIDMetadataResult\n} from './endpoints/objects/uuid/get';\n\nimport setUUIDMetadataEndpointConfig, {\n type SetUUIDMetadataParams,\n type SetUUIDMetadataResult\n} from './endpoints/objects/uuid/set';\n\nimport removeUUIDMetadataEndpointConfig, {\n type RemoveUUIDMetadataParams,\n type RemoveUUIDMetadataResult\n} from './endpoints/objects/uuid/remove';\n\nimport getAllChannelMetadataEndpointConfig, {\n type GetAllChannelMetadataParams,\n type GetAllChannelMetadataResult\n} from './endpoints/objects/channel/get_all';\n\nimport getChannelMetadataEndpointConfig, {\n type GetChannelMetadataParams,\n type GetChannelMetadataResult\n} from './endpoints/objects/channel/get';\n\nimport setChannelMetadataEndpointConfig, {\n type SetChannelMetadataParams,\n type SetChannelMetadataResult\n} from './endpoints/objects/channel/set';\n\nimport removeChannelMetadataEndpointConfig, {\n type RemoveChannelMetadataParams,\n type RemoveChannelMetadataResult\n} from './endpoints/objects/channel/remove';\n\nimport getMembersV2EndpointConfig, {\n type GetMembersParams,\n type GetMembersResult\n} from './endpoints/objects/member/get';\n\nimport setMembersV2EndpointConfig, {\n type UpsertMembersParams,\n type RemoveMembersParams,\n type SetMembersResult\n} from './endpoints/objects/member/set';\n\nimport getMembershipsV2EndpointConfig, {\n type GetMembershipsParams,\n type GetMembershipsResult\n} from './endpoints/objects/membership/get';\n\nimport setMembershipsV2EndpointConfig, {\n type UpsertMembershipsParams,\n type RemoveMembershipsParams,\n type SetMembershipsResult\n} from './endpoints/objects/membership/set';\n\n// Objects API\n\nimport * as createUserEndpointConfig from './endpoints/users/create_user';\nimport * as updateUserEndpointConfig from './endpoints/users/update_user';\nimport * as deleteUserEndpointConfig from './endpoints/users/delete_user';\nimport * as getUserEndpointConfig from './endpoints/users/get_user';\nimport * as getUsersEndpointConfig from './endpoints/users/get_users';\nimport * as createSpaceEndpointConfig from './endpoints/spaces/create_space';\nimport * as updateSpaceEndpointConfig from './endpoints/spaces/update_space';\nimport * as deleteSpaceEndpointConfig from './endpoints/spaces/delete_space';\nimport * as getSpacesEndpointConfig from './endpoints/spaces/get_spaces';\nimport * as getSpaceEndpointConfig from './endpoints/spaces/get_space';\nimport * as getMembersEndpointConfig from './endpoints/memberships/get_members';\nimport * as addMembersEndpointConfig from './endpoints/memberships/add_members';\nimport * as updateMembersEndpointConfig from './endpoints/memberships/update_members';\nimport * as removeMembersEndpointConfig from './endpoints/memberships/remove_members';\nimport * as getMembershipsEndpointConfig from './endpoints/memberships/get_memberships';\nimport * as updateMembershipsEndpointConfig from './endpoints/memberships/update_memberships';\nimport * as joinSpacesEndpointConfig from './endpoints/memberships/join_spaces';\nimport * as leaveSpacesEndpointConfig from './endpoints/memberships/leave_spaces';\n\nimport * as auditEndpointConfig from './endpoints/access_manager/audit';\nimport * as grantEndpointConfig from './endpoints/access_manager/grant';\nimport * as grantTokenEndpointConfig from './endpoints/access_manager/grant_token';\n\nimport * as publishEndpointConfig from './endpoints/publish';\nimport * as signalEndpointConfig from './endpoints/signal';\nimport * as historyEndpointConfig from './endpoints/history/get_history';\nimport * as deleteMessagesEndpointConfig from './endpoints/history/delete_messages';\nimport * as messageCountsEndpointConfig from './endpoints/history/message_counts';\nimport * as fetchMessagesEndpointConfig from './endpoints/fetch_messages';\nimport * as timeEndpointConfig from './endpoints/time';\nimport * as subscribeEndpointConfig from './endpoints/subscribe';\n\nimport OPERATIONS from './constants/operations';\nimport CATEGORIES from './constants/categories';\n\nimport { InternalSetupStruct } from './flow_interfaces';\nimport uuidGenerator from './components/uuid';\n\ntype CallbackStatus = {|\n error: boolean,\n operation: string,\n statusCode: number\n|}\n\nexport default class {\n _config: Config;\n _telemetryManager: TelemetryManager;\n _listenerManager: ListenerManager;\n _tokenManager: TokenManager;\n\n // tell flow about the mounted endpoint\n time: Function;\n publish: Function;\n fire: Function;\n\n history: Function;\n deleteMessages: Function;\n messageCounts: Function;\n fetchMessages: Function;\n\n //\n channelGroups: Object;\n //\n push: Object;\n //\n hereNow: Function;\n whereNow: Function;\n getState: Function;\n setState: Function;\n //\n grant: Function;\n grantToken: Function;\n audit: Function;\n //\n subscribe: Function;\n signal: Function;\n presence: Function;\n unsubscribe: Function;\n unsubscribeAll: Function;\n\n // Actions API\n addMessageAction: Function;\n removeMessageAction: Function;\n getMessageActions: Function;\n\n // Objects API v2\n\n objects: {\n getAllUUIDMetadata: (parameters?: GetAllUUIDMetadataParams, cb?: (status: CallbackStatus, result: GetAllUUIDMetadataResult) => void) => Promise,\n getUUIDMetadata: (parameters?: GetUUIDMetadataParams, cb?: (status: CallbackStatus, result: GetUUIDMetadataResult) => void) => Promise,\n setUUIDMetadata: (parameters: SetUUIDMetadataParams, cb?: (status: CallbackStatus, result: SetUUIDMetadataResult) => void) => Promise,\n removeUUIDMetadata: (parameters?: RemoveUUIDMetadataParams, cb?: (status: CallbackStatus, result: RemoveUUIDMetadataResult) => void) => Promise,\n\n getAllChannelMetadata: (parameters?: GetAllChannelMetadataParams, cb?: (status: CallbackStatus, result: GetAllChannelMetadataResult) => void) => Promise,\n getChannelMetadata: (parameters: GetChannelMetadataParams, cb?: (status: CallbackStatus, result: GetChannelMetadataResult) => void) => Promise,\n setChannelMetadata: (parameters: SetChannelMetadataParams, cb?: (status: CallbackStatus, result: SetChannelMetadataResult) => void) => Promise,\n removeChannelMetadata: (parameters: RemoveChannelMetadataParams, cb?: (status: CallbackStatus, result: RemoveChannelMetadataResult) => void) => Promise,\n\n getMemberships: (parameters: GetMembershipsParams, cb?: (status: CallbackStatus, result: GetMembershipsResult) => void) => Promise,\n setMemberships: (parameters: $Diff, cb?: (status: CallbackStatus, result: SetMembershipsResult) => void) => Promise,\n removeMemberships: (parameters: $Diff, cb?: (status: CallbackStatus, result: SetMembershipsResult) => void) => Promise,\n\n getChannelMembers: (parameters: GetMembersParams, cb?: (status: CallbackStatus, result: GetMembersResult) => void) => Promise,\n setChannelMembers: (parameters: $Diff, cb?: (status: CallbackStatus, result: SetMembersResult) => void) => Promise,\n removeChannelMembers: (parameters: $Diff, cb?: (status: CallbackStatus, result: SetMembersResult) => void) => Promise,\n };\n\n // Objects API\n\n createUser: Function;\n updateUser: Function;\n deleteUser: Function;\n getUser: Function;\n getUsers: Function;\n createSpace: Function;\n updateSpace: Function;\n deleteSpace: Function;\n getSpaces: Function;\n getSpace: Function;\n getMembers: Function;\n addMembers: Function;\n updateMembers: Function;\n removeMembers: Function;\n getMemberships: Function;\n joinSpaces: Function;\n updateMemberships: Function;\n leaveSpaces: Function;\n\n disconnect: Function;\n reconnect: Function;\n\n destroy: Function;\n stop: Function;\n\n getSubscribedChannels: Function;\n getSubscribedChannelGroups: Function;\n\n addListener: Function;\n removeListener: Function;\n removeAllListeners: Function;\n\n parseToken: Function;\n setToken: Function;\n setTokens: Function;\n getToken: Function;\n getTokens: Function;\n clearTokens: Function;\n\n getAuthKey: Function;\n setAuthKey: Function;\n\n setCipherKey: Function;\n setUUID: Function;\n getUUID: Function;\n\n getFilterExpression: Function;\n setFilterExpression: Function;\n\n setHeartbeatInterval: Function;\n\n setProxy: Function;\n\n encrypt: Function;\n decrypt: Function;\n\n //\n\n constructor(setup: InternalSetupStruct) {\n let { db, networking, cbor } = setup;\n\n const config = (this._config = new Config({ setup, db }));\n const crypto = new Crypto({ config });\n\n networking.init(config);\n\n const tokenManager = (this._tokenManager = new TokenManager(config, cbor));\n const telemetryManager = (this._telemetryManager = new TelemetryManager({ maximumSamplesCount: 60000 }));\n\n let modules = { config, networking, crypto, tokenManager, telemetryManager };\n\n const timeEndpoint = endpointCreator.bind(this, modules, timeEndpointConfig);\n const leaveEndpoint = endpointCreator.bind(this, modules, presenceLeaveEndpointConfig);\n const heartbeatEndpoint = endpointCreator.bind(this, modules, presenceHeartbeatEndpointConfig);\n const setStateEndpoint = endpointCreator.bind(this, modules, presenceSetStateConfig);\n const subscribeEndpoint = endpointCreator.bind(this, modules, subscribeEndpointConfig);\n\n // managers\n const listenerManager = (this._listenerManager = new ListenerManager());\n\n const subscriptionManager = new SubscriptionManager({\n timeEndpoint,\n leaveEndpoint,\n heartbeatEndpoint,\n setStateEndpoint,\n subscribeEndpoint,\n crypto: modules.crypto,\n config: modules.config,\n listenerManager,\n });\n\n this.addListener = listenerManager.addListener.bind(listenerManager);\n this.removeListener = listenerManager.removeListener.bind(listenerManager);\n this.removeAllListeners = listenerManager.removeAllListeners.bind(listenerManager);\n\n this.parseToken = tokenManager.parseToken.bind(tokenManager);\n this.setToken = tokenManager.setToken.bind(tokenManager);\n this.setTokens = tokenManager.setTokens.bind(tokenManager);\n this.getToken = tokenManager.getToken.bind(tokenManager);\n this.getTokens = tokenManager.getTokens.bind(tokenManager);\n this.clearTokens = tokenManager.clearTokens.bind(tokenManager);\n\n /* channel groups */\n this.channelGroups = {\n listGroups: endpointCreator.bind(this, modules, listChannelGroupsConfig),\n listChannels: endpointCreator.bind(this, modules, listChannelsInChannelGroupConfig),\n addChannels: endpointCreator.bind(this, modules, addChannelsChannelGroupConfig),\n removeChannels: endpointCreator.bind(this, modules, removeChannelsChannelGroupConfig),\n deleteGroup: endpointCreator.bind(this, modules, deleteChannelGroupConfig),\n };\n /* push */\n this.push = {\n addChannels: endpointCreator.bind(this, modules, addPushChannelsConfig),\n removeChannels: endpointCreator.bind(this, modules, removePushChannelsConfig),\n deleteDevice: endpointCreator.bind(this, modules, removeDevicePushConfig),\n listChannels: endpointCreator.bind(this, modules, listPushChannelsConfig),\n };\n /* presence */\n this.hereNow = endpointCreator.bind(this, modules, presenceHereNowConfig);\n this.whereNow = endpointCreator.bind(this, modules, presenceWhereNowEndpointConfig);\n this.getState = endpointCreator.bind(this, modules, presenceGetStateConfig);\n this.setState = subscriptionManager.adaptStateChange.bind(subscriptionManager);\n /* PAM */\n this.grant = endpointCreator.bind(this, modules, grantEndpointConfig);\n this.grantToken = endpointCreator.bind(this, modules, grantTokenEndpointConfig);\n this.audit = endpointCreator.bind(this, modules, auditEndpointConfig);\n //\n this.publish = endpointCreator.bind(this, modules, publishEndpointConfig);\n\n this.fire = (args, callback) => {\n args.replicate = false;\n args.storeInHistory = false;\n return this.publish(args, callback);\n };\n\n this.signal = endpointCreator.bind(this, modules, signalEndpointConfig);\n\n this.history = endpointCreator.bind(this, modules, historyEndpointConfig);\n this.deleteMessages = endpointCreator.bind(this, modules, deleteMessagesEndpointConfig);\n this.messageCounts = endpointCreator.bind(this, modules, messageCountsEndpointConfig);\n this.fetchMessages = endpointCreator.bind(this, modules, fetchMessagesEndpointConfig);\n\n // Actions API\n\n this.addMessageAction = endpointCreator.bind(this, modules, addMessageActionEndpointConfig);\n\n this.removeMessageAction = endpointCreator.bind(this, modules, removeMessageActionEndpointConfig);\n\n this.getMessageActions = endpointCreator.bind(this, modules, getMessageActionEndpointConfig);\n\n // Objects API v2\n\n this.objects = {\n getAllUUIDMetadata: endpointCreator.bind(this, modules, getAllUUIDMetadataEndpointConfig),\n getUUIDMetadata: endpointCreator.bind(this, modules, getUUIDMetadataEndpointConfig),\n setUUIDMetadata: endpointCreator.bind(this, modules, setUUIDMetadataEndpointConfig),\n removeUUIDMetadata: endpointCreator.bind(this, modules, removeUUIDMetadataEndpointConfig),\n\n getAllChannelMetadata: endpointCreator.bind(this, modules, getAllChannelMetadataEndpointConfig),\n getChannelMetadata: endpointCreator.bind(this, modules, getChannelMetadataEndpointConfig),\n setChannelMetadata: endpointCreator.bind(this, modules, setChannelMetadataEndpointConfig),\n removeChannelMetadata: endpointCreator.bind(this, modules, removeChannelMetadataEndpointConfig),\n\n getChannelMembers: endpointCreator.bind(this, modules, getMembersV2EndpointConfig),\n setChannelMembers: (parameters: $Diff, ...rest) => endpointCreator.call(this, modules, setMembersV2EndpointConfig, {\n type: 'set',\n ...parameters,\n }, ...rest),\n removeChannelMembers: (parameters: $Diff, ...rest) => endpointCreator.call(this, modules, setMembersV2EndpointConfig, {\n type: 'delete',\n ...parameters,\n }, ...rest),\n\n getMemberships: endpointCreator.bind(this, modules, getMembershipsV2EndpointConfig),\n setMemberships: (parameters: $Diff, ...rest) => endpointCreator.call(this, modules, setMembershipsV2EndpointConfig, {\n type: 'set',\n ...parameters,\n }, ...rest),\n removeMemberships: (parameters: $Diff, ...rest) => endpointCreator.call(this, modules, setMembershipsV2EndpointConfig, {\n type: 'delete',\n ...parameters,\n }, ...rest)\n };\n\n // Objects API\n\n this.createUser = deprecated(endpointCreator.bind(this, modules, createUserEndpointConfig));\n\n this.updateUser = deprecated(endpointCreator.bind(this, modules, updateUserEndpointConfig));\n\n this.deleteUser = deprecated(endpointCreator.bind(this, modules, deleteUserEndpointConfig));\n\n this.getUser = deprecated(endpointCreator.bind(this, modules, getUserEndpointConfig));\n\n this.getUsers = deprecated(endpointCreator.bind(this, modules, getUsersEndpointConfig));\n\n this.createSpace = deprecated(endpointCreator.bind(this, modules, createSpaceEndpointConfig));\n\n this.updateSpace = deprecated(endpointCreator.bind(this, modules, updateSpaceEndpointConfig));\n\n this.deleteSpace = deprecated(endpointCreator.bind(this, modules, deleteSpaceEndpointConfig));\n\n this.getSpaces = deprecated(endpointCreator.bind(this, modules, getSpacesEndpointConfig));\n\n this.getSpace = deprecated(endpointCreator.bind(this, modules, getSpaceEndpointConfig));\n\n this.addMembers = deprecated(endpointCreator.bind(this, modules, addMembersEndpointConfig));\n\n this.updateMembers = deprecated(endpointCreator.bind(this, modules, updateMembersEndpointConfig));\n\n this.removeMembers = deprecated(endpointCreator.bind(this, modules, removeMembersEndpointConfig));\n\n this.getMembers = deprecated(endpointCreator.bind(this, modules, getMembersEndpointConfig));\n\n this.getMemberships = deprecated(endpointCreator.bind(this, modules, getMembershipsEndpointConfig));\n\n this.joinSpaces = deprecated(endpointCreator.bind(this, modules, joinSpacesEndpointConfig));\n\n this.updateMemberships = deprecated(endpointCreator.bind(this, modules, updateMembershipsEndpointConfig));\n\n this.leaveSpaces = deprecated(endpointCreator.bind(this, modules, leaveSpacesEndpointConfig));\n\n this.time = timeEndpoint;\n\n // subscription related methods\n this.subscribe = subscriptionManager.adaptSubscribeChange.bind(subscriptionManager);\n this.presence = subscriptionManager.adaptPresenceChange.bind(subscriptionManager);\n this.unsubscribe = subscriptionManager.adaptUnsubscribeChange.bind(subscriptionManager);\n this.disconnect = subscriptionManager.disconnect.bind(subscriptionManager);\n this.reconnect = subscriptionManager.reconnect.bind(subscriptionManager);\n\n this.destroy = (isOffline: boolean) => {\n subscriptionManager.unsubscribeAll(isOffline);\n subscriptionManager.disconnect();\n };\n\n // --- deprecated ------------------\n this.stop = this.destroy; // --------\n // --- deprecated ------------------\n\n this.unsubscribeAll = subscriptionManager.unsubscribeAll.bind(subscriptionManager);\n\n this.getSubscribedChannels = subscriptionManager.getSubscribedChannels.bind(subscriptionManager);\n this.getSubscribedChannelGroups = subscriptionManager.getSubscribedChannelGroups.bind(subscriptionManager);\n\n // mount crypto\n this.encrypt = crypto.encrypt.bind(crypto);\n this.decrypt = crypto.decrypt.bind(crypto);\n\n /* config */\n this.getAuthKey = modules.config.getAuthKey.bind(modules.config);\n this.setAuthKey = modules.config.setAuthKey.bind(modules.config);\n this.setCipherKey = modules.config.setCipherKey.bind(modules.config);\n this.getUUID = modules.config.getUUID.bind(modules.config);\n this.setUUID = modules.config.setUUID.bind(modules.config);\n this.getFilterExpression = modules.config.getFilterExpression.bind(modules.config);\n this.setFilterExpression = modules.config.setFilterExpression.bind(modules.config);\n\n this.setHeartbeatInterval = modules.config.setHeartbeatInterval.bind(modules.config);\n\n if (networking.hasModule('proxy')) {\n this.setProxy = (proxy) => {\n modules.config.setProxy(proxy);\n this.reconnect();\n };\n }\n }\n\n getVersion(): string {\n return this._config.getVersion();\n }\n\n _addPnsdkSuffix(name: string, suffix: string) {\n this._config._addPnsdkSuffix(name, suffix);\n }\n\n // network hooks to indicate network changes\n networkDownDetected() {\n this._listenerManager.announceNetworkDown();\n\n if (this._config.restore) {\n this.disconnect();\n } else {\n this.destroy(true);\n }\n }\n\n networkUpDetected() {\n this._listenerManager.announceNetworkUp();\n this.reconnect();\n }\n\n static notificationPayload(title: ?string, body: ?string): NotificationsPayload {\n return new NotificationsPayload(title, body);\n }\n\n static generateUUID(): string {\n return uuidGenerator.createUUID();\n }\n\n static OPERATIONS = OPERATIONS;\n static CATEGORIES = CATEGORIES;\n}\n"],"file":"pubnub-common.js"} \ No newline at end of file +{"version":3,"sources":["core/pubnub-common.js"],"names":["setup","db","networking","cbor","config","_config","Config","crypto","Crypto","cryptography","init","tokenManager","_tokenManager","TokenManager","telemetryManager","_telemetryManager","TelemetryManager","maximumSamplesCount","modules","PubNubFile","File","encryptFile","key","file","decryptFile","timeEndpoint","endpointCreator","bind","timeEndpointConfig","leaveEndpoint","presenceLeaveEndpointConfig","heartbeatEndpoint","presenceHeartbeatEndpointConfig","setStateEndpoint","presenceSetStateConfig","subscribeEndpoint","subscribeEndpointConfig","listenerManager","_listenerManager","ListenerManager","subscriptionManager","SubscriptionManager","getFileUrl","params","addListener","removeListener","removeAllListeners","parseToken","setToken","setTokens","getToken","getTokens","clearTokens","channelGroups","listGroups","listChannelGroupsConfig","listChannels","listChannelsInChannelGroupConfig","addChannels","addChannelsChannelGroupConfig","removeChannels","removeChannelsChannelGroupConfig","deleteGroup","deleteChannelGroupConfig","push","addPushChannelsConfig","removePushChannelsConfig","deleteDevice","removeDevicePushConfig","listPushChannelsConfig","hereNow","presenceHereNowConfig","whereNow","presenceWhereNowEndpointConfig","getState","presenceGetStateConfig","setState","adaptStateChange","grant","grantEndpointConfig","grantToken","grantTokenEndpointConfig","audit","auditEndpointConfig","publish","publishEndpointConfig","fire","args","callback","replicate","storeInHistory","signal","signalEndpointConfig","history","historyEndpointConfig","deleteMessages","deleteMessagesEndpointConfig","messageCounts","messageCountsEndpointConfig","fetchMessages","fetchMessagesEndpointConfig","addMessageAction","addMessageActionEndpointConfig","removeMessageAction","removeMessageActionEndpointConfig","getMessageActions","getMessageActionEndpointConfig","listFiles","listFilesEndpointConfig","generateUploadUrl","generateUploadUrlEndpointConfig","publishFile","publishFileEndpointConfig","sendFile","downloadFile","downloadFileEndpointConfig","deleteFile","deleteFileEndpointConfig","objects","getAllUUIDMetadata","getAllUUIDMetadataEndpointConfig","getUUIDMetadata","getUUIDMetadataEndpointConfig","setUUIDMetadata","setUUIDMetadataEndpointConfig","removeUUIDMetadata","removeUUIDMetadataEndpointConfig","getAllChannelMetadata","getAllChannelMetadataEndpointConfig","getChannelMetadata","getChannelMetadataEndpointConfig","setChannelMetadata","setChannelMetadataEndpointConfig","removeChannelMetadata","removeChannelMetadataEndpointConfig","getChannelMembers","getMembersV2EndpointConfig","setChannelMembers","parameters","rest","call","setMembersV2EndpointConfig","type","removeChannelMembers","getMemberships","getMembershipsV2EndpointConfig","setMemberships","setMembershipsV2EndpointConfig","removeMemberships","createUser","createUserEndpointConfig","updateUser","updateUserEndpointConfig","deleteUser","deleteUserEndpointConfig","getUser","getUserEndpointConfig","getUsers","getUsersEndpointConfig","createSpace","createSpaceEndpointConfig","updateSpace","updateSpaceEndpointConfig","deleteSpace","deleteSpaceEndpointConfig","getSpaces","getSpacesEndpointConfig","getSpace","getSpaceEndpointConfig","addMembers","addMembersEndpointConfig","updateMembers","updateMembersEndpointConfig","removeMembers","removeMembersEndpointConfig","getMembers","getMembersEndpointConfig","getMembershipsEndpointConfig","joinSpaces","joinSpacesEndpointConfig","updateMemberships","updateMembershipsEndpointConfig","leaveSpaces","leaveSpacesEndpointConfig","time","subscribe","adaptSubscribeChange","presence","adaptPresenceChange","unsubscribe","adaptUnsubscribeChange","disconnect","reconnect","destroy","isOffline","unsubscribeAll","stop","getSubscribedChannels","getSubscribedChannelGroups","encrypt","decrypt","getAuthKey","setAuthKey","setCipherKey","getUUID","setUUID","getFilterExpression","setFilterExpression","setHeartbeatInterval","hasModule","setProxy","proxy","getVersion","name","suffix","_addPnsdkSuffix","announceNetworkDown","restore","announceNetworkUp","title","body","NotificationsPayload","uuidGenerator","createUUID","OPERATIONS","CATEGORIES"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport Config from './components/config';\nimport Crypto from './components/cryptography/index';\nimport SubscriptionManager from './components/subscription_manager';\nimport TelemetryManager from './components/telemetry_manager';\nimport NotificationsPayload from './components/push_payload';\nimport ListenerManager from './components/listener_manager';\nimport TokenManager from './components/token_manager';\n\nimport endpointCreator from './components/endpoint';\n\nimport { deprecated } from './utils';\n\nimport * as addChannelsChannelGroupConfig from './endpoints/channel_groups/add_channels';\nimport * as removeChannelsChannelGroupConfig from './endpoints/channel_groups/remove_channels';\nimport * as deleteChannelGroupConfig from './endpoints/channel_groups/delete_group';\nimport * as listChannelGroupsConfig from './endpoints/channel_groups/list_groups';\nimport * as listChannelsInChannelGroupConfig from './endpoints/channel_groups/list_channels';\n\nimport * as addPushChannelsConfig from './endpoints/push/add_push_channels';\nimport * as removePushChannelsConfig from './endpoints/push/remove_push_channels';\nimport * as listPushChannelsConfig from './endpoints/push/list_push_channels';\nimport * as removeDevicePushConfig from './endpoints/push/remove_device';\n\nimport * as presenceLeaveEndpointConfig from './endpoints/presence/leave';\nimport * as presenceWhereNowEndpointConfig from './endpoints/presence/where_now';\nimport * as presenceHeartbeatEndpointConfig from './endpoints/presence/heartbeat';\nimport * as presenceGetStateConfig from './endpoints/presence/get_state';\nimport * as presenceSetStateConfig from './endpoints/presence/set_state';\nimport * as presenceHereNowConfig from './endpoints/presence/here_now';\n\n// Actions API\n\nimport * as addMessageActionEndpointConfig from './endpoints/actions/add_message_action';\nimport * as removeMessageActionEndpointConfig from './endpoints/actions/remove_message_action';\nimport * as getMessageActionEndpointConfig from './endpoints/actions/get_message_actions';\n\n// File Upload API v1\n\nimport { IFile, FileClass } from '../file';\n\nimport * as fileUploadTypes from './endpoints/file_upload/types';\n\nimport listFilesEndpointConfig from './endpoints/file_upload/list_files';\nimport generateUploadUrlEndpointConfig from './endpoints/file_upload/generate_upload_url';\nimport publishFileEndpointConfig from './endpoints/file_upload/publish_file';\nimport sendFileFunction from './endpoints/file_upload/send_file';\nimport getFileUrlFunction from './endpoints/file_upload/get_file_url';\nimport downloadFileEndpointConfig from './endpoints/file_upload/download_file';\nimport deleteFileEndpointConfig from './endpoints/file_upload/delete_file';\n\n// Object API v2\nimport getAllUUIDMetadataEndpointConfig, {\n type GetAllUUIDMetadataParams,\n type GetAllUUIDMetadataResult,\n} from './endpoints/objects/uuid/get_all';\n\nimport getUUIDMetadataEndpointConfig, {\n type GetUUIDMetadataParams,\n type GetUUIDMetadataResult,\n} from './endpoints/objects/uuid/get';\n\nimport setUUIDMetadataEndpointConfig, {\n type SetUUIDMetadataParams,\n type SetUUIDMetadataResult,\n} from './endpoints/objects/uuid/set';\n\nimport removeUUIDMetadataEndpointConfig, {\n type RemoveUUIDMetadataParams,\n type RemoveUUIDMetadataResult,\n} from './endpoints/objects/uuid/remove';\n\nimport getAllChannelMetadataEndpointConfig, {\n type GetAllChannelMetadataParams,\n type GetAllChannelMetadataResult,\n} from './endpoints/objects/channel/get_all';\n\nimport getChannelMetadataEndpointConfig, {\n type GetChannelMetadataParams,\n type GetChannelMetadataResult,\n} from './endpoints/objects/channel/get';\n\nimport setChannelMetadataEndpointConfig, {\n type SetChannelMetadataParams,\n type SetChannelMetadataResult,\n} from './endpoints/objects/channel/set';\n\nimport removeChannelMetadataEndpointConfig, {\n type RemoveChannelMetadataParams,\n type RemoveChannelMetadataResult,\n} from './endpoints/objects/channel/remove';\n\nimport getMembersV2EndpointConfig, {\n type GetMembersParams,\n type GetMembersResult,\n} from './endpoints/objects/member/get';\n\nimport setMembersV2EndpointConfig, {\n type UpsertMembersParams,\n type RemoveMembersParams,\n type SetMembersResult,\n} from './endpoints/objects/member/set';\n\nimport getMembershipsV2EndpointConfig, {\n type GetMembershipsParams,\n type GetMembershipsResult,\n} from './endpoints/objects/membership/get';\n\nimport setMembershipsV2EndpointConfig, {\n type UpsertMembershipsParams,\n type RemoveMembershipsParams,\n type SetMembershipsResult,\n} from './endpoints/objects/membership/set';\n\n// Objects API\n\nimport * as createUserEndpointConfig from './endpoints/users/create_user';\nimport * as updateUserEndpointConfig from './endpoints/users/update_user';\nimport * as deleteUserEndpointConfig from './endpoints/users/delete_user';\nimport * as getUserEndpointConfig from './endpoints/users/get_user';\nimport * as getUsersEndpointConfig from './endpoints/users/get_users';\nimport * as createSpaceEndpointConfig from './endpoints/spaces/create_space';\nimport * as updateSpaceEndpointConfig from './endpoints/spaces/update_space';\nimport * as deleteSpaceEndpointConfig from './endpoints/spaces/delete_space';\nimport * as getSpacesEndpointConfig from './endpoints/spaces/get_spaces';\nimport * as getSpaceEndpointConfig from './endpoints/spaces/get_space';\nimport * as getMembersEndpointConfig from './endpoints/memberships/get_members';\nimport * as addMembersEndpointConfig from './endpoints/memberships/add_members';\nimport * as updateMembersEndpointConfig from './endpoints/memberships/update_members';\nimport * as removeMembersEndpointConfig from './endpoints/memberships/remove_members';\nimport * as getMembershipsEndpointConfig from './endpoints/memberships/get_memberships';\nimport * as updateMembershipsEndpointConfig from './endpoints/memberships/update_memberships';\nimport * as joinSpacesEndpointConfig from './endpoints/memberships/join_spaces';\nimport * as leaveSpacesEndpointConfig from './endpoints/memberships/leave_spaces';\n\nimport * as auditEndpointConfig from './endpoints/access_manager/audit';\nimport * as grantEndpointConfig from './endpoints/access_manager/grant';\nimport * as grantTokenEndpointConfig from './endpoints/access_manager/grant_token';\n\nimport * as publishEndpointConfig from './endpoints/publish';\nimport * as signalEndpointConfig from './endpoints/signal';\nimport * as historyEndpointConfig from './endpoints/history/get_history';\nimport * as deleteMessagesEndpointConfig from './endpoints/history/delete_messages';\nimport * as messageCountsEndpointConfig from './endpoints/history/message_counts';\nimport * as fetchMessagesEndpointConfig from './endpoints/fetch_messages';\nimport * as timeEndpointConfig from './endpoints/time';\nimport * as subscribeEndpointConfig from './endpoints/subscribe';\n\nimport OPERATIONS from './constants/operations';\nimport CATEGORIES from './constants/categories';\n\nimport { InternalSetupStruct } from './flow_interfaces';\nimport uuidGenerator from './components/uuid';\n\ntype CallbackStatus = {|\n error: boolean,\n operation: string,\n statusCode: number,\n|};\n\nexport default class {\n _config: Config;\n _telemetryManager: TelemetryManager;\n _listenerManager: ListenerManager;\n _tokenManager: TokenManager;\n\n // tell flow about the mounted endpoint\n time: Function;\n publish: Function;\n fire: Function;\n\n history: Function;\n deleteMessages: Function;\n messageCounts: Function;\n fetchMessages: Function;\n\n //\n channelGroups: Object;\n //\n push: Object;\n //\n hereNow: Function;\n whereNow: Function;\n getState: Function;\n setState: Function;\n //\n grant: Function;\n grantToken: Function;\n audit: Function;\n //\n subscribe: Function;\n signal: Function;\n presence: Function;\n unsubscribe: Function;\n unsubscribeAll: Function;\n\n // Actions API\n addMessageAction: Function;\n removeMessageAction: Function;\n getMessageActions: Function;\n\n // File Upload API v1\n\n File: FileClass;\n encryptFile: (key: string, file: IFile) => Promise;\n decryptFile: (key: string, file: IFile) => Promise;\n\n listFiles: (\n parameters: fileUploadTypes.ListFilesParams,\n callback?: (status: CallbackStatus, result: fileUploadTypes.ListFilesResult) => void\n ) => Promise;\n sendFile: (\n parameters: fileUploadTypes.SendFileParams,\n callback?: (status: CallbackStatus, result: fileUploadTypes.SendFileResult) => void\n ) => Promise;\n downloadFile: (\n parameters: fileUploadTypes.DownloadFileParams,\n callback?: (status: CallbackStatus, result: fileUploadTypes.DownloadFileResult) => void\n ) => Promise;\n getFileUrl: (parameters: fileUploadTypes.GetFileUrlParams) => fileUploadTypes.GetFileUrlResult;\n deleteFile: (\n parameters: fileUploadTypes.DeleteFileParams,\n callback?: (status: CallbackStatus, result: fileUploadTypes.DeleteFileResult) => void\n ) => Promise;\n publishFile: (\n parameters: fileUploadTypes.PublishFileParams,\n callback?: (status: CallbackStatus, result: fileUploadTypes.PublishFileResult) => void\n ) => Promise;\n\n // Objects API v2\n\n objects: {\n getAllUUIDMetadata: (\n parameters?: GetAllUUIDMetadataParams,\n cb?: (status: CallbackStatus, result: GetAllUUIDMetadataResult) => void\n ) => Promise,\n getUUIDMetadata: (\n parameters?: GetUUIDMetadataParams,\n cb?: (status: CallbackStatus, result: GetUUIDMetadataResult) => void\n ) => Promise,\n setUUIDMetadata: (\n parameters: SetUUIDMetadataParams,\n cb?: (status: CallbackStatus, result: SetUUIDMetadataResult) => void\n ) => Promise,\n removeUUIDMetadata: (\n parameters?: RemoveUUIDMetadataParams,\n cb?: (status: CallbackStatus, result: RemoveUUIDMetadataResult) => void\n ) => Promise,\n\n getAllChannelMetadata: (\n parameters?: GetAllChannelMetadataParams,\n cb?: (status: CallbackStatus, result: GetAllChannelMetadataResult) => void\n ) => Promise,\n getChannelMetadata: (\n parameters: GetChannelMetadataParams,\n cb?: (status: CallbackStatus, result: GetChannelMetadataResult) => void\n ) => Promise,\n setChannelMetadata: (\n parameters: SetChannelMetadataParams,\n cb?: (status: CallbackStatus, result: SetChannelMetadataResult) => void\n ) => Promise,\n removeChannelMetadata: (\n parameters: RemoveChannelMetadataParams,\n cb?: (status: CallbackStatus, result: RemoveChannelMetadataResult) => void\n ) => Promise,\n\n getMemberships: (\n parameters: GetMembershipsParams,\n cb?: (status: CallbackStatus, result: GetMembershipsResult) => void\n ) => Promise,\n setMemberships: (\n parameters: $Diff,\n cb?: (status: CallbackStatus, result: SetMembershipsResult) => void\n ) => Promise,\n removeMemberships: (\n parameters: $Diff,\n cb?: (status: CallbackStatus, result: SetMembershipsResult) => void\n ) => Promise,\n\n getChannelMembers: (\n parameters: GetMembersParams,\n cb?: (status: CallbackStatus, result: GetMembersResult) => void\n ) => Promise,\n setChannelMembers: (\n parameters: $Diff,\n cb?: (status: CallbackStatus, result: SetMembersResult) => void\n ) => Promise,\n removeChannelMembers: (\n parameters: $Diff,\n cb?: (status: CallbackStatus, result: SetMembersResult) => void\n ) => Promise,\n };\n\n // Objects API\n\n createUser: Function;\n updateUser: Function;\n deleteUser: Function;\n getUser: Function;\n getUsers: Function;\n createSpace: Function;\n updateSpace: Function;\n deleteSpace: Function;\n getSpaces: Function;\n getSpace: Function;\n getMembers: Function;\n addMembers: Function;\n updateMembers: Function;\n removeMembers: Function;\n getMemberships: Function;\n joinSpaces: Function;\n updateMemberships: Function;\n leaveSpaces: Function;\n\n disconnect: Function;\n reconnect: Function;\n\n destroy: Function;\n stop: Function;\n\n getSubscribedChannels: Function;\n getSubscribedChannelGroups: Function;\n\n addListener: Function;\n removeListener: Function;\n removeAllListeners: Function;\n\n parseToken: Function;\n setToken: Function;\n setTokens: Function;\n getToken: Function;\n getTokens: Function;\n clearTokens: Function;\n\n getAuthKey: Function;\n setAuthKey: Function;\n\n setCipherKey: Function;\n setUUID: Function;\n getUUID: Function;\n\n getFilterExpression: Function;\n setFilterExpression: Function;\n\n setHeartbeatInterval: Function;\n\n setProxy: Function;\n\n encrypt: Function;\n decrypt: Function;\n\n //\n\n constructor(setup: InternalSetupStruct) {\n let { db, networking, cbor } = setup;\n\n const config = (this._config = new Config({ setup, db }));\n const crypto = new Crypto({ config }); // LEGACY\n\n const cryptography = setup.cryptography;\n\n networking.init(config);\n\n const tokenManager = (this._tokenManager = new TokenManager(config, cbor));\n const telemetryManager = (this._telemetryManager = new TelemetryManager({\n maximumSamplesCount: 60000,\n }));\n\n let modules = {\n config,\n networking,\n crypto,\n cryptography,\n tokenManager,\n telemetryManager,\n PubNubFile: setup.PubNubFile,\n };\n\n this.File = setup.PubNubFile;\n\n this.encryptFile = (key, file) => cryptography.encryptFile(key, file, this.File);\n this.decryptFile = (key, file) => cryptography.decryptFile(key, file, this.File);\n\n const timeEndpoint = endpointCreator.bind(this, modules, timeEndpointConfig);\n const leaveEndpoint = endpointCreator.bind(this, modules, presenceLeaveEndpointConfig);\n const heartbeatEndpoint = endpointCreator.bind(this, modules, presenceHeartbeatEndpointConfig);\n const setStateEndpoint = endpointCreator.bind(this, modules, presenceSetStateConfig);\n const subscribeEndpoint = endpointCreator.bind(this, modules, subscribeEndpointConfig);\n\n // managers\n const listenerManager = (this._listenerManager = new ListenerManager());\n\n const subscriptionManager = new SubscriptionManager({\n timeEndpoint,\n leaveEndpoint,\n heartbeatEndpoint,\n setStateEndpoint,\n subscribeEndpoint,\n crypto: modules.crypto,\n config: modules.config,\n listenerManager,\n getFileUrl: (params) => getFileUrlFunction(modules, params),\n });\n\n this.addListener = listenerManager.addListener.bind(listenerManager);\n this.removeListener = listenerManager.removeListener.bind(listenerManager);\n this.removeAllListeners = listenerManager.removeAllListeners.bind(listenerManager);\n\n this.parseToken = tokenManager.parseToken.bind(tokenManager);\n this.setToken = tokenManager.setToken.bind(tokenManager);\n this.setTokens = tokenManager.setTokens.bind(tokenManager);\n this.getToken = tokenManager.getToken.bind(tokenManager);\n this.getTokens = tokenManager.getTokens.bind(tokenManager);\n this.clearTokens = tokenManager.clearTokens.bind(tokenManager);\n\n /* channel groups */\n this.channelGroups = {\n listGroups: endpointCreator.bind(this, modules, listChannelGroupsConfig),\n listChannels: endpointCreator.bind(this, modules, listChannelsInChannelGroupConfig),\n addChannels: endpointCreator.bind(this, modules, addChannelsChannelGroupConfig),\n removeChannels: endpointCreator.bind(this, modules, removeChannelsChannelGroupConfig),\n deleteGroup: endpointCreator.bind(this, modules, deleteChannelGroupConfig),\n };\n /* push */\n this.push = {\n addChannels: endpointCreator.bind(this, modules, addPushChannelsConfig),\n removeChannels: endpointCreator.bind(this, modules, removePushChannelsConfig),\n deleteDevice: endpointCreator.bind(this, modules, removeDevicePushConfig),\n listChannels: endpointCreator.bind(this, modules, listPushChannelsConfig),\n };\n /* presence */\n this.hereNow = endpointCreator.bind(this, modules, presenceHereNowConfig);\n this.whereNow = endpointCreator.bind(this, modules, presenceWhereNowEndpointConfig);\n this.getState = endpointCreator.bind(this, modules, presenceGetStateConfig);\n this.setState = subscriptionManager.adaptStateChange.bind(subscriptionManager);\n /* PAM */\n this.grant = endpointCreator.bind(this, modules, grantEndpointConfig);\n this.grantToken = endpointCreator.bind(this, modules, grantTokenEndpointConfig);\n this.audit = endpointCreator.bind(this, modules, auditEndpointConfig);\n //\n this.publish = endpointCreator.bind(this, modules, publishEndpointConfig);\n\n this.fire = (args, callback) => {\n args.replicate = false;\n args.storeInHistory = false;\n return this.publish(args, callback);\n };\n\n this.signal = endpointCreator.bind(this, modules, signalEndpointConfig);\n\n this.history = endpointCreator.bind(this, modules, historyEndpointConfig);\n this.deleteMessages = endpointCreator.bind(this, modules, deleteMessagesEndpointConfig);\n this.messageCounts = endpointCreator.bind(this, modules, messageCountsEndpointConfig);\n this.fetchMessages = endpointCreator.bind(this, modules, fetchMessagesEndpointConfig);\n\n // Actions API\n\n this.addMessageAction = endpointCreator.bind(this, modules, addMessageActionEndpointConfig);\n\n this.removeMessageAction = endpointCreator.bind(this, modules, removeMessageActionEndpointConfig);\n\n this.getMessageActions = endpointCreator.bind(this, modules, getMessageActionEndpointConfig);\n\n // File Upload API v1\n\n this.listFiles = endpointCreator.bind(this, modules, listFilesEndpointConfig);\n\n const generateUploadUrl = endpointCreator.bind(this, modules, generateUploadUrlEndpointConfig);\n this.publishFile = endpointCreator.bind(this, modules, publishFileEndpointConfig);\n\n this.sendFile = sendFileFunction({\n generateUploadUrl,\n publishFile: this.publishFile,\n modules,\n });\n\n this.getFileUrl = (params) => getFileUrlFunction(modules, params);\n\n this.downloadFile = endpointCreator.bind(this, modules, downloadFileEndpointConfig);\n\n this.deleteFile = endpointCreator.bind(this, modules, deleteFileEndpointConfig);\n\n // Objects API v2\n\n this.objects = {\n getAllUUIDMetadata: endpointCreator.bind(this, modules, getAllUUIDMetadataEndpointConfig),\n getUUIDMetadata: endpointCreator.bind(this, modules, getUUIDMetadataEndpointConfig),\n setUUIDMetadata: endpointCreator.bind(this, modules, setUUIDMetadataEndpointConfig),\n removeUUIDMetadata: endpointCreator.bind(this, modules, removeUUIDMetadataEndpointConfig),\n\n getAllChannelMetadata: endpointCreator.bind(this, modules, getAllChannelMetadataEndpointConfig),\n getChannelMetadata: endpointCreator.bind(this, modules, getChannelMetadataEndpointConfig),\n setChannelMetadata: endpointCreator.bind(this, modules, setChannelMetadataEndpointConfig),\n removeChannelMetadata: endpointCreator.bind(this, modules, removeChannelMetadataEndpointConfig),\n\n getChannelMembers: endpointCreator.bind(this, modules, getMembersV2EndpointConfig),\n setChannelMembers: (parameters: $Diff, ...rest) =>\n endpointCreator.call(\n this,\n modules,\n setMembersV2EndpointConfig,\n {\n type: 'set',\n ...parameters,\n },\n ...rest\n ),\n removeChannelMembers: (parameters: $Diff, ...rest) =>\n endpointCreator.call(\n this,\n modules,\n setMembersV2EndpointConfig,\n {\n type: 'delete',\n ...parameters,\n },\n ...rest\n ),\n\n getMemberships: endpointCreator.bind(this, modules, getMembershipsV2EndpointConfig),\n setMemberships: (parameters: $Diff, ...rest) =>\n endpointCreator.call(\n this,\n modules,\n setMembershipsV2EndpointConfig,\n {\n type: 'set',\n ...parameters,\n },\n ...rest\n ),\n removeMemberships: (parameters: $Diff, ...rest) =>\n endpointCreator.call(\n this,\n modules,\n setMembershipsV2EndpointConfig,\n {\n type: 'delete',\n ...parameters,\n },\n ...rest\n ),\n };\n\n // Objects API\n\n this.createUser = deprecated(endpointCreator.bind(this, modules, createUserEndpointConfig));\n\n this.updateUser = deprecated(endpointCreator.bind(this, modules, updateUserEndpointConfig));\n\n this.deleteUser = deprecated(endpointCreator.bind(this, modules, deleteUserEndpointConfig));\n\n this.getUser = deprecated(endpointCreator.bind(this, modules, getUserEndpointConfig));\n\n this.getUsers = deprecated(endpointCreator.bind(this, modules, getUsersEndpointConfig));\n\n this.createSpace = deprecated(endpointCreator.bind(this, modules, createSpaceEndpointConfig));\n\n this.updateSpace = deprecated(endpointCreator.bind(this, modules, updateSpaceEndpointConfig));\n\n this.deleteSpace = deprecated(endpointCreator.bind(this, modules, deleteSpaceEndpointConfig));\n\n this.getSpaces = deprecated(endpointCreator.bind(this, modules, getSpacesEndpointConfig));\n\n this.getSpace = deprecated(endpointCreator.bind(this, modules, getSpaceEndpointConfig));\n\n this.addMembers = deprecated(endpointCreator.bind(this, modules, addMembersEndpointConfig));\n\n this.updateMembers = deprecated(endpointCreator.bind(this, modules, updateMembersEndpointConfig));\n\n this.removeMembers = deprecated(endpointCreator.bind(this, modules, removeMembersEndpointConfig));\n\n this.getMembers = deprecated(endpointCreator.bind(this, modules, getMembersEndpointConfig));\n\n this.getMemberships = deprecated(endpointCreator.bind(this, modules, getMembershipsEndpointConfig));\n\n this.joinSpaces = deprecated(endpointCreator.bind(this, modules, joinSpacesEndpointConfig));\n\n this.updateMemberships = deprecated(endpointCreator.bind(this, modules, updateMembershipsEndpointConfig));\n\n this.leaveSpaces = deprecated(endpointCreator.bind(this, modules, leaveSpacesEndpointConfig));\n\n this.time = timeEndpoint;\n\n // subscription related methods\n this.subscribe = subscriptionManager.adaptSubscribeChange.bind(subscriptionManager);\n this.presence = subscriptionManager.adaptPresenceChange.bind(subscriptionManager);\n this.unsubscribe = subscriptionManager.adaptUnsubscribeChange.bind(subscriptionManager);\n this.disconnect = subscriptionManager.disconnect.bind(subscriptionManager);\n this.reconnect = subscriptionManager.reconnect.bind(subscriptionManager);\n\n this.destroy = (isOffline: boolean) => {\n subscriptionManager.unsubscribeAll(isOffline);\n subscriptionManager.disconnect();\n };\n\n // --- deprecated ------------------\n this.stop = this.destroy; // --------\n // --- deprecated ------------------\n\n this.unsubscribeAll = subscriptionManager.unsubscribeAll.bind(subscriptionManager);\n\n this.getSubscribedChannels = subscriptionManager.getSubscribedChannels.bind(subscriptionManager);\n this.getSubscribedChannelGroups = subscriptionManager.getSubscribedChannelGroups.bind(subscriptionManager);\n\n // mount crypto\n this.encrypt = crypto.encrypt.bind(crypto);\n this.decrypt = crypto.decrypt.bind(crypto);\n\n /* config */\n this.getAuthKey = modules.config.getAuthKey.bind(modules.config);\n this.setAuthKey = modules.config.setAuthKey.bind(modules.config);\n this.setCipherKey = modules.config.setCipherKey.bind(modules.config);\n this.getUUID = modules.config.getUUID.bind(modules.config);\n this.setUUID = modules.config.setUUID.bind(modules.config);\n this.getFilterExpression = modules.config.getFilterExpression.bind(modules.config);\n this.setFilterExpression = modules.config.setFilterExpression.bind(modules.config);\n\n this.setHeartbeatInterval = modules.config.setHeartbeatInterval.bind(modules.config);\n\n if (networking.hasModule('proxy')) {\n this.setProxy = (proxy) => {\n modules.config.setProxy(proxy);\n this.reconnect();\n };\n }\n }\n\n getVersion(): string {\n return this._config.getVersion();\n }\n\n _addPnsdkSuffix(name: string, suffix: string) {\n this._config._addPnsdkSuffix(name, suffix);\n }\n\n // network hooks to indicate network changes\n networkDownDetected() {\n this._listenerManager.announceNetworkDown();\n\n if (this._config.restore) {\n this.disconnect();\n } else {\n this.destroy(true);\n }\n }\n\n networkUpDetected() {\n this._listenerManager.announceNetworkUp();\n this.reconnect();\n }\n\n static notificationPayload(title: ?string, body: ?string): NotificationsPayload {\n return new NotificationsPayload(title, body);\n }\n\n static generateUUID(): string {\n return uuidGenerator.createUUID();\n }\n\n static OPERATIONS = OPERATIONS;\n static CATEGORIES = CATEGORIES;\n}\n"],"file":"pubnub-common.js"} \ No newline at end of file diff --git a/lib/crypto/index.js b/lib/crypto/index.js new file mode 100644 index 000000000..8fce6780a --- /dev/null +++ b/lib/crypto/index.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=index.js.map diff --git a/lib/crypto/index.js.map b/lib/crypto/index.js.map new file mode 100644 index 000000000..a6d011983 --- /dev/null +++ b/lib/crypto/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"index.js"} \ No newline at end of file diff --git a/lib/crypto/modules/node.js b/lib/crypto/modules/node.js new file mode 100644 index 000000000..672544cee --- /dev/null +++ b/lib/crypto/modules/node.js @@ -0,0 +1,370 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); + +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); + +var _stream = require("stream"); + +var _crypto = require("crypto"); + +var NodeCryptography = function () { + function NodeCryptography() { + (0, _classCallCheck2["default"])(this, NodeCryptography); + } + + (0, _createClass2["default"])(NodeCryptography, [{ + key: "encrypt", + value: function () { + var _encrypt = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(key, input) { + var bKey; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + bKey = this.getKey(key); + + if (!(input instanceof Buffer)) { + _context.next = 5; + break; + } + + return _context.abrupt("return", this.encryptBuffer(bKey, input)); + + case 5: + if (!(input instanceof _stream.Readable)) { + _context.next = 9; + break; + } + + return _context.abrupt("return", this.encryptStream(bKey, input)); + + case 9: + if (!(typeof input === 'string')) { + _context.next = 13; + break; + } + + return _context.abrupt("return", this.encryptString(bKey, input)); + + case 13: + throw new Error('Unsupported input format'); + + case 14: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function encrypt(_x, _x2) { + return _encrypt.apply(this, arguments); + } + + return encrypt; + }() + }, { + key: "decrypt", + value: function () { + var _decrypt = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(key, input) { + var bKey; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + bKey = this.getKey(key); + + if (!(input instanceof Buffer)) { + _context2.next = 5; + break; + } + + return _context2.abrupt("return", this.decryptBuffer(bKey, input)); + + case 5: + if (!(input instanceof _stream.Readable)) { + _context2.next = 9; + break; + } + + return _context2.abrupt("return", this.decryptStream(bKey, input)); + + case 9: + if (!(typeof input === 'string')) { + _context2.next = 13; + break; + } + + return _context2.abrupt("return", this.decryptString(bKey, input)); + + case 13: + throw new Error('Unsupported input format'); + + case 14: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function decrypt(_x3, _x4) { + return _decrypt.apply(this, arguments); + } + + return decrypt; + }() + }, { + key: "encryptFile", + value: function () { + var _encryptFile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(key, file, File) { + var bKey; + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + bKey = this.getKey(key); + + if (!(file.data instanceof Buffer)) { + _context3.next = 11; + break; + } + + _context3.t0 = File; + _context3.t1 = file.name; + _context3.next = 6; + return this.encryptBuffer(bKey, file.data); + + case 6: + _context3.t2 = _context3.sent; + _context3.t3 = { + name: _context3.t1, + mimeType: 'application/octet-stream', + data: _context3.t2 + }; + return _context3.abrupt("return", _context3.t0.create.call(_context3.t0, _context3.t3)); + + case 11: + if (!(file.data instanceof _stream.Readable)) { + _context3.next = 21; + break; + } + + _context3.t4 = File; + _context3.t5 = file.name; + _context3.next = 16; + return this.encryptStream(bKey, file.data); + + case 16: + _context3.t6 = _context3.sent; + _context3.t7 = { + name: _context3.t5, + mimeType: 'application/octet-stream', + stream: _context3.t6 + }; + return _context3.abrupt("return", _context3.t4.create.call(_context3.t4, _context3.t7)); + + case 21: + throw new Error('Cannot encrypt this file. In Node.js file encryption supports only string, Buffer or Stream.'); + + case 22: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function encryptFile(_x5, _x6, _x7) { + return _encryptFile.apply(this, arguments); + } + + return encryptFile; + }() + }, { + key: "decryptFile", + value: function () { + var _decryptFile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(key, file, File) { + var bKey; + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + bKey = this.getKey(key); + + if (!(file.data instanceof Buffer)) { + _context4.next = 11; + break; + } + + _context4.t0 = File; + _context4.t1 = file.name; + _context4.next = 6; + return this.decryptBuffer(bKey, file.data); + + case 6: + _context4.t2 = _context4.sent; + _context4.t3 = { + name: _context4.t1, + data: _context4.t2 + }; + return _context4.abrupt("return", _context4.t0.create.call(_context4.t0, _context4.t3)); + + case 11: + if (!(file.data instanceof _stream.Readable)) { + _context4.next = 21; + break; + } + + _context4.t4 = File; + _context4.t5 = file.name; + _context4.next = 16; + return this.decryptStream(bKey, file.data); + + case 16: + _context4.t6 = _context4.sent; + _context4.t7 = { + name: _context4.t5, + stream: _context4.t6 + }; + return _context4.abrupt("return", _context4.t4.create.call(_context4.t4, _context4.t7)); + + case 21: + throw new Error('Cannot decrypt this file. In Node.js file decryption supports only string, Buffer or Stream.'); + + case 22: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function decryptFile(_x8, _x9, _x10) { + return _decryptFile.apply(this, arguments); + } + + return decryptFile; + }() + }, { + key: "getKey", + value: function getKey(key) { + var sha = (0, _crypto.createHash)('sha256'); + sha.update(Buffer.from(key, 'utf8')); + return Buffer.from(sha.digest('hex').slice(0, 32), 'utf8'); + } + }, { + key: "getIv", + value: function getIv() { + return (0, _crypto.randomBytes)(NodeCryptography.IV_LENGTH); + } + }, { + key: "encryptString", + value: function encryptString(key, plaintext) { + var bIv = this.getIv(); + var bPlaintext = Buffer.from(plaintext); + var aes = (0, _crypto.createCipheriv)(this.algo, key, bIv); + return Buffer.concat([bIv, aes.update(bPlaintext), aes["final"]()]).toString('utf8'); + } + }, { + key: "decryptString", + value: function decryptString(key, sCiphertext) { + var ciphertext = Buffer.from(sCiphertext); + var bIv = ciphertext.slice(0, NodeCryptography.IV_LENGTH); + var bCiphertext = ciphertext.slice(NodeCryptography.IV_LENGTH); + var aes = (0, _crypto.createDecipheriv)(this.algo, key, bIv); + return Buffer.concat([aes.update(bCiphertext), aes["final"]()]).toString('utf8'); + } + }, { + key: "encryptBuffer", + value: function encryptBuffer(key, plaintext) { + var bIv = this.getIv(); + var aes = (0, _crypto.createCipheriv)(this.algo, key, bIv); + return Buffer.concat([bIv, aes.update(plaintext), aes["final"]()]); + } + }, { + key: "decryptBuffer", + value: function decryptBuffer(key, ciphertext) { + var bIv = ciphertext.slice(0, NodeCryptography.IV_LENGTH); + var bCiphertext = ciphertext.slice(NodeCryptography.IV_LENGTH); + var aes = (0, _crypto.createDecipheriv)(this.algo, key, bIv); + return Buffer.concat([aes.update(bCiphertext), aes["final"]()]); + } + }, { + key: "encryptStream", + value: function encryptStream(key, stream) { + var output = new _stream.PassThrough(); + var bIv = this.getIv(); + var aes = (0, _crypto.createCipheriv)(this.algo, key, bIv); + output.write(bIv); + stream.pipe(aes).pipe(output); + return output; + } + }, { + key: "decryptStream", + value: function decryptStream(key, stream) { + var _this = this; + + var output = new _stream.PassThrough(); + var bIv = Buffer.alloc(0); + var aes = null; + + var getIv = function getIv() { + var data = stream.read(); + + while (data !== null) { + if (data) { + var bChunk = Buffer.from(data); + var sliceLen = NodeCryptography.IV_LENGTH - bIv.byteLength; + + if (bChunk.byteLength < sliceLen) { + bIv = Buffer.concat([bIv, bChunk]); + } else { + bIv = Buffer.concat([bIv, bChunk.slice(0, sliceLen)]); + aes = (0, _crypto.createDecipheriv)(_this.algo, key, bIv); + aes.pipe(output); + aes.write(bChunk.slice(sliceLen)); + } + } + + data = stream.read(); + } + }; + + stream.on('readable', getIv); + stream.on('end', function () { + if (aes) { + aes.end(); + } + + output.end(); + }); + return output; + } + }, { + key: "algo", + get: function get() { + return 'aes-256-cbc'; + } + }]); + return NodeCryptography; +}(); + +exports["default"] = NodeCryptography; +(0, _defineProperty2["default"])(NodeCryptography, "IV_LENGTH", 16); +module.exports = exports.default; +//# sourceMappingURL=node.js.map diff --git a/lib/crypto/modules/node.js.map b/lib/crypto/modules/node.js.map new file mode 100644 index 000000000..b888a9b51 --- /dev/null +++ b/lib/crypto/modules/node.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["crypto/modules/node.js"],"names":["NodeCryptography","key","input","bKey","getKey","Buffer","encryptBuffer","Readable","encryptStream","encryptString","Error","decryptBuffer","decryptStream","decryptString","file","File","data","name","mimeType","create","stream","sha","update","from","digest","slice","IV_LENGTH","plaintext","bIv","getIv","bPlaintext","aes","algo","concat","toString","sCiphertext","ciphertext","bCiphertext","output","PassThrough","write","pipe","alloc","read","bChunk","sliceLen","byteLength","on","end"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;IAKqBA,gB;;;;;;;;sGAOLC,G,EAAaC,K;;;;;;AACnBC,gBAAAA,I,GAAO,KAAKC,MAAL,CAAYH,GAAZ,C;;sBACTC,KAAK,YAAYG,M;;;;;iDACZ,KAAKC,aAAL,CAAmBH,IAAnB,EAAyBD,KAAzB,C;;;sBACEA,KAAK,YAAYK,gB;;;;;iDACnB,KAAKC,aAAL,CAAmBL,IAAnB,EAAyBD,KAAzB,C;;;sBACE,OAAOA,KAAP,KAAiB,Q;;;;;iDACnB,KAAKO,aAAL,CAAmBN,IAAnB,EAAyBD,KAAzB,C;;;sBAED,IAAIQ,KAAJ,CAAU,0BAAV,C;;;;;;;;;;;;;;;;;;;uGAIIT,G,EAAaC,K;;;;;;AACnBC,gBAAAA,I,GAAO,KAAKC,MAAL,CAAYH,GAAZ,C;;sBACTC,KAAK,YAAYG,M;;;;;kDACZ,KAAKM,aAAL,CAAmBR,IAAnB,EAAyBD,KAAzB,C;;;sBACEA,KAAK,YAAYK,gB;;;;;kDACnB,KAAKK,aAAL,CAAmBT,IAAnB,EAAyBD,KAAzB,C;;;sBACE,OAAOA,KAAP,KAAiB,Q;;;;;kDACnB,KAAKW,aAAL,CAAmBV,IAAnB,EAAyBD,KAAzB,C;;;sBAED,IAAIQ,KAAJ,CAAU,0BAAV,C;;;;;;;;;;;;;;;;;;;2GAIQT,G,EAAaa,I,EAAaC,I;;;;;;AACpCZ,gBAAAA,I,GAAO,KAAKC,MAAL,CAAYH,GAAZ,C;;sBAETa,IAAI,CAACE,IAAL,YAAqBX,M;;;;;+BAChBU,I;+BACCD,IAAI,CAACG,I;;uBAEC,KAAKX,aAAL,CAAmBH,IAAnB,EAAyBW,IAAI,CAACE,IAA9B,C;;;;;AAFZC,kBAAAA,I;AACAC,kBAAAA,Q,EAAU,0B;AACVF,kBAAAA,I;;+DAHUG,M;;;sBAKHL,IAAI,CAACE,IAAL,YAAqBT,gB;;;;;+BACvBQ,I;+BACCD,IAAI,CAACG,I;;uBAEG,KAAKT,aAAL,CAAmBL,IAAnB,EAAyBW,IAAI,CAACE,IAA9B,C;;;;;AAFdC,kBAAAA,I;AACAC,kBAAAA,Q,EAAU,0B;AACVE,kBAAAA,M;;+DAHUD,M;;;sBAMN,IAAIT,KAAJ,CAAU,8FAAV,C;;;;;;;;;;;;;;;;;;;2GAIQT,G,EAAaa,I,EAAaC,I;;;;;;AACpCZ,gBAAAA,I,GAAO,KAAKC,MAAL,CAAYH,GAAZ,C;;sBAETa,IAAI,CAACE,IAAL,YAAqBX,M;;;;;+BAChBU,I;+BACCD,IAAI,CAACG,I;;uBACC,KAAKN,aAAL,CAAmBR,IAAnB,EAAyBW,IAAI,CAACE,IAA9B,C;;;;;AADZC,kBAAAA,I;AACAD,kBAAAA,I;;+DAFUG,M;;;sBAIHL,IAAI,CAACE,IAAL,YAAqBT,gB;;;;;+BACvBQ,I;+BACCD,IAAI,CAACG,I;;uBACG,KAAKL,aAAL,CAAmBT,IAAnB,EAAyBW,IAAI,CAACE,IAA9B,C;;;;;AADdC,kBAAAA,I;AACAG,kBAAAA,M;;+DAFUD,M;;;sBAKN,IAAIT,KAAJ,CAAU,8FAAV,C;;;;;;;;;;;;;;;;;;2BAIHT,G,EAAqB;AAC1B,UAAMoB,GAAG,GAAG,wBAAW,QAAX,CAAZ;AAEAA,MAAAA,GAAG,CAACC,MAAJ,CAAWjB,MAAM,CAACkB,IAAP,CAAYtB,GAAZ,EAAiB,MAAjB,CAAX;AAEA,aAAOI,MAAM,CAACkB,IAAP,CAAYF,GAAG,CAACG,MAAJ,CAAW,KAAX,EAAkBC,KAAlB,CAAwB,CAAxB,EAA2B,EAA3B,CAAZ,EAA4C,MAA5C,CAAP;AACD;;;4BAEe;AACd,aAAO,yBAAYzB,gBAAgB,CAAC0B,SAA7B,CAAP;AACD;;;kCAEazB,G,EAAa0B,S,EAA2B;AACpD,UAAMC,GAAG,GAAG,KAAKC,KAAL,EAAZ;AAEA,UAAMC,UAAU,GAAGzB,MAAM,CAACkB,IAAP,CAAYI,SAAZ,CAAnB;AAEA,UAAMI,GAAG,GAAG,4BAAe,KAAKC,IAApB,EAA0B/B,GAA1B,EAA+B2B,GAA/B,CAAZ;AAEA,aAAOvB,MAAM,CAAC4B,MAAP,CAAc,CAACL,GAAD,EAAMG,GAAG,CAACT,MAAJ,CAAWQ,UAAX,CAAN,EAA8BC,GAAG,SAAH,EAA9B,CAAd,EAA0DG,QAA1D,CAAmE,MAAnE,CAAP;AACD;;;kCAEajC,G,EAAakC,W,EAA6B;AACtD,UAAMC,UAAU,GAAG/B,MAAM,CAACkB,IAAP,CAAYY,WAAZ,CAAnB;AACA,UAAMP,GAAG,GAAGQ,UAAU,CAACX,KAAX,CAAiB,CAAjB,EAAoBzB,gBAAgB,CAAC0B,SAArC,CAAZ;AACA,UAAMW,WAAW,GAAGD,UAAU,CAACX,KAAX,CAAiBzB,gBAAgB,CAAC0B,SAAlC,CAApB;AAEA,UAAMK,GAAG,GAAG,8BAAiB,KAAKC,IAAtB,EAA4B/B,GAA5B,EAAiC2B,GAAjC,CAAZ;AAEA,aAAOvB,MAAM,CAAC4B,MAAP,CAAc,CAACF,GAAG,CAACT,MAAJ,CAAWe,WAAX,CAAD,EAA0BN,GAAG,SAAH,EAA1B,CAAd,EAAsDG,QAAtD,CAA+D,MAA/D,CAAP;AACD;;;kCAEajC,G,EAAa0B,S,EAA2B;AACpD,UAAMC,GAAG,GAAG,KAAKC,KAAL,EAAZ;AAEA,UAAME,GAAG,GAAG,4BAAe,KAAKC,IAApB,EAA0B/B,GAA1B,EAA+B2B,GAA/B,CAAZ;AAEA,aAAOvB,MAAM,CAAC4B,MAAP,CAAc,CAACL,GAAD,EAAMG,GAAG,CAACT,MAAJ,CAAWK,SAAX,CAAN,EAA6BI,GAAG,SAAH,EAA7B,CAAd,CAAP;AACD;;;kCAEa9B,G,EAAamC,U,EAA4B;AACrD,UAAMR,GAAG,GAAGQ,UAAU,CAACX,KAAX,CAAiB,CAAjB,EAAoBzB,gBAAgB,CAAC0B,SAArC,CAAZ;AACA,UAAMW,WAAW,GAAGD,UAAU,CAACX,KAAX,CAAiBzB,gBAAgB,CAAC0B,SAAlC,CAApB;AAEA,UAAMK,GAAG,GAAG,8BAAiB,KAAKC,IAAtB,EAA4B/B,GAA5B,EAAiC2B,GAAjC,CAAZ;AAEA,aAAOvB,MAAM,CAAC4B,MAAP,CAAc,CAACF,GAAG,CAACT,MAAJ,CAAWe,WAAX,CAAD,EAA0BN,GAAG,SAAH,EAA1B,CAAd,CAAP;AACD;;;kCAEa9B,G,EAAamB,M,EAA4B;AACrD,UAAMkB,MAAM,GAAG,IAAIC,mBAAJ,EAAf;AACA,UAAMX,GAAG,GAAG,KAAKC,KAAL,EAAZ;AAEA,UAAME,GAAG,GAAG,4BAAe,KAAKC,IAApB,EAA0B/B,GAA1B,EAA+B2B,GAA/B,CAAZ;AAEAU,MAAAA,MAAM,CAACE,KAAP,CAAaZ,GAAb;AACAR,MAAAA,MAAM,CAACqB,IAAP,CAAYV,GAAZ,EAAiBU,IAAjB,CAAsBH,MAAtB;AAEA,aAAOA,MAAP;AACD;;;kCAEarC,G,EAAamB,M,EAA4B;AAAA;;AACrD,UAAMkB,MAAM,GAAG,IAAIC,mBAAJ,EAAf;AAEA,UAAIX,GAAG,GAAGvB,MAAM,CAACqC,KAAP,CAAa,CAAb,CAAV;AACA,UAAIX,GAAG,GAAG,IAAV;;AAEA,UAAMF,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClB,YAAIb,IAAI,GAAGI,MAAM,CAACuB,IAAP,EAAX;;AAEA,eAAO3B,IAAI,KAAK,IAAhB,EAAsB;AACpB,cAAIA,IAAJ,EAAU;AACR,gBAAI4B,MAAM,GAAGvC,MAAM,CAACkB,IAAP,CAAYP,IAAZ,CAAb;AACA,gBAAI6B,QAAQ,GAAG7C,gBAAgB,CAAC0B,SAAjB,GAA6BE,GAAG,CAACkB,UAAhD;;AAEA,gBAAIF,MAAM,CAACE,UAAP,GAAoBD,QAAxB,EAAkC;AAChCjB,cAAAA,GAAG,GAAGvB,MAAM,CAAC4B,MAAP,CAAc,CAACL,GAAD,EAAMgB,MAAN,CAAd,CAAN;AACD,aAFD,MAEO;AACLhB,cAAAA,GAAG,GAAGvB,MAAM,CAAC4B,MAAP,CAAc,CAACL,GAAD,EAAMgB,MAAM,CAACnB,KAAP,CAAa,CAAb,EAAgBoB,QAAhB,CAAN,CAAd,CAAN;AAEAd,cAAAA,GAAG,GAAG,8BAAiB,KAAI,CAACC,IAAtB,EAA4B/B,GAA5B,EAAiC2B,GAAjC,CAAN;AAEAG,cAAAA,GAAG,CAACU,IAAJ,CAASH,MAAT;AAEAP,cAAAA,GAAG,CAACS,KAAJ,CAAUI,MAAM,CAACnB,KAAP,CAAaoB,QAAb,CAAV;AACD;AACF;;AAED7B,UAAAA,IAAI,GAAGI,MAAM,CAACuB,IAAP,EAAP;AACD;AACF,OAvBD;;AAyBAvB,MAAAA,MAAM,CAAC2B,EAAP,CAAU,UAAV,EAAsBlB,KAAtB;AAEAT,MAAAA,MAAM,CAAC2B,EAAP,CAAU,KAAV,EAAiB,YAAM;AACrB,YAAIhB,GAAJ,EAAS;AACPA,UAAAA,GAAG,CAACiB,GAAJ;AACD;;AAEDV,QAAAA,MAAM,CAACU,GAAP;AACD,OAND;AAQA,aAAOV,MAAP;AACD;;;wBA3KU;AACT,aAAO,aAAP;AACD;;;;;;iCALkBtC,gB,eACA,E","sourcesContent":["/** @flow */\nimport { Readable, PassThrough } from 'stream';\nimport { createCipheriv, createDecipheriv, createHash, randomBytes } from 'crypto';\n\nimport type { ICryptography } from '../';\nimport type { IFile, FileClass } from '../../file';\n\nexport default class NodeCryptography implements ICryptography {\n static IV_LENGTH = 16;\n\n get algo() {\n return 'aes-256-cbc';\n }\n\n async encrypt(key: string, input: Buffer | Readable | string): Promise {\n const bKey = this.getKey(key);\n if (input instanceof Buffer) {\n return this.encryptBuffer(bKey, input);\n } else if (input instanceof Readable) {\n return this.encryptStream(bKey, input);\n } else if (typeof input === 'string') {\n return this.encryptString(bKey, input);\n } else {\n throw new Error('Unsupported input format');\n }\n }\n\n async decrypt(key: string, input: Buffer | Readable | string): Promise {\n const bKey = this.getKey(key);\n if (input instanceof Buffer) {\n return this.decryptBuffer(bKey, input);\n } else if (input instanceof Readable) {\n return this.decryptStream(bKey, input);\n } else if (typeof input === 'string') {\n return this.decryptString(bKey, input);\n } else {\n throw new Error('Unsupported input format');\n }\n }\n\n async encryptFile(key: string, file: IFile, File: FileClass): Promise {\n const bKey = this.getKey(key);\n\n if (file.data instanceof Buffer) {\n return File.create({\n name: file.name,\n mimeType: 'application/octet-stream',\n data: await this.encryptBuffer(bKey, file.data),\n });\n } else if (file.data instanceof Readable) {\n return File.create({\n name: file.name,\n mimeType: 'application/octet-stream',\n stream: await this.encryptStream(bKey, file.data),\n });\n } else {\n throw new Error('Cannot encrypt this file. In Node.js file encryption supports only string, Buffer or Stream.');\n }\n }\n\n async decryptFile(key: string, file: IFile, File: FileClass): Promise {\n const bKey = this.getKey(key);\n\n if (file.data instanceof Buffer) {\n return File.create({\n name: file.name,\n data: await this.decryptBuffer(bKey, file.data),\n });\n } else if (file.data instanceof Readable) {\n return File.create({\n name: file.name,\n stream: await this.decryptStream(bKey, file.data),\n });\n } else {\n throw new Error('Cannot decrypt this file. In Node.js file decryption supports only string, Buffer or Stream.');\n }\n }\n\n getKey(key: string): Buffer {\n const sha = createHash('sha256');\n\n sha.update(Buffer.from(key, 'utf8'));\n\n return Buffer.from(sha.digest('hex').slice(0, 32), 'utf8');\n }\n\n getIv(): Buffer {\n return randomBytes(NodeCryptography.IV_LENGTH);\n }\n\n encryptString(key: Buffer, plaintext: string): string {\n const bIv = this.getIv();\n\n const bPlaintext = Buffer.from(plaintext);\n\n const aes = createCipheriv(this.algo, key, bIv);\n\n return Buffer.concat([bIv, aes.update(bPlaintext), aes.final()]).toString('utf8');\n }\n\n decryptString(key: Buffer, sCiphertext: string): string {\n const ciphertext = Buffer.from(sCiphertext);\n const bIv = ciphertext.slice(0, NodeCryptography.IV_LENGTH);\n const bCiphertext = ciphertext.slice(NodeCryptography.IV_LENGTH);\n\n const aes = createDecipheriv(this.algo, key, bIv);\n\n return Buffer.concat([aes.update(bCiphertext), aes.final()]).toString('utf8');\n }\n\n encryptBuffer(key: Buffer, plaintext: Buffer): Buffer {\n const bIv = this.getIv();\n\n const aes = createCipheriv(this.algo, key, bIv);\n\n return Buffer.concat([bIv, aes.update(plaintext), aes.final()]);\n }\n\n decryptBuffer(key: Buffer, ciphertext: Buffer): Buffer {\n const bIv = ciphertext.slice(0, NodeCryptography.IV_LENGTH);\n const bCiphertext = ciphertext.slice(NodeCryptography.IV_LENGTH);\n\n const aes = createDecipheriv(this.algo, key, bIv);\n\n return Buffer.concat([aes.update(bCiphertext), aes.final()]);\n }\n\n encryptStream(key: Buffer, stream: Readable): Readable {\n const output = new PassThrough();\n const bIv = this.getIv();\n\n const aes = createCipheriv(this.algo, key, bIv);\n\n output.write(bIv);\n stream.pipe(aes).pipe(output);\n\n return output;\n }\n\n decryptStream(key: Buffer, stream: Readable): Readable {\n const output = new PassThrough();\n\n let bIv = Buffer.alloc(0);\n let aes = null;\n\n const getIv = () => {\n let data = stream.read();\n\n while (data !== null) {\n if (data) {\n let bChunk = Buffer.from(data);\n let sliceLen = NodeCryptography.IV_LENGTH - bIv.byteLength;\n\n if (bChunk.byteLength < sliceLen) {\n bIv = Buffer.concat([bIv, bChunk]);\n } else {\n bIv = Buffer.concat([bIv, bChunk.slice(0, sliceLen)]);\n\n aes = createDecipheriv(this.algo, key, bIv);\n\n aes.pipe(output);\n\n aes.write(bChunk.slice(sliceLen));\n }\n }\n\n data = stream.read();\n }\n };\n\n stream.on('readable', getIv);\n\n stream.on('end', () => {\n if (aes) {\n aes.end();\n }\n\n output.end();\n });\n\n return output;\n }\n}\n"],"file":"node.js"} \ No newline at end of file diff --git a/lib/crypto/modules/web.js b/lib/crypto/modules/web.js new file mode 100644 index 000000000..3140a3e47 --- /dev/null +++ b/lib/crypto/modules/web.js @@ -0,0 +1,405 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); + +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); + +var _isomorphicWebcrypto = _interopRequireDefault(require("isomorphic-webcrypto")); + +function concatArrayBuffer(ab1, ab2) { + var tmp = new Uint8Array(ab1.byteLength + ab2.byteLength); + tmp.set(new Uint8Array(ab1), 0); + tmp.set(new Uint8Array(ab2), ab1.byteLength); + return tmp.buffer; +} + +var WebCryptography = function () { + function WebCryptography() { + (0, _classCallCheck2["default"])(this, WebCryptography); + } + + (0, _createClass2["default"])(WebCryptography, [{ + key: "encrypt", + value: function () { + var _encrypt = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(key, input) { + var cKey; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.getKey(key); + + case 2: + cKey = _context.sent; + + if (!(input instanceof ArrayBuffer)) { + _context.next = 7; + break; + } + + return _context.abrupt("return", this.encryptArrayBuffer(cKey, input)); + + case 7: + if (!(typeof input === 'string')) { + _context.next = 11; + break; + } + + return _context.abrupt("return", this.encryptString(cKey, input)); + + case 11: + throw new Error('Cannot encrypt this file. In browsers file encryption supports only string or ArrayBuffer'); + + case 12: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function encrypt(_x, _x2) { + return _encrypt.apply(this, arguments); + } + + return encrypt; + }() + }, { + key: "decrypt", + value: function () { + var _decrypt = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(key, input) { + var cKey; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this.getKey(key); + + case 2: + cKey = _context2.sent; + + if (!(input instanceof ArrayBuffer)) { + _context2.next = 7; + break; + } + + return _context2.abrupt("return", this.decryptArrayBuffer(cKey, input)); + + case 7: + if (!(typeof input === 'string')) { + _context2.next = 11; + break; + } + + return _context2.abrupt("return", this.decryptString(cKey, input)); + + case 11: + throw new Error('Cannot decrypt this file. In browsers file decryption supports only string or ArrayBuffer'); + + case 12: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function decrypt(_x3, _x4) { + return _decrypt.apply(this, arguments); + } + + return decrypt; + }() + }, { + key: "encryptFile", + value: function () { + var _encryptFile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(key, file, File) { + var bKey, abPlaindata, abCipherdata; + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return this.getKey(key); + + case 2: + bKey = _context3.sent; + _context3.next = 5; + return file.toArrayBuffer(); + + case 5: + abPlaindata = _context3.sent; + _context3.next = 8; + return this.encryptArrayBuffer(bKey, abPlaindata); + + case 8: + abCipherdata = _context3.sent; + return _context3.abrupt("return", File.create({ + name: file.name, + mimeType: 'application/octet-stream', + data: abCipherdata + })); + + case 10: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function encryptFile(_x5, _x6, _x7) { + return _encryptFile.apply(this, arguments); + } + + return encryptFile; + }() + }, { + key: "decryptFile", + value: function () { + var _decryptFile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(key, file, File) { + var bKey, abCipherdata, abPlaindata; + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return this.getKey(key); + + case 2: + bKey = _context4.sent; + _context4.next = 5; + return file.toArrayBuffer(); + + case 5: + abCipherdata = _context4.sent; + _context4.next = 8; + return this.decryptArrayBuffer(bKey, abCipherdata); + + case 8: + abPlaindata = _context4.sent; + + if (!(file.data instanceof ArrayBuffer)) { + _context4.next = 13; + break; + } + + return _context4.abrupt("return", File.create({ + name: file.name, + data: abPlaindata + })); + + case 13: + throw new Error('Cannot decrypt this file. In browser environment file decryption supports only ArrayBuffer.'); + + case 14: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + + function decryptFile(_x8, _x9, _x10) { + return _decryptFile.apply(this, arguments); + } + + return decryptFile; + }() + }, { + key: "getKey", + value: function () { + var _getKey = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(key) { + var bKey, abHash, abKey; + return _regenerator["default"].wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + bKey = Buffer.from(key); + _context5.next = 3; + return _isomorphicWebcrypto["default"].subtle.digest('SHA-256', bKey.buffer); + + case 3: + abHash = _context5.sent; + abKey = Buffer.from(Buffer.from(abHash).toString('hex').slice(0, 32), 'utf8').buffer; + return _context5.abrupt("return", _isomorphicWebcrypto["default"].subtle.importKey('raw', abKey, 'AES-CBC', true, ['encrypt', 'decrypt'])); + + case 6: + case "end": + return _context5.stop(); + } + } + }, _callee5); + })); + + function getKey(_x11) { + return _getKey.apply(this, arguments); + } + + return getKey; + }() + }, { + key: "encryptArrayBuffer", + value: function () { + var _encryptArrayBuffer = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(key, plaintext) { + var abIv; + return _regenerator["default"].wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + abIv = _isomorphicWebcrypto["default"].getRandomValues(new Uint8Array(16)); + _context6.t0 = concatArrayBuffer; + _context6.t1 = abIv.buffer; + _context6.next = 5; + return _isomorphicWebcrypto["default"].subtle.encrypt({ + name: 'AES-CBC', + iv: abIv + }, key, plaintext); + + case 5: + _context6.t2 = _context6.sent; + return _context6.abrupt("return", (0, _context6.t0)(_context6.t1, _context6.t2)); + + case 7: + case "end": + return _context6.stop(); + } + } + }, _callee6); + })); + + function encryptArrayBuffer(_x12, _x13) { + return _encryptArrayBuffer.apply(this, arguments); + } + + return encryptArrayBuffer; + }() + }, { + key: "decryptArrayBuffer", + value: function () { + var _decryptArrayBuffer = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(key, ciphertext) { + var abIv; + return _regenerator["default"].wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + abIv = ciphertext.slice(0, 16); + return _context7.abrupt("return", _isomorphicWebcrypto["default"].subtle.decrypt({ + name: 'AES-CBC', + iv: abIv + }, key, ciphertext.slice(16))); + + case 2: + case "end": + return _context7.stop(); + } + } + }, _callee7); + })); + + function decryptArrayBuffer(_x14, _x15) { + return _decryptArrayBuffer.apply(this, arguments); + } + + return decryptArrayBuffer; + }() + }, { + key: "encryptString", + value: function () { + var _encryptString = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(key, plaintext) { + var abIv, abPlaintext, abPayload, ciphertext; + return _regenerator["default"].wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + abIv = _isomorphicWebcrypto["default"].getRandomValues(new Uint8Array(16)); + abPlaintext = Buffer.from(plaintext).buffer; + _context8.next = 4; + return _isomorphicWebcrypto["default"].subtle.encrypt({ + name: 'AES-CBC', + iv: abIv + }, key, abPlaintext); + + case 4: + abPayload = _context8.sent; + ciphertext = concatArrayBuffer(abIv.buffer, abPayload); + return _context8.abrupt("return", Buffer.from(ciphertext).toString('utf8')); + + case 7: + case "end": + return _context8.stop(); + } + } + }, _callee8); + })); + + function encryptString(_x16, _x17) { + return _encryptString.apply(this, arguments); + } + + return encryptString; + }() + }, { + key: "decryptString", + value: function () { + var _decryptString = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(key, ciphertext) { + var abCiphertext, abIv, abPayload, abPlaintext; + return _regenerator["default"].wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + abCiphertext = Buffer.from(ciphertext); + abIv = abCiphertext.slice(0, 16); + abPayload = abCiphertext.slice(16); + _context9.next = 5; + return _isomorphicWebcrypto["default"].subtle.decrypt({ + name: 'AES-CBC', + iv: abIv + }, key, abPayload); + + case 5: + abPlaintext = _context9.sent; + return _context9.abrupt("return", Buffer.from(abPlaintext).toString('utf8')); + + case 7: + case "end": + return _context9.stop(); + } + } + }, _callee9); + })); + + function decryptString(_x18, _x19) { + return _decryptString.apply(this, arguments); + } + + return decryptString; + }() + }, { + key: "algo", + get: function get() { + return 'aes-256-cbc'; + } + }]); + return WebCryptography; +}(); + +exports["default"] = WebCryptography; +(0, _defineProperty2["default"])(WebCryptography, "IV_LENGTH", 16); +module.exports = exports.default; +//# sourceMappingURL=web.js.map diff --git a/lib/crypto/modules/web.js.map b/lib/crypto/modules/web.js.map new file mode 100644 index 000000000..deb01e174 --- /dev/null +++ b/lib/crypto/modules/web.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["crypto/modules/web.js"],"names":["concatArrayBuffer","ab1","ab2","tmp","Uint8Array","byteLength","set","buffer","WebCryptography","key","input","getKey","cKey","ArrayBuffer","encryptArrayBuffer","encryptString","Error","decryptArrayBuffer","decryptString","file","File","bKey","toArrayBuffer","abPlaindata","abCipherdata","create","name","mimeType","data","Buffer","from","crypto","subtle","digest","abHash","abKey","toString","slice","importKey","plaintext","abIv","getRandomValues","encrypt","iv","ciphertext","decrypt","abPlaintext","abPayload","abCiphertext"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport crypto, { type $CryptoKey } from 'isomorphic-webcrypto';\n\nimport type { ICryptography } from '../';\nimport type { IFile, FileClass } from '../../file';\n\nfunction concatArrayBuffer(ab1: ArrayBuffer, ab2: ArrayBuffer): ArrayBuffer {\n const tmp = new Uint8Array(ab1.byteLength + ab2.byteLength);\n\n tmp.set(new Uint8Array(ab1), 0);\n tmp.set(new Uint8Array(ab2), ab1.byteLength);\n\n return tmp.buffer;\n}\n\nexport default class WebCryptography implements ICryptography {\n static IV_LENGTH = 16;\n\n get algo() {\n return 'aes-256-cbc';\n }\n\n async encrypt(key: string, input: ArrayBuffer | string): Promise {\n const cKey = await this.getKey(key);\n\n if (input instanceof ArrayBuffer) {\n return this.encryptArrayBuffer(cKey, input);\n } else if (typeof input === 'string') {\n return this.encryptString(cKey, input);\n } else {\n throw new Error('Cannot encrypt this file. In browsers file encryption supports only string or ArrayBuffer');\n }\n }\n\n async decrypt(key: string, input: ArrayBuffer | string): Promise {\n const cKey = await this.getKey(key);\n\n if (input instanceof ArrayBuffer) {\n return this.decryptArrayBuffer(cKey, input);\n } else if (typeof input === 'string') {\n return this.decryptString(cKey, input);\n } else {\n throw new Error('Cannot decrypt this file. In browsers file decryption supports only string or ArrayBuffer');\n }\n }\n\n async encryptFile(key: string, file: IFile, File: FileClass): Promise {\n const bKey = await this.getKey(key);\n\n const abPlaindata = await file.toArrayBuffer();\n\n const abCipherdata = await this.encryptArrayBuffer(bKey, abPlaindata);\n\n return File.create({\n name: file.name,\n mimeType: 'application/octet-stream',\n data: abCipherdata,\n });\n }\n\n async decryptFile(key: string, file: IFile, File: FileClass): Promise {\n const bKey = await this.getKey(key);\n\n const abCipherdata = await file.toArrayBuffer();\n\n const abPlaindata = await this.decryptArrayBuffer(bKey, abCipherdata);\n\n if (file.data instanceof ArrayBuffer) {\n return File.create({\n name: file.name,\n data: abPlaindata,\n });\n } else {\n throw new Error('Cannot decrypt this file. In browser environment file decryption supports only ArrayBuffer.');\n }\n }\n\n async getKey(key: string): Promise<$CryptoKey> {\n const bKey = Buffer.from(key);\n const abHash = await crypto.subtle.digest('SHA-256', bKey.buffer);\n\n const abKey = Buffer.from(Buffer.from(abHash).toString('hex').slice(0, 32), 'utf8').buffer;\n\n return crypto.subtle.importKey('raw', abKey, 'AES-CBC', true, ['encrypt', 'decrypt']);\n }\n\n async encryptArrayBuffer(key: $CryptoKey, plaintext: ArrayBuffer) {\n const abIv = crypto.getRandomValues(new Uint8Array(16));\n\n return concatArrayBuffer(abIv.buffer, await crypto.subtle.encrypt({ name: 'AES-CBC', iv: abIv }, key, plaintext));\n }\n\n async decryptArrayBuffer(key: $CryptoKey, ciphertext: ArrayBuffer) {\n const abIv = ciphertext.slice(0, 16);\n\n return crypto.subtle.decrypt({ name: 'AES-CBC', iv: abIv }, key, ciphertext.slice(16));\n }\n\n async encryptString(key: $CryptoKey, plaintext: string) {\n const abIv = crypto.getRandomValues(new Uint8Array(16));\n\n const abPlaintext = Buffer.from(plaintext).buffer;\n const abPayload = await crypto.subtle.encrypt({ name: 'AES-CBC', iv: abIv }, key, abPlaintext);\n\n const ciphertext = concatArrayBuffer(abIv.buffer, abPayload);\n\n return Buffer.from(ciphertext).toString('utf8');\n }\n\n async decryptString(key: $CryptoKey, ciphertext: string) {\n const abCiphertext = Buffer.from(ciphertext);\n const abIv = abCiphertext.slice(0, 16);\n const abPayload = abCiphertext.slice(16);\n\n const abPlaintext = await crypto.subtle.decrypt({ name: 'AES-CBC', iv: abIv }, key, abPayload);\n\n return Buffer.from(abPlaintext).toString('utf8');\n }\n}\n"],"file":"web.js"} \ No newline at end of file diff --git a/lib/db/common.js b/lib/db/common.js index 9d3d2f705..38d6cf346 100644 --- a/lib/db/common.js +++ b/lib/db/common.js @@ -1,28 +1,26 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -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, descriptor.key, descriptor); } } +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _default = function () { function _default() { - _classCallCheck(this, _default); - - _defineProperty(this, "storage", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "storage", void 0); this.storage = {}; } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "get", value: function get(key) { return this.storage[key]; @@ -33,7 +31,6 @@ var _default = function () { this.storage[key] = value; } }]); - return _default; }(); diff --git a/lib/db/common.js.map b/lib/db/common.js.map index ad7a0ff4f..b46eac659 100644 --- a/lib/db/common.js.map +++ b/lib/db/common.js.map @@ -1 +1 @@ -{"version":3,"sources":["db/common.js"],"names":["storage","key","value"],"mappings":";;;;;;;;;;;;;;;;AAGE,sBAAc;AAAA;;AAAA;;AACZ,SAAKA,OAAL,GAAe,EAAf;AACD;;;;wBAEGC,G,EAAK;AACP,aAAO,KAAKD,OAAL,CAAaC,GAAb,CAAP;AACD;;;wBAEGA,G,EAAKC,K,EAAO;AACd,WAAKF,OAAL,CAAaC,GAAb,IAAoBC,KAApB;AACD","sourcesContent":["export default class {\n storage: Object;\n\n constructor() {\n this.storage = {};\n }\n\n get(key) {\n return this.storage[key];\n }\n\n set(key, value) {\n this.storage[key] = value;\n }\n}\n"],"file":"common.js"} \ No newline at end of file +{"version":3,"sources":["db/common.js"],"names":["storage","key","value"],"mappings":";;;;;;;;;;;;;;;;AAGE,sBAAc;AAAA;AAAA;AACZ,SAAKA,OAAL,GAAe,EAAf;AACD;;;;wBAEGC,G,EAAK;AACP,aAAO,KAAKD,OAAL,CAAaC,GAAb,CAAP;AACD;;;wBAEGA,G,EAAKC,K,EAAO;AACd,WAAKF,OAAL,CAAaC,GAAb,IAAoBC,KAApB;AACD","sourcesContent":["export default class {\n storage: Object;\n\n constructor() {\n this.storage = {};\n }\n\n get(key) {\n return this.storage[key];\n }\n\n set(key, value) {\n this.storage[key] = value;\n }\n}\n"],"file":"common.js"} \ No newline at end of file diff --git a/lib/file/index.js b/lib/file/index.js new file mode 100644 index 000000000..8fce6780a --- /dev/null +++ b/lib/file/index.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=index.js.map diff --git a/lib/file/index.js.map b/lib/file/index.js.map new file mode 100644 index 000000000..a6d011983 --- /dev/null +++ b/lib/file/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"index.js"} \ No newline at end of file diff --git a/lib/file/modules/node.js b/lib/file/modules/node.js new file mode 100644 index 000000000..4283f9792 --- /dev/null +++ b/lib/file/modules/node.js @@ -0,0 +1,241 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); + +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); + +var _mimeTypes = require("mime-types"); + +var _stream = require("stream"); + +var _fs = require("fs"); + +var _path = require("path"); + +var _ = require("../"); + +var _class, _temp; + +var PubNubFile = (_temp = _class = function () { + (0, _createClass2["default"])(PubNubFile, null, [{ + key: "create", + value: function create(config) { + return new this(config); + } + }]); + + function PubNubFile(_ref) { + var stream = _ref.stream, + data = _ref.data, + encoding = _ref.encoding, + name = _ref.name, + mimeType = _ref.mimeType; + (0, _classCallCheck2["default"])(this, PubNubFile); + (0, _defineProperty2["default"])(this, "data", void 0); + (0, _defineProperty2["default"])(this, "name", void 0); + (0, _defineProperty2["default"])(this, "mimeType", void 0); + + if (stream instanceof _stream.Readable) { + this.data = stream; + + if (stream instanceof _fs.ReadStream) { + this.name = (0, _path.basename)(stream.path); + this.mimeType = (0, _mimeTypes.lookup)(stream.path); + } + } else if (data instanceof Buffer) { + this.data = Buffer.from(data); + } else if (typeof data === 'string') { + this.data = Buffer.from(data, encoding !== null && encoding !== void 0 ? encoding : 'utf8'); + } + + if (name) { + this.name = (0, _path.basename)(name); + this.mimeType = (0, _mimeTypes.lookup)(name); + } + + if (mimeType) { + this.mimeType = mimeType; + } + + if (this.data === undefined) { + throw new Error("Couldn't construct a file out of supplied options."); + } + + if (this.name === undefined) { + throw new Error("Couldn't guess filename out of the options. Please provide one."); + } + } + + (0, _createClass2["default"])(PubNubFile, [{ + key: "toBuffer", + value: function toBuffer() { + if (this.data instanceof Buffer) { + return Promise.resolve(Buffer.from(this.data)); + } + + if (this.data instanceof _stream.Readable) { + var stream = this.data; + return new Promise(function (resolve, reject) { + var chunks = []; + stream.on('data', function (chunk) { + return chunks.push(chunk); + }); + stream.once('error', reject); + stream.once('end', function () { + resolve(Buffer.concat(chunks)); + }); + }); + } + + if (typeof this.data === 'string') { + return Promise.resolve(Buffer.from(this.data)); + } + + throw new Error("Can't cast to 'buffer'."); + } + }, { + key: "toArrayBuffer", + value: function () { + var _toArrayBuffer = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() { + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + throw new Error('This feature is only supported in browser environments.'); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + function toArrayBuffer() { + return _toArrayBuffer.apply(this, arguments); + } + + return toArrayBuffer; + }() + }, { + key: "toString", + value: function () { + var _toString = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() { + var encoding, + buffer, + _args2 = arguments; + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + encoding = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : 'utf8'; + _context2.next = 3; + return this.toBuffer(); + + case 3: + buffer = _context2.sent; + return _context2.abrupt("return", buffer.toString(encoding)); + + case 5: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function toString() { + return _toString.apply(this, arguments); + } + + return toString; + }() + }, { + key: "toStream", + value: function () { + var _toStream = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() { + var input, stream; + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + if (this.data instanceof _stream.Readable) { + _context3.next = 3; + break; + } + + input = this.data; + return _context3.abrupt("return", new _stream.Readable({ + read: function read() { + this.push(Buffer.from(input)); + this.push(null); + } + })); + + case 3: + stream = new _stream.PassThrough(); + + if (this.data instanceof _stream.Readable) { + this.data.pipe(stream); + } + + return _context3.abrupt("return", stream); + + case 6: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + + function toStream() { + return _toStream.apply(this, arguments); + } + + return toStream; + }() + }, { + key: "toFile", + value: function () { + var _toFile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() { + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + throw new Error('This feature is only supported in browser environments.'); + + case 1: + case "end": + return _context4.stop(); + } + } + }, _callee4); + })); + + function toFile() { + return _toFile.apply(this, arguments); + } + + return toFile; + }() + }]); + return PubNubFile; +}(), (0, _defineProperty2["default"])(_class, "supportsFile", false), (0, _defineProperty2["default"])(_class, "supportsBuffer", typeof Buffer !== 'undefined'), (0, _defineProperty2["default"])(_class, "supportsStream", true), (0, _defineProperty2["default"])(_class, "supportsString", true), (0, _defineProperty2["default"])(_class, "supportsArrayBuffer", false), _temp); +var _default = PubNubFile; +exports["default"] = _default; +module.exports = exports.default; +//# sourceMappingURL=node.js.map diff --git a/lib/file/modules/node.js.map b/lib/file/modules/node.js.map new file mode 100644 index 000000000..9be4b25a8 --- /dev/null +++ b/lib/file/modules/node.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["file/modules/node.js"],"names":["PubNubFile","config","stream","data","encoding","name","mimeType","Readable","ReadStream","path","Buffer","from","undefined","Error","Promise","resolve","reject","chunks","on","chunk","push","once","concat","toBuffer","buffer","toString","input","read","PassThrough","pipe"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport { lookup } from 'mime-types';\n\nimport { Readable, PassThrough } from 'stream';\nimport { ReadStream } from 'fs';\nimport { basename } from 'path';\n\nimport { IFile, FileClass } from '../';\n\ntype PubNubFileNodeConstructor = {|\n stream?: Readable,\n data?: string | Buffer,\n encoding?: string,\n name?: string,\n mimeType?: string,\n|};\n\ntype PubNubFileNodeSupportedInputType = Readable | Buffer | string;\n\nconst PubNubFile: FileClass = class PubNubFile implements IFile {\n static supportsFile = false;\n static supportsBuffer = typeof Buffer !== 'undefined';\n static supportsStream = true;\n static supportsString = true;\n static supportsArrayBuffer = false;\n\n data: PubNubFileNodeSupportedInputType;\n\n name: string;\n mimeType: string;\n\n static create(config: PubNubFileNodeConstructor) {\n return new this(config);\n }\n\n constructor({ stream, data, encoding, name, mimeType }: PubNubFileNodeConstructor) {\n if (stream instanceof Readable) {\n this.data = stream;\n\n if (stream instanceof ReadStream) {\n // $FlowFixMe: incomplete flow node definitions\n this.name = basename(stream.path);\n // $FlowFixMe: incomplete flow node definitions\n this.mimeType = lookup(stream.path);\n }\n } else if (data instanceof Buffer) {\n this.data = Buffer.from(data);\n } else if (typeof data === 'string') {\n // $FlowFixMe: incomplete flow node definitions\n this.data = Buffer.from(data, encoding ?? 'utf8');\n }\n\n if (name) {\n this.name = basename(name);\n this.mimeType = lookup(name);\n }\n\n if (mimeType) {\n this.mimeType = mimeType;\n }\n\n if (this.data === undefined) {\n throw new Error(\"Couldn't construct a file out of supplied options.\");\n }\n\n if (this.name === undefined) {\n throw new Error(\"Couldn't guess filename out of the options. Please provide one.\");\n }\n }\n\n toBuffer(): Promise {\n if (this.data instanceof Buffer) {\n return Promise.resolve(Buffer.from(this.data));\n }\n\n if (this.data instanceof Readable) {\n const stream = this.data;\n return new Promise((resolve, reject) => {\n const chunks = [];\n\n stream.on('data', (chunk) => chunks.push(chunk));\n stream.once('error', reject);\n stream.once('end', () => {\n resolve(Buffer.concat(chunks));\n });\n });\n }\n\n if (typeof this.data === 'string') {\n return Promise.resolve(Buffer.from(this.data));\n }\n\n throw new Error(\"Can't cast to 'buffer'.\");\n }\n\n async toArrayBuffer() {\n throw new Error('This feature is only supported in browser environments.');\n }\n\n async toString(encoding: buffer$NonBufferEncoding = 'utf8') {\n const buffer = await this.toBuffer();\n\n return buffer.toString(encoding);\n }\n\n async toStream() {\n if (!(this.data instanceof Readable)) {\n const input = this.data;\n\n return new Readable({\n read() {\n this.push(Buffer.from(input));\n this.push(null);\n },\n });\n }\n\n const stream = new PassThrough();\n\n if (this.data instanceof Readable) {\n this.data.pipe(stream);\n }\n\n return stream;\n }\n\n async toFile() {\n throw new Error('This feature is only supported in browser environments.');\n }\n};\n\nexport default PubNubFile;\n"],"file":"node.js"} \ No newline at end of file diff --git a/lib/file/modules/web.js b/lib/file/modules/web.js new file mode 100644 index 000000000..7b767d402 --- /dev/null +++ b/lib/file/modules/web.js @@ -0,0 +1,219 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); + +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); + +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); + +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); + +var _mimeTypes = require("mime-types"); + +var _ = require("../"); + +var _class, _temp; + +var PubNubFile = (_temp = _class = function () { + (0, _createClass2["default"])(PubNubFile, null, [{ + key: "create", + value: function create(config) { + return new this(config); + } + }]); + + function PubNubFile(config) { + (0, _classCallCheck2["default"])(this, PubNubFile); + (0, _defineProperty2["default"])(this, "data", void 0); + (0, _defineProperty2["default"])(this, "name", void 0); + (0, _defineProperty2["default"])(this, "mimeType", void 0); + + if (config instanceof File) { + this.data = config; + this.name = this.data.name; + this.mimeType = this.data.type; + } else if (config.data) { + var contents = config.data; + this.data = new File([contents], config.name, { + type: config.mimeType + }); + this.name = config.name; + + if (config.mimeType) { + this.mimeType = config.mimeType; + } else { + this.mimeType = (0, _mimeTypes.lookup)(this.name); + } + } + + if (this.data === undefined) { + throw new Error("Couldn't construct a file out of supplied options."); + } + + if (this.name === undefined) { + throw new Error("Couldn't guess filename out of the options. Please provide one."); + } + } + + (0, _createClass2["default"])(PubNubFile, [{ + key: "toBuffer", + value: function () { + var _toBuffer = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee() { + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + throw new Error('This feature is only supported in Node.js environments.'); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + + function toBuffer() { + return _toBuffer.apply(this, arguments); + } + + return toBuffer; + }() + }, { + key: "toStream", + value: function () { + var _toStream = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2() { + return _regenerator["default"].wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + throw new Error('This feature is only supported in Node.js environments.'); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); + + function toStream() { + return _toStream.apply(this, arguments); + } + + return toStream; + }() + }, { + key: "toArrayBuffer", + value: function () { + var _toArrayBuffer = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3() { + var _this = this; + + return _regenerator["default"].wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + return _context3.abrupt("return", new Promise(function (resolve, reject) { + var reader = new FileReader(); + reader.addEventListener('load', function () { + if (reader.result instanceof ArrayBuffer) { + return resolve(reader.result); + } + }); + reader.addEventListener('error', function () { + reject(reader.error); + }); + reader.readAsArrayBuffer(_this.data); + })); + + case 1: + case "end": + return _context3.stop(); + } + } + }, _callee3); + })); + + function toArrayBuffer() { + return _toArrayBuffer.apply(this, arguments); + } + + return toArrayBuffer; + }() + }, { + key: "toString", + value: function () { + var _toString = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() { + var _this2 = this; + + return _regenerator["default"].wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + return _context4.abrupt("return", new Promise(function (resolve, reject) { + var reader = new FileReader(); + reader.addEventListener('load', function () { + if (typeof reader.result === 'string') { + return resolve(reader.result); + } + }); + reader.addEventListener('error', function () { + reject(reader.error); + }); + reader.readAsBinaryString(_this2.data); + })); + + case 1: + case "end": + return _context4.stop(); + } + } + }, _callee4); + })); + + function toString() { + return _toString.apply(this, arguments); + } + + return toString; + }() + }, { + key: "toFile", + value: function () { + var _toFile = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5() { + return _regenerator["default"].wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + return _context5.abrupt("return", this.data); + + case 1: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + + function toFile() { + return _toFile.apply(this, arguments); + } + + return toFile; + }() + }]); + return PubNubFile; +}(), (0, _defineProperty2["default"])(_class, "supportsFile", typeof File !== 'undefined'), (0, _defineProperty2["default"])(_class, "supportsArrayBuffer", true), (0, _defineProperty2["default"])(_class, "supportsBuffer", false), (0, _defineProperty2["default"])(_class, "supportsStream", false), (0, _defineProperty2["default"])(_class, "supportsString", true), _temp); +var _default = PubNubFile; +exports["default"] = _default; +module.exports = exports.default; +//# sourceMappingURL=web.js.map diff --git a/lib/file/modules/web.js.map b/lib/file/modules/web.js.map new file mode 100644 index 000000000..3fc13cb8f --- /dev/null +++ b/lib/file/modules/web.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["file/modules/web.js"],"names":["PubNubFile","config","File","data","name","mimeType","type","contents","undefined","Error","Promise","resolve","reject","reader","FileReader","addEventListener","result","ArrayBuffer","error","readAsArrayBuffer","readAsBinaryString"],"mappings":"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","sourcesContent":["/** @flow */\n\nimport { lookup } from 'mime-types';\n\nimport { IFile, FileClass } from '../';\n\ntype PubNubFileWebConstructor =\n | File\n | {|\n data: string,\n name: string,\n mimeType: string,\n |}\n | {|\n data: ArrayBuffer,\n name: string,\n mimeType: string,\n |};\n\nconst PubNubFile: FileClass = class PubNubFile implements IFile {\n static supportsFile = typeof File !== 'undefined';\n static supportsArrayBuffer = true;\n static supportsBuffer = false;\n static supportsStream = false;\n static supportsString = true;\n\n static create(config: PubNubFileWebConstructor) {\n return new this(config);\n }\n\n data: any;\n\n name: string;\n mimeType: string;\n\n constructor(config: PubNubFileWebConstructor) {\n if (config instanceof File) {\n this.data = config;\n\n this.name = this.data.name;\n this.mimeType = this.data.type;\n } else if (config.data) {\n let contents = config.data;\n\n this.data = new File([contents], config.name, { type: config.mimeType });\n\n this.name = config.name;\n\n if (config.mimeType) {\n this.mimeType = config.mimeType;\n } else {\n this.mimeType = lookup(this.name);\n }\n }\n\n if (this.data === undefined) {\n throw new Error(\"Couldn't construct a file out of supplied options.\");\n }\n\n if (this.name === undefined) {\n throw new Error(\"Couldn't guess filename out of the options. Please provide one.\");\n }\n }\n\n async toBuffer() {\n throw new Error('This feature is only supported in Node.js environments.');\n }\n\n async toStream() {\n throw new Error('This feature is only supported in Node.js environments.');\n }\n\n async toArrayBuffer() {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () => {\n if (reader.result instanceof ArrayBuffer) {\n return resolve(reader.result);\n }\n });\n\n reader.addEventListener('error', () => {\n reject(reader.error);\n });\n\n reader.readAsArrayBuffer(this.data);\n });\n }\n\n async toString() {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () => {\n if (typeof reader.result === 'string') {\n return resolve(reader.result);\n }\n });\n\n reader.addEventListener('error', () => {\n reject(reader.error);\n });\n\n reader.readAsBinaryString(this.data);\n });\n }\n\n async toFile() {\n return this.data;\n }\n};\n\nexport default PubNubFile;\n"],"file":"web.js"} \ No newline at end of file diff --git a/lib/nativescript/index.js b/lib/nativescript/index.js index 55bb45e47..242ad1f7e 100644 --- a/lib/nativescript/index.js +++ b/lib/nativescript/index.js @@ -1,10 +1,20 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + var _pubnubCommon = _interopRequireDefault(require("../core/pubnub-common")); var _networking = _interopRequireDefault(require("../networking")); @@ -15,28 +25,11 @@ var _nativescript = require("../networking/modules/nativescript"); var _flow_interfaces = require("../core/flow_interfaces"); -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 _default = function (_PubNubCore) { - _inherits(_default, _PubNubCore); + (0, _inherits2["default"])(_default, _PubNubCore); function _default(setup) { - _classCallCheck(this, _default); - + (0, _classCallCheck2["default"])(this, _default); setup.db = new _common["default"](); setup.networking = new _networking["default"]({ del: _nativescript.del, @@ -45,7 +38,7 @@ var _default = function (_PubNubCore) { patch: _nativescript.patch }); setup.sdkFamily = 'NativeScript'; - return _possibleConstructorReturn(this, _getPrototypeOf(_default).call(this, setup)); + return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(_default).call(this, setup)); } return _default; diff --git a/lib/nativescript/index.js.map b/lib/nativescript/index.js.map index 869b94641..2c52e0e3e 100644 --- a/lib/nativescript/index.js.map +++ b/lib/nativescript/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["nativescript/index.js"],"names":["setup","db","Database","networking","Networking","del","get","post","patch","sdkFamily","PubNubCore"],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;AAGE,oBAAYA,KAAZ,EAAwC;AAAA;;AACtCA,IAAAA,KAAK,CAACC,EAAN,GAAW,IAAIC,kBAAJ,EAAX;AACAF,IAAAA,KAAK,CAACG,UAAN,GAAmB,IAAIC,sBAAJ,CAAe;AAAEC,MAAAA,GAAG,EAAHA,iBAAF;AAAOC,MAAAA,GAAG,EAAHA,iBAAP;AAAYC,MAAAA,IAAI,EAAJA,kBAAZ;AAAkBC,MAAAA,KAAK,EAALA;AAAlB,KAAf,CAAnB;AACAR,IAAAA,KAAK,CAACS,SAAN,GAAkB,cAAlB;AAHsC,iFAIhCT,KAJgC;AAKvC;;;EAN0BU,wB","sourcesContent":["/* @flow */\n\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport Database from '../db/common';\nimport { del, get, post, patch } from '../networking/modules/nativescript';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nexport default class extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n setup.db = new Database();\n setup.networking = new Networking({ del, get, post, patch });\n setup.sdkFamily = 'NativeScript';\n super(setup);\n }\n}\n"],"file":"index.js"} \ No newline at end of file +{"version":3,"sources":["nativescript/index.js"],"names":["setup","db","Database","networking","Networking","del","get","post","patch","sdkFamily","PubNubCore"],"mappings":";;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;AAGE,oBAAYA,KAAZ,EAAwC;AAAA;AACtCA,IAAAA,KAAK,CAACC,EAAN,GAAW,IAAIC,kBAAJ,EAAX;AACAF,IAAAA,KAAK,CAACG,UAAN,GAAmB,IAAIC,sBAAJ,CAAe;AAAEC,MAAAA,GAAG,EAAHA,iBAAF;AAAOC,MAAAA,GAAG,EAAHA,iBAAP;AAAYC,MAAAA,IAAI,EAAJA,kBAAZ;AAAkBC,MAAAA,KAAK,EAALA;AAAlB,KAAf,CAAnB;AACAR,IAAAA,KAAK,CAACS,SAAN,GAAkB,cAAlB;AAHsC,mHAIhCT,KAJgC;AAKvC;;;EAN0BU,wB","sourcesContent":["/* @flow */\n\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport Database from '../db/common';\nimport { del, get, post, patch } from '../networking/modules/nativescript';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nexport default class extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n setup.db = new Database();\n setup.networking = new Networking({ del, get, post, patch });\n setup.sdkFamily = 'NativeScript';\n super(setup);\n }\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/lib/networking/index.js b/lib/networking/index.js index 0e7f9eea4..43158aac5 100644 --- a/lib/networking/index.js +++ b/lib/networking/index.js @@ -1,57 +1,45 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; -var _config = _interopRequireDefault(require("../core/components/config")); - -var _categories = _interopRequireDefault(require("../core/constants/categories")); - -var _flow_interfaces = require("../core/flow_interfaces"); +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); -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, descriptor.key, descriptor); } } +var _config = _interopRequireDefault(require("../core/components/config")); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _categories = _interopRequireDefault(require("../core/constants/categories")); -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +var _flow_interfaces = require("../core/flow_interfaces"); var _default = function () { function _default(modules) { var _this = this; - _classCallCheck(this, _default); - - _defineProperty(this, "_modules", void 0); - - _defineProperty(this, "_config", void 0); - - _defineProperty(this, "_maxSubDomain", void 0); - - _defineProperty(this, "_currentSubDomain", void 0); - - _defineProperty(this, "_standardOrigin", void 0); - - _defineProperty(this, "_subscribeOrigin", void 0); - - _defineProperty(this, "_providedFQDN", void 0); - - _defineProperty(this, "_requestTimeout", void 0); - - _defineProperty(this, "_coreParams", void 0); - + (0, _classCallCheck2["default"])(this, _default); + (0, _defineProperty2["default"])(this, "_modules", void 0); + (0, _defineProperty2["default"])(this, "_config", void 0); + (0, _defineProperty2["default"])(this, "_maxSubDomain", void 0); + (0, _defineProperty2["default"])(this, "_currentSubDomain", void 0); + (0, _defineProperty2["default"])(this, "_standardOrigin", void 0); + (0, _defineProperty2["default"])(this, "_subscribeOrigin", void 0); + (0, _defineProperty2["default"])(this, "_providedFQDN", void 0); + (0, _defineProperty2["default"])(this, "_requestTimeout", void 0); + (0, _defineProperty2["default"])(this, "_coreParams", void 0); this._modules = {}; Object.keys(modules).forEach(function (key) { _this._modules[key] = modules[key].bind(_this); }); } - _createClass(_default, [{ + (0, _createClass2["default"])(_default, [{ key: "init", value: function init(config) { this._config = config; @@ -94,6 +82,11 @@ var _default = function () { value: function getStandardOrigin() { return this._standardOrigin; } + }, { + key: "FILE", + value: function FILE(url, fields, file) { + return this._modules.file(url, fields, file); + } }, { key: "POST", value: function POST(params, body, endpoint, callback) { @@ -156,7 +149,6 @@ var _default = function () { return _categories["default"].PNUnknownCategory; } }]); - return _default; }(); diff --git a/lib/networking/index.js.map b/lib/networking/index.js.map index f523f12e8..cc32fdb75 100644 --- a/lib/networking/index.js.map +++ b/lib/networking/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["networking/index.js"],"names":["modules","_modules","Object","keys","forEach","key","bind","config","_config","_maxSubDomain","_currentSubDomain","Math","floor","random","_providedFQDN","secure","origin","_coreParams","shiftStandardOrigin","match","newSubDomain","toString","replace","name","_standardOrigin","nextOrigin","params","body","endpoint","callback","post","patch","get","del","err","code","categoryConstants","PNNetworkIssuesCategory","status","hasOwnProperty","timeout","PNTimeoutCategory","response","badRequest","PNBadRequestCategory","forbidden","PNAccessDeniedCategory","PNUnknownCategory"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport Config from '../core/components/config';\nimport categoryConstants from '../core/constants/categories';\n\nimport { EndpointDefinition, NetworkingModules } from '../core/flow_interfaces';\n\nexport default class {\n _modules: NetworkingModules;\n _config: Config;\n\n _maxSubDomain: number;\n _currentSubDomain: number;\n\n _standardOrigin: string;\n _subscribeOrigin: string;\n\n _providedFQDN: string;\n\n _requestTimeout: number;\n\n _coreParams: Object; /* items that must be passed with each request. */\n\n constructor(modules: NetworkingModules) {\n this._modules = {};\n\n Object.keys(modules).forEach((key) => {\n this._modules[key] = modules[key].bind(this);\n });\n }\n\n init(config: Config) {\n this._config = config;\n\n this._maxSubDomain = 20;\n this._currentSubDomain = Math.floor(Math.random() * this._maxSubDomain);\n this._providedFQDN =\n (this._config.secure ? 'https://' : 'http://') + this._config.origin;\n this._coreParams = {};\n\n // create initial origins\n this.shiftStandardOrigin();\n }\n\n nextOrigin(): string {\n // if a custom origin is supplied, use do not bother with shuffling subdomains\n if (!this._providedFQDN.match(/ps\\.pndsn\\.com$/i)) {\n return this._providedFQDN;\n }\n\n let newSubDomain: string;\n\n this._currentSubDomain += 1;\n\n if (this._currentSubDomain >= this._maxSubDomain) {\n this._currentSubDomain = 1;\n }\n\n newSubDomain = this._currentSubDomain.toString();\n\n return this._providedFQDN.replace(\n 'ps.pndsn.com',\n `ps${newSubDomain}.pndsn.com`\n );\n }\n\n hasModule(name: string) {\n return name in this._modules;\n }\n\n // origin operations\n shiftStandardOrigin(): string {\n this._standardOrigin = this.nextOrigin();\n\n return this._standardOrigin;\n }\n\n getStandardOrigin(): string {\n return this._standardOrigin;\n }\n\n POST(\n params: Object,\n body: string,\n endpoint: EndpointDefinition,\n callback: Function\n ) {\n return this._modules.post(params, body, endpoint, callback);\n }\n\n PATCH(\n params: Object,\n body: string,\n endpoint: EndpointDefinition,\n callback: Function\n ) {\n return this._modules.patch(params, body, endpoint, callback);\n }\n\n GET(params: Object, endpoint: EndpointDefinition, callback: Function) {\n return this._modules.get(params, endpoint, callback);\n }\n\n DELETE(params: Object, endpoint: EndpointDefinition, callback: Function) {\n return this._modules.del(params, endpoint, callback);\n }\n\n _detectErrorCategory(err: Object): string {\n if (err.code === 'ENOTFOUND') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n if (err.code === 'ECONNREFUSED') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n if (err.code === 'ECONNRESET') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n if (err.code === 'EAI_AGAIN') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n\n if (\n err.status === 0 ||\n (err.hasOwnProperty('status') && typeof err.status === 'undefined')\n ) {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n if (err.timeout) return categoryConstants.PNTimeoutCategory;\n\n if (err.code === 'ETIMEDOUT') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n\n if (err.response) {\n if (err.response.badRequest) {\n return categoryConstants.PNBadRequestCategory;\n }\n if (err.response.forbidden) {\n return categoryConstants.PNAccessDeniedCategory;\n }\n }\n\n return categoryConstants.PNUnknownCategory;\n }\n}\n"],"file":"index.js"} \ No newline at end of file +{"version":3,"sources":["networking/index.js"],"names":["modules","_modules","Object","keys","forEach","key","bind","config","_config","_maxSubDomain","_currentSubDomain","Math","floor","random","_providedFQDN","secure","origin","_coreParams","shiftStandardOrigin","match","newSubDomain","toString","replace","name","_standardOrigin","nextOrigin","url","fields","file","params","body","endpoint","callback","post","patch","get","del","err","code","categoryConstants","PNNetworkIssuesCategory","status","hasOwnProperty","timeout","PNTimeoutCategory","response","badRequest","PNBadRequestCategory","forbidden","PNAccessDeniedCategory","PNUnknownCategory"],"mappings":"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","sourcesContent":["/* @flow */\n\nimport Config from '../core/components/config';\nimport categoryConstants from '../core/constants/categories';\n\nimport { EndpointDefinition, NetworkingModules } from '../core/flow_interfaces';\n\nexport default class {\n _modules: NetworkingModules;\n _config: Config;\n\n _maxSubDomain: number;\n _currentSubDomain: number;\n\n _standardOrigin: string;\n _subscribeOrigin: string;\n\n _providedFQDN: string;\n\n _requestTimeout: number;\n\n _coreParams: Object; /* items that must be passed with each request. */\n\n constructor(modules: NetworkingModules) {\n this._modules = {};\n\n Object.keys(modules).forEach((key) => {\n this._modules[key] = modules[key].bind(this);\n });\n }\n\n init(config: Config) {\n this._config = config;\n\n this._maxSubDomain = 20;\n this._currentSubDomain = Math.floor(Math.random() * this._maxSubDomain);\n this._providedFQDN = (this._config.secure ? 'https://' : 'http://') + this._config.origin;\n this._coreParams = {};\n\n // create initial origins\n this.shiftStandardOrigin();\n }\n\n nextOrigin(): string {\n // if a custom origin is supplied, use do not bother with shuffling subdomains\n if (!this._providedFQDN.match(/ps\\.pndsn\\.com$/i)) {\n return this._providedFQDN;\n }\n\n let newSubDomain: string;\n\n this._currentSubDomain += 1;\n\n if (this._currentSubDomain >= this._maxSubDomain) {\n this._currentSubDomain = 1;\n }\n\n newSubDomain = this._currentSubDomain.toString();\n\n return this._providedFQDN.replace('ps.pndsn.com', `ps${newSubDomain}.pndsn.com`);\n }\n\n hasModule(name: string) {\n return name in this._modules;\n }\n\n // origin operations\n shiftStandardOrigin(): string {\n this._standardOrigin = this.nextOrigin();\n\n return this._standardOrigin;\n }\n\n getStandardOrigin(): string {\n return this._standardOrigin;\n }\n\n FILE(url: string, fields: $ReadOnlyArray<{ key: string, value: string }>, file: any) {\n return this._modules.file(url, fields, file);\n }\n\n POST(params: Object, body: string, endpoint: EndpointDefinition, callback: Function) {\n return this._modules.post(params, body, endpoint, callback);\n }\n\n PATCH(params: Object, body: string, endpoint: EndpointDefinition, callback: Function) {\n return this._modules.patch(params, body, endpoint, callback);\n }\n\n GET(params: Object, endpoint: EndpointDefinition, callback: Function) {\n return this._modules.get(params, endpoint, callback);\n }\n\n DELETE(params: Object, endpoint: EndpointDefinition, callback: Function) {\n return this._modules.del(params, endpoint, callback);\n }\n\n _detectErrorCategory(err: Object): string {\n if (err.code === 'ENOTFOUND') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n if (err.code === 'ECONNREFUSED') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n if (err.code === 'ECONNRESET') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n if (err.code === 'EAI_AGAIN') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n\n if (err.status === 0 || (err.hasOwnProperty('status') && typeof err.status === 'undefined')) {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n if (err.timeout) return categoryConstants.PNTimeoutCategory;\n\n if (err.code === 'ETIMEDOUT') {\n return categoryConstants.PNNetworkIssuesCategory;\n }\n\n if (err.response) {\n if (err.response.badRequest) {\n return categoryConstants.PNBadRequestCategory;\n }\n if (err.response.forbidden) {\n return categoryConstants.PNAccessDeniedCategory;\n }\n }\n\n return categoryConstants.PNUnknownCategory;\n }\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/lib/networking/modules/node.js b/lib/networking/modules/node.js index d6c7c9f8a..8be0b3021 100644 --- a/lib/networking/modules/node.js +++ b/lib/networking/modules/node.js @@ -1,5 +1,7 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); @@ -12,8 +14,6 @@ var _superagentProxy = _interopRequireDefault(require("superagent-proxy")); var _agentkeepalive = _interopRequireDefault(require("agentkeepalive")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - var keepAliveAgent = null; var keepAliveSecureAgent = null; (0, _superagentProxy["default"])(_superagent["default"]); diff --git a/lib/networking/modules/node.js.map b/lib/networking/modules/node.js.map index 2a67ba67e..ed35d5ff4 100644 --- a/lib/networking/modules/node.js.map +++ b/lib/networking/modules/node.js.map @@ -1 +1 @@ -{"version":3,"sources":["networking/modules/node.js"],"names":["keepAliveAgent","keepAliveSecureAgent","superagent","proxy","superagentConstruct","_config","keepAlive","agent","secure","AgentClass","AgentKeepAlive","HttpsAgent","keepAliveSettings"],"mappings":";;;;;;;;AAEA;;AACA;;AACA;;;;AAEA,IAAIA,cAA4D,GAAG,IAAnE;AACA,IAAIC,oBAAkE,GAAG,IAAzE;AAEA,iCAAgBC,sBAAhB;;AAEO,SAASC,KAAT,CAAeC,mBAAf,EAAgD;AACrD,SAAOA,mBAAmB,CAACD,KAApB,CAA0B,KAAKE,OAAL,CAAaF,KAAvC,CAAP;AACD;;AAEM,SAASG,SAAT,CAAmBF,mBAAnB,EAAoD;AACzD,MAAIG,KAAK,GAAG,KAAKF,OAAL,CAAaG,MAAb,GAAsBP,oBAAtB,GAA6CD,cAAzD;;AACA,MAAIO,KAAK,KAAK,IAAd,EAAoB;AAClB,QAAIE,UAAU,GAAG,KAAKJ,OAAL,CAAaG,MAAb,GAAsBE,2BAAeC,UAArC,GAAkDD,0BAAnE;AACAH,IAAAA,KAAK,GAAG,IAAIE,UAAJ,CAAe,KAAKJ,OAAL,CAAaO,iBAA5B,CAAR;;AACA,QAAI,KAAKP,OAAL,CAAaG,MAAjB,EAAyB;AACvBP,MAAAA,oBAAoB,GAAGM,KAAvB;AACD,KAFD,MAEO;AACLP,MAAAA,cAAc,GAAGO,KAAjB;AACD;AACF;;AAED,SAAOH,mBAAmB,CAACG,KAApB,CAA0BA,KAA1B,CAAP;AACD","sourcesContent":["/* @flow */\n\nimport superagent from 'superagent';\nimport superagentProxy from 'superagent-proxy';\nimport AgentKeepAlive from 'agentkeepalive';\n\nlet keepAliveAgent: (AgentKeepAlive | AgentKeepAlive.HttpsAgent) = null;\nlet keepAliveSecureAgent: (AgentKeepAlive | AgentKeepAlive.HttpsAgent) = null;\n\nsuperagentProxy(superagent);\n\nexport function proxy(superagentConstruct: superagent) {\n return superagentConstruct.proxy(this._config.proxy);\n}\n\nexport function keepAlive(superagentConstruct: superagent) {\n let agent = this._config.secure ? keepAliveSecureAgent : keepAliveAgent;\n if (agent === null) {\n let AgentClass = this._config.secure ? AgentKeepAlive.HttpsAgent : AgentKeepAlive;\n agent = new AgentClass(this._config.keepAliveSettings);\n if (this._config.secure) {\n keepAliveSecureAgent = agent;\n } else {\n keepAliveAgent = agent;\n }\n }\n\n return superagentConstruct.agent(agent);\n}\n"],"file":"node.js"} \ No newline at end of file +{"version":3,"sources":["networking/modules/node.js"],"names":["keepAliveAgent","keepAliveSecureAgent","superagent","proxy","superagentConstruct","_config","keepAlive","agent","secure","AgentClass","AgentKeepAlive","HttpsAgent","keepAliveSettings"],"mappings":";;;;;;;;;;AAEA;;AACA;;AACA;;AAEA,IAAIA,cAA4D,GAAG,IAAnE;AACA,IAAIC,oBAAkE,GAAG,IAAzE;AAEA,iCAAgBC,sBAAhB;;AAEO,SAASC,KAAT,CAAeC,mBAAf,EAAgD;AACrD,SAAOA,mBAAmB,CAACD,KAApB,CAA0B,KAAKE,OAAL,CAAaF,KAAvC,CAAP;AACD;;AAEM,SAASG,SAAT,CAAmBF,mBAAnB,EAAoD;AACzD,MAAIG,KAAK,GAAG,KAAKF,OAAL,CAAaG,MAAb,GAAsBP,oBAAtB,GAA6CD,cAAzD;;AACA,MAAIO,KAAK,KAAK,IAAd,EAAoB;AAClB,QAAIE,UAAU,GAAG,KAAKJ,OAAL,CAAaG,MAAb,GAAsBE,2BAAeC,UAArC,GAAkDD,0BAAnE;AACAH,IAAAA,KAAK,GAAG,IAAIE,UAAJ,CAAe,KAAKJ,OAAL,CAAaO,iBAA5B,CAAR;;AACA,QAAI,KAAKP,OAAL,CAAaG,MAAjB,EAAyB;AACvBP,MAAAA,oBAAoB,GAAGM,KAAvB;AACD,KAFD,MAEO;AACLP,MAAAA,cAAc,GAAGO,KAAjB;AACD;AACF;;AAED,SAAOH,mBAAmB,CAACG,KAApB,CAA0BA,KAA1B,CAAP;AACD","sourcesContent":["/* @flow */\n\nimport superagent from 'superagent';\nimport superagentProxy from 'superagent-proxy';\nimport AgentKeepAlive from 'agentkeepalive';\n\nlet keepAliveAgent: (AgentKeepAlive | AgentKeepAlive.HttpsAgent) = null;\nlet keepAliveSecureAgent: (AgentKeepAlive | AgentKeepAlive.HttpsAgent) = null;\n\nsuperagentProxy(superagent);\n\nexport function proxy(superagentConstruct: superagent) {\n return superagentConstruct.proxy(this._config.proxy);\n}\n\nexport function keepAlive(superagentConstruct: superagent) {\n let agent = this._config.secure ? keepAliveSecureAgent : keepAliveAgent;\n if (agent === null) {\n let AgentClass = this._config.secure ? AgentKeepAlive.HttpsAgent : AgentKeepAlive;\n agent = new AgentClass(this._config.keepAliveSettings);\n if (this._config.secure) {\n keepAliveSecureAgent = agent;\n } else {\n keepAliveAgent = agent;\n }\n }\n\n return superagentConstruct.agent(agent);\n}\n"],"file":"node.js"} \ No newline at end of file diff --git a/lib/networking/modules/web-node.js b/lib/networking/modules/web-node.js index 6b76042ec..2c597e866 100644 --- a/lib/networking/modules/web-node.js +++ b/lib/networking/modules/web-node.js @@ -1,19 +1,24 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); +exports.file = file; exports.get = get; exports.post = post; exports.patch = patch; exports.del = del; +var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); + +var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); + var _superagent = _interopRequireDefault(require("superagent")); var _flow_interfaces = require("../../core/flow_interfaces"); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - function log(req) { var _pickLogger = function _pickLogger() { if (console && console.log) return console; @@ -54,7 +59,19 @@ function xdr(superagentConstruct, endpoint, callback) { superagentConstruct = this._modules.keepAlive(superagentConstruct); } - return superagentConstruct.timeout(endpoint.timeout).end(function (err, resp) { + var sc = superagentConstruct; + + if (endpoint.forceBuffered === true) { + if (typeof Blob === 'undefined') { + sc = sc.buffer().responseType('arraybuffer'); + } else { + sc = sc.responseType('arraybuffer'); + } + } else if (endpoint.forceBuffered === false) { + sc = sc.buffer(false); + } + + return sc.timeout(endpoint.timeout).end(function (err, resp) { var parsedResponse; var status = {}; status.error = err !== null; @@ -79,12 +96,20 @@ function xdr(superagentConstruct, endpoint, callback) { return callback(status, null); } - try { - parsedResponse = JSON.parse(resp.text); - } catch (e) { - status.errorData = resp; - status.error = true; - return callback(status, null); + if (endpoint.ignoreBody) { + parsedResponse = { + headers: resp.headers, + redirects: resp.redirects, + response: resp + }; + } else { + try { + parsedResponse = JSON.parse(resp.text); + } catch (e) { + status.errorData = resp; + status.error = true; + return callback(status, null); + } } if (parsedResponse.error && parsedResponse.error === 1 && parsedResponse.status && parsedResponse.message && parsedResponse.service) { @@ -101,6 +126,43 @@ function xdr(superagentConstruct, endpoint, callback) { }); } +function file(_x, _x2, _x3) { + return _file.apply(this, arguments); +} + +function _file() { + _file = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(url, fields, fileInput) { + var agent, result; + return _regenerator["default"].wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + agent = _superagent["default"].post(url); + fields.forEach(function (_ref) { + var key = _ref.key, + value = _ref.value; + agent = agent.field(key, value); + }); + agent.attach('file', fileInput, { + contentType: 'application/octet-stream' + }); + _context.next = 5; + return agent; + + case 5: + result = _context.sent; + return _context.abrupt("return", result); + + case 7: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + return _file.apply(this, arguments); +} + function get(params, endpoint, callback) { var superagentConstruct = _superagent["default"].get(this.getStandardOrigin() + endpoint.url).set(endpoint.headers).query(params); diff --git a/lib/networking/modules/web-node.js.map b/lib/networking/modules/web-node.js.map index 688dbefc5..ac402afaa 100644 --- a/lib/networking/modules/web-node.js.map +++ b/lib/networking/modules/web-node.js.map @@ -1 +1 @@ -{"version":3,"sources":["networking/modules/web-node.js"],"names":["log","req","_pickLogger","console","window","start","Date","getTime","timestamp","toISOString","logger","url","qs","on","res","now","elapsed","timestampDone","text","xdr","superagentConstruct","endpoint","callback","_config","logVerbosity","use","proxy","_modules","call","keepAlive","timeout","end","err","resp","parsedResponse","status","error","operation","statusCode","response","errorData","JSON","parse","e","category","_detectErrorCategory","message","service","get","params","superagent","getStandardOrigin","set","headers","query","post","body","send","patch","del"],"mappings":"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","sourcesContent":["/* @flow */\n/* global window */\n\nimport superagent from 'superagent';\nimport {\n EndpointDefinition,\n StatusAnnouncement,\n} from '../../core/flow_interfaces';\n\nfunction log(req: Object) {\n let _pickLogger = () => {\n if (console && console.log) return console; // eslint-disable-line no-console\n if (window && window.console && window.console.log) return window.console;\n return console;\n };\n\n let start = new Date().getTime();\n let timestamp = new Date().toISOString();\n let logger = _pickLogger();\n logger.log('<<<<<'); // eslint-disable-line no-console\n logger.log(`[${timestamp}]`, '\\n', req.url, '\\n', req.qs); // eslint-disable-line no-console\n logger.log('-----'); // eslint-disable-line no-console\n\n req.on('response', (res) => {\n let now = new Date().getTime();\n let elapsed = now - start;\n let timestampDone = new Date().toISOString();\n\n logger.log('>>>>>>'); // eslint-disable-line no-console\n logger.log(\n `[${timestampDone} / ${elapsed}]`,\n '\\n',\n req.url,\n '\\n',\n req.qs,\n '\\n',\n res.text\n ); // eslint-disable-line no-console\n logger.log('-----'); // eslint-disable-line no-console\n });\n}\n\nfunction xdr(\n superagentConstruct: superagent,\n endpoint: EndpointDefinition,\n callback: Function\n): Object {\n if (this._config.logVerbosity) {\n superagentConstruct = superagentConstruct.use(log);\n }\n\n if (this._config.proxy && this._modules.proxy) {\n superagentConstruct = this._modules.proxy.call(this, superagentConstruct);\n }\n\n if (this._config.keepAlive && this._modules.keepAlive) {\n superagentConstruct = this._modules.keepAlive(superagentConstruct);\n }\n\n return superagentConstruct.timeout(endpoint.timeout).end((err, resp) => {\n let parsedResponse;\n let status: StatusAnnouncement = {};\n status.error = err !== null;\n status.operation = endpoint.operation;\n\n if (resp && resp.status) {\n status.statusCode = resp.status;\n }\n\n if (err) {\n if (err.response && err.response.text && !this._config.logVerbosity) {\n try {\n status.errorData = JSON.parse(err.response.text);\n } catch (e) {\n status.errorData = err;\n }\n } else {\n status.errorData = err;\n }\n status.category = this._detectErrorCategory(err);\n return callback(status, null);\n }\n\n try {\n parsedResponse = JSON.parse(resp.text);\n } catch (e) {\n status.errorData = resp;\n status.error = true;\n return callback(status, null);\n }\n\n if (\n parsedResponse.error &&\n parsedResponse.error === 1 &&\n parsedResponse.status &&\n parsedResponse.message &&\n parsedResponse.service\n ) {\n status.errorData = parsedResponse;\n status.statusCode = parsedResponse.status;\n status.error = true;\n status.category = this._detectErrorCategory(status);\n return callback(status, null);\n } else if (parsedResponse.error && parsedResponse.error.message) {\n status.errorData = parsedResponse.error;\n }\n\n return callback(status, parsedResponse);\n });\n}\n\nexport function get(\n params: Object,\n endpoint: EndpointDefinition,\n callback: Function\n): superagent {\n let superagentConstruct = superagent\n .get(this.getStandardOrigin() + endpoint.url)\n .set(endpoint.headers)\n .query(params);\n return xdr.call(this, superagentConstruct, endpoint, callback);\n}\n\nexport function post(\n params: Object,\n body: string,\n endpoint: EndpointDefinition,\n callback: Function\n): superagent {\n let superagentConstruct = superagent\n .post(this.getStandardOrigin() + endpoint.url)\n .query(params)\n .set(endpoint.headers)\n .send(body);\n return xdr.call(this, superagentConstruct, endpoint, callback);\n}\n\nexport function patch(\n params: Object,\n body: string,\n endpoint: EndpointDefinition,\n callback: Function\n): superagent {\n let superagentConstruct = superagent\n .patch(this.getStandardOrigin() + endpoint.url)\n .query(params)\n .set(endpoint.headers)\n .send(body);\n return xdr.call(this, superagentConstruct, endpoint, callback);\n}\n\nexport function del(\n params: Object,\n endpoint: EndpointDefinition,\n callback: Function\n): superagent {\n let superagentConstruct = superagent\n .delete(this.getStandardOrigin() + endpoint.url)\n .set(endpoint.headers)\n .query(params);\n return xdr.call(this, superagentConstruct, endpoint, callback);\n}\n"],"file":"web-node.js"} \ No newline at end of file +{"version":3,"sources":["networking/modules/web-node.js"],"names":["log","req","_pickLogger","console","window","start","Date","getTime","timestamp","toISOString","logger","url","qs","on","res","now","elapsed","timestampDone","text","xdr","superagentConstruct","endpoint","callback","_config","logVerbosity","use","proxy","_modules","call","keepAlive","sc","forceBuffered","Blob","buffer","responseType","timeout","end","err","resp","parsedResponse","status","error","operation","statusCode","response","errorData","JSON","parse","e","category","_detectErrorCategory","ignoreBody","headers","redirects","message","service","file","fields","fileInput","agent","superagent","post","forEach","key","value","field","attach","contentType","result","get","params","getStandardOrigin","set","query","body","send","patch","del"],"mappings":"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","sourcesContent":["/* @flow */\n/* global window */\n\nimport superagent from 'superagent';\nimport { EndpointDefinition, StatusAnnouncement } from '../../core/flow_interfaces';\n\nfunction log(req: Object) {\n let _pickLogger = () => {\n if (console && console.log) return console; // eslint-disable-line no-console\n if (window && window.console && window.console.log) return window.console;\n return console;\n };\n\n let start = new Date().getTime();\n let timestamp = new Date().toISOString();\n let logger = _pickLogger();\n logger.log('<<<<<'); // eslint-disable-line no-console\n logger.log(`[${timestamp}]`, '\\n', req.url, '\\n', req.qs); // eslint-disable-line no-console\n logger.log('-----'); // eslint-disable-line no-console\n\n req.on('response', (res) => {\n let now = new Date().getTime();\n let elapsed = now - start;\n let timestampDone = new Date().toISOString();\n\n logger.log('>>>>>>'); // eslint-disable-line no-console\n logger.log(`[${timestampDone} / ${elapsed}]`, '\\n', req.url, '\\n', req.qs, '\\n', res.text); // eslint-disable-line no-console\n logger.log('-----'); // eslint-disable-line no-console\n });\n}\n\nfunction xdr(superagentConstruct: superagent, endpoint: EndpointDefinition, callback: Function): Object {\n if (this._config.logVerbosity) {\n superagentConstruct = superagentConstruct.use(log);\n }\n\n if (this._config.proxy && this._modules.proxy) {\n superagentConstruct = this._modules.proxy.call(this, superagentConstruct);\n }\n\n if (this._config.keepAlive && this._modules.keepAlive) {\n superagentConstruct = this._modules.keepAlive(superagentConstruct);\n }\n\n let sc = superagentConstruct;\n\n if (endpoint.forceBuffered === true) {\n if (typeof Blob === 'undefined') {\n sc = sc.buffer().responseType('arraybuffer');\n } else {\n sc = sc.responseType('arraybuffer');\n }\n } else if (endpoint.forceBuffered === false) {\n sc = sc.buffer(false);\n }\n\n return sc.timeout(endpoint.timeout).end((err, resp) => {\n let parsedResponse;\n let status: StatusAnnouncement = {};\n status.error = err !== null;\n status.operation = endpoint.operation;\n\n if (resp && resp.status) {\n status.statusCode = resp.status;\n }\n\n if (err) {\n if (err.response && err.response.text && !this._config.logVerbosity) {\n try {\n status.errorData = JSON.parse(err.response.text);\n } catch (e) {\n status.errorData = err;\n }\n } else {\n status.errorData = err;\n }\n status.category = this._detectErrorCategory(err);\n return callback(status, null);\n }\n\n if (endpoint.ignoreBody) {\n parsedResponse = {\n headers: resp.headers,\n redirects: resp.redirects,\n response: resp,\n };\n } else {\n try {\n parsedResponse = JSON.parse(resp.text);\n } catch (e) {\n status.errorData = resp;\n status.error = true;\n return callback(status, null);\n }\n }\n\n if (\n parsedResponse.error &&\n parsedResponse.error === 1 &&\n parsedResponse.status &&\n parsedResponse.message &&\n parsedResponse.service\n ) {\n status.errorData = parsedResponse;\n status.statusCode = parsedResponse.status;\n status.error = true;\n status.category = this._detectErrorCategory(status);\n return callback(status, null);\n } else if (parsedResponse.error && parsedResponse.error.message) {\n status.errorData = parsedResponse.error;\n }\n\n return callback(status, parsedResponse);\n });\n}\n\nexport async function file(\n url: string,\n fields: $ReadOnlyArray<{ key: string, value: string }>,\n fileInput: any\n): Promise {\n let agent = superagent.post(url);\n\n fields.forEach(({ key, value }) => {\n agent = agent.field(key, value);\n });\n\n agent.attach('file', fileInput, { contentType: 'application/octet-stream' });\n\n const result = await agent;\n\n return result;\n}\n\nexport function get(params: Object, endpoint: EndpointDefinition, callback: Function): superagent {\n let superagentConstruct = superagent\n .get(this.getStandardOrigin() + endpoint.url)\n .set(endpoint.headers)\n .query(params);\n return xdr.call(this, superagentConstruct, endpoint, callback);\n}\n\nexport function post(params: Object, body: string, endpoint: EndpointDefinition, callback: Function): superagent {\n let superagentConstruct = superagent\n .post(this.getStandardOrigin() + endpoint.url)\n .query(params)\n .set(endpoint.headers)\n .send(body);\n return xdr.call(this, superagentConstruct, endpoint, callback);\n}\n\nexport function patch(params: Object, body: string, endpoint: EndpointDefinition, callback: Function): superagent {\n let superagentConstruct = superagent\n .patch(this.getStandardOrigin() + endpoint.url)\n .query(params)\n .set(endpoint.headers)\n .send(body);\n return xdr.call(this, superagentConstruct, endpoint, callback);\n}\n\nexport function del(params: Object, endpoint: EndpointDefinition, callback: Function): superagent {\n let superagentConstruct = superagent\n .delete(this.getStandardOrigin() + endpoint.url)\n .set(endpoint.headers)\n .query(params);\n return xdr.call(this, superagentConstruct, endpoint, callback);\n}\n"],"file":"web-node.js"} \ No newline at end of file diff --git a/lib/networking/utils.js b/lib/networking/utils.js index 5ac391110..cd4452fd7 100644 --- a/lib/networking/utils.js +++ b/lib/networking/utils.js @@ -1,12 +1,14 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports.encodedKeyValuePair = encodedKeyValuePair; exports.buildUrl = buildUrl; -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); } +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); function encodedKeyValuePair(pairs, key, value) { if (value != null) { @@ -14,7 +16,7 @@ function encodedKeyValuePair(pairs, key, value) { value.forEach(function (item) { encodedKeyValuePair(pairs, key, item); }); - } else if (_typeof(value) === 'object') { + } else if ((0, _typeof2["default"])(value) === 'object') { Object.keys(value).forEach(function (subkey) { encodedKeyValuePair(pairs, "".concat(key, "[").concat(subkey, "]"), value[subkey]); }); diff --git a/lib/networking/utils.js.map b/lib/networking/utils.js.map index bd0d732ea..afcfc0429 100644 --- a/lib/networking/utils.js.map +++ b/lib/networking/utils.js.map @@ -1 +1 @@ -{"version":3,"sources":["networking/utils.js"],"names":["encodedKeyValuePair","pairs","key","value","Array","isArray","forEach","item","Object","keys","subkey","push","encodeURIComponent","buildUrl","url","params","join"],"mappings":";;;;;;;;;;AAEO,SAASA,mBAAT,CACLC,KADK,EAELC,GAFK,EAGLC,KAHK,EAIC;AACN,MAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB,QAAIC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxBA,MAAAA,KAAK,CAACG,OAAN,CAAc,UAACC,IAAD,EAAU;AACtBP,QAAAA,mBAAmB,CAACC,KAAD,EAAQC,GAAR,EAAaK,IAAb,CAAnB;AACD,OAFD;AAGD,KAJD,MAIO,IAAI,QAAOJ,KAAP,MAAiB,QAArB,EAA+B;AACpCK,MAAAA,MAAM,CAACC,IAAP,CAAYN,KAAZ,EAAmBG,OAAnB,CAA2B,UAACI,MAAD,EAAY;AACrCV,QAAAA,mBAAmB,CAACC,KAAD,YAAWC,GAAX,cAAkBQ,MAAlB,QAA6BP,KAAK,CAACO,MAAD,CAAlC,CAAnB;AACD,OAFD;AAGD,KAJM,MAIA;AACLT,MAAAA,KAAK,CAACU,IAAN,WAAcC,kBAAkB,CAACV,GAAD,CAAhC,cAAyCU,kBAAkB,CAACT,KAAD,CAA3D;AACD;AACF,GAZD,MAYO,IAAIA,KAAK,KAAK,IAAd,EAAoB;AACzBF,IAAAA,KAAK,CAACU,IAAN,CAAWC,kBAAkB,WAAIA,kBAAkB,CAACV,GAAD,CAAtB,EAA7B;AACD;AACF;;AAEM,SAASW,QAAT,CAAkBC,GAAlB,EAA+BC,MAA/B,EAAuD;AAC5D,MAAId,KAAK,GAAG,EAAZ;AAEAO,EAAAA,MAAM,CAACC,IAAP,CAAYM,MAAZ,EAAoBT,OAApB,CAA4B,UAACJ,GAAD,EAAS;AACnCF,IAAAA,mBAAmB,CAACC,KAAD,EAAQC,GAAR,EAAaa,MAAM,CAACb,GAAD,CAAnB,CAAnB;AACD,GAFD;AAIA,mBAAUY,GAAV,cAAiBb,KAAK,CAACe,IAAN,CAAW,GAAX,CAAjB;AACD","sourcesContent":["/* @flow */\n\nexport function encodedKeyValuePair(\n pairs: Array,\n key: string,\n value: Object\n): void {\n if (value != null) {\n if (Array.isArray(value)) {\n value.forEach((item) => {\n encodedKeyValuePair(pairs, key, item);\n });\n } else if (typeof value === 'object') {\n Object.keys(value).forEach((subkey) => {\n encodedKeyValuePair(pairs, `${key}[${subkey}]`, value[subkey]);\n });\n } else {\n pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n } else if (value === null) {\n pairs.push(encodeURIComponent(`${encodeURIComponent(key)}`));\n }\n}\n\nexport function buildUrl(url: string, params: Object): string {\n let pairs = [];\n\n Object.keys(params).forEach((key) => {\n encodedKeyValuePair(pairs, key, params[key]);\n });\n\n return `${url}?${pairs.join('&')}`;\n}\n"],"file":"utils.js"} \ No newline at end of file +{"version":3,"sources":["networking/utils.js"],"names":["encodedKeyValuePair","pairs","key","value","Array","isArray","forEach","item","Object","keys","subkey","push","encodeURIComponent","buildUrl","url","params","join"],"mappings":";;;;;;;;;;;;AAEO,SAASA,mBAAT,CACLC,KADK,EAELC,GAFK,EAGLC,KAHK,EAIC;AACN,MAAIA,KAAK,IAAI,IAAb,EAAmB;AACjB,QAAIC,KAAK,CAACC,OAAN,CAAcF,KAAd,CAAJ,EAA0B;AACxBA,MAAAA,KAAK,CAACG,OAAN,CAAc,UAACC,IAAD,EAAU;AACtBP,QAAAA,mBAAmB,CAACC,KAAD,EAAQC,GAAR,EAAaK,IAAb,CAAnB;AACD,OAFD;AAGD,KAJD,MAIO,IAAI,yBAAOJ,KAAP,MAAiB,QAArB,EAA+B;AACpCK,MAAAA,MAAM,CAACC,IAAP,CAAYN,KAAZ,EAAmBG,OAAnB,CAA2B,UAACI,MAAD,EAAY;AACrCV,QAAAA,mBAAmB,CAACC,KAAD,YAAWC,GAAX,cAAkBQ,MAAlB,QAA6BP,KAAK,CAACO,MAAD,CAAlC,CAAnB;AACD,OAFD;AAGD,KAJM,MAIA;AACLT,MAAAA,KAAK,CAACU,IAAN,WAAcC,kBAAkB,CAACV,GAAD,CAAhC,cAAyCU,kBAAkB,CAACT,KAAD,CAA3D;AACD;AACF,GAZD,MAYO,IAAIA,KAAK,KAAK,IAAd,EAAoB;AACzBF,IAAAA,KAAK,CAACU,IAAN,CAAWC,kBAAkB,WAAIA,kBAAkB,CAACV,GAAD,CAAtB,EAA7B;AACD;AACF;;AAEM,SAASW,QAAT,CAAkBC,GAAlB,EAA+BC,MAA/B,EAAuD;AAC5D,MAAId,KAAK,GAAG,EAAZ;AAEAO,EAAAA,MAAM,CAACC,IAAP,CAAYM,MAAZ,EAAoBT,OAApB,CAA4B,UAACJ,GAAD,EAAS;AACnCF,IAAAA,mBAAmB,CAACC,KAAD,EAAQC,GAAR,EAAaa,MAAM,CAACb,GAAD,CAAnB,CAAnB;AACD,GAFD;AAIA,mBAAUY,GAAV,cAAiBb,KAAK,CAACe,IAAN,CAAW,GAAX,CAAjB;AACD","sourcesContent":["/* @flow */\n\nexport function encodedKeyValuePair(\n pairs: Array,\n key: string,\n value: Object\n): void {\n if (value != null) {\n if (Array.isArray(value)) {\n value.forEach((item) => {\n encodedKeyValuePair(pairs, key, item);\n });\n } else if (typeof value === 'object') {\n Object.keys(value).forEach((subkey) => {\n encodedKeyValuePair(pairs, `${key}[${subkey}]`, value[subkey]);\n });\n } else {\n pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);\n }\n } else if (value === null) {\n pairs.push(encodeURIComponent(`${encodeURIComponent(key)}`));\n }\n}\n\nexport function buildUrl(url: string, params: Object): string {\n let pairs = [];\n\n Object.keys(params).forEach((key) => {\n encodedKeyValuePair(pairs, key, params[key]);\n });\n\n return `${url}?${pairs.join('&')}`;\n}\n"],"file":"utils.js"} \ No newline at end of file diff --git a/lib/node/index.js b/lib/node/index.js index ed30c3835..bb0c5996e 100755 --- a/lib/node/index.js +++ b/lib/node/index.js @@ -1,10 +1,20 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + var _cborSync = _interopRequireDefault(require("cbor-sync")); var _pubnubCommon = _interopRequireDefault(require("../core/pubnub-common")); @@ -21,31 +31,18 @@ var _node = require("../networking/modules/node"); var _flow_interfaces = require("../core/flow_interfaces"); -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); } +var _node2 = _interopRequireDefault(require("../crypto/modules/node")); -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 _node3 = _interopRequireDefault(require("../file/modules/node")); var _default = function (_PubNubCore) { - _inherits(_default, _PubNubCore); + (0, _inherits2["default"])(_default, _PubNubCore); function _default(setup) { - _classCallCheck(this, _default); - + (0, _classCallCheck2["default"])(this, _default); setup.db = new _common["default"](); setup.cbor = new _common2["default"](_cborSync["default"].decode, function (base64String) { - return new Buffer.from(base64String, 'base64'); + return Buffer.from(base64String, 'base64'); }); setup.networking = new _networking["default"]({ keepAlive: _node.keepAlive, @@ -53,15 +50,18 @@ var _default = function (_PubNubCore) { get: _webNode.get, post: _webNode.post, patch: _webNode.patch, - proxy: _node.proxy + proxy: _node.proxy, + file: _webNode.file }); setup.sdkFamily = 'Nodejs'; + setup.PubNubFile = _node3["default"]; + setup.cryptography = new _node2["default"](); if (!('ssl' in setup)) { setup.ssl = true; } - return _possibleConstructorReturn(this, _getPrototypeOf(_default).call(this, setup)); + return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(_default).call(this, setup)); } return _default; diff --git a/lib/node/index.js.map b/lib/node/index.js.map index 75a418b33..dc85f13f6 100644 --- a/lib/node/index.js.map +++ b/lib/node/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["node/index.js"],"names":["setup","db","Database","cbor","Cbor","CborReader","decode","base64String","Buffer","from","networking","Networking","keepAlive","del","get","post","patch","proxy","sdkFamily","ssl","PubNubCore"],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;AAGE,oBAAYA,KAAZ,EAAwC;AAAA;;AACtCA,IAAAA,KAAK,CAACC,EAAN,GAAW,IAAIC,kBAAJ,EAAX;AACAF,IAAAA,KAAK,CAACG,IAAN,GAAa,IAAIC,mBAAJ,CAASC,qBAAWC,MAApB,EAA4B,UAACC,YAAD;AAAA,aAAkB,IAAIC,MAAM,CAACC,IAAX,CAAgBF,YAAhB,EAA8B,QAA9B,CAAlB;AAAA,KAA5B,CAAb;AACAP,IAAAA,KAAK,CAACU,UAAN,GAAmB,IAAIC,sBAAJ,CAAe;AAAEC,MAAAA,SAAS,EAATA,eAAF;AAAaC,MAAAA,GAAG,EAAHA,YAAb;AAAkBC,MAAAA,GAAG,EAAHA,YAAlB;AAAuBC,MAAAA,IAAI,EAAJA,aAAvB;AAA6BC,MAAAA,KAAK,EAALA,cAA7B;AAAoCC,MAAAA,KAAK,EAALA;AAApC,KAAf,CAAnB;AACAjB,IAAAA,KAAK,CAACkB,SAAN,GAAkB,QAAlB;;AAEA,QAAI,EAAE,SAASlB,KAAX,CAAJ,EAAuB;AACrBA,MAAAA,KAAK,CAACmB,GAAN,GAAY,IAAZ;AACD;;AARqC,iFAUhCnB,KAVgC;AAWvC;;;EAZ0BoB,wB","sourcesContent":["/* @flow */\n\nimport CborReader from 'cbor-sync';\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport Database from '../db/common';\nimport Cbor from '../cbor/common';\nimport { del, get, patch, post } from '../networking/modules/web-node';\nimport { keepAlive, proxy } from '../networking/modules/node';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nexport default class extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n setup.db = new Database();\n setup.cbor = new Cbor(CborReader.decode, (base64String) => new Buffer.from(base64String, 'base64'));\n setup.networking = new Networking({ keepAlive, del, get, post, patch, proxy });\n setup.sdkFamily = 'Nodejs';\n\n if (!('ssl' in setup)) {\n setup.ssl = true;\n }\n\n super(setup);\n }\n}\n"],"file":"index.js"} \ No newline at end of file +{"version":3,"sources":["node/index.js"],"names":["setup","db","Database","cbor","Cbor","CborReader","decode","base64String","Buffer","from","networking","Networking","keepAlive","del","get","post","patch","proxy","file","sdkFamily","PubNubFile","cryptography","NodeCryptography","ssl","PubNubCore"],"mappings":";;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;AAGE,oBAAYA,KAAZ,EAAwC;AAAA;AACtCA,IAAAA,KAAK,CAACC,EAAN,GAAW,IAAIC,kBAAJ,EAAX;AACAF,IAAAA,KAAK,CAACG,IAAN,GAAa,IAAIC,mBAAJ,CAASC,qBAAWC,MAApB,EAA4B,UAACC,YAAD;AAAA,aAAkBC,MAAM,CAACC,IAAP,CAAYF,YAAZ,EAA0B,QAA1B,CAAlB;AAAA,KAA5B,CAAb;AACAP,IAAAA,KAAK,CAACU,UAAN,GAAmB,IAAIC,sBAAJ,CAAe;AAAEC,MAAAA,SAAS,EAATA,eAAF;AAAaC,MAAAA,GAAG,EAAHA,YAAb;AAAkBC,MAAAA,GAAG,EAAHA,YAAlB;AAAuBC,MAAAA,IAAI,EAAJA,aAAvB;AAA6BC,MAAAA,KAAK,EAALA,cAA7B;AAAoCC,MAAAA,KAAK,EAALA,WAApC;AAA2CC,MAAAA,IAAI,EAAJA;AAA3C,KAAf,CAAnB;AACAlB,IAAAA,KAAK,CAACmB,SAAN,GAAkB,QAAlB;AAEAnB,IAAAA,KAAK,CAACoB,UAAN,GAAmBA,iBAAnB;AACApB,IAAAA,KAAK,CAACqB,YAAN,GAAqB,IAAIC,iBAAJ,EAArB;;AAEA,QAAI,EAAE,SAAStB,KAAX,CAAJ,EAAuB;AACrBA,MAAAA,KAAK,CAACuB,GAAN,GAAY,IAAZ;AACD;;AAXqC,mHAahCvB,KAbgC;AAcvC;;;EAf0BwB,wB","sourcesContent":["/* @flow */\n\nimport CborReader from 'cbor-sync';\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport Database from '../db/common';\nimport Cbor from '../cbor/common';\nimport { del, get, patch, post, file } from '../networking/modules/web-node';\nimport { keepAlive, proxy } from '../networking/modules/node';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nimport NodeCryptography from '../crypto/modules/node';\nimport PubNubFile from '../file/modules/node';\n\nexport default class extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n setup.db = new Database();\n setup.cbor = new Cbor(CborReader.decode, (base64String) => Buffer.from(base64String, 'base64'));\n setup.networking = new Networking({ keepAlive, del, get, post, patch, proxy, file });\n setup.sdkFamily = 'Nodejs';\n\n setup.PubNubFile = PubNubFile;\n setup.cryptography = new NodeCryptography();\n\n if (!('ssl' in setup)) {\n setup.ssl = true;\n }\n\n super(setup);\n }\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/lib/react_native/index.js b/lib/react_native/index.js index c22de67af..f607c0c03 100644 --- a/lib/react_native/index.js +++ b/lib/react_native/index.js @@ -1,10 +1,20 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + var _cborSync = _interopRequireDefault(require("cbor-sync")); var _pubnubCommon = _interopRequireDefault(require("../core/pubnub-common")); @@ -19,28 +29,11 @@ var _webNode = require("../networking/modules/web-node"); var _flow_interfaces = require("../core/flow_interfaces"); -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 _default = function (_PubNubCore) { - _inherits(_default, _PubNubCore); + (0, _inherits2["default"])(_default, _PubNubCore); function _default(setup) { - _classCallCheck(this, _default); - + (0, _classCallCheck2["default"])(this, _default); setup.db = new _common["default"](); setup.cbor = new _common2["default"](_cborSync["default"].decode, function (base64String) { return new Buffer.from(base64String, 'base64'); @@ -53,7 +46,7 @@ var _default = function (_PubNubCore) { }); setup.sdkFamily = 'ReactNative'; setup.ssl = true; - return _possibleConstructorReturn(this, _getPrototypeOf(_default).call(this, setup)); + return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(_default).call(this, setup)); } return _default; diff --git a/lib/react_native/index.js.map b/lib/react_native/index.js.map index 87056b252..416459103 100644 --- a/lib/react_native/index.js.map +++ b/lib/react_native/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["react_native/index.js"],"names":["setup","db","Database","cbor","Cbor","CborReader","decode","base64String","Buffer","from","networking","Networking","del","get","post","patch","sdkFamily","ssl","PubNubCore"],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;AAGE,oBAAYA,KAAZ,EAAwC;AAAA;;AACtCA,IAAAA,KAAK,CAACC,EAAN,GAAW,IAAIC,kBAAJ,EAAX;AACAF,IAAAA,KAAK,CAACG,IAAN,GAAa,IAAIC,mBAAJ,CAASC,qBAAWC,MAApB,EAA4B,UAACC,YAAD;AAAA,aAAkB,IAAIC,MAAM,CAACC,IAAX,CAAgBF,YAAhB,EAA8B,QAA9B,CAAlB;AAAA,KAA5B,CAAb;AACAP,IAAAA,KAAK,CAACU,UAAN,GAAmB,IAAIC,sBAAJ,CAAe;AAAEC,MAAAA,GAAG,EAAHA,YAAF;AAAOC,MAAAA,GAAG,EAAHA,YAAP;AAAYC,MAAAA,IAAI,EAAJA,aAAZ;AAAkBC,MAAAA,KAAK,EAALA;AAAlB,KAAf,CAAnB;AACAf,IAAAA,KAAK,CAACgB,SAAN,GAAkB,aAAlB;AACAhB,IAAAA,KAAK,CAACiB,GAAN,GAAY,IAAZ;AALsC,iFAMhCjB,KANgC;AAOvC;;;EAR0BkB,wB","sourcesContent":["/* @flow */\n\nimport CborReader from 'cbor-sync';\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport Database from '../db/common';\nimport Cbor from '../cbor/common';\nimport { del, get, post, patch } from '../networking/modules/web-node';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nexport default class extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n setup.db = new Database();\n setup.cbor = new Cbor(CborReader.decode, (base64String) => new Buffer.from(base64String, 'base64'));\n setup.networking = new Networking({ del, get, post, patch });\n setup.sdkFamily = 'ReactNative';\n setup.ssl = true;\n super(setup);\n }\n}\n"],"file":"index.js"} \ No newline at end of file +{"version":3,"sources":["react_native/index.js"],"names":["setup","db","Database","cbor","Cbor","CborReader","decode","base64String","Buffer","from","networking","Networking","del","get","post","patch","sdkFamily","ssl","PubNubCore"],"mappings":";;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;AAGE,oBAAYA,KAAZ,EAAwC;AAAA;AACtCA,IAAAA,KAAK,CAACC,EAAN,GAAW,IAAIC,kBAAJ,EAAX;AACAF,IAAAA,KAAK,CAACG,IAAN,GAAa,IAAIC,mBAAJ,CAASC,qBAAWC,MAApB,EAA4B,UAACC,YAAD;AAAA,aAAkB,IAAIC,MAAM,CAACC,IAAX,CAAgBF,YAAhB,EAA8B,QAA9B,CAAlB;AAAA,KAA5B,CAAb;AACAP,IAAAA,KAAK,CAACU,UAAN,GAAmB,IAAIC,sBAAJ,CAAe;AAAEC,MAAAA,GAAG,EAAHA,YAAF;AAAOC,MAAAA,GAAG,EAAHA,YAAP;AAAYC,MAAAA,IAAI,EAAJA,aAAZ;AAAkBC,MAAAA,KAAK,EAALA;AAAlB,KAAf,CAAnB;AACAf,IAAAA,KAAK,CAACgB,SAAN,GAAkB,aAAlB;AACAhB,IAAAA,KAAK,CAACiB,GAAN,GAAY,IAAZ;AALsC,mHAMhCjB,KANgC;AAOvC;;;EAR0BkB,wB","sourcesContent":["/* @flow */\n\nimport CborReader from 'cbor-sync';\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport Database from '../db/common';\nimport Cbor from '../cbor/common';\nimport { del, get, post, patch } from '../networking/modules/web-node';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nexport default class extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n setup.db = new Database();\n setup.cbor = new Cbor(CborReader.decode, (base64String) => new Buffer.from(base64String, 'base64'));\n setup.networking = new Networking({ del, get, post, patch });\n setup.sdkFamily = 'ReactNative';\n setup.ssl = true;\n super(setup);\n }\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/lib/titanium/index.js b/lib/titanium/index.js index d2e34acaf..9af656eb4 100644 --- a/lib/titanium/index.js +++ b/lib/titanium/index.js @@ -1,10 +1,20 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + var _cborSync = _interopRequireDefault(require("cbor-sync")); var _pubnubCommon = _interopRequireDefault(require("../core/pubnub-common")); @@ -19,28 +29,11 @@ var _titanium = require("../networking/modules/titanium"); var _flow_interfaces = require("../core/flow_interfaces"); -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 PubNub = function (_PubNubCore) { - _inherits(PubNub, _PubNubCore); + (0, _inherits2["default"])(PubNub, _PubNubCore); function PubNub(setup) { - _classCallCheck(this, PubNub); - + (0, _classCallCheck2["default"])(this, PubNub); setup.db = new _common["default"](); setup.cbor = new _common2["default"](_cborSync["default"].decode, function (base64String) { return new Buffer.from(base64String, 'base64'); @@ -52,7 +45,7 @@ var PubNub = function (_PubNubCore) { post: _titanium.post, patch: _titanium.patch }); - return _possibleConstructorReturn(this, _getPrototypeOf(PubNub).call(this, setup)); + return (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(PubNub).call(this, setup)); } return PubNub; diff --git a/lib/titanium/index.js.map b/lib/titanium/index.js.map index 43eb8d6bf..2b99837a9 100644 --- a/lib/titanium/index.js.map +++ b/lib/titanium/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["titanium/index.js"],"names":["PubNub","setup","db","Database","cbor","Cbor","CborReader","decode","base64String","Buffer","from","sdkFamily","networking","Networking","del","get","post","patch","PubNubCore"],"mappings":";;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;IAEMA,M;;;AACJ,kBAAYC,KAAZ,EAAwC;AAAA;;AACtCA,IAAAA,KAAK,CAACC,EAAN,GAAW,IAAIC,kBAAJ,EAAX;AACAF,IAAAA,KAAK,CAACG,IAAN,GAAa,IAAIC,mBAAJ,CAASC,qBAAWC,MAApB,EAA4B,UAACC,YAAD;AAAA,aAAkB,IAAIC,MAAM,CAACC,IAAX,CAAgBF,YAAhB,EAA8B,QAA9B,CAAlB;AAAA,KAA5B,CAAb;AACAP,IAAAA,KAAK,CAACU,SAAN,GAAkB,aAAlB;AACAV,IAAAA,KAAK,CAACW,UAAN,GAAmB,IAAIC,sBAAJ,CAAe;AAAEC,MAAAA,GAAG,EAAHA,aAAF;AAAOC,MAAAA,GAAG,EAAHA,aAAP;AAAYC,MAAAA,IAAI,EAAJA,cAAZ;AAAkBC,MAAAA,KAAK,EAALA;AAAlB,KAAf,CAAnB;AAJsC,+EAMhChB,KANgC;AAOvC;;;EARkBiB,wB","sourcesContent":["/* @flow */\n\nimport CborReader from 'cbor-sync';\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport Database from '../db/common';\nimport Cbor from '../cbor/common';\nimport { del, get, post, patch } from '../networking/modules/titanium';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nclass PubNub extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n setup.db = new Database();\n setup.cbor = new Cbor(CborReader.decode, (base64String) => new Buffer.from(base64String, 'base64'));\n setup.sdkFamily = 'TitaniumSDK';\n setup.networking = new Networking({ del, get, post, patch });\n\n super(setup);\n }\n}\n\nexport { PubNub as default };\n"],"file":"index.js"} \ No newline at end of file +{"version":3,"sources":["titanium/index.js"],"names":["PubNub","setup","db","Database","cbor","Cbor","CborReader","decode","base64String","Buffer","from","sdkFamily","networking","Networking","del","get","post","patch","PubNubCore"],"mappings":";;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;IAEMA,M;;;AACJ,kBAAYC,KAAZ,EAAwC;AAAA;AACtCA,IAAAA,KAAK,CAACC,EAAN,GAAW,IAAIC,kBAAJ,EAAX;AACAF,IAAAA,KAAK,CAACG,IAAN,GAAa,IAAIC,mBAAJ,CAASC,qBAAWC,MAApB,EAA4B,UAACC,YAAD;AAAA,aAAkB,IAAIC,MAAM,CAACC,IAAX,CAAgBF,YAAhB,EAA8B,QAA9B,CAAlB;AAAA,KAA5B,CAAb;AACAP,IAAAA,KAAK,CAACU,SAAN,GAAkB,aAAlB;AACAV,IAAAA,KAAK,CAACW,UAAN,GAAmB,IAAIC,sBAAJ,CAAe;AAAEC,MAAAA,GAAG,EAAHA,aAAF;AAAOC,MAAAA,GAAG,EAAHA,aAAP;AAAYC,MAAAA,IAAI,EAAJA,cAAZ;AAAkBC,MAAAA,KAAK,EAALA;AAAlB,KAAf,CAAnB;AAJsC,iHAMhChB,KANgC;AAOvC;;;EARkBiB,wB","sourcesContent":["/* @flow */\n\nimport CborReader from 'cbor-sync';\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport Database from '../db/common';\nimport Cbor from '../cbor/common';\nimport { del, get, post, patch } from '../networking/modules/titanium';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nclass PubNub extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n setup.db = new Database();\n setup.cbor = new Cbor(CborReader.decode, (base64String) => new Buffer.from(base64String, 'base64'));\n setup.sdkFamily = 'TitaniumSDK';\n setup.networking = new Networking({ del, get, post, patch });\n\n super(setup);\n }\n}\n\nexport { PubNub as default };\n"],"file":"index.js"} \ No newline at end of file diff --git a/lib/web/index.js b/lib/web/index.js index 9b082b402..756738210 100644 --- a/lib/web/index.js +++ b/lib/web/index.js @@ -1,10 +1,22 @@ "use strict"; +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); + Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; +var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); + +var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); + +var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); + +var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); + +var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); + var _cborJs = _interopRequireDefault(require("cbor-js")); var _pubnubCommon = _interopRequireDefault(require("../core/pubnub-common")); @@ -21,21 +33,9 @@ var _webNode = require("../networking/modules/web-node"); var _flow_interfaces = require("../core/flow_interfaces"); -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"); } } +var _web2 = _interopRequireDefault(require("../crypto/modules/web")); -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); } - -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); } +var _web3 = _interopRequireDefault(require("../file/modules/web")); function sendBeacon(url) { if (navigator && navigator.sendBeacon) { @@ -80,7 +80,7 @@ function base64ToBinary(base64String) { function stringifyBufferKeys(obj) { var isObject = function isObject(value) { - return value && _typeof(value) === 'object' && value.constructor === Object; + return value && (0, _typeof2["default"])(value) === 'object' && value.constructor === Object; }; var isString = function isString(value) { @@ -117,13 +117,12 @@ function stringifyBufferKeys(obj) { } var _default = function (_PubNubCore) { - _inherits(_default, _PubNubCore); + (0, _inherits2["default"])(_default, _PubNubCore); function _default(setup) { var _this; - _classCallCheck(this, _default); - + (0, _classCallCheck2["default"])(this, _default); var _setup$listenToBrowse = setup.listenToBrowserNetworkEvents, listenToBrowserNetworkEvents = _setup$listenToBrowse === void 0 ? true : _setup$listenToBrowse; setup.db = _web["default"]; @@ -133,12 +132,15 @@ var _default = function (_PubNubCore) { get: _webNode.get, post: _webNode.post, patch: _webNode.patch, - sendBeacon: sendBeacon + sendBeacon: sendBeacon, + file: _webNode.file }); setup.cbor = new _common["default"](function (arrayBuffer) { return stringifyBufferKeys(_cborJs["default"].decode(arrayBuffer)); }, base64ToBinary); - _this = _possibleConstructorReturn(this, _getPrototypeOf(_default).call(this, setup)); + setup.PubNubFile = _web3["default"]; + setup.cryptography = new _web2["default"](); + _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(_default).call(this, setup)); if (listenToBrowserNetworkEvents) { window.addEventListener('offline', function () { diff --git a/lib/web/index.js.map b/lib/web/index.js.map index 771158d40..22efe97d1 100644 --- a/lib/web/index.js.map +++ b/lib/web/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["web/index.js"],"names":["sendBeacon","url","navigator","base64ToBinary","base64String","parsedWordArray","CryptoJS","enc","Base64","parse","words","arrayBuffer","ArrayBuffer","length","view","Uint8Array","filledArrayBuffer","zeroBytesCount","byteOffset","wordIdx","word","byteIdx","buffer","slice","byteLength","stringifyBufferKeys","obj","isObject","value","constructor","Object","isString","String","isNumber","isFinite","normalizedObject","keys","forEach","key","keyIsString","stringifiedKey","Array","isArray","indexOf","bytes","split","reduce","string","byte","fromCharCode","isNaN","parseInt","setup","listenToBrowserNetworkEvents","db","sdkFamily","networking","Networking","del","get","post","patch","cbor","Cbor","CborReader","decode","window","addEventListener","networkDownDetected","networkUpDetected","PubNubCore"],"mappings":"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","sourcesContent":["/* @flow */\n/* eslint no-bitwise: [\"error\", { \"allow\": [\"~\", \"&\", \">>\"] }] */\n/* global navigator, window */\n\nimport CborReader from 'cbor-js';\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport CryptoJS from '../core/components/cryptography/hmac-sha256';\nimport db from '../db/web';\nimport Cbor from '../cbor/common';\nimport { del, get, post, patch } from '../networking/modules/web-node';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nfunction sendBeacon(url: string) {\n if (navigator && navigator.sendBeacon) {\n navigator.sendBeacon(url);\n } else {\n return false;\n }\n}\n\nfunction base64ToBinary(base64String: string) {\n const parsedWordArray = CryptoJS.enc.Base64.parse(base64String).words;\n const arrayBuffer = new ArrayBuffer(parsedWordArray.length * 4);\n const view = new Uint8Array(arrayBuffer);\n let filledArrayBuffer = null;\n let zeroBytesCount = 0;\n let byteOffset = 0;\n\n for (let wordIdx = 0; wordIdx < parsedWordArray.length; wordIdx += 1) {\n const word = parsedWordArray[wordIdx];\n byteOffset = wordIdx * 4;\n view[byteOffset] = (word & 0xff000000) >> 24;\n view[byteOffset + 1] = (word & 0x00ff0000) >> 16;\n view[byteOffset + 2] = (word & 0x0000ff00) >> 8;\n view[byteOffset + 3] = (word & 0x000000ff);\n }\n\n for (let byteIdx = byteOffset + 3; byteIdx >= byteOffset; byteIdx -= 1) {\n if (view[byteIdx] === 0) {\n zeroBytesCount += 1;\n }\n }\n\n if (zeroBytesCount > 0) {\n filledArrayBuffer = view.buffer.slice(0, view.byteLength - zeroBytesCount);\n } else {\n filledArrayBuffer = view.buffer;\n }\n\n return filledArrayBuffer;\n}\n\nfunction stringifyBufferKeys(obj) {\n const isObject = (value) => value && typeof value === 'object' && value.constructor === Object;\n const isString = (value) => typeof value === 'string' || value instanceof String;\n const isNumber = (value) => typeof value === 'number' && isFinite(value);\n\n if (!isObject(obj)) {\n return obj;\n }\n\n const normalizedObject = {};\n\n Object.keys(obj).forEach((key: any) => {\n const keyIsString = isString(key);\n let stringifiedKey = key;\n let value = obj[key];\n\n if (Array.isArray(key) || keyIsString && key.indexOf(',') >= 0) {\n const bytes: Array = keyIsString ? key.split(',') : key;\n\n stringifiedKey = bytes.reduce((string, byte) => {\n string += (String.fromCharCode(byte));\n return string;\n }, '');\n } else if (isNumber(key) || keyIsString && !isNaN(key)) {\n stringifiedKey = String.fromCharCode(keyIsString ? parseInt(key, 10) : 10);\n }\n\n normalizedObject[stringifiedKey] = isObject(value) ? stringifyBufferKeys(value) : value;\n });\n\n return normalizedObject;\n}\n\nexport default class extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n // extract config.\n const { listenToBrowserNetworkEvents = true } = setup;\n\n setup.db = db;\n setup.sdkFamily = 'Web';\n setup.networking = new Networking({ del, get, post, patch, sendBeacon });\n setup.cbor = new Cbor((arrayBuffer) => stringifyBufferKeys(CborReader.decode(arrayBuffer)), base64ToBinary);\n\n super(setup);\n\n if (listenToBrowserNetworkEvents) {\n // mount network events.\n window.addEventListener('offline', () => {\n this.networkDownDetected();\n });\n\n window.addEventListener('online', () => {\n this.networkUpDetected();\n });\n }\n }\n}\n"],"file":"index.js"} \ No newline at end of file +{"version":3,"sources":["web/index.js"],"names":["sendBeacon","url","navigator","base64ToBinary","base64String","parsedWordArray","CryptoJS","enc","Base64","parse","words","arrayBuffer","ArrayBuffer","length","view","Uint8Array","filledArrayBuffer","zeroBytesCount","byteOffset","wordIdx","word","byteIdx","buffer","slice","byteLength","stringifyBufferKeys","obj","isObject","value","constructor","Object","isString","String","isNumber","isFinite","normalizedObject","keys","forEach","key","keyIsString","stringifiedKey","Array","isArray","indexOf","bytes","split","reduce","string","byte","fromCharCode","isNaN","parseInt","setup","listenToBrowserNetworkEvents","db","sdkFamily","networking","Networking","del","get","post","patch","file","cbor","Cbor","CborReader","decode","PubNubFile","cryptography","WebCryptography","window","addEventListener","networkDownDetected","networkUpDetected","PubNubCore"],"mappings":"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","sourcesContent":["/* @flow */\n/* eslint no-bitwise: [\"error\", { \"allow\": [\"~\", \"&\", \">>\"] }] */\n/* global navigator, window */\n\nimport CborReader from 'cbor-js';\nimport PubNubCore from '../core/pubnub-common';\nimport Networking from '../networking';\nimport CryptoJS from '../core/components/cryptography/hmac-sha256';\nimport db from '../db/web';\nimport Cbor from '../cbor/common';\nimport { del, get, post, patch, file } from '../networking/modules/web-node';\nimport { InternalSetupStruct } from '../core/flow_interfaces';\n\nimport WebCryptography from '../crypto/modules/web';\nimport PubNubFile from '../file/modules/web';\n\nfunction sendBeacon(url: string) {\n if (navigator && navigator.sendBeacon) {\n navigator.sendBeacon(url);\n } else {\n return false;\n }\n}\n\nfunction base64ToBinary(base64String: string) {\n const parsedWordArray = CryptoJS.enc.Base64.parse(base64String).words;\n const arrayBuffer = new ArrayBuffer(parsedWordArray.length * 4);\n const view = new Uint8Array(arrayBuffer);\n let filledArrayBuffer = null;\n let zeroBytesCount = 0;\n let byteOffset = 0;\n\n for (let wordIdx = 0; wordIdx < parsedWordArray.length; wordIdx += 1) {\n const word = parsedWordArray[wordIdx];\n byteOffset = wordIdx * 4;\n view[byteOffset] = (word & 0xff000000) >> 24;\n view[byteOffset + 1] = (word & 0x00ff0000) >> 16;\n view[byteOffset + 2] = (word & 0x0000ff00) >> 8;\n view[byteOffset + 3] = word & 0x000000ff;\n }\n\n for (let byteIdx = byteOffset + 3; byteIdx >= byteOffset; byteIdx -= 1) {\n if (view[byteIdx] === 0) {\n zeroBytesCount += 1;\n }\n }\n\n if (zeroBytesCount > 0) {\n filledArrayBuffer = view.buffer.slice(0, view.byteLength - zeroBytesCount);\n } else {\n filledArrayBuffer = view.buffer;\n }\n\n return filledArrayBuffer;\n}\n\nfunction stringifyBufferKeys(obj) {\n const isObject = (value) => value && typeof value === 'object' && value.constructor === Object;\n const isString = (value) => typeof value === 'string' || value instanceof String;\n const isNumber = (value) => typeof value === 'number' && isFinite(value);\n\n if (!isObject(obj)) {\n return obj;\n }\n\n const normalizedObject = {};\n\n Object.keys(obj).forEach((key: any) => {\n const keyIsString = isString(key);\n let stringifiedKey = key;\n let value = obj[key];\n\n if (Array.isArray(key) || (keyIsString && key.indexOf(',') >= 0)) {\n const bytes: Array = keyIsString ? key.split(',') : key;\n\n stringifiedKey = bytes.reduce((string, byte) => {\n string += String.fromCharCode(byte);\n return string;\n }, '');\n } else if (isNumber(key) || (keyIsString && !isNaN(key))) {\n stringifiedKey = String.fromCharCode(keyIsString ? parseInt(key, 10) : 10);\n }\n\n normalizedObject[stringifiedKey] = isObject(value) ? stringifyBufferKeys(value) : value;\n });\n\n return normalizedObject;\n}\n\nexport default class extends PubNubCore {\n constructor(setup: InternalSetupStruct) {\n // extract config.\n const { listenToBrowserNetworkEvents = true } = setup;\n\n setup.db = db;\n setup.sdkFamily = 'Web';\n setup.networking = new Networking({ del, get, post, patch, sendBeacon, file });\n setup.cbor = new Cbor((arrayBuffer) => stringifyBufferKeys(CborReader.decode(arrayBuffer)), base64ToBinary);\n\n setup.PubNubFile = PubNubFile;\n setup.cryptography = new WebCryptography();\n\n super(setup);\n\n if (listenToBrowserNetworkEvents) {\n // mount network events.\n window.addEventListener('offline', () => {\n this.networkDownDetected();\n });\n\n window.addEventListener('online', () => {\n this.networkUpDetected();\n });\n }\n }\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index da9f2f470..1cf97a7e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pubnub", - "version": "4.27.6", + "version": "4.28.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1886,6 +1886,58 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-transform-runtime": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.5.tgz", + "integrity": "sha512-tV4V/FjElJ9lQtyjr5xD2IFFbgY46r7EeVu5a8CpEKT5laheHKSlFeHjpkPppW3PqzGLAuv5k2qZX5LgVZIX5w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "dev": true + }, + "@babel/types": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", + "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", + "dev": true + } + } + }, "@babel/plugin-transform-shorthand-properties": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz", @@ -2050,6 +2102,15 @@ } } }, + "@babel/runtime": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", + "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, "@babel/template": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", @@ -2218,6 +2279,58 @@ "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", "dev": true }, + "@peculiar/asn1-schema": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.0.12.tgz", + "integrity": "sha512-DnZ6tMpPSxXa975dwcSe9pEJyO8gcqRVCPuJvvxfB4aC3zX6UOSoJrmlkpLHTeysPi13U5ME3fdQeEMIwZeqGg==", + "requires": { + "@types/asn1js": "^0.0.1", + "asn1js": "^2.0.26", + "pvtsutils": "^1.0.11", + "tslib": "^1.11.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "requires": { + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", + "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==" + } + } + }, + "@peculiar/webcrypto": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.1.2.tgz", + "integrity": "sha512-BkgD5iH2n3+Fdd/+xfhac8VbISo4MPvECPhK1kRpuYC7PnhxaJe2rpU7B4udvMeEL8lhJlvCWybo8Y7A29u/xQ==", + "requires": { + "@peculiar/asn1-schema": "^2.0.8", + "@peculiar/json-schema": "^1.1.10", + "pvtsutils": "^1.0.10", + "tslib": "^2.0.0", + "webcrypto-core": "^1.1.2" + }, + "dependencies": { + "tslib": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", + "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==" + } + } + }, "@sinonjs/commons": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.6.0.tgz", @@ -2254,12 +2367,62 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, + "@types/asn1js": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/asn1js/-/asn1js-0.0.1.tgz", + "integrity": "sha1-74uflwjLFjKhw6nNJ3F8qr55O8I=", + "requires": { + "@types/pvutils": "*" + } + }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/node": { + "version": "14.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.23.tgz", + "integrity": "sha512-Z4U8yDAl5TFkmYsZdFPdjeMa57NOvnaf1tljHzhouaPEp7LCj2JKkejpI1ODviIAQuW4CcQmxkQ77rnLsOOoKw==", + "dev": true, + "optional": true + }, + "@types/pvutils": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@types/pvutils/-/pvutils-0.0.2.tgz", + "integrity": "sha512-CgQAm7pjyeF3Gnv78ty4RBVIfluB+Td+2DR8iPaU0prF18pkzptHHP+DoKPfpsJYknKsVZyVsJEu5AuGgAqQ5w==" + }, + "@types/yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@unimodules/core": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@unimodules/core/-/core-5.3.0.tgz", + "integrity": "sha512-uGpkYE2zI0F1LTv+p6drzCHAZo8UFITxedHUH6pjWQBHdpTtae5cU7l3F/CzQ4WYU6SWhkzaB90/Ydf3DNTuLw==", + "optional": true, + "requires": { + "compare-versions": "^3.4.0" + } + }, + "@unimodules/react-native-adapter": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@unimodules/react-native-adapter/-/react-native-adapter-5.4.0.tgz", + "integrity": "sha512-2c3hDWzfBAyDWNCkBziyXphmxRZvZ5J8oSMLRDohvj6DnQiHvnlgr/A4oberkjPSEve5fN4GA+eybcJrec08AA==", + "optional": true, + "requires": { + "invariant": "^2.2.4", + "lodash": "^4.5.0", + "prop-types": "^15.6.1" + } + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -2772,6 +2935,11 @@ "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", "dev": true }, + "asmcrypto.js": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/asmcrypto.js/-/asmcrypto.js-0.22.0.tgz", + "integrity": "sha512-usgMoyXjMbx/ZPdzTSXExhMPur2FTdz/Vo5PVx2gIaBcdAAJNOFlsdgqveM8Cff7W0v+xrf9BwjOV26JSAF9qA==" + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -2792,6 +2960,14 @@ "minimalistic-assert": "^1.0.0" } }, + "asn1js": { + "version": "2.0.26", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.0.26.tgz", + "integrity": "sha512-yG89F0j9B4B0MKIcFyWWxnpZPLaNTjCj4tkE3fjbAoo0qmpGw0PYYqSbX/4ebnd9Icn8ZgK4K1fvDyEtW1JYtQ==", + "requires": { + "pvutils": "^1.0.17" + } + }, "assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", @@ -2910,6 +3086,22 @@ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", "dev": true }, + "b64-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/b64-lite/-/b64-lite-1.4.0.tgz", + "integrity": "sha512-aHe97M7DXt+dkpa8fHlCcm1CnskAHrJqEfMI0KN7dwqlzml/aUe1AGt6lk51HzrSfVD67xOso84sOpr+0wIe2w==", + "requires": { + "base-64": "^0.1.0" + } + }, + "b64u-lite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/b64u-lite/-/b64u-lite-1.1.0.tgz", + "integrity": "sha512-929qWGDVCRph7gQVTC6koHqQIpF4vtVaSbwLltFQo44B1bYUquALswZdBKFfrJCPEnsCOvWkJsPdQYZ/Ukhw8A==", + "requires": { + "b64-lite": "^1.4.0" + } + }, "babel-eslint": { "version": "10.0.3", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", @@ -3038,6 +3230,11 @@ } } }, + "base-64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", + "integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs=" + }, "base64-arraybuffer": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", @@ -3047,8 +3244,7 @@ "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" }, "base64id": { "version": "1.0.0", @@ -3340,6 +3536,12 @@ "isarray": "^1.0.0" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, "buffer-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", @@ -3731,6 +3933,17 @@ "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", "dev": true }, + "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, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, "clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", @@ -3827,6 +4040,12 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "compare-versions": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", + "optional": true + }, "component-bind": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", @@ -4331,6 +4550,12 @@ "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", "dev": true }, + "devtools-protocol": { + "version": "0.0.767361", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.767361.tgz", + "integrity": "sha512-ziRTdhEVQ9jEwedaUaXZ7kl9w9TF/7A3SXQ0XuqrJB+hMS62POHZUWTbumDN2ehRTfvWqTPc2Jw4gUl/jggmHA==", + "dev": true + }, "di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -5286,6 +5511,15 @@ "homedir-polyfill": "^1.0.1" } }, + "expo-random": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-8.2.1.tgz", + "integrity": "sha512-5qcR00xMONKXy6QyNWOcslD0Ka6FYE+5wDLxeG6sZYakBMZ+7CZqXIHU56z2oY3ZjrA6sqy5mJcj1naNOweHMw==", + "optional": true, + "requires": { + "base64-js": "^1.3.0" + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -5485,6 +5719,15 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "figgy-pudding": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", @@ -5804,6 +6047,12 @@ "integrity": "sha512-33X7H/wdfO99GdRLLgkjUrD4geAFdq/Uv0kl3HD4da6HDixd2GUg8Mw7dahLCV9r/EARkmtYBB6Tch4EEokFTQ==", "dev": true }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -7140,6 +7389,30 @@ "through2": "2.X" } }, + "gulp-terser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gulp-terser/-/gulp-terser-1.2.0.tgz", + "integrity": "sha512-lf+jE2DALg2w32p0HRiYMlFYRYelKZPNunHp2pZccCYrrdCLOs0ItbZcN63yr2pbz116IyhUG9mD/QbtRO1FKA==", + "dev": true, + "requires": { + "plugin-error": "^1.0.1", + "terser": "^4.0.0", + "through2": "^3.0.1", + "vinyl-sourcemaps-apply": "^0.2.1" + }, + "dependencies": { + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, "gulp-uglify": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", @@ -7733,7 +8006,6 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -8029,6 +8301,24 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, + "isomorphic-webcrypto": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/isomorphic-webcrypto/-/isomorphic-webcrypto-2.3.6.tgz", + "integrity": "sha512-d1prB3b0UMWOao5DK3+O2Dr5ZJCakzB5Q+2kCWNkNuM9ln7VB8TSw2SwUjbnErzg7cgsYja+VPQaeBtXEojpew==", + "requires": { + "@peculiar/webcrypto": "^1.0.22", + "@unimodules/core": "*", + "@unimodules/react-native-adapter": "*", + "asmcrypto.js": "^0.22.0", + "b64-lite": "^1.3.1", + "b64u-lite": "^1.0.1", + "expo-random": "*", + "msrcrypto": "^1.5.6", + "react-native-securerandom": "^0.1.1", + "str2buf": "^1.3.0", + "webcrypto-shim": "^0.1.4" + } + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -8454,8 +8744,7 @@ "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 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { "version": "3.13.1", @@ -8951,6 +9240,15 @@ "integrity": "sha512-SDgh6V0CUd+7ruL1d3yG6lFzmJNGRNQuEuCYXLaorruNP9nwQfA7hpsp4clx4CbOo5Gsajh3qUOT7CrVStUKMw==", "dev": true }, + "karma-sourcemap-loader": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", + "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, "karma-spec-reporter": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.32.tgz", @@ -8960,6 +9258,28 @@ "colors": "^1.1.2" } }, + "karma-webpack": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-4.0.2.tgz", + "integrity": "sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.1", + "schema-utils": "^1.0.0", + "source-map": "^0.7.3", + "webpack-dev-middleware": "^3.7.0" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, "kew": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", @@ -9121,8 +9441,7 @@ "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash._reinterpolate": { "version": "3.0.0", @@ -9216,7 +9535,6 @@ "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, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -9399,16 +9717,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "requires": { - "mime-db": "1.40.0" + "mime-db": "1.44.0" } }, "mimic-fn": { @@ -9504,6 +9822,12 @@ "minimist": "^1.2.5" } }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, "mocha": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz", @@ -9820,6 +10144,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "msrcrypto": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/msrcrypto/-/msrcrypto-1.5.8.tgz", + "integrity": "sha512-ujZ0TRuozHKKm6eGbKHfXef7f+esIhEckmThVnz7RNyiOJd7a6MXj2JGBoL9cnPDW+JMG16MoTUh5X+XXjI66Q==" + }, "mute-stdout": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", @@ -10360,8 +10689,7 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-component": { "version": "0.0.3", @@ -11195,6 +11523,17 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "optional": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, "propagate": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/propagate/-/propagate-1.0.0.tgz", @@ -11297,6 +11636,130 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, + "puppeteer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.2.0.tgz", + "integrity": "sha512-Hru70mFT+dts5W3l1MVg46EfJiWE63qjmXlDvC2kkCeEzLgt6KrwEkDJcJKKzERTvy9xXhOvjyGNx36fd78mVQ==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "devtools-protocol": "0.0.767361", + "extract-zip": "^2.0.0", + "https-proxy-agent": "^4.0.0", + "mime": "^2.0.3", + "pkg-dir": "^4.2.0", + "progress": "^2.0.1", + "proxy-from-env": "^1.0.0", + "rimraf": "^3.0.2", + "tar-fs": "^2.0.0", + "unbzip2-stream": "^1.3.3", + "ws": "^7.2.3" + }, + "dependencies": { + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "dev": true, + "requires": { + "agent-base": "5", + "debug": "4" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "ws": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", + "dev": true + } + } + }, + "pvtsutils": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.0.11.tgz", + "integrity": "sha512-k040UEiUms7Ey8fwRvCBvlqcuOxK9IMBnnmIijk0jkAs+gdZQkayenRQ1a2Z574i2HyFVyJ+zwomZc5QEjzewg==" + }, + "pvutils": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.0.17.tgz", + "integrity": "sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ==" + }, "qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", @@ -11362,6 +11825,21 @@ "unpipe": "1.0.0" } }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "optional": true + }, + "react-native-securerandom": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/react-native-securerandom/-/react-native-securerandom-0.1.1.tgz", + "integrity": "sha1-8TBiOkEsM4sK+t7bwgTFy7i/IHA=", + "optional": true, + "requires": { + "base64-js": "*" + } + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -11962,6 +12440,15 @@ "safe-buffer": "^5.0.1" } }, + "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, + "requires": { + "kind-of": "^6.0.2" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -12331,9 +12818,9 @@ } }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -12506,6 +12993,11 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "str2buf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/str2buf/-/str2buf-1.3.0.tgz", + "integrity": "sha512-xIBmHIUHYZDP4HyoXGHYNVmxlXLXDrtFHYT0eV6IOdEj3VO9ccaF1Ejl9Oq8iFjITllpT8FhaXb4KsNmw+3EuA==" + }, "stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -12753,10 +13245,81 @@ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, + "tar-fs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", + "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" + }, + "dependencies": { + "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, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "tar-stream": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz", + "integrity": "sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==", + "dev": true, + "requires": { + "bl": "^4.0.1", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "bl": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", + "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "terser": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.4.2.tgz", - "integrity": "sha512-Uufrsvhj9O1ikwgITGsZ5EZS6qPokUOkCegS7fYOdGTv+OA90vndUbU6PEjr5ePqHfNUbGyMO7xyIZv2MhsALQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", "dev": true, "requires": { "commander": "^2.20.0", @@ -13125,6 +13688,28 @@ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", "dev": true }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + }, + "dependencies": { + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + } + } + }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -13521,6 +14106,30 @@ "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true }, + "webcrypto-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.1.2.tgz", + "integrity": "sha512-LxM/dTcXr/ZnwwKLox0tGEOIqvP7KIJ4Hk/fFPX20tr1EgqTmpEFZinmu4FzoGVbs6e4jI1priQKCDrOBD3L6w==", + "requires": { + "@peculiar/asn1-schema": "^2.0.1", + "@peculiar/json-schema": "^1.1.10", + "asn1js": "^2.0.26", + "pvtsutils": "^1.0.10", + "tslib": "^1.11.2" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "webcrypto-shim": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/webcrypto-shim/-/webcrypto-shim-0.1.6.tgz", + "integrity": "sha512-0o612s3S5z3IkDSRghIwd3Ul4X8NRmmZDpt6PWGI9gSM+nygVvrfzGjhIh4vwzlOJxYxS0fcFD1wh3yznuVzFg==" + }, "webpack": { "version": "4.43.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", @@ -13776,6 +14385,45 @@ } } }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + } + } + }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -14169,6 +14817,16 @@ } } }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yeast": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", diff --git a/package.json b/package.json index 7e960fd2e..830d87e19 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pubnub", - "version": "4.28.4", + "version": "4.29.0", "author": "PubNub ", "description": "Publish & Subscribe Real-time Messaging with PubNub", "bin": {}, @@ -9,7 +9,11 @@ "build": "gulp compile", "lint": "eslint \"src/**/*\" --config .eslintrc.yml", "test:node": "mocha --config .mocharc.yml", - "test:objectsv2": "mocha --no-config --require test/setup.js --reporter spec test/dist/objectsv2.test.js", + "test:feature:objectsv2:node": "mocha --no-config --require test/setup.js --reporter spec test/dist/objectsv2.test.js", + "test:feature:fileupload:node": "mocha --no-config --require test/setup.js --reporter spec test/feature/file_upload.node.test.js", + "test:feature:fileupload:web": "karma start karma/chrome.config.js test/feature/file_upload.web.test.js", + "test:crypto:node": "mocha --no-config --require test/setup.js --reporter spec test/crypto/node.test.js", + "test:crypto:web": "karma start karma/chrome.config.js test/crypto/web.test.js", "coverage": "nyc npm run test:node", "codecov": "cat coverage/lcov.info | codecov" }, @@ -36,7 +40,9 @@ "agentkeepalive": "^3.5.2", "cbor-js": "^0.1.0", "cbor-sync": "^1.0.4", + "isomorphic-webcrypto": "^2.3.6", "lil-uuid": "^0.1.1", + "mime-types": "^2.1.27", "superagent": "^3.8.1", "superagent-proxy": "^2.0.0" }, @@ -48,9 +54,11 @@ "@babel/plugin-proposal-optional-chaining": "^7.9.0", "@babel/plugin-transform-flow-strip-types": "^7.7.4", "@babel/plugin-transform-modules-commonjs": "^7.7.5", + "@babel/plugin-transform-runtime": "^7.10.5", "@babel/polyfill": "^7.8.7", "@babel/preset-env": "^7.7.7", "@babel/register": "^7.7.7", + "@babel/runtime": "^7.10.5", "babel-eslint": "^10.0.3", "babel-loader": "^8.0.6", "babel-plugin-add-module-exports": "^1.0.2", @@ -72,6 +80,7 @@ "gulp-mocha": "^7.0.2", "gulp-rename": "^1.4.0", "gulp-sourcemaps": "^2.6.5", + "gulp-terser": "^1.2.0", "gulp-uglify": "^3.0.2", "gulp-unzip": "^1.1.0", "gulp4-run-sequence": "^0.4.0", @@ -86,16 +95,20 @@ "karma-mocha": "^2.0.1", "karma-phantomjs-launcher": "^1.0.4", "karma-sinon-chai": "^2.0.2", + "karma-sourcemap-loader": "^0.3.7", "karma-spec-reporter": "0.0.32", + "karma-webpack": "^4.0.2", "mocha": "^7.1.2", "nock": "^9.6.1", "node-fetch": "^1.7.3", "nyc": "^15.0.1", "phantomjs-prebuilt": "^2.1.16", + "puppeteer": "^5.2.0", "rimraf": "^3.0.2", "sinon": "^7.5.0", "sinon-chai": "^3.3.0", "stats-webpack-plugin": "^0.7.0", + "terser": "^4.8.0", "uglify-js": "^2.8.26", "underscore": "^1.9.2", "webpack": "^4.41.2", @@ -106,5 +119,9 @@ "license": "MIT", "engine": { "node": ">=0.8" + }, + "prettier": { + "singleQuote": true, + "printWidth": 120 } } diff --git a/src/core/components/config.js b/src/core/components/config.js index ad832e6bc..a91f55ac8 100644 --- a/src/core/components/config.js +++ b/src/core/components/config.js @@ -2,12 +2,7 @@ /* global location */ import uuidGenerator from './uuid'; -import { - InternalSetupStruct, - DatabaseInterface, - KeepAliveStruct, - ProxyStruct, -} from '../flow_interfaces'; +import { InternalSetupStruct, DatabaseInterface, KeepAliveStruct, ProxyStruct } from '../flow_interfaces'; const PRESENCE_TIMEOUT_MINIMUM: number = 20; const PRESENCE_TIMEOUT_DEFAULT: number = 300; @@ -142,6 +137,12 @@ export default class { customDecrypt: Function; // function used to decrypt old version messages + // File Upload + + // How many times the publish-file should be retried before giving up + fileUploadPublishRetryLimit: number; + useRandomIVs: boolean; + constructor({ setup, db }: ConfigConstructArgs) { this._PNSDKSuffix = {}; this._db = db; @@ -172,6 +173,9 @@ export default class { this.customEncrypt = setup.customEncrypt; this.customDecrypt = setup.customDecrypt; + this.fileUploadPublishRetryLimit = setup.fileUploadPublishRetryLimit ?? 5; + this.useRandomIVs = setup.useRandomIVs ?? false; + // if location config exist and we are in https, force secure to true. if (typeof location !== 'undefined' && location.protocol === 'https:') { this.secure = true; @@ -181,8 +185,7 @@ export default class { this.suppressLeaveEvents = setup.suppressLeaveEvents || false; this.announceFailedHeartbeats = setup.announceFailedHeartbeats || true; - this.announceSuccessfulHeartbeats = - setup.announceSuccessfulHeartbeats || false; + this.announceSuccessfulHeartbeats = setup.announceSuccessfulHeartbeats || false; this.useInstanceId = setup.useInstanceId || false; this.useRequestId = setup.useRequestId || false; @@ -254,10 +257,7 @@ export default class { this._presenceTimeout = PRESENCE_TIMEOUT_MINIMUM; // eslint-disable-next-line no-console - console.log( - 'WARNING: Presence timeout is less than the minimum. Using minimum value: ', - this._presenceTimeout - ); + console.log('WARNING: Presence timeout is less than the minimum. Using minimum value: ', this._presenceTimeout); } this.setHeartbeatInterval(this._presenceTimeout / 2 - 1); @@ -307,7 +307,7 @@ export default class { } getVersion(): string { - return '4.28.4'; + return '4.29.0'; } _addPnsdkSuffix(name: string, suffix: string) { diff --git a/src/core/components/cryptography/index.js b/src/core/components/cryptography/index.js index 4cc664d56..9f9d0631a 100644 --- a/src/core/components/cryptography/index.js +++ b/src/core/components/cryptography/index.js @@ -3,9 +3,20 @@ import Config from '../config'; import CryptoJS from './hmac-sha256'; +function bufferToWordArray(b: Buffer) { + let wa = []; + let i: number; + for (i = 0; i < b.length; i += 1) { + // eslint-disable-next-line no-bitwise + wa[(i / 4) | 0] |= b[i] << (24 - 8 * i); + } + + return CryptoJS.lib.WordArray.create(wa, b.length); +} + type CryptoConstruct = { config: Config, -} +}; export default class { _config: Config; @@ -28,7 +39,7 @@ export default class { encryptKey: true, keyEncoding: 'utf8', keyLength: 256, - mode: 'cbc' + mode: 'cbc', }; } @@ -93,7 +104,11 @@ export default class { } _getIV(options: Object): string | null { - return (options.mode === 'cbc') ? CryptoJS.enc.Utf8.parse(this._iv) : null; + return options.mode === 'cbc' ? CryptoJS.enc.Utf8.parse(this._iv) : null; + } + + _getRandomIV(): any { + return CryptoJS.lib.WordArray.random(16); } encrypt(data: string, customCipherKey: ?string, options: ?Object): Object | string | null { @@ -115,27 +130,52 @@ export default class { pnEncrypt(data: string, customCipherKey: ?string, options: ?Object): Object | string | null { if (!customCipherKey && !this._config.cipherKey) return data; options = this._parseOptions(options); - let iv = this._getIV(options); let mode = this._getMode(options); let cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); - let encryptedHexArray = CryptoJS.AES.encrypt(data, cipherKey, { iv, mode }).ciphertext; - let base64Encrypted = encryptedHexArray.toString(CryptoJS.enc.Base64); - return base64Encrypted || data; + + if (this._config.useRandomIVs) { + let waIv = this._getRandomIV(); + let waPayload = CryptoJS.AES.encrypt(data, cipherKey, { iv: waIv, mode }).ciphertext; + + return waIv.clone().concat(waPayload.clone()).toString(CryptoJS.enc.Base64); + } else { + let iv = this._getIV(options); + let encryptedHexArray = CryptoJS.AES.encrypt(data, cipherKey, { iv, mode }).ciphertext; + let base64Encrypted = encryptedHexArray.toString(CryptoJS.enc.Base64); + return base64Encrypted || data; + } } - pnDecrypt(data: Object, customCipherKey: ?string, options: ?Object): Object | null { + pnDecrypt(data: string, customCipherKey: ?string, options: ?Object): Object | null { if (!customCipherKey && !this._config.cipherKey) return data; options = this._parseOptions(options); - let iv = this._getIV(options); let mode = this._getMode(options); let cipherKey = this._getPaddedKey(customCipherKey || this._config.cipherKey, options); - try { - let ciphertext = CryptoJS.enc.Base64.parse(data); - let plainJSON = CryptoJS.AES.decrypt({ ciphertext }, cipherKey, { iv, mode }).toString(CryptoJS.enc.Utf8); - let plaintext = JSON.parse(plainJSON); - return plaintext; - } catch (e) { - return null; + if (this._config.useRandomIVs) { + let ciphertext = Buffer.from(data, 'base64'); + + let iv = bufferToWordArray(ciphertext.slice(0, 16)); + let payload = bufferToWordArray(ciphertext.slice(16)); + + try { + let plainJSON = CryptoJS.AES.decrypt({ ciphertext: payload }, cipherKey, { iv, mode }).toString( + CryptoJS.enc.Utf8 + ); + let plaintext = JSON.parse(plainJSON); + return plaintext; + } catch (e) { + return null; + } + } else { + let iv = this._getIV(options); + try { + let ciphertext = CryptoJS.enc.Base64.parse(data); + let plainJSON = CryptoJS.AES.decrypt({ ciphertext }, cipherKey, { iv, mode }).toString(CryptoJS.enc.Utf8); + let plaintext = JSON.parse(plainJSON); + return plaintext; + } catch (e) { + return null; + } } } } diff --git a/src/core/components/endpoint.js b/src/core/components/endpoint.js index b3b1cef69..64e94c978 100644 --- a/src/core/components/endpoint.js +++ b/src/core/components/endpoint.js @@ -4,7 +4,7 @@ import utils from '../utils'; import Config from './config'; import operationConstants from '../constants/operations'; -class PubNubError extends Error { +export class PubNubError extends Error { constructor(message, status) { super(message); this.name = this.constructor.name; @@ -19,7 +19,7 @@ function createError(errorPayload: Object, type: string): Object { return errorPayload; } -function createValidationError(message: string): Object { +export function createValidationError(message: string): Object { return createError({ message }, 'validationError'); } @@ -109,14 +109,17 @@ function signRequest(modules, url, outgoingParams, incomingParams, endpoint) { outgoingParams.signature = signature; } -export default function(modules, endpoint, ...args) { +export default function (modules, endpoint, ...args) { let { networking, config, telemetryManager } = modules; const requestId = uuidGenerator.createUUID(); let callback = null; let promiseComponent = null; let incomingParams = {}; - if (endpoint.getOperation() === operationConstants.PNTimeOperation || endpoint.getOperation() === operationConstants.PNChannelGroupsOperation) { + if ( + endpoint.getOperation() === operationConstants.PNTimeOperation || + endpoint.getOperation() === operationConstants.PNChannelGroupsOperation + ) { callback = args[0]; } else { incomingParams = args[0]; @@ -134,7 +137,9 @@ export default function(modules, endpoint, ...args) { if (callback) { return callback(createValidationError(validationResult)); } else if (promiseComponent) { - promiseComponent.reject(new PubNubError('Validation failed, check status for details', createValidationError(validationResult))); + promiseComponent.reject( + new PubNubError('Validation failed, check status for details', createValidationError(validationResult)) + ); return promiseComponent.promise; } return; @@ -143,10 +148,14 @@ export default function(modules, endpoint, ...args) { let outgoingParams = endpoint.prepareParams(modules, incomingParams); let url = decideURL(endpoint, modules, incomingParams); let callInstance; - let networkingParams = { url, + let networkingParams = { + url, operation: endpoint.getOperation(), timeout: endpoint.getRequestTimeout(modules), - headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {} + headers: endpoint.getRequestHeaders ? endpoint.getRequestHeaders() : {}, + ignoreBody: typeof endpoint.ignoreBody === 'function' ? endpoint.ignoreBody(modules) : false, + forceBuffered: + typeof endpoint.forceBuffered === 'function' ? endpoint.forceBuffered(modules, incomingParams) : null, }; outgoingParams.uuid = config.UUID; @@ -192,13 +201,27 @@ export default function(modules, endpoint, ...args) { // Stop endpoint latency tracking. telemetryManager.stopLatencyMeasure(endpoint.getOperation(), requestId); - let parsedPayload = endpoint.handleResponse(modules, payload, incomingParams); + let responseP = endpoint.handleResponse(modules, payload, incomingParams); - if (callback) { - callback(status, parsedPayload); - } else if (promiseComponent) { - promiseComponent.fulfill(parsedPayload); + if (typeof responseP.then !== 'function') { + responseP = Promise.resolve(responseP); } + + responseP + .then((result) => { + if (callback) { + callback(status, result); + } else if (promiseComponent) { + promiseComponent.fulfill(result); + } + }) + .catch((e) => { + if (callback) { + callback(e, null); + } else if (promiseComponent) { + promiseComponent.reject(new PubNubError('PubNub call failed, check status for details', e)); + } + }); }; // Start endpoint latency tracking. diff --git a/src/core/components/listener_manager.js b/src/core/components/listener_manager.js index 9288c4382..ef33508ef 100644 --- a/src/core/components/listener_manager.js +++ b/src/core/components/listener_manager.js @@ -7,6 +7,7 @@ import { ObjectAnnouncement, CallbackStruct, PresenceAnnouncement, + FileAnnouncement } from '../flow_interfaces'; import categoryConstants from '../constants/categories'; @@ -65,6 +66,12 @@ export default class { }); } + announceFile(announce: FileAnnouncement) { + this._listeners.forEach((listener) => { + if (listener.file) listener.file(announce); + }); + } + announceObjects(announce: ObjectAnnouncement) { this._listeners.forEach((listener) => { if (listener.objects) listener.objects(announce); diff --git a/src/core/components/subscription_manager.js b/src/core/components/subscription_manager.js index 95bccefe5..693b245b2 100644 --- a/src/core/components/subscription_manager.js +++ b/src/core/components/subscription_manager.js @@ -13,6 +13,7 @@ import { SubscribeEnvelope, StatusAnnouncement, PresenceAnnouncement, + FileAnnouncement, } from '../flow_interfaces'; import categoryConstants from '../constants/categories'; @@ -47,6 +48,7 @@ type SubscriptionManagerConstruct = { timeEndpoint: Function, heartbeatEndpoint: Function, setStateEndpoint: Function, + getFileUrl: ({| id: string, name: string, channel: string |}) => string, config: Config, crypto: Crypto, listenerManager: ListenerManager, @@ -62,6 +64,7 @@ export default class { _heartbeatEndpoint: Function; _setStateEndpoint: Function; _subscribeEndpoint: Function; + _getFileUrl: ({| id: string, name: string, channel: string |}) => string; _channels: Object; _presenceChannels: Object; @@ -99,6 +102,7 @@ export default class { heartbeatEndpoint, setStateEndpoint, timeEndpoint, + getFileUrl, config, crypto, listenerManager, @@ -110,6 +114,7 @@ export default class { this._heartbeatEndpoint = heartbeatEndpoint; this._setStateEndpoint = setStateEndpoint; this._subscribeEndpoint = subscribeEndpoint; + this._getFileUrl = getFileUrl; this._crypto = crypto; @@ -188,13 +193,7 @@ export default class { } adaptSubscribeChange(args: SubscribeArgs) { - const { - timetoken, - channels = [], - channelGroups = [], - withPresence = false, - withHeartbeats = false, - } = args; + const { timetoken, channels = [], channelGroups = [], withPresence = false, withHeartbeats = false } = args; if (!this._config.subscribeKey || this._config.subscribeKey === '') { // eslint-disable-next-line @@ -281,16 +280,13 @@ export default class { } if (this._config.suppressLeaveEvents === false && !isOffline) { - this._leaveEndpoint( - { channels: actualChannels, channelGroups: actualChannelGroups }, - (status) => { - status.affectedChannels = actualChannels; - status.affectedChannelGroups = actualChannelGroups; - status.currentTimetoken = this._currentTimetoken; - status.lastTimetoken = this._lastTimetoken; - this._listenerManager.announceStatus(status); - } - ); + this._leaveEndpoint({ channels: actualChannels, channelGroups: actualChannelGroups }, (status) => { + status.affectedChannels = actualChannels; + status.affectedChannelGroups = actualChannelGroups; + status.currentTimetoken = this._currentTimetoken; + status.lastTimetoken = this._lastTimetoken; + this._listenerManager.announceStatus(status); + }); } // if we have nothing to subscribe to, reset the timetoken. @@ -468,31 +464,19 @@ export default class { region: this._region, }; - this._subscribeCall = this._subscribeEndpoint( - subscribeArgs, - this._processSubscribeResponse.bind(this) - ); + this._subscribeCall = this._subscribeEndpoint(subscribeArgs, this._processSubscribeResponse.bind(this)); } - _processSubscribeResponse( - status: StatusAnnouncement, - payload: SubscribeEnvelope - ) { + _processSubscribeResponse(status: StatusAnnouncement, payload: SubscribeEnvelope) { if (status.error) { // if we timeout from server, restart the loop. if (status.category === categoryConstants.PNTimeoutCategory) { this._startSubscribeLoop(); - } else if ( - status.category === categoryConstants.PNNetworkIssuesCategory - ) { + } else if (status.category === categoryConstants.PNNetworkIssuesCategory) { // we lost internet connection, alert the reconnection manager and terminate all loops this.disconnect(); - if ( - status.error && - this._config.autoNetworkDetection && - this._isOnline - ) { + if (status.error && this._config.autoNetworkDetection && this._isOnline) { this._isOnline = false; this._listenerManager.announceNetworkDown(); } @@ -553,13 +537,9 @@ export default class { let messages = payload.messages || []; let { requestMessageCountThreshold, dedupeOnSubscribe } = this._config; - if ( - requestMessageCountThreshold && - messages.length >= requestMessageCountThreshold - ) { + if (requestMessageCountThreshold && messages.length >= requestMessageCountThreshold) { let countAnnouncement: StatusAnnouncement = {}; - countAnnouncement.category = - categoryConstants.PNRequestMessageCountExceededCategory; + countAnnouncement.category = categoryConstants.PNRequestMessageCountExceededCategory; countAnnouncement.operation = status.operation; this._listenerManager.announceStatus(countAnnouncement); } @@ -588,22 +568,15 @@ export default class { // deprecated --> announce.actualChannel = subscriptionMatch != null ? channel : null; - announce.subscribedChannel = - subscriptionMatch != null ? subscriptionMatch : channel; + announce.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; // <-- deprecated if (channel) { - announce.channel = channel.substring( - 0, - channel.lastIndexOf('-pnpres') - ); + announce.channel = channel.substring(0, channel.lastIndexOf('-pnpres')); } if (subscriptionMatch) { - announce.subscription = subscriptionMatch.substring( - 0, - subscriptionMatch.lastIndexOf('-pnpres') - ); + announce.subscription = subscriptionMatch.substring(0, subscriptionMatch.lastIndexOf('-pnpres')); } announce.action = message.payload.action; @@ -695,6 +668,37 @@ export default class { announce.event = message.payload.event; this._listenerManager.announceMessageAction(announce); + } else if (message.messageType === 4) { + // this is a file message + let announce: FileAnnouncement = {}; + announce.channel = channel; + announce.subscription = subscriptionMatch; + announce.timetoken = publishMetaData.publishTimetoken; + announce.publisher = message.issuingClientId; + + let msgPayload = message.payload; + + if (this._config.cipherKey) { + const decryptedPayload = this._crypto.decrypt(message.payload); + + if (typeof decryptedPayload === 'object' && decryptedPayload !== null) { + msgPayload = decryptedPayload; + } + } + + announce.message = msgPayload.message; + + announce.file = { + id: msgPayload.file.id, + name: msgPayload.file.name, + url: this._getFileUrl({ + id: msgPayload.file.id, + name: msgPayload.file.name, + channel, + }), + }; + + this._listenerManager.announceFile(announce); } else { let announce: MessageAnnouncement = {}; announce.channel = null; @@ -702,8 +706,7 @@ export default class { // deprecated --> announce.actualChannel = subscriptionMatch != null ? channel : null; - announce.subscribedChannel = - subscriptionMatch != null ? subscriptionMatch : channel; + announce.subscribedChannel = subscriptionMatch != null ? subscriptionMatch : channel; // <-- deprecated announce.channel = channel; diff --git a/src/core/constants/operations.js b/src/core/constants/operations.js index beff2b2f5..0a4283880 100644 --- a/src/core/constants/operations.js +++ b/src/core/constants/operations.js @@ -34,6 +34,13 @@ export default { PNGetMembershipsOperation: 'PNGetMembershipsOperation', PNUpdateMembershipsOperation: 'PNUpdateMembershipsOperation', + // File Upload API v1 + PNListFilesOperation: 'PNListFilesOperation', + PNGenerateUploadUrlOperation: 'PNGenerateUploadUrlOperation', + PNPublishFileOperation: 'PNPublishFileOperation', + PNGetFileUrlOperation: 'PNGetFileUrlOperation', + PNDownloadFileOperation: 'PNDownloadFileOperation', + // Objects API v2 // UUID PNGetAllUUIDMetadataOperation: 'PNGetAllUUIDMetadataOperation', diff --git a/src/core/endpoints/endpoint.js b/src/core/endpoints/endpoint.js index 7640faa2f..659cd2e2a 100644 --- a/src/core/endpoints/endpoint.js +++ b/src/core/endpoints/endpoint.js @@ -4,17 +4,23 @@ import type Config from '../components/config'; import type Crypto from '../components/cryptography'; import type TokenManager from '../components/token_manager'; import type TelemetryManager from '../components/telemetry_manager'; +import type { FileClass } from '../../file'; +import type { ICryptography } from '../../crypto'; export type Modules = {| config: Config, crypto: Crypto, + cryptography: ICryptography, tokenManager: TokenManager, telemetryManager: TelemetryManager, + networking: any, + PubNubFile: FileClass, |}; export type Record = { [key: string]: any }; -type InjectedFunction = (modules: Modules, ...args: TArgs) => TReturn +type InjectedFunction = (modules: Modules, ...args: TArgs) => TReturn; +type InjectedMaybeAsyncFunction = (modules: Modules, ...args: TArgs) => Promise | TReturn; // endpoint definition structure export type EndpointConfig = {| @@ -28,15 +34,18 @@ export type EndpointConfig = {| getRequestHeaders?: () => Record, getURL?: InjectedFunction<[TParams], string>, - usePost?: InjectedFunction<[TParams], bool>, + usePost?: InjectedFunction<[TParams], boolean>, postURL?: InjectedFunction<[TParams], string>, - usePatch?: InjectedFunction<[TParams], bool>, + usePatch?: InjectedFunction<[TParams], boolean>, patchURL?: InjectedFunction<[TParams], string>, - useDelete?: InjectedFunction<[TParams], bool>, + useDelete?: InjectedFunction<[TParams], boolean>, - isAuthSupported: () => bool, + ignoreBody?: InjectedFunction<[TParams], boolean>, + forceBuffered?: InjectedFunction<[TParams], boolean>, + + isAuthSupported: () => boolean, postPayload?: InjectedFunction<[TParams], any>, patchPayload?: InjectedFunction<[TParams], any>, - handleResponse?: InjectedFunction<[Record, TParams], TResult>, + handleResponse?: InjectedMaybeAsyncFunction<[Record, TParams], TResult>, |}; diff --git a/src/core/endpoints/fetch_messages.js b/src/core/endpoints/fetch_messages.js index 701694af9..9808f14dc 100644 --- a/src/core/endpoints/fetch_messages.js +++ b/src/core/endpoints/fetch_messages.js @@ -72,6 +72,8 @@ export function prepareParams( count, stringifiedTimeToken = false, includeMeta = false, + includeUuid = true, + includeMessageType = true } = incomingParams; let outgoingParams: Object = {}; @@ -80,6 +82,8 @@ export function prepareParams( if (end) outgoingParams.end = end; if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; if (includeMeta) outgoingParams.include_meta = 'true'; + if (includeUuid) outgoingParams.include_uuid = 'true'; + if (includeMessageType) outgoingParams.include_message_type = 'true'; return outgoingParams; } @@ -100,6 +104,8 @@ export function handleResponse( announce.channel = channelName; announce.timetoken = messageEnvelope.timetoken; announce.message = __processMessage(modules, messageEnvelope.message); + announce.messageType = messageEnvelope.message_type; + announce.uuid = messageEnvelope.uuid; if (messageEnvelope.actions) { announce.actions = messageEnvelope.actions; diff --git a/src/core/endpoints/file_upload/delete_file.js b/src/core/endpoints/file_upload/delete_file.js new file mode 100644 index 000000000..515c43ee8 --- /dev/null +++ b/src/core/endpoints/file_upload/delete_file.js @@ -0,0 +1,40 @@ +/** @flow */ + +import type { EndpointConfig } from '../endpoint'; +import operationConstants from '../../constants/operations'; +import type { DeleteFileParams, DeleteFileResult } from './types'; + +const endpoint: EndpointConfig = { + getOperation: () => operationConstants.PNListFilesOperation, + + validateParams: (_, params) => { + if (!params?.channel) { + return "channel can't be empty"; + } + + if (!params?.id) { + return "file id can't be empty"; + } + + if (!params?.name) { + return "file name can't be empty"; + } + }, + + useDelete: () => true, + getURL: ({ config }, params) => `/v1/files/${config.subscribeKey}/channels/${params.channel}/files/${params.id}/${params.name}`, + + getRequestTimeout: ({ config }) => config.getTransactionTimeout(), + + isAuthSupported: () => true, + + getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'), + + prepareParams: () => ({}), + + handleResponse: (_, response): DeleteFileResult => ({ + status: response.status, + }), +}; + +export default endpoint; diff --git a/src/core/endpoints/file_upload/download_file.js b/src/core/endpoints/file_upload/download_file.js new file mode 100644 index 000000000..2057fbaf6 --- /dev/null +++ b/src/core/endpoints/file_upload/download_file.js @@ -0,0 +1,52 @@ +/** @flow */ + +import type { EndpointConfig } from '../endpoint'; +import operationConstants from '../../constants/operations'; +import type { DownloadFileParams, DownloadFileResult } from './types'; + +const endpoint: EndpointConfig = { + getOperation: () => operationConstants.PNDownloadFileOperation, + + validateParams: (_, params) => { + if (!params?.channel) { + return "channel can't be empty"; + } + + if (!params?.name) { + return "name can't be empty"; + } + + if (!params?.id) { + return "id can't be empty"; + } + }, + + getURL: ({ config }, params) => + `/v1/files/${config.subscribeKey}/channels/${params.channel}/files/${params.id}/${params.name}`, + + getRequestTimeout: ({ config }) => config.getTransactionTimeout(), + + isAuthSupported: () => true, + ignoreBody: () => true, + forceBuffered: () => true, + + getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'), + + prepareParams: () => ({}), + + handleResponse: async ({ PubNubFile, config, cryptography }, res, params): Promise => { + let body = res.response.body; + + if (config.cipherKey) { + body = await cryptography.decrypt(params.cipherKey ?? config.cipherKey, body); + } + + return PubNubFile.create({ + data: body, + name: res.response.name ?? params.name, + mimeType: res.response.type, + }); + }, +}; + +export default endpoint; diff --git a/src/core/endpoints/file_upload/generate_upload_url.js b/src/core/endpoints/file_upload/generate_upload_url.js new file mode 100644 index 000000000..a4f7ea1da --- /dev/null +++ b/src/core/endpoints/file_upload/generate_upload_url.js @@ -0,0 +1,42 @@ +/** @flow */ + +import type { EndpointConfig } from '../endpoint'; +import operationConstants from '../../constants/operations'; +import type { GenerateUploadUrlParams, GenerateUploadUrlResult } from './types'; + +const endpoint: EndpointConfig = { + getOperation: () => operationConstants.PNGenerateUploadUrlOperation, + + validateParams: (_, params) => { + if (!params?.channel) { + return 'channel can\'t be empty'; + } + + if (!params?.name) { + return 'name can\'t be empty'; + } + }, + + usePost: () => true, + postURL: ({ config }, params) => `/v1/files/${config.subscribeKey}/channels/${params.channel}/generate-upload-url`, + + postPayload: (_, params) => ({ + name: params.name + }), + + getRequestTimeout: ({ config }) => config.getTransactionTimeout(), + + isAuthSupported: () => true, + + getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'), + + prepareParams: () => ({}), + + handleResponse: (_, response): GenerateUploadUrlResult => ({ + status: response.status, + data: response.data, + file_upload_request: response.file_upload_request, + }), +}; + +export default endpoint; diff --git a/src/core/endpoints/file_upload/get_file_url.js b/src/core/endpoints/file_upload/get_file_url.js new file mode 100644 index 000000000..24ffa4457 --- /dev/null +++ b/src/core/endpoints/file_upload/get_file_url.js @@ -0,0 +1,30 @@ +/** @flow */ + +import { PubNubError, createValidationError } from '../../components/endpoint'; +import type { Modules } from '../endpoint'; +import type { GetFileUrlParams, GetFileUrlResult } from './types'; + +export default ({ config }: Modules, { channel, id, name }: GetFileUrlParams): GetFileUrlResult => { + if (!channel) { + throw new PubNubError( + 'Validation failed, check status for details', + createValidationError("channel can't be empty") + ); + } + + if (!id) { + throw new PubNubError( + 'Validation failed, check status for details', + createValidationError("file id can't be empty") + ); + } + + if (!name) { + throw new PubNubError( + 'Validation failed, check status for details', + createValidationError("file name can't be empty") + ); + } + + return `${config.origin}/v1/files/${config.subscribeKey}/channels/${channel}/files/${id}/${name}`; +}; diff --git a/src/core/endpoints/file_upload/list_files.js b/src/core/endpoints/file_upload/list_files.js new file mode 100644 index 000000000..0c7518dc4 --- /dev/null +++ b/src/core/endpoints/file_upload/list_files.js @@ -0,0 +1,32 @@ +/** @flow */ + +import type { EndpointConfig } from '../endpoint'; +import operationConstants from '../../constants/operations'; +import type { ListFilesParams, ListFilesResult } from './types'; + +const endpoint: EndpointConfig = { + getOperation: () => operationConstants.PNListFilesOperation, + + validateParams: (_, params) => { + if (!params?.channel) { + return 'channel can\'t be empty'; + } + }, + + getURL: ({ config }, params) => `/v1/files/${config.subscribeKey}/channels/${params.channel}/files`, + + getRequestTimeout: ({ config }) => config.getTransactionTimeout(), + + isAuthSupported: () => true, + + getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'), + + prepareParams: () => ({}), + + handleResponse: (_, response): ListFilesResult => ({ + status: response.status, + data: response.data, + }), +}; + +export default endpoint; diff --git a/src/core/endpoints/file_upload/publish_file.js b/src/core/endpoints/file_upload/publish_file.js new file mode 100644 index 000000000..251828403 --- /dev/null +++ b/src/core/endpoints/file_upload/publish_file.js @@ -0,0 +1,81 @@ +/** @flow */ + +import type { EndpointConfig, Modules } from '../endpoint'; +import operationConstants from '../../constants/operations'; +import type { PublishFileParams, PublishFileResult } from './types'; +import utils from '../../utils'; + +const preparePayload = ({ crypto, config }: Modules, payload: any): string => { + let stringifiedPayload = JSON.stringify(payload); + + if (config.cipherKey) { + stringifiedPayload = crypto.encrypt(stringifiedPayload); + stringifiedPayload = JSON.stringify(stringifiedPayload); + } + + return stringifiedPayload || ''; +}; + +const endpoint: EndpointConfig = { + getOperation: () => operationConstants.PNPublishFileOperation, + + validateParams: (_, params) => { + if (!params?.channel) { + return "channel can't be empty"; + } + + if (!params?.fileId) { + return "file id can't be empty"; + } + + if (!params?.fileName) { + return "file name can't be empty"; + } + }, + + getURL: (modules, params) => { + const { publishKey, subscribeKey } = modules.config; + + const message = { + message: params.message, + file: { + name: params.fileName, + id: params.fileId, + }, + }; + + const payload = preparePayload(modules, message); + + return `/v1/files/publish-file/${publishKey}/${subscribeKey}/0/${params.channel}/0/${utils.encodeString(payload)}`; + }, + + getRequestTimeout: ({ config }) => config.getTransactionTimeout(), + + isAuthSupported: () => true, + + getAuthToken: ({ tokenManager }) => tokenManager.getToken('fileUpload'), + + prepareParams: (_, params) => { + const outParams = {}; + + if (params.ttl) { + outParams.ttl = params.ttl; + } + + if (params.store) { + outParams.store = params.store ? '1' : '0'; + } + + if (params.meta && typeof params.meta === 'object') { + outParams.meta = JSON.stringify(params.meta); + } + + return outParams; + }, + + handleResponse: (_, response): PublishFileResult => ({ + timetoken: response['2'], + }), +}; + +export default endpoint; diff --git a/src/core/endpoints/file_upload/send_file.js b/src/core/endpoints/file_upload/send_file.js new file mode 100644 index 000000000..8237e5f7c --- /dev/null +++ b/src/core/endpoints/file_upload/send_file.js @@ -0,0 +1,129 @@ +/** @flow */ + +import { PubNubError, createValidationError } from '../../components/endpoint'; +import type { + SendFileParams, + SendFileResult, + GenerateUploadUrlParams, + GenerateUploadUrlResult, + PublishFileParams, + PublishFileResult, +} from './types'; + +import type { Modules } from '../endpoint'; + +type Dependencies = {| + generateUploadUrl: (params: GenerateUploadUrlParams) => Promise, + publishFile: (params: PublishFileParams) => Promise, + modules: Modules, +|}; + +const sendFile = ({ + generateUploadUrl, + publishFile, + modules: { PubNubFile, config, cryptography, networking }, +}: Dependencies) => async ({ + channel, + file: input, + message, + cipherKey, + meta, + ttl, + store, +}: SendFileParams): Promise => { + if (!channel) { + throw new PubNubError( + 'Validation failed, check status for details', + createValidationError("channel can't be empty") + ); + } + + if (!input) { + throw new PubNubError('Validation failed, check status for details', createValidationError("file can't be empty")); + } + + let file = PubNubFile.create(input); + + const { + file_upload_request: { url, form_fields: formFields }, + data: { id, name }, + } = await generateUploadUrl({ channel, name: file.name }); + + if (cipherKey ?? config.cipherKey) { + file = await cryptography.encryptFile(cipherKey ?? config.cipherKey, file, PubNubFile); + } + + let formFieldsWithMimeType = formFields; + + if (file.mimeType) { + formFieldsWithMimeType = formFields.map((entry) => { + if (entry.key === 'Content-Type') return { key: entry.key, value: file.mimeType ?? '' }; + else return entry; + }); + } + + let result; + + try { + if (typeof Blob !== 'undefined') { + result = await networking.FILE(url, formFieldsWithMimeType, await file.toFile()); + } else { + result = await networking.FILE(url, formFieldsWithMimeType, await file.toBuffer()); + } + } catch (e) { + throw new PubNubError('Upload to bucket failed', e); + } + + if (result.status !== 204) { + throw new PubNubError('Upload to bucket was unsuccessful', result); + } + + let retries = 5; + let wasSuccessful = false; + + while (!wasSuccessful && retries > 0) { + try { + await publishFile({ + channel, + message, + fileId: id, + fileName: name, + meta, + store, + ttl, + }); + + wasSuccessful = true; + } catch (e) { + retries -= 1; + } + } + if (!wasSuccessful) { + throw new PubNubError('Publish failed. You may want to execute that operation manually using pubnub.publishFile', { + channel, + id, + name, + }); + } else { + return { + id, + name, + }; + } +}; + +export default (deps: Dependencies) => { + const f = sendFile(deps); + + return (params: SendFileParams, cb?: (error: any, params: SendFileResult) => void): Promise => { + const resultP = f(params); + + if (typeof cb === 'function') { + resultP.then((result) => cb(null, result)).catch((error) => cb(error, (null: any))); + + return resultP; + } else { + return resultP; + } + }; +}; diff --git a/src/core/endpoints/file_upload/types.js b/src/core/endpoints/file_upload/types.js new file mode 100644 index 000000000..fab4abefc --- /dev/null +++ b/src/core/endpoints/file_upload/types.js @@ -0,0 +1,94 @@ +/** @flow */ + +import type { IFile } from '../../../file'; + +export type FileDescriptor = {| + name: string, + id: string, + size: number, + created: string, +|}; + +export type ListFilesParams = {| + channel: string, +|}; + +export type ListFilesResult = {| + status: number, + data: $ReadOnlyArray, +|}; + +export type GenerateUploadUrlParams = {| + channel: string, + name: string, +|}; + +export type GenerateUploadUrlResult = {| + status: number, + data: { + id: string, + name: string, + }, + file_upload_request: { + url: string, + method: string, + expiration_date: string, + form_fields: Array<{ key: string, value: string }>, + }, +|}; + +export type PublishFileParams = {| + channel: string, + message: any, + fileId: string, + fileName: string, + store?: boolean, + ttl?: number, + meta?: any, +|}; + +export type PublishFileResult = {| + timetoken: string, +|}; + +export type SendFileParams = {| + channel: string, + file: any, + message?: any, + cipherKey?: string, + store?: boolean, + ttl?: number, + meta?: any, +|}; + +export type SendFileResult = {| + id: string, + name: string, +|}; + +export type GetFileUrlParams = {| + channel: string, + id: string, + name: string, +|}; + +export type GetFileUrlResult = string; + +export type DownloadFileParams = {| + cipherKey?: string, + channel: string, + id: string, + name: string, +|}; + +export type DownloadFileResult = IFile; + +export type DeleteFileParams = {| + channel: string, + id: string, + name: string, +|}; + +export type DeleteFileResult = {| + status: number, +|}; diff --git a/src/core/endpoints/history/get_history.js b/src/core/endpoints/history/get_history.js index 7dfe2bd97..bbb921746 100644 --- a/src/core/endpoints/history/get_history.js +++ b/src/core/endpoints/history/get_history.js @@ -65,6 +65,8 @@ export function prepareParams( count = 100, stringifiedTimeToken = false, includeMeta = false, + includeUuid = true, + includeMessageType = true } = incomingParams; let outgoingParams: Object = { include_token: 'true', @@ -76,6 +78,8 @@ export function prepareParams( if (stringifiedTimeToken) outgoingParams.string_message_token = 'true'; if (reverse != null) outgoingParams.reverse = reverse.toString(); if (includeMeta) outgoingParams.include_meta = 'true'; + if (includeUuid) outgoingParams.include_uuid = 'true'; + if (includeMessageType) outgoingParams.include_message_type = 'true'; return outgoingParams; } diff --git a/src/core/endpoints/objects/channel/get.js b/src/core/endpoints/objects/channel/get.js index f0e463d56..9f7c65af6 100644 --- a/src/core/endpoints/objects/channel/get.js +++ b/src/core/endpoints/objects/channel/get.js @@ -35,7 +35,7 @@ const endpoint: EndpointConfig tokenManager.getToken('channel'), prepareParams: (_, params) => ({ - include: (params?.include?.customFields ?? true) && ['custom'], + include: (params?.include?.customFields ?? true) && 'custom', }), handleResponse: (_, response) => ({ diff --git a/src/core/endpoints/objects/channel/get_all.js b/src/core/endpoints/objects/channel/get_all.js index 7177a47f3..44eb14b18 100644 --- a/src/core/endpoints/objects/channel/get_all.js +++ b/src/core/endpoints/objects/channel/get_all.js @@ -23,7 +23,7 @@ export type GetAllChannelMetadataResult = {| data: ChannelMetadata[], totalCount?: number, prev?: string, - next?: string + next?: string, |}; const endpoint: EndpointConfig = { @@ -44,7 +44,7 @@ const endpoint: EndpointConfig tokenManager.getToken('channel'), prepareParams: (_, params) => ({ - include: (params?.include?.customFields ?? true) && ['custom'], + include: (params?.include?.customFields ?? true) && 'custom', }), handleResponse: (_, response) => ({ diff --git a/src/core/endpoints/objects/member/get.js b/src/core/endpoints/objects/member/get.js index 23decd64d..894293d94 100644 --- a/src/core/endpoints/objects/member/get.js +++ b/src/core/endpoints/objects/member/get.js @@ -51,6 +51,8 @@ const endpoint: EndpointConfig = { if (params.include?.UUIDFields ?? true) { queryParams.include.push('uuid'); } + + queryParams.include = queryParams.include.join(','); } if (params?.include?.totalCount) { diff --git a/src/core/endpoints/objects/member/set.js b/src/core/endpoints/objects/member/set.js index 0627f7607..418600a39 100644 --- a/src/core/endpoints/objects/member/set.js +++ b/src/core/endpoints/objects/member/set.js @@ -11,12 +11,14 @@ type CommonParams = { export type RemoveMembersParams = { type: 'delete', uuids: (string | { id: string, custom?: empty })[], -} & CommonParams & PaginatedResultParams; +} & CommonParams & + PaginatedResultParams; export type UpsertMembersParams = { type: 'set', - uuids: (string | { id: string, custom?: any })[] -} & CommonParams & PaginatedResultParams; + uuids: (string | { id: string, custom?: any })[], +} & CommonParams & + PaginatedResultParams; export type SetMembersParams = RemoveMembersParams | UpsertMembersParams; @@ -52,8 +54,8 @@ const endpoint: EndpointConfig = { if (typeof uuid === 'string') { return { uuid: { - id: uuid - } + id: uuid, + }, }; } else { return { @@ -61,7 +63,7 @@ const endpoint: EndpointConfig = { custom: uuid.custom, }; } - }) + }), }), getRequestTimeout: ({ config }) => config.getTransactionTimeout(), @@ -87,6 +89,8 @@ const endpoint: EndpointConfig = { if (params.include?.UUIDFields) { queryParams.include.push('uuid'); } + + queryParams.include = queryParams.include.join(','); } if (params?.include?.totalCount) { diff --git a/src/core/endpoints/objects/membership/get.js b/src/core/endpoints/objects/membership/get.js index b78ead78b..1623eefb7 100644 --- a/src/core/endpoints/objects/membership/get.js +++ b/src/core/endpoints/objects/membership/get.js @@ -50,6 +50,8 @@ const endpoint: EndpointConfig = { if (params.include?.channelFields) { queryParams.include.push('channel'); } + + queryParams.include = queryParams.include.join(','); } if (params?.include?.totalCount) { diff --git a/src/core/endpoints/objects/membership/set.js b/src/core/endpoints/objects/membership/set.js index 81ffe4829..bfce7a73b 100644 --- a/src/core/endpoints/objects/membership/set.js +++ b/src/core/endpoints/objects/membership/set.js @@ -11,12 +11,14 @@ type CommonParams = {| export type RemoveMembershipsParams = {| type: 'delete', channels: (string | { id: string, custom?: empty })[], -|} & CommonParams & PaginatedResultParams; +|} & CommonParams & + PaginatedResultParams; export type UpsertMembershipsParams = {| type: 'set', channels: (string | { id: string, custom?: any })[], -|} & CommonParams & PaginatedResultParams; +|} & CommonParams & + PaginatedResultParams; export type SetMembershipsParams = RemoveMembershipsParams | UpsertMembershipsParams; @@ -39,7 +41,8 @@ const endpoint: EndpointConfig = { usePatch: () => true, - patchURL: ({ config }, params) => `/v2/objects/${config.subscribeKey}/uuids/${params.uuid ?? config.getUUID()}/channels`, + patchURL: ({ config }, params) => + `/v2/objects/${config.subscribeKey}/uuids/${params.uuid ?? config.getUUID()}/channels`, patchPayload: (_, params) => ({ set: [], @@ -48,8 +51,8 @@ const endpoint: EndpointConfig = { if (typeof channel === 'string') { return { channel: { - id: channel - } + id: channel, + }, }; } else { return { @@ -57,7 +60,7 @@ const endpoint: EndpointConfig = { custom: channel.custom, }; } - }) + }), }), getRequestTimeout: ({ config }) => config.getTransactionTimeout(), @@ -83,6 +86,8 @@ const endpoint: EndpointConfig = { if (params.include?.channelFields) { queryParams.include.push('channel'); } + + queryParams.include = queryParams.include.join(','); } if (params?.include?.totalCount) { diff --git a/src/core/endpoints/objects/uuid/get.js b/src/core/endpoints/objects/uuid/get.js index 0fbbbde24..abd5e5bbe 100644 --- a/src/core/endpoints/objects/uuid/get.js +++ b/src/core/endpoints/objects/uuid/get.js @@ -32,7 +32,7 @@ const endpoint: EndpointConfig = { prepareParams: ({ config }, params) => ({ uuid: params?.uuid ?? config.getUUID(), - include: (params?.include?.customFields ?? true) && ['custom'], + include: (params?.include?.customFields ?? true) && 'custom', }), handleResponse: (_, response) => ({ diff --git a/src/core/endpoints/objects/uuid/get_all.js b/src/core/endpoints/objects/uuid/get_all.js index f7cb378a3..4b7dcd128 100644 --- a/src/core/endpoints/objects/uuid/get_all.js +++ b/src/core/endpoints/objects/uuid/get_all.js @@ -23,7 +23,7 @@ export type GetAllUUIDMetadataResult = {| data: UUIDMetadata[], totalCount?: number, prev?: string, - next?: string + next?: string, |}; const endpoint: EndpointConfig = { @@ -44,7 +44,7 @@ const endpoint: EndpointConfig = { prepareParams: ({ config }, params) => ({ uuid: params?.uuid ?? config.getUUID(), - include: (params?.include?.customFields ?? true) && ['custom'], + include: (params?.include?.customFields ?? true) && 'custom', }), handleResponse: (_, response) => ({ diff --git a/src/core/pubnub-common.js b/src/core/pubnub-common.js index f08f07e85..63894b4ed 100644 --- a/src/core/pubnub-common.js +++ b/src/core/pubnub-common.js @@ -36,67 +36,81 @@ import * as addMessageActionEndpointConfig from './endpoints/actions/add_message import * as removeMessageActionEndpointConfig from './endpoints/actions/remove_message_action'; import * as getMessageActionEndpointConfig from './endpoints/actions/get_message_actions'; +// File Upload API v1 + +import { IFile, FileClass } from '../file'; + +import * as fileUploadTypes from './endpoints/file_upload/types'; + +import listFilesEndpointConfig from './endpoints/file_upload/list_files'; +import generateUploadUrlEndpointConfig from './endpoints/file_upload/generate_upload_url'; +import publishFileEndpointConfig from './endpoints/file_upload/publish_file'; +import sendFileFunction from './endpoints/file_upload/send_file'; +import getFileUrlFunction from './endpoints/file_upload/get_file_url'; +import downloadFileEndpointConfig from './endpoints/file_upload/download_file'; +import deleteFileEndpointConfig from './endpoints/file_upload/delete_file'; + // Object API v2 import getAllUUIDMetadataEndpointConfig, { type GetAllUUIDMetadataParams, - type GetAllUUIDMetadataResult + type GetAllUUIDMetadataResult, } from './endpoints/objects/uuid/get_all'; import getUUIDMetadataEndpointConfig, { type GetUUIDMetadataParams, - type GetUUIDMetadataResult + type GetUUIDMetadataResult, } from './endpoints/objects/uuid/get'; import setUUIDMetadataEndpointConfig, { type SetUUIDMetadataParams, - type SetUUIDMetadataResult + type SetUUIDMetadataResult, } from './endpoints/objects/uuid/set'; import removeUUIDMetadataEndpointConfig, { type RemoveUUIDMetadataParams, - type RemoveUUIDMetadataResult + type RemoveUUIDMetadataResult, } from './endpoints/objects/uuid/remove'; import getAllChannelMetadataEndpointConfig, { type GetAllChannelMetadataParams, - type GetAllChannelMetadataResult + type GetAllChannelMetadataResult, } from './endpoints/objects/channel/get_all'; import getChannelMetadataEndpointConfig, { type GetChannelMetadataParams, - type GetChannelMetadataResult + type GetChannelMetadataResult, } from './endpoints/objects/channel/get'; import setChannelMetadataEndpointConfig, { type SetChannelMetadataParams, - type SetChannelMetadataResult + type SetChannelMetadataResult, } from './endpoints/objects/channel/set'; import removeChannelMetadataEndpointConfig, { type RemoveChannelMetadataParams, - type RemoveChannelMetadataResult + type RemoveChannelMetadataResult, } from './endpoints/objects/channel/remove'; import getMembersV2EndpointConfig, { type GetMembersParams, - type GetMembersResult + type GetMembersResult, } from './endpoints/objects/member/get'; import setMembersV2EndpointConfig, { type UpsertMembersParams, type RemoveMembersParams, - type SetMembersResult + type SetMembersResult, } from './endpoints/objects/member/set'; import getMembershipsV2EndpointConfig, { type GetMembershipsParams, - type GetMembershipsResult + type GetMembershipsResult, } from './endpoints/objects/membership/get'; import setMembershipsV2EndpointConfig, { type UpsertMembershipsParams, type RemoveMembershipsParams, - type SetMembershipsResult + type SetMembershipsResult, } from './endpoints/objects/membership/set'; // Objects API @@ -142,8 +156,8 @@ import uuidGenerator from './components/uuid'; type CallbackStatus = {| error: boolean, operation: string, - statusCode: number -|} + statusCode: number, +|}; export default class { _config: Config; @@ -186,26 +200,96 @@ export default class { removeMessageAction: Function; getMessageActions: Function; + // File Upload API v1 + + File: FileClass; + encryptFile: (key: string, file: IFile) => Promise; + decryptFile: (key: string, file: IFile) => Promise; + + listFiles: ( + parameters: fileUploadTypes.ListFilesParams, + callback?: (status: CallbackStatus, result: fileUploadTypes.ListFilesResult) => void + ) => Promise; + sendFile: ( + parameters: fileUploadTypes.SendFileParams, + callback?: (status: CallbackStatus, result: fileUploadTypes.SendFileResult) => void + ) => Promise; + downloadFile: ( + parameters: fileUploadTypes.DownloadFileParams, + callback?: (status: CallbackStatus, result: fileUploadTypes.DownloadFileResult) => void + ) => Promise; + getFileUrl: (parameters: fileUploadTypes.GetFileUrlParams) => fileUploadTypes.GetFileUrlResult; + deleteFile: ( + parameters: fileUploadTypes.DeleteFileParams, + callback?: (status: CallbackStatus, result: fileUploadTypes.DeleteFileResult) => void + ) => Promise; + publishFile: ( + parameters: fileUploadTypes.PublishFileParams, + callback?: (status: CallbackStatus, result: fileUploadTypes.PublishFileResult) => void + ) => Promise; + // Objects API v2 objects: { - getAllUUIDMetadata: (parameters?: GetAllUUIDMetadataParams, cb?: (status: CallbackStatus, result: GetAllUUIDMetadataResult) => void) => Promise, - getUUIDMetadata: (parameters?: GetUUIDMetadataParams, cb?: (status: CallbackStatus, result: GetUUIDMetadataResult) => void) => Promise, - setUUIDMetadata: (parameters: SetUUIDMetadataParams, cb?: (status: CallbackStatus, result: SetUUIDMetadataResult) => void) => Promise, - removeUUIDMetadata: (parameters?: RemoveUUIDMetadataParams, cb?: (status: CallbackStatus, result: RemoveUUIDMetadataResult) => void) => Promise, - - getAllChannelMetadata: (parameters?: GetAllChannelMetadataParams, cb?: (status: CallbackStatus, result: GetAllChannelMetadataResult) => void) => Promise, - getChannelMetadata: (parameters: GetChannelMetadataParams, cb?: (status: CallbackStatus, result: GetChannelMetadataResult) => void) => Promise, - setChannelMetadata: (parameters: SetChannelMetadataParams, cb?: (status: CallbackStatus, result: SetChannelMetadataResult) => void) => Promise, - removeChannelMetadata: (parameters: RemoveChannelMetadataParams, cb?: (status: CallbackStatus, result: RemoveChannelMetadataResult) => void) => Promise, - - getMemberships: (parameters: GetMembershipsParams, cb?: (status: CallbackStatus, result: GetMembershipsResult) => void) => Promise, - setMemberships: (parameters: $Diff, cb?: (status: CallbackStatus, result: SetMembershipsResult) => void) => Promise, - removeMemberships: (parameters: $Diff, cb?: (status: CallbackStatus, result: SetMembershipsResult) => void) => Promise, - - getChannelMembers: (parameters: GetMembersParams, cb?: (status: CallbackStatus, result: GetMembersResult) => void) => Promise, - setChannelMembers: (parameters: $Diff, cb?: (status: CallbackStatus, result: SetMembersResult) => void) => Promise, - removeChannelMembers: (parameters: $Diff, cb?: (status: CallbackStatus, result: SetMembersResult) => void) => Promise, + getAllUUIDMetadata: ( + parameters?: GetAllUUIDMetadataParams, + cb?: (status: CallbackStatus, result: GetAllUUIDMetadataResult) => void + ) => Promise, + getUUIDMetadata: ( + parameters?: GetUUIDMetadataParams, + cb?: (status: CallbackStatus, result: GetUUIDMetadataResult) => void + ) => Promise, + setUUIDMetadata: ( + parameters: SetUUIDMetadataParams, + cb?: (status: CallbackStatus, result: SetUUIDMetadataResult) => void + ) => Promise, + removeUUIDMetadata: ( + parameters?: RemoveUUIDMetadataParams, + cb?: (status: CallbackStatus, result: RemoveUUIDMetadataResult) => void + ) => Promise, + + getAllChannelMetadata: ( + parameters?: GetAllChannelMetadataParams, + cb?: (status: CallbackStatus, result: GetAllChannelMetadataResult) => void + ) => Promise, + getChannelMetadata: ( + parameters: GetChannelMetadataParams, + cb?: (status: CallbackStatus, result: GetChannelMetadataResult) => void + ) => Promise, + setChannelMetadata: ( + parameters: SetChannelMetadataParams, + cb?: (status: CallbackStatus, result: SetChannelMetadataResult) => void + ) => Promise, + removeChannelMetadata: ( + parameters: RemoveChannelMetadataParams, + cb?: (status: CallbackStatus, result: RemoveChannelMetadataResult) => void + ) => Promise, + + getMemberships: ( + parameters: GetMembershipsParams, + cb?: (status: CallbackStatus, result: GetMembershipsResult) => void + ) => Promise, + setMemberships: ( + parameters: $Diff, + cb?: (status: CallbackStatus, result: SetMembershipsResult) => void + ) => Promise, + removeMemberships: ( + parameters: $Diff, + cb?: (status: CallbackStatus, result: SetMembershipsResult) => void + ) => Promise, + + getChannelMembers: ( + parameters: GetMembersParams, + cb?: (status: CallbackStatus, result: GetMembersResult) => void + ) => Promise, + setChannelMembers: ( + parameters: $Diff, + cb?: (status: CallbackStatus, result: SetMembersResult) => void + ) => Promise, + removeChannelMembers: ( + parameters: $Diff, + cb?: (status: CallbackStatus, result: SetMembersResult) => void + ) => Promise, }; // Objects API @@ -272,14 +356,31 @@ export default class { let { db, networking, cbor } = setup; const config = (this._config = new Config({ setup, db })); - const crypto = new Crypto({ config }); + const crypto = new Crypto({ config }); // LEGACY + + const cryptography = setup.cryptography; networking.init(config); const tokenManager = (this._tokenManager = new TokenManager(config, cbor)); - const telemetryManager = (this._telemetryManager = new TelemetryManager({ maximumSamplesCount: 60000 })); + const telemetryManager = (this._telemetryManager = new TelemetryManager({ + maximumSamplesCount: 60000, + })); + + let modules = { + config, + networking, + crypto, + cryptography, + tokenManager, + telemetryManager, + PubNubFile: setup.PubNubFile, + }; + + this.File = setup.PubNubFile; - let modules = { config, networking, crypto, tokenManager, telemetryManager }; + this.encryptFile = (key, file) => cryptography.encryptFile(key, file, this.File); + this.decryptFile = (key, file) => cryptography.decryptFile(key, file, this.File); const timeEndpoint = endpointCreator.bind(this, modules, timeEndpointConfig); const leaveEndpoint = endpointCreator.bind(this, modules, presenceLeaveEndpointConfig); @@ -299,6 +400,7 @@ export default class { crypto: modules.crypto, config: modules.config, listenerManager, + getFileUrl: (params) => getFileUrlFunction(modules, params), }); this.addListener = listenerManager.addListener.bind(listenerManager); @@ -360,6 +462,25 @@ export default class { this.getMessageActions = endpointCreator.bind(this, modules, getMessageActionEndpointConfig); + // File Upload API v1 + + this.listFiles = endpointCreator.bind(this, modules, listFilesEndpointConfig); + + const generateUploadUrl = endpointCreator.bind(this, modules, generateUploadUrlEndpointConfig); + this.publishFile = endpointCreator.bind(this, modules, publishFileEndpointConfig); + + this.sendFile = sendFileFunction({ + generateUploadUrl, + publishFile: this.publishFile, + modules, + }); + + this.getFileUrl = (params) => getFileUrlFunction(modules, params); + + this.downloadFile = endpointCreator.bind(this, modules, downloadFileEndpointConfig); + + this.deleteFile = endpointCreator.bind(this, modules, deleteFileEndpointConfig); + // Objects API v2 this.objects = { @@ -374,24 +495,52 @@ export default class { removeChannelMetadata: endpointCreator.bind(this, modules, removeChannelMetadataEndpointConfig), getChannelMembers: endpointCreator.bind(this, modules, getMembersV2EndpointConfig), - setChannelMembers: (parameters: $Diff, ...rest) => endpointCreator.call(this, modules, setMembersV2EndpointConfig, { - type: 'set', - ...parameters, - }, ...rest), - removeChannelMembers: (parameters: $Diff, ...rest) => endpointCreator.call(this, modules, setMembersV2EndpointConfig, { - type: 'delete', - ...parameters, - }, ...rest), + setChannelMembers: (parameters: $Diff, ...rest) => + endpointCreator.call( + this, + modules, + setMembersV2EndpointConfig, + { + type: 'set', + ...parameters, + }, + ...rest + ), + removeChannelMembers: (parameters: $Diff, ...rest) => + endpointCreator.call( + this, + modules, + setMembersV2EndpointConfig, + { + type: 'delete', + ...parameters, + }, + ...rest + ), getMemberships: endpointCreator.bind(this, modules, getMembershipsV2EndpointConfig), - setMemberships: (parameters: $Diff, ...rest) => endpointCreator.call(this, modules, setMembershipsV2EndpointConfig, { - type: 'set', - ...parameters, - }, ...rest), - removeMemberships: (parameters: $Diff, ...rest) => endpointCreator.call(this, modules, setMembershipsV2EndpointConfig, { - type: 'delete', - ...parameters, - }, ...rest) + setMemberships: (parameters: $Diff, ...rest) => + endpointCreator.call( + this, + modules, + setMembershipsV2EndpointConfig, + { + type: 'set', + ...parameters, + }, + ...rest + ), + removeMemberships: (parameters: $Diff, ...rest) => + endpointCreator.call( + this, + modules, + setMembershipsV2EndpointConfig, + { + type: 'delete', + ...parameters, + }, + ...rest + ), }; // Objects API diff --git a/src/crypto/index.js b/src/crypto/index.js new file mode 100644 index 000000000..700835a44 --- /dev/null +++ b/src/crypto/index.js @@ -0,0 +1,13 @@ +/** @flow */ + +import type { IFile, FileClass } from '../file'; + +export interface ICryptography { + +algo: string; + + encrypt(key: string, plaintext: T): Promise; + decrypt(key: string, ciphertext: T): Promise; + + encryptFile(key: string, file: IFile, File: FileClass): Promise; + decryptFile(key: string, file: IFile, File: FileClass): Promise; +} diff --git a/src/crypto/modules/node.js b/src/crypto/modules/node.js new file mode 100644 index 000000000..6b37e0540 --- /dev/null +++ b/src/crypto/modules/node.js @@ -0,0 +1,183 @@ +/** @flow */ +import { Readable, PassThrough } from 'stream'; +import { createCipheriv, createDecipheriv, createHash, randomBytes } from 'crypto'; + +import type { ICryptography } from '../'; +import type { IFile, FileClass } from '../../file'; + +export default class NodeCryptography implements ICryptography { + static IV_LENGTH = 16; + + get algo() { + return 'aes-256-cbc'; + } + + async encrypt(key: string, input: Buffer | Readable | string): Promise { + const bKey = this.getKey(key); + if (input instanceof Buffer) { + return this.encryptBuffer(bKey, input); + } else if (input instanceof Readable) { + return this.encryptStream(bKey, input); + } else if (typeof input === 'string') { + return this.encryptString(bKey, input); + } else { + throw new Error('Unsupported input format'); + } + } + + async decrypt(key: string, input: Buffer | Readable | string): Promise { + const bKey = this.getKey(key); + if (input instanceof Buffer) { + return this.decryptBuffer(bKey, input); + } else if (input instanceof Readable) { + return this.decryptStream(bKey, input); + } else if (typeof input === 'string') { + return this.decryptString(bKey, input); + } else { + throw new Error('Unsupported input format'); + } + } + + async encryptFile(key: string, file: IFile, File: FileClass): Promise { + const bKey = this.getKey(key); + + if (file.data instanceof Buffer) { + return File.create({ + name: file.name, + mimeType: 'application/octet-stream', + data: await this.encryptBuffer(bKey, file.data), + }); + } else if (file.data instanceof Readable) { + return File.create({ + name: file.name, + mimeType: 'application/octet-stream', + stream: await this.encryptStream(bKey, file.data), + }); + } else { + throw new Error('Cannot encrypt this file. In Node.js file encryption supports only string, Buffer or Stream.'); + } + } + + async decryptFile(key: string, file: IFile, File: FileClass): Promise { + const bKey = this.getKey(key); + + if (file.data instanceof Buffer) { + return File.create({ + name: file.name, + data: await this.decryptBuffer(bKey, file.data), + }); + } else if (file.data instanceof Readable) { + return File.create({ + name: file.name, + stream: await this.decryptStream(bKey, file.data), + }); + } else { + throw new Error('Cannot decrypt this file. In Node.js file decryption supports only string, Buffer or Stream.'); + } + } + + getKey(key: string): Buffer { + const sha = createHash('sha256'); + + sha.update(Buffer.from(key, 'utf8')); + + return Buffer.from(sha.digest('hex').slice(0, 32), 'utf8'); + } + + getIv(): Buffer { + return randomBytes(NodeCryptography.IV_LENGTH); + } + + encryptString(key: Buffer, plaintext: string): string { + const bIv = this.getIv(); + + const bPlaintext = Buffer.from(plaintext); + + const aes = createCipheriv(this.algo, key, bIv); + + return Buffer.concat([bIv, aes.update(bPlaintext), aes.final()]).toString('utf8'); + } + + decryptString(key: Buffer, sCiphertext: string): string { + const ciphertext = Buffer.from(sCiphertext); + const bIv = ciphertext.slice(0, NodeCryptography.IV_LENGTH); + const bCiphertext = ciphertext.slice(NodeCryptography.IV_LENGTH); + + const aes = createDecipheriv(this.algo, key, bIv); + + return Buffer.concat([aes.update(bCiphertext), aes.final()]).toString('utf8'); + } + + encryptBuffer(key: Buffer, plaintext: Buffer): Buffer { + const bIv = this.getIv(); + + const aes = createCipheriv(this.algo, key, bIv); + + return Buffer.concat([bIv, aes.update(plaintext), aes.final()]); + } + + decryptBuffer(key: Buffer, ciphertext: Buffer): Buffer { + const bIv = ciphertext.slice(0, NodeCryptography.IV_LENGTH); + const bCiphertext = ciphertext.slice(NodeCryptography.IV_LENGTH); + + const aes = createDecipheriv(this.algo, key, bIv); + + return Buffer.concat([aes.update(bCiphertext), aes.final()]); + } + + encryptStream(key: Buffer, stream: Readable): Readable { + const output = new PassThrough(); + const bIv = this.getIv(); + + const aes = createCipheriv(this.algo, key, bIv); + + output.write(bIv); + stream.pipe(aes).pipe(output); + + return output; + } + + decryptStream(key: Buffer, stream: Readable): Readable { + const output = new PassThrough(); + + let bIv = Buffer.alloc(0); + let aes = null; + + const getIv = () => { + let data = stream.read(); + + while (data !== null) { + if (data) { + let bChunk = Buffer.from(data); + let sliceLen = NodeCryptography.IV_LENGTH - bIv.byteLength; + + if (bChunk.byteLength < sliceLen) { + bIv = Buffer.concat([bIv, bChunk]); + } else { + bIv = Buffer.concat([bIv, bChunk.slice(0, sliceLen)]); + + aes = createDecipheriv(this.algo, key, bIv); + + aes.pipe(output); + + aes.write(bChunk.slice(sliceLen)); + } + } + + data = stream.read(); + } + }; + + stream.on('readable', getIv); + + stream.on('end', () => { + if (aes) { + aes.end(); + } + + output.end(); + }); + + return output; + } +} diff --git a/src/crypto/modules/web.js b/src/crypto/modules/web.js new file mode 100644 index 000000000..86a9b3fa1 --- /dev/null +++ b/src/crypto/modules/web.js @@ -0,0 +1,120 @@ +/** @flow */ + +import crypto, { type $CryptoKey } from 'isomorphic-webcrypto'; + +import type { ICryptography } from '../'; +import type { IFile, FileClass } from '../../file'; + +function concatArrayBuffer(ab1: ArrayBuffer, ab2: ArrayBuffer): ArrayBuffer { + const tmp = new Uint8Array(ab1.byteLength + ab2.byteLength); + + tmp.set(new Uint8Array(ab1), 0); + tmp.set(new Uint8Array(ab2), ab1.byteLength); + + return tmp.buffer; +} + +export default class WebCryptography implements ICryptography { + static IV_LENGTH = 16; + + get algo() { + return 'aes-256-cbc'; + } + + async encrypt(key: string, input: ArrayBuffer | string): Promise { + const cKey = await this.getKey(key); + + if (input instanceof ArrayBuffer) { + return this.encryptArrayBuffer(cKey, input); + } else if (typeof input === 'string') { + return this.encryptString(cKey, input); + } else { + throw new Error('Cannot encrypt this file. In browsers file encryption supports only string or ArrayBuffer'); + } + } + + async decrypt(key: string, input: ArrayBuffer | string): Promise { + const cKey = await this.getKey(key); + + if (input instanceof ArrayBuffer) { + return this.decryptArrayBuffer(cKey, input); + } else if (typeof input === 'string') { + return this.decryptString(cKey, input); + } else { + throw new Error('Cannot decrypt this file. In browsers file decryption supports only string or ArrayBuffer'); + } + } + + async encryptFile(key: string, file: IFile, File: FileClass): Promise { + const bKey = await this.getKey(key); + + const abPlaindata = await file.toArrayBuffer(); + + const abCipherdata = await this.encryptArrayBuffer(bKey, abPlaindata); + + return File.create({ + name: file.name, + mimeType: 'application/octet-stream', + data: abCipherdata, + }); + } + + async decryptFile(key: string, file: IFile, File: FileClass): Promise { + const bKey = await this.getKey(key); + + const abCipherdata = await file.toArrayBuffer(); + + const abPlaindata = await this.decryptArrayBuffer(bKey, abCipherdata); + + if (file.data instanceof ArrayBuffer) { + return File.create({ + name: file.name, + data: abPlaindata, + }); + } else { + throw new Error('Cannot decrypt this file. In browser environment file decryption supports only ArrayBuffer.'); + } + } + + async getKey(key: string): Promise<$CryptoKey> { + const bKey = Buffer.from(key); + const abHash = await crypto.subtle.digest('SHA-256', bKey.buffer); + + const abKey = Buffer.from(Buffer.from(abHash).toString('hex').slice(0, 32), 'utf8').buffer; + + return crypto.subtle.importKey('raw', abKey, 'AES-CBC', true, ['encrypt', 'decrypt']); + } + + async encryptArrayBuffer(key: $CryptoKey, plaintext: ArrayBuffer) { + const abIv = crypto.getRandomValues(new Uint8Array(16)); + + return concatArrayBuffer(abIv.buffer, await crypto.subtle.encrypt({ name: 'AES-CBC', iv: abIv }, key, plaintext)); + } + + async decryptArrayBuffer(key: $CryptoKey, ciphertext: ArrayBuffer) { + const abIv = ciphertext.slice(0, 16); + + return crypto.subtle.decrypt({ name: 'AES-CBC', iv: abIv }, key, ciphertext.slice(16)); + } + + async encryptString(key: $CryptoKey, plaintext: string) { + const abIv = crypto.getRandomValues(new Uint8Array(16)); + + const abPlaintext = Buffer.from(plaintext).buffer; + const abPayload = await crypto.subtle.encrypt({ name: 'AES-CBC', iv: abIv }, key, abPlaintext); + + const ciphertext = concatArrayBuffer(abIv.buffer, abPayload); + + return Buffer.from(ciphertext).toString('utf8'); + } + + async decryptString(key: $CryptoKey, ciphertext: string) { + const abCiphertext = Buffer.from(ciphertext); + const abIv = abCiphertext.slice(0, 16); + const abPayload = abCiphertext.slice(16); + + const abPlaintext = await crypto.subtle.decrypt({ name: 'AES-CBC', iv: abIv }, key, abPayload); + + return Buffer.from(abPlaintext).toString('utf8'); + } +} diff --git a/src/file/index.js b/src/file/index.js new file mode 100644 index 000000000..b98407517 --- /dev/null +++ b/src/file/index.js @@ -0,0 +1,26 @@ +/** @flow */ + +import type { Readable } from 'stream'; + +export interface IFile { + data: any; + + name: string; + mimeType: string; + + toStream(): Promise; + toArrayBuffer(): Promise; + toBuffer(): Promise; + toString(encoding: buffer$NonBufferEncoding): Promise; + toFile(): Promise; +} + +export interface FileClass { + supportsFile: boolean; + supportsBuffer: boolean; + supportsStream: boolean; + supportsString: boolean; + supportsArrayBuffer: boolean; + + create(input: any): IFile; +} diff --git a/src/file/modules/node.js b/src/file/modules/node.js new file mode 100644 index 000000000..db1de61c8 --- /dev/null +++ b/src/file/modules/node.js @@ -0,0 +1,133 @@ +/** @flow */ + +import { lookup } from 'mime-types'; + +import { Readable, PassThrough } from 'stream'; +import { ReadStream } from 'fs'; +import { basename } from 'path'; + +import { IFile, FileClass } from '../'; + +type PubNubFileNodeConstructor = {| + stream?: Readable, + data?: string | Buffer, + encoding?: string, + name?: string, + mimeType?: string, +|}; + +type PubNubFileNodeSupportedInputType = Readable | Buffer | string; + +const PubNubFile: FileClass = class PubNubFile implements IFile { + static supportsFile = false; + static supportsBuffer = typeof Buffer !== 'undefined'; + static supportsStream = true; + static supportsString = true; + static supportsArrayBuffer = false; + + data: PubNubFileNodeSupportedInputType; + + name: string; + mimeType: string; + + static create(config: PubNubFileNodeConstructor) { + return new this(config); + } + + constructor({ stream, data, encoding, name, mimeType }: PubNubFileNodeConstructor) { + if (stream instanceof Readable) { + this.data = stream; + + if (stream instanceof ReadStream) { + // $FlowFixMe: incomplete flow node definitions + this.name = basename(stream.path); + // $FlowFixMe: incomplete flow node definitions + this.mimeType = lookup(stream.path); + } + } else if (data instanceof Buffer) { + this.data = Buffer.from(data); + } else if (typeof data === 'string') { + // $FlowFixMe: incomplete flow node definitions + this.data = Buffer.from(data, encoding ?? 'utf8'); + } + + if (name) { + this.name = basename(name); + this.mimeType = lookup(name); + } + + if (mimeType) { + this.mimeType = mimeType; + } + + if (this.data === undefined) { + throw new Error("Couldn't construct a file out of supplied options."); + } + + if (this.name === undefined) { + throw new Error("Couldn't guess filename out of the options. Please provide one."); + } + } + + toBuffer(): Promise { + if (this.data instanceof Buffer) { + return Promise.resolve(Buffer.from(this.data)); + } + + if (this.data instanceof Readable) { + const stream = this.data; + return new Promise((resolve, reject) => { + const chunks = []; + + stream.on('data', (chunk) => chunks.push(chunk)); + stream.once('error', reject); + stream.once('end', () => { + resolve(Buffer.concat(chunks)); + }); + }); + } + + if (typeof this.data === 'string') { + return Promise.resolve(Buffer.from(this.data)); + } + + throw new Error("Can't cast to 'buffer'."); + } + + async toArrayBuffer() { + throw new Error('This feature is only supported in browser environments.'); + } + + async toString(encoding: buffer$NonBufferEncoding = 'utf8') { + const buffer = await this.toBuffer(); + + return buffer.toString(encoding); + } + + async toStream() { + if (!(this.data instanceof Readable)) { + const input = this.data; + + return new Readable({ + read() { + this.push(Buffer.from(input)); + this.push(null); + }, + }); + } + + const stream = new PassThrough(); + + if (this.data instanceof Readable) { + this.data.pipe(stream); + } + + return stream; + } + + async toFile() { + throw new Error('This feature is only supported in browser environments.'); + } +}; + +export default PubNubFile; diff --git a/src/file/modules/web.js b/src/file/modules/web.js new file mode 100644 index 000000000..adb4d9873 --- /dev/null +++ b/src/file/modules/web.js @@ -0,0 +1,114 @@ +/** @flow */ + +import { lookup } from 'mime-types'; + +import { IFile, FileClass } from '../'; + +type PubNubFileWebConstructor = + | File + | {| + data: string, + name: string, + mimeType: string, + |} + | {| + data: ArrayBuffer, + name: string, + mimeType: string, + |}; + +const PubNubFile: FileClass = class PubNubFile implements IFile { + static supportsFile = typeof File !== 'undefined'; + static supportsArrayBuffer = true; + static supportsBuffer = false; + static supportsStream = false; + static supportsString = true; + + static create(config: PubNubFileWebConstructor) { + return new this(config); + } + + data: any; + + name: string; + mimeType: string; + + constructor(config: PubNubFileWebConstructor) { + if (config instanceof File) { + this.data = config; + + this.name = this.data.name; + this.mimeType = this.data.type; + } else if (config.data) { + let contents = config.data; + + this.data = new File([contents], config.name, { type: config.mimeType }); + + this.name = config.name; + + if (config.mimeType) { + this.mimeType = config.mimeType; + } else { + this.mimeType = lookup(this.name); + } + } + + if (this.data === undefined) { + throw new Error("Couldn't construct a file out of supplied options."); + } + + if (this.name === undefined) { + throw new Error("Couldn't guess filename out of the options. Please provide one."); + } + } + + async toBuffer() { + throw new Error('This feature is only supported in Node.js environments.'); + } + + async toStream() { + throw new Error('This feature is only supported in Node.js environments.'); + } + + async toArrayBuffer() { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + + reader.addEventListener('load', () => { + if (reader.result instanceof ArrayBuffer) { + return resolve(reader.result); + } + }); + + reader.addEventListener('error', () => { + reject(reader.error); + }); + + reader.readAsArrayBuffer(this.data); + }); + } + + async toString() { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + + reader.addEventListener('load', () => { + if (typeof reader.result === 'string') { + return resolve(reader.result); + } + }); + + reader.addEventListener('error', () => { + reject(reader.error); + }); + + reader.readAsBinaryString(this.data); + }); + } + + async toFile() { + return this.data; + } +}; + +export default PubNubFile; diff --git a/src/networking/index.js b/src/networking/index.js index 59bae4fc7..8d8543183 100644 --- a/src/networking/index.js +++ b/src/networking/index.js @@ -34,8 +34,7 @@ export default class { this._maxSubDomain = 20; this._currentSubDomain = Math.floor(Math.random() * this._maxSubDomain); - this._providedFQDN = - (this._config.secure ? 'https://' : 'http://') + this._config.origin; + this._providedFQDN = (this._config.secure ? 'https://' : 'http://') + this._config.origin; this._coreParams = {}; // create initial origins @@ -58,10 +57,7 @@ export default class { newSubDomain = this._currentSubDomain.toString(); - return this._providedFQDN.replace( - 'ps.pndsn.com', - `ps${newSubDomain}.pndsn.com` - ); + return this._providedFQDN.replace('ps.pndsn.com', `ps${newSubDomain}.pndsn.com`); } hasModule(name: string) { @@ -79,21 +75,15 @@ export default class { return this._standardOrigin; } - POST( - params: Object, - body: string, - endpoint: EndpointDefinition, - callback: Function - ) { + FILE(url: string, fields: $ReadOnlyArray<{ key: string, value: string }>, file: any) { + return this._modules.file(url, fields, file); + } + + POST(params: Object, body: string, endpoint: EndpointDefinition, callback: Function) { return this._modules.post(params, body, endpoint, callback); } - PATCH( - params: Object, - body: string, - endpoint: EndpointDefinition, - callback: Function - ) { + PATCH(params: Object, body: string, endpoint: EndpointDefinition, callback: Function) { return this._modules.patch(params, body, endpoint, callback); } @@ -119,10 +109,7 @@ export default class { return categoryConstants.PNNetworkIssuesCategory; } - if ( - err.status === 0 || - (err.hasOwnProperty('status') && typeof err.status === 'undefined') - ) { + if (err.status === 0 || (err.hasOwnProperty('status') && typeof err.status === 'undefined')) { return categoryConstants.PNNetworkIssuesCategory; } if (err.timeout) return categoryConstants.PNTimeoutCategory; diff --git a/src/networking/modules/web-node.js b/src/networking/modules/web-node.js index 27d39a80b..c00e168d1 100644 --- a/src/networking/modules/web-node.js +++ b/src/networking/modules/web-node.js @@ -2,10 +2,7 @@ /* global window */ import superagent from 'superagent'; -import { - EndpointDefinition, - StatusAnnouncement, -} from '../../core/flow_interfaces'; +import { EndpointDefinition, StatusAnnouncement } from '../../core/flow_interfaces'; function log(req: Object) { let _pickLogger = () => { @@ -27,24 +24,12 @@ function log(req: Object) { let timestampDone = new Date().toISOString(); logger.log('>>>>>>'); // eslint-disable-line no-console - logger.log( - `[${timestampDone} / ${elapsed}]`, - '\n', - req.url, - '\n', - req.qs, - '\n', - res.text - ); // eslint-disable-line no-console + logger.log(`[${timestampDone} / ${elapsed}]`, '\n', req.url, '\n', req.qs, '\n', res.text); // eslint-disable-line no-console logger.log('-----'); // eslint-disable-line no-console }); } -function xdr( - superagentConstruct: superagent, - endpoint: EndpointDefinition, - callback: Function -): Object { +function xdr(superagentConstruct: superagent, endpoint: EndpointDefinition, callback: Function): Object { if (this._config.logVerbosity) { superagentConstruct = superagentConstruct.use(log); } @@ -57,7 +42,19 @@ function xdr( superagentConstruct = this._modules.keepAlive(superagentConstruct); } - return superagentConstruct.timeout(endpoint.timeout).end((err, resp) => { + let sc = superagentConstruct; + + if (endpoint.forceBuffered === true) { + if (typeof Blob === 'undefined') { + sc = sc.buffer().responseType('arraybuffer'); + } else { + sc = sc.responseType('arraybuffer'); + } + } else if (endpoint.forceBuffered === false) { + sc = sc.buffer(false); + } + + return sc.timeout(endpoint.timeout).end((err, resp) => { let parsedResponse; let status: StatusAnnouncement = {}; status.error = err !== null; @@ -81,12 +78,20 @@ function xdr( return callback(status, null); } - try { - parsedResponse = JSON.parse(resp.text); - } catch (e) { - status.errorData = resp; - status.error = true; - return callback(status, null); + if (endpoint.ignoreBody) { + parsedResponse = { + headers: resp.headers, + redirects: resp.redirects, + response: resp, + }; + } else { + try { + parsedResponse = JSON.parse(resp.text); + } catch (e) { + status.errorData = resp; + status.error = true; + return callback(status, null); + } } if ( @@ -109,11 +114,25 @@ function xdr( }); } -export function get( - params: Object, - endpoint: EndpointDefinition, - callback: Function -): superagent { +export async function file( + url: string, + fields: $ReadOnlyArray<{ key: string, value: string }>, + fileInput: any +): Promise { + let agent = superagent.post(url); + + fields.forEach(({ key, value }) => { + agent = agent.field(key, value); + }); + + agent.attach('file', fileInput, { contentType: 'application/octet-stream' }); + + const result = await agent; + + return result; +} + +export function get(params: Object, endpoint: EndpointDefinition, callback: Function): superagent { let superagentConstruct = superagent .get(this.getStandardOrigin() + endpoint.url) .set(endpoint.headers) @@ -121,12 +140,7 @@ export function get( return xdr.call(this, superagentConstruct, endpoint, callback); } -export function post( - params: Object, - body: string, - endpoint: EndpointDefinition, - callback: Function -): superagent { +export function post(params: Object, body: string, endpoint: EndpointDefinition, callback: Function): superagent { let superagentConstruct = superagent .post(this.getStandardOrigin() + endpoint.url) .query(params) @@ -135,12 +149,7 @@ export function post( return xdr.call(this, superagentConstruct, endpoint, callback); } -export function patch( - params: Object, - body: string, - endpoint: EndpointDefinition, - callback: Function -): superagent { +export function patch(params: Object, body: string, endpoint: EndpointDefinition, callback: Function): superagent { let superagentConstruct = superagent .patch(this.getStandardOrigin() + endpoint.url) .query(params) @@ -149,11 +158,7 @@ export function patch( return xdr.call(this, superagentConstruct, endpoint, callback); } -export function del( - params: Object, - endpoint: EndpointDefinition, - callback: Function -): superagent { +export function del(params: Object, endpoint: EndpointDefinition, callback: Function): superagent { let superagentConstruct = superagent .delete(this.getStandardOrigin() + endpoint.url) .set(endpoint.headers) diff --git a/src/node/index.js b/src/node/index.js index 959703267..96f1c9545 100755 --- a/src/node/index.js +++ b/src/node/index.js @@ -5,17 +5,23 @@ import PubNubCore from '../core/pubnub-common'; import Networking from '../networking'; import Database from '../db/common'; import Cbor from '../cbor/common'; -import { del, get, patch, post } from '../networking/modules/web-node'; +import { del, get, patch, post, file } from '../networking/modules/web-node'; import { keepAlive, proxy } from '../networking/modules/node'; import { InternalSetupStruct } from '../core/flow_interfaces'; +import NodeCryptography from '../crypto/modules/node'; +import PubNubFile from '../file/modules/node'; + export default class extends PubNubCore { constructor(setup: InternalSetupStruct) { setup.db = new Database(); - setup.cbor = new Cbor(CborReader.decode, (base64String) => new Buffer.from(base64String, 'base64')); - setup.networking = new Networking({ keepAlive, del, get, post, patch, proxy }); + setup.cbor = new Cbor(CborReader.decode, (base64String) => Buffer.from(base64String, 'base64')); + setup.networking = new Networking({ keepAlive, del, get, post, patch, proxy, file }); setup.sdkFamily = 'Nodejs'; + setup.PubNubFile = PubNubFile; + setup.cryptography = new NodeCryptography(); + if (!('ssl' in setup)) { setup.ssl = true; } diff --git a/src/web/index.js b/src/web/index.js index 003fb12ef..b1d3ce088 100644 --- a/src/web/index.js +++ b/src/web/index.js @@ -8,9 +8,12 @@ import Networking from '../networking'; import CryptoJS from '../core/components/cryptography/hmac-sha256'; import db from '../db/web'; import Cbor from '../cbor/common'; -import { del, get, post, patch } from '../networking/modules/web-node'; +import { del, get, post, patch, file } from '../networking/modules/web-node'; import { InternalSetupStruct } from '../core/flow_interfaces'; +import WebCryptography from '../crypto/modules/web'; +import PubNubFile from '../file/modules/web'; + function sendBeacon(url: string) { if (navigator && navigator.sendBeacon) { navigator.sendBeacon(url); @@ -33,7 +36,7 @@ function base64ToBinary(base64String: string) { view[byteOffset] = (word & 0xff000000) >> 24; view[byteOffset + 1] = (word & 0x00ff0000) >> 16; view[byteOffset + 2] = (word & 0x0000ff00) >> 8; - view[byteOffset + 3] = (word & 0x000000ff); + view[byteOffset + 3] = word & 0x000000ff; } for (let byteIdx = byteOffset + 3; byteIdx >= byteOffset; byteIdx -= 1) { @@ -67,14 +70,14 @@ function stringifyBufferKeys(obj) { let stringifiedKey = key; let value = obj[key]; - if (Array.isArray(key) || keyIsString && key.indexOf(',') >= 0) { + if (Array.isArray(key) || (keyIsString && key.indexOf(',') >= 0)) { const bytes: Array = keyIsString ? key.split(',') : key; stringifiedKey = bytes.reduce((string, byte) => { - string += (String.fromCharCode(byte)); + string += String.fromCharCode(byte); return string; }, ''); - } else if (isNumber(key) || keyIsString && !isNaN(key)) { + } else if (isNumber(key) || (keyIsString && !isNaN(key))) { stringifiedKey = String.fromCharCode(keyIsString ? parseInt(key, 10) : 10); } @@ -91,9 +94,12 @@ export default class extends PubNubCore { setup.db = db; setup.sdkFamily = 'Web'; - setup.networking = new Networking({ del, get, post, patch, sendBeacon }); + setup.networking = new Networking({ del, get, post, patch, sendBeacon, file }); setup.cbor = new Cbor((arrayBuffer) => stringifyBufferKeys(CborReader.decode(arrayBuffer)), base64ToBinary); + setup.PubNubFile = PubNubFile; + setup.cryptography = new WebCryptography(); + super(setup); if (listenToBrowserNetworkEvents) { diff --git a/test/feature/file_upload.node.test.js b/test/feature/file_upload.node.test.js new file mode 100644 index 000000000..f623be595 --- /dev/null +++ b/test/feature/file_upload.node.test.js @@ -0,0 +1,146 @@ +/** @flow */ + +import util from 'util'; +import { Readable } from 'stream'; + +import PubNub from '../../src/node'; + +import fs from 'fs'; + +describe('File Upload API v1 tests', () => { + const SUBSCRIBE_KEY = 'demo-36'; + const PUBLISH_KEY = 'demo-36'; + + const TEST_PREFIX = 'javascript-fileUploadApiV1-tests'; + const UUID = `${TEST_PREFIX}-main`; + const UUID_1 = `${TEST_PREFIX}-uuid-1`; + + const CHANNEL_1 = `demo-channel`; + + const FILE_1 = `${TEST_PREFIX}-file-1`; + + let pubnub = new PubNub({ + subscribeKey: SUBSCRIBE_KEY, + publishKey: PUBLISH_KEY, + }); + + describe('with encryption', () => { + pubnub = new PubNub({ + subscribeKey: SUBSCRIBE_KEY, + publishKey: PUBLISH_KEY, + uuid: UUID, + cipherKey: 'abcdef', + // logVerbosity: true, + }); + + runTests(pubnub); + }); + + describe('without encryption', () => { + pubnub = new PubNub({ + subscribeKey: SUBSCRIBE_KEY, + publishKey: PUBLISH_KEY, + uuid: UUID, + }); + + runTests(pubnub); + }); + + function runTests(pubnub) { + it('should export File class in PubNub instance', async () => { + expect(pubnub.File).to.exist; + }); + + it('should handle node.js streams', async () => { + const testFile = fs.createReadStream(`${__dirname}/input.json`); + + const result = await pubnub.sendFile({ + channel: CHANNEL_1, + message: { test: 'message', value: 42 }, + file: { stream: testFile, name: 'input.json' }, + }); + + expect(result.name).to.equal('input.json'); + + const file = await pubnub.downloadFile({ ...result, channel: CHANNEL_1 }); + + const output = await file.toBuffer(); + + const testFileBuffer = fs.readFileSync(`${__dirname}/input.json`); + + expect(output.toString('utf8')).to.equal(testFileBuffer.toString('utf8')); + }).timeout(20000); + + it('should handle node.js buffers', async () => { + const testContent = `Hello world! ${new Date().toLocaleString()}`; + + const result = await pubnub.sendFile({ + message: { myMessage: 42 }, + channel: CHANNEL_1, + file: { data: Buffer.from(testContent), name: 'myFile.txt', mimeType: 'text/plain' }, + }); + + expect(result.name).to.equal('myFile.txt'); + + const file = await pubnub.downloadFile({ + channel: CHANNEL_1, + id: result.id, + name: result.name, + }); + + const output = await file.toBuffer(); + + expect(output.toString('utf8')).to.equal(testContent); + }).timeout(10000); + + let fileId; + let fileName; + + it('should handle strings', (done) => { + const testContent = `Hello world! ${new Date().toLocaleString()}`; + + pubnub.sendFile( + { + channel: CHANNEL_1, + file: { data: testContent, name: 'someFile.txt', mimeType: 'text/plain' }, + }, + (err, result) => { + expect(err).to.be.null; + + expect(result.name).to.equal('someFile.txt'); + + pubnub.downloadFile( + { + channel: CHANNEL_1, + id: result.id, + name: result.name, + }, + (err2, file) => { + fileId = result.id; + fileName = result.name; + + const output = file.toString('utf8').then((output) => { + expect(output).to.equal(testContent); + + done(); + }); + } + ); + } + ); + }).timeout(10000); + + it('should list all available files on a channel', async () => { + const result = await pubnub.listFiles({ channel: CHANNEL_1 }); + + expect(result.status).to.equal(200); + expect(result.data).to.have.length.greaterThan(0); + }); + + it('should handle file delete', async () => { + const result = await pubnub.deleteFile({ channel: CHANNEL_1, id: fileId, name: fileName }); + + expect(result.status).to.equal(200); + }); + } +}); diff --git a/test/feature/file_upload.web.test.js b/test/feature/file_upload.web.test.js new file mode 100644 index 000000000..7d8a9c71b --- /dev/null +++ b/test/feature/file_upload.web.test.js @@ -0,0 +1,164 @@ +/** @flow */ + +import PubNub from '../../src/web/index'; + +function urlToFile(url, filename, mimeType) { + return fetch(url) + .then(function (res) { + return res.arrayBuffer(); + }) + .then(function (buf) { + return new File([buf], filename, { type: mimeType }); + }); +} + +describe('test', () => { + const SUBSCRIBE_KEY = 'demo-36'; + const PUBLISH_KEY = 'demo-36'; + + const TEST_PREFIX = 'javascript-fileUploadApiV1-tests'; + const UUID = `${TEST_PREFIX}-main`; + const UUID_1 = `${TEST_PREFIX}-uuid-1`; + + const CHANNEL_1 = `demo-channel`; + + const FILE_1 = `${TEST_PREFIX}-file-1`; + + let pubnub: PubNub; + + after(() => { + pubnub.unsubscribeAll(); + pubnub.destroy(); + }); + + describe('with encryption', () => { + pubnub = new PubNub({ + subscribeKey: SUBSCRIBE_KEY, + publishKey: PUBLISH_KEY, + uuid: UUID, + cipherKey: 'abcdef', + }); + + runTests(pubnub); + }); + + describe('without encryption', () => { + pubnub = new PubNub({ + subscribeKey: SUBSCRIBE_KEY, + publishKey: PUBLISH_KEY, + uuid: UUID, + }); + + runTests(pubnub); + }); + + function runTests(pubnub) { + it('should export File class in PubNub instance', async () => { + expect(pubnub.File).to.exist; + }); + + it('should handle File interface with text files', async () => { + const fileContent = 'Hello world!'; + const testFile = new File([fileContent], 'myFile.txt', { + type: 'text/plain', + }); + + const result = await pubnub.sendFile({ + channel: CHANNEL_1, + message: { test: 'message', value: 42 }, + file: testFile, + }); + + expect(result.name).to.equal('myFile.txt'); + + const pubnubFile = await pubnub.downloadFile({ ...result, channel: CHANNEL_1 }); + const file = await pubnubFile.toFile(); + + await new Promise(async (resolve) => { + const fr = new FileReader(); + + fr.addEventListener('load', () => { + expect(fr.result).to.equal(fileContent); + resolve(); + }); + + fr.readAsBinaryString(file); + }); + }).timeout(20000); + + it('should handle File interface with images', async () => { + const contents = 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='; + const inputFile = await urlToFile(`data:image/png;base64,${contents}`, 'myFile.png', 'image/png'); + + const result = await pubnub.sendFile({ + channel: CHANNEL_1, + file: inputFile, + }); + + expect(result.name).to.equal('myFile.png'); + + const pubnubFile = await pubnub.downloadFile({ + channel: CHANNEL_1, + id: result.id, + name: result.name, + }); + + const outputFile = await pubnubFile.toFile(); + + await new Promise(async (resolve) => { + const fr = new FileReader(); + + fr.addEventListener('load', () => { + if (pubnub._config.cipherKey) { + expect(fr.result).to.equal(`data:application/octet-stream;base64,${contents}`); + } else { + expect(fr.result).to.equal(`data:image/png;base64,${contents}`); + } + resolve(); + }); + + fr.readAsDataURL(outputFile); + }); + }).timeout(20000); + + let fileId; + let fileName; + + it('should handle strings', async () => { + const testContent = `Hello world! ${new Date().toLocaleString()}`; + + const result = await pubnub.sendFile({ + channel: CHANNEL_1, + file: { data: testContent, name: 'someFile.txt', mimeType: 'text/plain' }, + }); + + expect(result.name).to.equal('someFile.txt'); + + const file = await pubnub.downloadFile({ + channel: CHANNEL_1, + id: result.id, + name: result.name, + }); + + fileId = result.id; + fileName = result.name; + + const output = await file.toString('utf8'); + + expect(output).to.equal(testContent); + }).timeout(10000); + + it('should list all available files on a channel', async () => { + const result = await pubnub.listFiles({ channel: CHANNEL_1 }); + + expect(result.status).to.equal(200); + expect(result.data).to.have.length.greaterThan(0); + }); + + it('should handle file delete', async () => { + const result = await pubnub.deleteFile({ channel: CHANNEL_1, id: fileId, name: fileName }); + + expect(result.status).to.equal(200); + }); + } +}); diff --git a/test/feature/input.json b/test/feature/input.json new file mode 100644 index 000000000..f6d62486a --- /dev/null +++ b/test/feature/input.json @@ -0,0 +1,3 @@ +{ + "hello": "world!" +} \ No newline at end of file diff --git a/test/integration/components/crypto.test.js b/test/integration/components/crypto.test.js new file mode 100644 index 000000000..d0748900d --- /dev/null +++ b/test/integration/components/crypto.test.js @@ -0,0 +1,25 @@ +/** @flow */ + +import PubNub from '../../../src/node'; + +describe('components/crypto useRandomIVs', () => { + const pubnub = new PubNub({ + subscribeKey: 'demo-36', + publishKey: 'demo-36', + useRandomIVs: true, + cipherKey: 'abcdef', + }); + + it('should be able to encrypt and decrypt a message', () => { + const data = { + message: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.', + }; + const plaintext = JSON.stringify(data); + const ciphertext = pubnub.encrypt(plaintext); + + const decrypted = pubnub.decrypt(ciphertext); + + expect(decrypted).to.deep.equal(data); + }); +}); diff --git a/test/integration/endpoints/fetch_messages.test.js b/test/integration/endpoints/fetch_messages.test.js index 4850e1737..5ee927856 100644 --- a/test/integration/endpoints/fetch_messages.test.js +++ b/test/integration/endpoints/fetch_messages.test.js @@ -38,11 +38,25 @@ function publishMessagesToChannel(client: PubNub, count: Number, channel: String publish(publishCompleted); } -function addActionsInChannel(client: PubNub, count: Number, messageTimetokens: Array, channel: String, completion: Function) { +function addActionsInChannel( + client: PubNub, + count: Number, + messageTimetokens: Array, + channel: String, + completion: Function +) { const types = ['reaction', 'receipt', 'custom']; const values = [ - PubNub.generateUUID(), PubNub.generateUUID(), PubNub.generateUUID(), PubNub.generateUUID(), PubNub.generateUUID(), - PubNub.generateUUID(), PubNub.generateUUID(), PubNub.generateUUID(), PubNub.generateUUID(), PubNub.generateUUID() + PubNub.generateUUID(), + PubNub.generateUUID(), + PubNub.generateUUID(), + PubNub.generateUUID(), + PubNub.generateUUID(), + PubNub.generateUUID(), + PubNub.generateUUID(), + PubNub.generateUUID(), + PubNub.generateUUID(), + PubNub.generateUUID(), ]; let actionsToAdd = []; let actionsAdded = 0; @@ -62,31 +76,27 @@ function addActionsInChannel(client: PubNub, count: Number, messageTimetokens: A const addAction = (actionIdx) => { const { messageTimetoken, action } = actionsToAdd[actionIdx]; - client.addMessageAction( - { channel, messageTimetoken, action }, - (status, response) => { - actionsAdded += 1; + client.addMessageAction({ channel, messageTimetoken, action }, (status, response) => { + actionsAdded += 1; - if (!status.error) { - actions.push(response.data); - actions = actions.sort((left, right) => left.actionTimetoken - right.actionTimetoken); - } else { - console.error('Action add did fail:', status); - } + if (!status.error) { + actions.push(response.data); + actions = actions.sort((left, right) => left.actionTimetoken - right.actionTimetoken); + } else { + console.error('Action add did fail:', status); + } - if (actionsAdded < actionsToAdd.length) { - addAction(actionsAdded); - } else if (actionsAdded === actionsToAdd.length) { - completion(actions); - } + if (actionsAdded < actionsToAdd.length) { + addAction(actionsAdded); + } else if (actionsAdded === actionsToAdd.length) { + completion(actions); } - ); + }); }; addAction(actionsAdded); } - describe('fetch messages endpoints', () => { const subscribeKey = process.env.SUBSCRIBE_KEY || 'demo'; const publishKey = process.env.PUBLISH_KEY || 'demo'; @@ -121,56 +131,63 @@ describe('fetch messages endpoints', () => { max: '10', pnsdk: `PubNub-JS-Nodejs/${pubnub.getVersion()}`, uuid: 'myUUID', + include_uuid: 'true', + include_message_type: 'true', }) .reply( 200, '{ "channels": { "ch1": [{"message":{"text":"hey1"},"timetoken":"11"}, {"message":{"text":"hey2"},"timetoken":"12"}], "ch2": [{"message":{"text":"hey3"},"timetoken":"21"}, {"message":{"text":"hey2"},"timetoken":"22"}] } }' ); - pubnub.fetchMessages( - { channels: ['ch1', 'ch2'], count: 10 }, - (status, response) => { - assert.equal(status.error, false); - assert.deepEqual(response, { - channels: { - ch1: [ - { - channel: 'ch1', - message: { - text: 'hey1', - }, - timetoken: '11', + pubnub.fetchMessages({ channels: ['ch1', 'ch2'], count: 10 }, (status, response) => { + assert.equal(status.error, false); + assert.deepEqual(response, { + channels: { + ch1: [ + { + channel: 'ch1', + message: { + text: 'hey1', }, - { - channel: 'ch1', - message: { - text: 'hey2', - }, - timetoken: '12', + timetoken: '11', + messageType: undefined, + uuid: undefined, + }, + { + channel: 'ch1', + message: { + text: 'hey2', }, - ], - ch2: [ - { - channel: 'ch2', - message: { - text: 'hey3', - }, - timetoken: '21', + timetoken: '12', + messageType: undefined, + uuid: undefined, + }, + ], + ch2: [ + { + channel: 'ch2', + message: { + text: 'hey3', }, - { - channel: 'ch2', - message: { - text: 'hey2', - }, - timetoken: '22', + timetoken: '21', + messageType: undefined, + uuid: undefined, + }, + { + channel: 'ch2', + message: { + text: 'hey2', }, - ], - }, - }); - assert.equal(scope.isDone(), true); - done(); - } - ); + timetoken: '22', + messageType: undefined, + uuid: undefined, + }, + ], + }, + }); + assert.equal(scope.isDone(), true); + done(); + }); }); it('supports encrypted payload', (done) => { @@ -182,6 +199,8 @@ describe('fetch messages endpoints', () => { max: '10', pnsdk: `PubNub-JS-Nodejs/${pubnub.getVersion()}`, uuid: 'myUUID', + include_uuid: 'true', + include_message_type: 'true', }) .reply( 200, @@ -189,50 +208,55 @@ describe('fetch messages endpoints', () => { ); pubnub.setCipherKey('cipherKey'); - pubnub.fetchMessages( - { channels: ['ch1', 'ch2'], count: 10 }, - (status, response) => { - assert.equal(status.error, false); - assert.deepEqual(response, { - channels: { - ch1: [ - { - channel: 'ch1', - message: { - text: 'hey', - }, - timetoken: '11', + pubnub.fetchMessages({ channels: ['ch1', 'ch2'], count: 10 }, (status, response) => { + assert.equal(status.error, false); + assert.deepEqual(response, { + channels: { + ch1: [ + { + channel: 'ch1', + message: { + text: 'hey', }, - { - channel: 'ch1', - message: { - text: 'hey', - }, - timetoken: '12', + timetoken: '11', + messageType: undefined, + uuid: undefined, + }, + { + channel: 'ch1', + message: { + text: 'hey', }, - ], - ch2: [ - { - channel: 'ch2', - message: { - text2: 'hey2', - }, - timetoken: '21', + timetoken: '12', + messageType: undefined, + uuid: undefined, + }, + ], + ch2: [ + { + channel: 'ch2', + message: { + text2: 'hey2', }, - { - channel: 'ch2', - message: { - text2: 'hey2', - }, - timetoken: '22', + timetoken: '21', + messageType: undefined, + uuid: undefined, + }, + { + channel: 'ch2', + message: { + text2: 'hey2', }, - ], - }, - }); - assert.equal(scope.isDone(), true); - done(); - } - ); + timetoken: '22', + messageType: undefined, + uuid: undefined, + }, + ], + }, + }); + assert.equal(scope.isDone(), true); + done(); + }); }); it('supports metadata', (done) => { @@ -254,19 +278,19 @@ describe('fetch messages endpoints', () => { let errorCatched = false; try { - pubnub.fetchMessages( - { channels: ['channelA', 'channelB'], includeMessageActions: true }, - () => {} - ); + pubnub.fetchMessages({ channels: ['channelA', 'channelB'], includeMessageActions: true }, () => {}); } catch (error) { - assert.equal(error.message, 'History can return actions data for a single channel only. Either pass a single channel or disable the includeMessageActions flag.'); + assert.equal( + error.message, + 'History can return actions data for a single channel only. Either pass a single channel or disable the includeMessageActions flag.' + ); errorCatched = true; } assert(errorCatched); }); - it('supports actions (stored as \'data\' field)', (done) => { + it("supports actions (stored as 'data' field)", (done) => { const channel = PubNub.generateUUID(); const expectedMessagesCount = 2; const expectedActionsCount = 4; @@ -299,7 +323,10 @@ describe('fetch messages endpoints', () => { assert.equal(historyActionsCount, expectedActionsCount); assert.equal(fetchedMessages[0].timetoken, messageTimetokens[0]); - assert.equal(fetchedMessages[fetchedMessages.length - 1].timetoken, messageTimetokens[messageTimetokens.length - 1]); + assert.equal( + fetchedMessages[fetchedMessages.length - 1].timetoken, + messageTimetokens[messageTimetokens.length - 1] + ); done(); }); @@ -308,7 +335,7 @@ describe('fetch messages endpoints', () => { }); }).timeout(60000); - it('supports actions (stored as \'actions\' field)', (done) => { + it("supports actions (stored as 'actions' field)", (done) => { const channel = PubNub.generateUUID(); const expectedMessagesCount = 2; const expectedActionsCount = 4; @@ -341,7 +368,10 @@ describe('fetch messages endpoints', () => { assert.equal(historyActionsCount, expectedActionsCount); assert.equal(fetchedMessages[0].timetoken, messageTimetokens[0]); - assert.equal(fetchedMessages[fetchedMessages.length - 1].timetoken, messageTimetokens[messageTimetokens.length - 1]); + assert.equal( + fetchedMessages[fetchedMessages.length - 1].timetoken, + messageTimetokens[messageTimetokens.length - 1] + ); done(); }); @@ -358,16 +388,18 @@ describe('fetch messages endpoints', () => { const average = Math.floor(countedDelays.reduce((acc, delay) => acc + delay, 0) / countedDelays.length); const leeway = 50; - utils.runAPIWithResponseDelays(scope, - 200, - '{ "channels": { "ch1": [{"message":{"text":"hey1"},"timetoken":"11"}, {"message":{"text":"hey2"},"timetoken":"12"}], "ch2": [{"message":{"text":"hey3"},"timetoken":"21"}, {"message":{"text":"hey2"},"timetoken":"22"}] } }', - delays, - (completion) => { - pubnub.fetchMessages( - { channels: ['ch1', 'ch2'], count: 10 }, - () => { completion(); } - ); - }) + utils + .runAPIWithResponseDelays( + scope, + 200, + '{ "channels": { "ch1": [{"message":{"text":"hey1"},"timetoken":"11"}, {"message":{"text":"hey2"},"timetoken":"12"}], "ch2": [{"message":{"text":"hey3"},"timetoken":"21"}, {"message":{"text":"hey2"},"timetoken":"22"}] } }', + delays, + (completion) => { + pubnub.fetchMessages({ channels: ['ch1', 'ch2'], count: 10 }, () => { + completion(); + }); + } + ) .then((lastRequest) => { utils.verifyRequestTelemetry(lastRequest.path, 'l_hist', average, leeway); done(); diff --git a/test/integration/endpoints/history.test.js b/test/integration/endpoints/history.test.js index a97dfb884..be4a22ed8 100644 --- a/test/integration/endpoints/history.test.js +++ b/test/integration/endpoints/history.test.js @@ -75,6 +75,8 @@ describe('history endpoints', () => { pnsdk: `PubNub-JS-Nodejs/${pubnub.getVersion()}`, uuid: 'myUUID', string_message_token: true, + include_uuid: 'true', + include_message_type: 'true', }) .reply( 200, @@ -108,6 +110,8 @@ describe('history endpoints', () => { pnsdk: `PubNub-JS-Nodejs/${pubnub.getVersion()}`, uuid: 'myUUID', string_message_token: true, + include_uuid: 'true', + include_message_type: 'true', }) .reply( 200, diff --git a/webpack.config.common.js b/webpack.config.common.js index 2c9830236..1a94c0969 100644 --- a/webpack.config.common.js +++ b/webpack.config.common.js @@ -1,24 +1,20 @@ let config = { mode: 'production', optimization: { - minimize: false + minimize: false, }, module: { rules: [ - { - test: /\.json/, - use: 'json-loader' - }, { test: /\.js$/, exclude: /(node_modules|bower_components)/, use: { loader: 'babel-loader', options: { - presets: ['@babel/preset-env'] - } - } - } + presets: ['@babel/preset-env'], + }, + }, + }, ], }, node: { @@ -28,7 +24,7 @@ let config = { formidable: 'empty', }, externals: [], - profile: true + profile: true, }; module.exports = config;