├── .npmignore ├── .gitignore ├── examples ├── furioos-sdk-js-cdn-example │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── server.js │ ├── index.html │ ├── index.js │ └── package-lock.json └── furioos-sdk-js-npm-example │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── index.html │ ├── server.js │ ├── index.js │ └── package-lock.json ├── .DS_Store ├── .docs ├── .DS_Store └── assets │ ├── .DS_Store │ ├── debug-mode.png │ ├── SDK Example 1.jpg │ ├── sdk-ui-example.png │ └── SDKs_Communication.jpg ├── index.js ├── index.webpack.js ├── package.json ├── classes ├── SDKDebug.js └── Player.js ├── dist └── furioos.bundle.js ├── READMEV1.md └── README.md /.npmignore: -------------------------------------------------------------------------------- 1 | examples/* -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /examples/furioos-sdk-js-cdn-example/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/furioos-sdk-js/HEAD/.DS_Store -------------------------------------------------------------------------------- /examples/furioos-sdk-js-npm-example/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | indexBrowserified.js 3 | -------------------------------------------------------------------------------- /.docs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/furioos-sdk-js/HEAD/.docs/.DS_Store -------------------------------------------------------------------------------- /.docs/assets/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/furioos-sdk-js/HEAD/.docs/assets/.DS_Store -------------------------------------------------------------------------------- /.docs/assets/debug-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/furioos-sdk-js/HEAD/.docs/assets/debug-mode.png -------------------------------------------------------------------------------- /.docs/assets/SDK Example 1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/furioos-sdk-js/HEAD/.docs/assets/SDK Example 1.jpg -------------------------------------------------------------------------------- /.docs/assets/sdk-ui-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/furioos-sdk-js/HEAD/.docs/assets/sdk-ui-example.png -------------------------------------------------------------------------------- /.docs/assets/SDKs_Communication.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/furioos-sdk-js/HEAD/.docs/assets/SDKs_Communication.jpg -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const { Player, FS_QUALITY_VALUES, FS_SDK_EVENTS_NAME, FS_REGIONS, QUALITY_VALUES } = require("./classes/Player.js"); 2 | 3 | module.exports = { 4 | Player, 5 | FS_SDK_EVENTS_NAME, 6 | FS_QUALITY_VALUES, 7 | FS_REGIONS, 8 | QUALITY_VALUES, 9 | } 10 | -------------------------------------------------------------------------------- /index.webpack.js: -------------------------------------------------------------------------------- 1 | const { Player, FS_QUALITY_VALUES, FS_SDK_EVENTS_NAME, FS_REGIONS, QUALITY_VALUES } = require("./classes/Player.js"); 2 | 3 | module.exports = { 4 | Player, 5 | FS_SDK_EVENTS_NAME, 6 | FS_QUALITY_VALUES, 7 | FS_REGIONS, 8 | QUALITY_VALUES, 9 | } 10 | 11 | window.furioos = { 12 | Player, 13 | FS_SDK_EVENTS_NAME, 14 | FS_QUALITY_VALUES, 15 | FS_REGIONS, 16 | QUALITY_VALUES, 17 | } -------------------------------------------------------------------------------- /examples/furioos-sdk-js-npm-example/README.md: -------------------------------------------------------------------------------- 1 | # Furioos SDK JS example 2 | This project is a simple nodeJS server that render a single HTML page. 3 | It is a first step to try Furioos SDK with your links on Furioos. 4 | It also a way to debug localy your application. 5 | 6 | # Requirements 7 | [Node.JS](http://nodejs.org/) -- v12.x or newer 8 | 9 | # Installation 10 | ```bash 11 | npm install 12 | ``` 13 | or 14 | ```bash 15 | yarn 16 | ``` 17 | 18 | # Run 19 | 20 | ```bash 21 | npm run start 22 | ``` 23 | or 24 | ```bash 25 | yarn start 26 | ``` 27 | 28 | A nodeJS server running on port 8080 29 | -------------------------------------------------------------------------------- /examples/furioos-sdk-js-cdn-example/README.md: -------------------------------------------------------------------------------- 1 | # Furioos SDK JS CDN example 2 | This project is a simple nodeJS server that render a single HTML page. 3 | It is a first step to try Furioos SDK with your links on Furioos. 4 | It also a way to debug localy your application. 5 | 6 | # Requirements 7 | [Node.JS](http://nodejs.org/) -- v12.x or newer 8 | 9 | # Installation 10 | ```bash 11 | npm install 12 | ``` 13 | or 14 | ```bash 15 | yarn 16 | ``` 17 | 18 | # Run 19 | 20 | ```bash 21 | npm run start 22 | ``` 23 | or 24 | ```bash 25 | yarn start 26 | ``` 27 | 28 | A nodeJS server running on port 8080 29 | -------------------------------------------------------------------------------- /examples/furioos-sdk-js-cdn-example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "furioos-sdk-js-cdn-example", 3 | "version": "1.0.0", 4 | "description": "This project is a simple nodeJS server that render a single HTML page. It is a first step to try Furioos SDK with your links on Furioos. It also a way to debug localy your application.", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.18.1", 14 | "ws": "^8.8.0" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /examples/furioos-sdk-js-npm-example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "furioos-sdk-js-example", 3 | "version": "1.0.0", 4 | "description": "This project is a simple nodeJS server that render a single HTML page. It is a first step to try Furioos SDK with your links on Furioos. It also a way to debug localy your application.", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "browserify index.js > indexBrowserified.js && node server.js" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.18.1", 14 | "furioos-sdk": "git+https://github.com/Unity-Technologies/furioos-sdk-js.git#feature/bundle-sdk", 15 | "ws": "^8.8.0" 16 | }, 17 | "devDependencies": { 18 | "browserify": "^17.0.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "furioos-sdk", 3 | "version": "2.0.3", 4 | "description": "Furioos SDK: create your own furioos UI communicating with your application", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "build": "webpack ./index.webpack.js --output-filename=furioos.bundle.js --mode=production" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/Unity-Technologies/furioos-sdk-js" 13 | }, 14 | "author": "Furioos LTD", 15 | "license": "MIT", 16 | "bugs": { 17 | "url": "https://github.com/Unity-Technologies/furioos-sdk-js/issues" 18 | }, 19 | "homepage": "https://github.com/Unity-Technologies/furioos-sdk-js#readme", 20 | "devDependencies": {}, 21 | "dependencies": { 22 | "webpack": "^5.74.0", 23 | "webpack-cli": "^4.10.0" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /examples/furioos-sdk-js-npm-example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 15 |
16 |Change the thumbnail of your app.
103 |Call this function to get an estimated time to get a session on Furioos.
114 |146 | Call this function to get unique VM informations. 147 | This function return metadata only when a session is running. 148 |
149 |172 | Start a new session. 173 |
174 |
199 | Set the quality of the stream.
200 |
Bind a callback that will be called when the player is ready.
222 |237 | Bind a callback that will be called during your application installation. 238 | You'll receive the progress of the installation. 239 |
240 |261 | Bind a callback that will be called when your application installation has succeed. 262 |
263 |278 | Bind a callback that will be called when your application installation has failed. 279 |
280 |295 | Bind a callback that will be called when your application starts. 296 |
297 |312 | Bind a callback that will be called when the stream starts. 313 |
314 |Bind a callback that will be called when the user is **active** on your session (only fired when a session is running).
329 |Bind a callback that will be called when the user is **inactive** on your session (only fired when a session is running).
344 |Bind a callback that will be called when the session is stopped (ex: stopped for inactivity).
359 |Bind a callback that will be called frequently during a running session with all stats.
374 |424 | Bind a callback to receive messages from your application. 425 |
426 |444 | Send data to your own application by using the Furioos SDK. 445 |
446 |
465 | This feature open a direct tunnel between your js and your application running localy.
466 | Only sendSDKMessage and onSDKMessage can be used here to test the communication.
467 |
50 |
51 | > ***Important**: Before sending or receiving messages, the session must be launched. You can check it with ON_APP_START event*
52 |
53 | Here are some examples:
54 | - If you want to change the color of an object from your website, you can:
55 | - Send a message with the final color from your website
56 | - From your application, get the color in the message and assign the material with the new color
57 | - If you want to get the position of the player to display it on your website
58 | - Send a message with player coord from the application
59 | - From your website, get the coordinates and show it on your website
60 |
61 | To implement a bidirectionnal communication you can find details below:
62 | - About [Furioos SDK for Unity](https://github.com/Unity-Technologies/furioos-sdk-unity)
63 | - About [Furioos SDK for Unreal](https://github.com/Unity-Technologies/furioos-sdk-unreal-engine)
64 |
65 | ### Example of application
66 | Here is an example of an application that customizes the Furioos player and uses the message system for a complete integration with the website.\
67 | On the left, the menu is on the website side (html).\
68 | On the right, the house dispay is on the application side (Furious player).
69 |
70 |
71 |
72 | ## Installation
73 | ### Via NPM
74 | ```bash
75 | npm install --save furioos-sdk
76 | ```
77 | or
78 | ```bash
79 | yarn add furioos-sdk
80 | ```
81 |
82 | You can find a full example [HERE](/examples/furioos-sdk-js-npm-example)
83 |
84 | ### Via CDN
85 | ```bash
86 |
87 | ```
88 |
89 | You can find a full example [HERE](/examples/furioos-sdk-js-cdn-example)
90 |
91 | ## API
92 | #### constructor(sdkShareLinkID, containerDivId, options)
93 | Instanciate the player for a given application.
94 | | Property | Type | Description | optional | DefaultValue |
95 | | --- | --- | --- | --- | --- |
96 | | **`sdkShareLinkID`** | String | Furioos SDK Link ID of the application you want to share. | false | null |
97 | | **`containerDivId`** | String | The ID of the HTML container div that will host the render. | false | null |
98 | | **`options`** | Object | The options to setup the player are these following : | true | {} |
99 |
100 | ##### options:
101 | | Property | Type | Description | optional | DefaultValue |
102 | | --- | --- | --- | --- | --- |
103 | | **`whiteLabel`** | Boolean | Remove all Furioos' Logo | true | false |
104 | | **`hideToolbar`** | Boolean | Hide the toolbar to create your own | true | false |
105 | | **`hideTitle`** | Boolean | Hide the title bar to create your own | true | false |
106 | | **`hidePlayButton`** | Boolean | Hide the play button | true | false |
107 | | **`debugAppMode`** | Boolean | Active local debug of your application. See [Debug localy the SDK communication tunnel](#debug-localy-the-sdk-communication-tunnel) for more detail | true | false |
108 | | **`inactiveTimeout`** | Number | Defines the inactivity time in a session before it closes (in ms) Min: 10s / Max: 24h | true | 60000 (ms) |
109 |
110 |
111 | ### Basic Example
112 |
113 | ```javascript
114 | import { Player, FS_SDK_EVENTS_NAME } from 'furioos-sdk';
115 |
116 | const options = {
117 | whiteLabel: true,
118 | hideToolbar: false,
119 | hideTitle: true,
120 | hidePlayButton: false,
121 | inactiveTimeout: 60000,
122 | };
123 |
124 | const player = new Player("YOUR_SDK_LINK_ID" ,"containerDivId", options);
125 |
126 | // Bind player loaded
127 | player.on(FS_SDK_EVENTS_NAME.LOAD, function() {
128 | console.log("SDK client FIRED: Player loaded");
129 | });
130 |
131 | // Bind application install progress
132 | player.on(FS_SDK_EVENTS_NAME.ON_APP_INSTALL_PROGRESS, function(data) {
133 | console.log("SDK client FIRED: App install progress", data);
134 | });
135 |
136 | // Bind application start
137 | player.on(FS_SDK_EVENTS_NAME.ON_APP_START, function() {
138 | console.log("SDK client FIRED: App start");
139 | });
140 |
141 | // Bind stream start
142 | player.on(FS_SDK_EVENTS_NAME.ON_STREAM_START, function() {
143 | console.log("SDK client FIRED: Stream start");
144 | });
145 |
146 | // Bind stream start
147 | player.on(FS_SDK_EVENTS_NAME.ON_SDK_START, function() {
148 | console.log("SDK client FIRED: SDK start");
149 | });
150 |
151 | // Bind SDK messages
152 | player.on(FS_SDK_EVENTS_NAME.ON_SDK_MESSAGE, function(data) {
153 | console.log("SDK Message Received:", data);
154 | });
155 |
156 | // Bind an event that lets you know if you can resume session
157 | player.on(FS_SDK_EVENTS_NAME.ON_RESUME_SESSION, function({ canResumeSession }) {
158 | if(canResumeSession) {
159 | player.resumeSession();
160 | }
161 | });
162 |
163 | // Bind session stoppeds
164 | player.on(FS_SDK_EVENTS_NAME.ON_SESSION_STOPPED, function() {
165 | console.log("SDK client FIRED: Session Stopped");
166 | });
167 |
168 | ```
169 |
170 | ## Properties
171 | >***important** These properties are only getters*
172 | #### quality: String
173 | Get the current setted quality. Possible values : AUTO / LOW / MEDIUM / HIGH
174 |
175 | #### volume: Number
176 | Get the current setted volume. Value between 0 - 1
177 |
178 | ## Methods
179 | Change the thumbnail of your app.
183 |Call this function to get an estimated time to get a session on Furioos.
194 |227 | Call this function to get unique VM informations. 228 | This function returns metadata only if a session is running. 229 |
230 |253 | Start a new session. 254 |
255 |
280 | Set the quality of the stream.
281 | Use the new quality values by importing FS_QUALITY_VALUES
282 | :warning: You can access deprecated quality values by importing QUALITY_VALUES. However these value are no longer available.
283 |
306 | Set the volume of the stream. 307 |
308 |337 | Bind a callback that will be called when the player is ready. 338 |
339 |354 | Bind a callback that will be called during your application installation. 355 | You'll receive the progress of the installation. 356 |
357 |378 | Bind a callback that will be called when your application installation has succeed. 379 |
380 |395 | Bind a callback that will be called when your application installation has failed. 396 |
397 |412 | Bind a callback that will be called when your application starts. 413 |
414 |429 | Bind a callback that will be called when the stream starts. 430 |
431 |446 | Bind a callback that will be called when the SDK start. 447 |
448 |Bind a callback that will be called when the user is **active** on your session (only fired when a session is running).
463 |Bind a callback that will be called when the user is **inactive** on your session (only fired when a session is running).
478 |Bind a callback that will be called when the session is stopped (ex: stopped for inactivity).
493 |Bind a callback that will be called frequently during a running session with all stats.
508 |549 | Bind a callback that will be called while your application is sending you data. 550 | Data can be a String or an Object. 551 |
552 |567 | Bind a callback that will be called when your application crashes. 568 |
569 |584 | Bind a callback that will be called when the player is initialized. 585 | It Lets you know if you can restart a session in progress. 586 |
587 |619 | Bind a callback to receive messages from your application. 620 |
621 |639 | Send data to your own application by using the Furioos SDK. 640 |
641 |
687 |
688 |
689 | #### Unity Side
690 |
691 | Nothing to configure. When you start your application(With last version of the Furioos SDK Unity) with the play button in the Unity Editor, the local debug mode is automatically enabled.
692 |
693 | #### Unreal Engine Side
694 |
695 | For the moment, it is not possible activate the debug mode. The new version of the Furioos SDK for Unreal is coming soon.
696 |
697 | ## :warning: Common Errors
698 |
699 | - *Failed to execute 'postMessage' on 'DOMWindow': The target origin (http://....) provided does not match the recipient window's origin ('http://...')*
700 |
701 | This error means that you do not have the correct website URL set on your SDK link, on Furioos side.
702 | Your player’s implementation url must match the website URL entered when creating your SDK link on the Furioos side.
703 | If you’re working locally, remind that you might need to change the URL on the SDK Link, example: http://localhost:8080.
--------------------------------------------------------------------------------
/classes/Player.js:
--------------------------------------------------------------------------------
1 | var SDKDebug = require("./SDKDebug.js");
2 | const { version } = require('../package.json');
3 |
4 | const _constructorParams = function (shareId, containerId, options) {
5 | // Share Id.
6 | if (!shareId || typeof shareId != "string") {
7 | return false;
8 | }
9 |
10 | // Container
11 | if (!containerId || typeof containerId != "string") {
12 | return false;
13 | }
14 |
15 | return true;
16 | }
17 |
18 | const _fsSdkEventsName = {
19 | SET_VERSION: "SET_VERSION",
20 | }
21 |
22 | const FS_SDK_EVENTS_NAME = {
23 | LOAD: "load",
24 | ERROR: "error",
25 | START: "start",
26 | STOP: "stop",
27 | MAXIMIZE: "maximize",
28 | MINIMIZE: "minimize",
29 | QUALITY: "quality",
30 | RESTART_STREAM: "restartStream",
31 | RESUME_SESSION: "resumeSession",
32 | ON_RESUME_SESSION: "onResumeSession",
33 | ON_SDK_MESSAGE: "onSDKMessage",
34 | SEND_SDK_MESSAGE: "sendSDKMessage",
35 | SET_LOCATION: "setLocation",
36 | ON_USER_ACTIVE: "onUserActive",
37 | ON_USER_INACTIVE: "onUserInactive",
38 | ON_SESSION_STOPPED: "onSessionStopped",
39 | ON_STATS: "onStats",
40 | GET_SERVER_AVAILABILITY: "getServerAvailability",
41 | GET_SERVER_METADATA: "getServerMetadata",
42 | SET_THUMBNAIL_URL: "setThumbnailUrl",
43 | ON_APP_INSTALL_PROGRESS: "onAppInstallProgress",
44 | ON_APP_INSTALL_SUCCESS: "onAppInstallSuccess",
45 | ON_APP_INSTALL_FAIL: "onAppInstallFail",
46 | ON_APP_START: "onAppStart",
47 | ON_STREAM_START: "onStreamStart",
48 | SET_VOLUME: "setVolume",
49 | ON_CRASH_APP: "appStop",
50 | TOGGLE_VOLUME_MUTED: "toggleVolumeMuted",
51 | ON_SDK_START: "onSDKStart"
52 | // ON_VIDEO_SIZE_CHANGED: "videoSizeChanged",
53 | };
54 |
55 | const TIMEOUT = {
56 | MIN: 10000,
57 | MAX: 86400000,
58 | }
59 |
60 | const QUALITY_VALUES = {
61 | AUTO: 0,
62 | LOW: 1,
63 | MEDIUM: 2,
64 | HIGH: 3,
65 | ULTRA: 4,
66 | }
67 |
68 | const FS_QUALITY_VALUES = {
69 | AUTO: 0,
70 | LOW: 360,
71 | MEDIUM: 720,
72 | HIGH: 1080,
73 | }
74 |
75 | const FS_REGIONS = {
76 | EUW: [52.1326, 5.2913],
77 | USW: [47.751076, -120.740135],
78 | USE: [37.926868, -78.024902],
79 | AUE: [-33.865143, 151.2099]
80 | }
81 |
82 | let _furioosServerUrl = "https://portal.furioos.com";
83 | const FS_SDK_VERSION = version;
84 |
85 | class Player {
86 | static get qualityValues() { return QUALITY_VALUES };
87 | static get fsQualityValues() { return FS_QUALITY_VALUES };
88 | static get regions() { return FS_REGIONS };
89 |
90 | constructor(sharedLinkID, containerId, options) {
91 | if (!_constructorParams(sharedLinkID, containerId, options)) {
92 | throw "Bad parameters";
93 | }
94 |
95 | this.isRestartStream = false;
96 | this.canResumeSession = false;
97 | this.canSendSDKMessage = false;
98 |
99 | if (sharedLinkID.indexOf("?") > 0) {
100 | // Remove URL parameters, should use the options for parameters.
101 | sharedLinkID = sharedLinkID.split("?")[0];
102 | }
103 |
104 | if (options.overridedURL) {
105 | _furioosServerUrl = options.overridedURL;
106 | }
107 |
108 | this._quality = FS_QUALITY_VALUES.HIGH;
109 | this._volume = 1;
110 |
111 | sharedLinkID = _furioosServerUrl + "/embed/" + sharedLinkID;
112 |
113 | // If there are options, treat those who change the url.
114 | let debugAppMode = false;
115 | if (options) {
116 | let prefix = "?";
117 | if (options.whiteLabel) {
118 | sharedLinkID += prefix + "whiteLabel=true";
119 | prefix = "&";
120 | }
121 |
122 | if (options.hideToolbar) {
123 | sharedLinkID += prefix + "hideToolbar=true";
124 | prefix = "&";
125 | }
126 |
127 | if (options.hideTitle) {
128 | sharedLinkID += prefix + "hideTitle=true";
129 | prefix = "&";
130 | }
131 |
132 | if (options.hidePlayButton) {
133 | sharedLinkID += prefix + "hidePlayButton=true";
134 | prefix = "&";
135 | }
136 |
137 | if (options.inactiveTimeout) {
138 | let inactiveTimeoutClamp = options.inactiveTimeout;
139 | if (options.inactiveTimeout < TIMEOUT.MIN) {
140 | inactiveTimeoutClamp = TIMEOUT.MIN;
141 | }
142 |
143 | if (options.inactiveTimeout > TIMEOUT.MAX) {
144 | inactiveTimeoutClamp = TIMEOUT.MAX;
145 | }
146 |
147 | sharedLinkID += prefix + "inactiveTimeout=" + inactiveTimeoutClamp / 1000;
148 | prefix = "&";
149 | }
150 |
151 | if (options.debugAppMode) {
152 | // Local debug the SDK communication with your app.
153 | debugAppMode = true;
154 |
155 | const container = document.getElementById(containerId);
156 | container.innerText = "You are currently debugging locally your app. There is not stream here. Open console to see logs";
157 |
158 | const serverAddress = options.wsServerAddress ? options.wsServerAddress + ":8081" : "127.0.0.1:8081"
159 | this.sdkDebug = new SDKDebug(serverAddress);
160 |
161 | this.sdkDebug.onReady = () => {
162 | // Here you know when the WS connection with your application is ready.
163 | this.loaded = true;
164 | if (this._onLoadCallback) {
165 | this._onLoadCallback();
166 | }
167 | };
168 |
169 | this.sdkDebug.onSDKMessage((data) => {
170 | // Here you can manage the received data.
171 | if (this._onSDKMessageCallback) {
172 | this._onSDKMessageCallback(data);
173 | }
174 | });
175 | }
176 | }
177 |
178 | // Create the iframe into the given container.
179 | this.loaded = false;
180 | this.debugAppMode = debugAppMode;
181 | this.sharedLink = sharedLinkID;
182 | this.containerId = containerId;
183 | this.options = options;
184 |
185 | if (!debugAppMode) {
186 | this.embed = this._createIframe();
187 | }
188 | }
189 |
190 | ///////////////////////
191 | /// PRIVATE METHODS ///
192 | ///////////////////////
193 |
194 | _createIframe() {
195 | const container = document.getElementById(this.containerId);
196 |
197 | if (!container) {
198 | throw "Cannot find the container";
199 | }
200 |
201 | // Create the iframe element.
202 | const iframe = document.createElement("iframe");
203 | iframe.setAttribute("src", this.sharedLink);
204 | iframe.setAttribute("id", "furioos-sdk-iframe");
205 | iframe.setAttribute("allow", "autoplay; fullscreen");
206 |
207 | iframe.style.width = "100%";
208 | iframe.style.height = "100%";
209 | iframe.style.border = "none";
210 |
211 | container.appendChild(iframe);
212 |
213 | iframe.onload = this._onLoad.bind(this);
214 | // this._bindEvents();
215 |
216 | return iframe;
217 | }
218 |
219 | _displayErrorMessage(message) {
220 | const container = document.getElementById(this.containerId);
221 |
222 | const div = document.createElement("div");
223 | div.innerText = message;
224 |
225 | container.innerHTML = "";
226 | container.appendChild(div);
227 | }
228 |
229 | _onLoad() {
230 | // Bind listener for the messages.
231 | window.addEventListener("message", (e) => {
232 | switch (e.data.type) {
233 | case FS_SDK_EVENTS_NAME.LOAD:
234 | // When the player is loaded: Set the default setted location (if setted).
235 | if (this.location) {
236 | if (!this.embed.contentWindow) {
237 | // Wait the window is reachable.
238 | setTimeout(() => {
239 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.SET_LOCATION, value: this.location }, _furioosServerUrl);
240 | }, 100);
241 | }
242 | else {
243 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.SET_LOCATION, value: this.location }, _furioosServerUrl);
244 | }
245 | }
246 |
247 | this.loaded = true;
248 | this.embed.contentWindow.postMessage({ type: _fsSdkEventsName.SET_VERSION, value: FS_SDK_VERSION }, _furioosServerUrl);
249 |
250 | if (this._onLoadCallback) {
251 | this._onLoadCallback();
252 | }
253 | return;
254 | case FS_SDK_EVENTS_NAME.ON_SDK_MESSAGE:
255 | if (this._onSDKMessageCallback) {
256 | this._onSDKMessageCallback(e.data.value);
257 | }
258 | return;
259 | case FS_SDK_EVENTS_NAME.ON_USER_ACTIVE:
260 | if (this._onUserActiveCallback) {
261 | this._onUserActiveCallback();
262 | }
263 | return;
264 | case FS_SDK_EVENTS_NAME.ON_USER_INACTIVE:
265 | if (this._onUserInactiveCallback) {
266 | this._onUserInactiveCallback();
267 | }
268 | return;
269 | case FS_SDK_EVENTS_NAME.ON_APP_INSTALL_PROGRESS:
270 | if (this._onAppInstallProgress) {
271 | this._onAppInstallProgress(e.data.value);
272 | }
273 | return;
274 | case FS_SDK_EVENTS_NAME.ON_APP_INSTALL_SUCCESS:
275 | if (this._onAppInstallSuccess) {
276 | this._onAppInstallSuccess();
277 | }
278 | return;
279 | case FS_SDK_EVENTS_NAME.ON_APP_INSTALL_FAIL:
280 | if (this._onAppInstallFail) {
281 | this._onAppInstallFail();
282 | }
283 | return;
284 | case FS_SDK_EVENTS_NAME.ON_APP_START:
285 | if (this._onAppStart) {
286 | this._onAppStart();
287 | }
288 | return;
289 | case FS_SDK_EVENTS_NAME.ON_SDK_START:
290 | this.canSendSDKMessage = true;
291 | if (this._onSDKStart) {
292 | this._onSDKStart();
293 | }
294 | return;
295 | case FS_SDK_EVENTS_NAME.ON_STREAM_START:
296 | if (this._onStreamStart) {
297 | this.isRestartStream = false;
298 | this._onStreamStart();
299 | }
300 | return;
301 | case FS_SDK_EVENTS_NAME.ON_SESSION_STOPPED:
302 | this.canSendSDKMessage = false;
303 | if (this._onSessionStoppedCallback) {
304 | this._onSessionStoppedCallback();
305 | }
306 | return;
307 | case FS_SDK_EVENTS_NAME.ON_STATS:
308 | if (this._onStatsCallback) {
309 | this._onStatsCallback(JSON.parse(e.data.value));
310 | }
311 | return;
312 | case FS_SDK_EVENTS_NAME.GET_SERVER_AVAILABILITY:
313 | const response = e.data.value;
314 |
315 | if (response.error) {
316 | console.log("Error getting server availability", response.error);
317 | if (this._getServerAvailabilityErrorCallback) {
318 | this._getServerAvailabilityErrorCallback(response.error);
319 | }
320 |
321 | return;
322 | }
323 |
324 | if (!this._getServerAvailabilityCallback) {
325 | console.log("No success callback binded !");
326 | return;
327 | }
328 |
329 | this._getServerAvailabilityCallback(response.stats);
330 | return;
331 | case FS_SDK_EVENTS_NAME.GET_SERVER_METADATA:
332 | const res = e.data.value;
333 |
334 | if (res.error) {
335 | console.log("Error getting server metadata", res.error);
336 | if (this._getServerMetadataErrorCallback) {
337 | this._getServerMetadataErrorCallback(res.error);
338 | }
339 |
340 | return;
341 | }
342 |
343 | if (!this._getServerMetadataCallback) {
344 | console.log("No success callback binded !");
345 | return;
346 | }
347 |
348 | this._getServerMetadataCallback(res.metadata);
349 | return;
350 | case FS_SDK_EVENTS_NAME.ERROR:
351 | this._displayErrorMessage(e.data.value);
352 | return;
353 |
354 | case FS_SDK_EVENTS_NAME.ON_CRASH_APP:
355 | if (this._onAppStop) {
356 | this._onAppStop(e.data.value);
357 | }
358 | return;
359 |
360 | case FS_SDK_EVENTS_NAME.ON_RESUME_SESSION:
361 | if (this._onResumeSession) {
362 | this.canResumeSession = e.data.value;
363 | this._onResumeSession({ canResumeSession: e.data.value });
364 | }
365 | return;
366 |
367 | // case FS_SDK_EVENTS_NAME.ON_VIDEO_SIZE_CHANGED:
368 | // if (this._onVideoSizeChanged) {
369 | // this._onVideoSizeChanged(e.data.value);
370 | // }
371 | // return;
372 | }
373 | });
374 | }
375 |
376 | ////////////////////////
377 | //// BIND EVENTS ////
378 | ////////////////////////
379 | on(event, callback) {
380 | switch (event) {
381 | case FS_SDK_EVENTS_NAME.LOAD:
382 | this._onLoadCallback = callback;
383 | return;
384 |
385 | case FS_SDK_EVENTS_NAME.ON_APP_INSTALL_PROGRESS:
386 | this._onAppInstallProgress = callback;
387 | return;
388 |
389 | case FS_SDK_EVENTS_NAME.ON_APP_INSTALL_SUCCESS:
390 | this._onAppInstallSuccess = callback;
391 | return;
392 |
393 | case FS_SDK_EVENTS_NAME.ON_APP_INSTALL_FAIL:
394 | this._onAppInstallFail = callback;
395 | return;
396 |
397 | case FS_SDK_EVENTS_NAME.ON_APP_START:
398 | this._onAppStart = callback;
399 | return;
400 |
401 | case FS_SDK_EVENTS_NAME.ON_SDK_START:
402 | this._onSDKStart = callback;
403 | return;
404 |
405 | case FS_SDK_EVENTS_NAME.ON_STREAM_START:
406 | this._onStreamStart = callback;
407 | return;
408 |
409 | case FS_SDK_EVENTS_NAME.ON_SESSION_STOPPED:
410 | this._onSessionStoppedCallback = callback;
411 | return;
412 |
413 | case FS_SDK_EVENTS_NAME.ON_STATS:
414 | this._onStatsCallback = callback;
415 | return;
416 |
417 | case FS_SDK_EVENTS_NAME.ON_USER_INACTIVE:
418 | this._onUserInactiveCallback = callback;
419 | return;
420 |
421 | case FS_SDK_EVENTS_NAME.ON_USER_ACTIVE:
422 | this._onUserActiveCallback = callback;
423 | return;
424 |
425 | case FS_SDK_EVENTS_NAME.ON_SDK_MESSAGE:
426 | this._onSDKMessageCallback = callback;
427 | return;
428 |
429 | case FS_SDK_EVENTS_NAME.ON_CRASH_APP:
430 | this._onAppStop = callback;
431 | return;
432 |
433 | case FS_SDK_EVENTS_NAME.ON_RESUME_SESSION:
434 | this._onResumeSession = callback;
435 | return;
436 |
437 | // case FS_SDK_EVENTS_NAME.ON_VIDEO_SIZE_CHANGED:
438 | // this._onVideoSizeChanged = callback;
439 | // return;
440 | }
441 | }
442 |
443 | ////////////////////////
444 | //// PUBLIC METHODS ////
445 | ////////////////////////
446 |
447 | setDefaultLocation(location) {
448 | this.location = location;
449 |
450 | if (!this.loaded) {
451 | return; // Not loaded.
452 | }
453 |
454 | if (this.debugAppMode) {
455 | console.log("No setDefaultLocation in debug mode")
456 | return; // Not loaded.
457 | }
458 |
459 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.SET_LOCATION, value: this.location }, _furioosServerUrl);
460 | }
461 |
462 | start(location) {
463 | if (!location) {
464 | location = this.location;
465 | }
466 |
467 | if (!this.loaded) {
468 | return; // Not loaded.
469 | }
470 |
471 | if (this.debugAppMode) {
472 | console.log("No start in debug mode")
473 | return; // Not loaded.
474 | }
475 |
476 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.START, value: location }, _furioosServerUrl);
477 | }
478 |
479 | stop() {
480 | if (!this.loaded) {
481 | return; // Not loaded.
482 | }
483 |
484 | if (this.debugAppMode) {
485 | console.log("No stop in debug mode")
486 | return; // Not loaded.
487 | }
488 |
489 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.STOP }, _furioosServerUrl);
490 | }
491 |
492 | maximize() {
493 | if (!this.loaded) {
494 | return; // Not loaded.
495 | }
496 |
497 | if (this.debugAppMode) {
498 | console.log("No maximize in debug mode")
499 | return; // Not loaded.
500 | }
501 |
502 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.MAXIMIZE }, _furioosServerUrl);
503 | }
504 |
505 | minimize() {
506 | if (!this.loaded) {
507 | return; // Not loaded.
508 | }
509 |
510 | if (this.debugAppMode) {
511 | console.log("No minimize in debug mode")
512 | return; // Not loaded.
513 | }
514 |
515 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.MINIMIZE }, _furioosServerUrl);
516 | }
517 |
518 | ////////////////////////
519 | /////// GETTERS ////////
520 | ////////////////////////
521 | get quality() {
522 | switch (this._quality) {
523 | case QUALITY_VALUES.AUTO:
524 | case FS_QUALITY_VALUES.AUTO:
525 | return "AUTO";
526 |
527 | case QUALITY_VALUES.LOW:
528 | case FS_QUALITY_VALUES.LOW:
529 | return "LOW";
530 |
531 | case QUALITY_VALUES.MEDIUM:
532 | case FS_QUALITY_VALUES.MEDIUM:
533 | return "MEDIUM";
534 |
535 | case QUALITY_VALUES.HIGH:
536 | case FS_QUALITY_VALUES.HIGH:
537 | return "HIGH";
538 |
539 | case QUALITY_VALUES.ULTRA:
540 | return "HIGH";
541 | }
542 | }
543 |
544 | get volume() {
545 | return this._volume;
546 | }
547 |
548 | setQuality(value) {
549 | // Test if the value is correct.
550 | if (value !== QUALITY_VALUES.LOW
551 | && value !== QUALITY_VALUES.MEDIUM
552 | && value !== QUALITY_VALUES.HIGH
553 | && value !== QUALITY_VALUES.ULTRA
554 | && value !== QUALITY_VALUES.AUTO
555 | && value !== FS_QUALITY_VALUES.AUTO
556 | && value !== FS_QUALITY_VALUES.LOW
557 | && value !== FS_QUALITY_VALUES.MEDIUM
558 | && value !== FS_QUALITY_VALUES.HIGH) {
559 | throw "Bad parameter: The quality should be one of the given value in Player.qualityValues";
560 | }
561 |
562 | if (!this.loaded) {
563 | return; // Not loaded.
564 | }
565 |
566 | if (this.debugAppMode) {
567 | console.log("No setQuality in debug mode")
568 | return; // Not loaded.
569 | }
570 |
571 | // DEPRECATED
572 | let quality = value;
573 | if (quality === QUALITY_VALUES.LOW) {
574 | console.warn("DEPRECATED: This quality constants is depreciated and will not be maintained for long. Update your sdk and use the new quality values: FS_QUALITY_VALUES");
575 | quality = FS_QUALITY_VALUES.LOW;
576 | }
577 |
578 | if (quality === QUALITY_VALUES.MEDIUM) {
579 | console.warn("DEPRECATED: This quality constants is depreciated and will not be maintained for long. Update your sdk and use the new quality values: FS_QUALITY_VALUES");
580 | quality = FS_QUALITY_VALUES.MEDIUM;
581 | }
582 |
583 | if (quality === QUALITY_VALUES.HIGH || quality === QUALITY_VALUES.ULTRA) {
584 | console.warn("DEPRECATED: This quality constants is depreciated and will not be maintained for long. Update your sdk and use the new quality values: FS_QUALITY_VALUES");
585 | quality = FS_QUALITY_VALUES.HIGH;
586 | }
587 |
588 | this._quality = quality;
589 |
590 | this.embed.contentWindow.postMessage({
591 | type: FS_SDK_EVENTS_NAME.QUALITY,
592 | value: quality
593 | }, _furioosServerUrl);
594 | }
595 |
596 | restartStream() {
597 | if (!this.loaded) {
598 | return; // Not loaded.
599 | }
600 |
601 | if (this.debugAppMode) {
602 | console.log("No restartStream in debug mode");
603 | return; // Not loaded.
604 | }
605 | if (this.isRestartStream) {
606 | console.warn("Stream is already restarting");
607 | return;
608 | }
609 |
610 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.RESTART_STREAM }, _furioosServerUrl);
611 | this.isRestartStream = true;
612 | }
613 |
614 | resumeSession() {
615 | if (this.debugAppMode) {
616 | console.log("No resumeSession in debug mode")
617 | return; // Not loaded.
618 | }
619 |
620 | if (!this.canResumeSession) {
621 | console.warn("No active session")
622 | return;
623 | }
624 |
625 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.RESUME_SESSION }, _furioosServerUrl);
626 |
627 | this.canResumeSession = false;
628 | }
629 |
630 | // SDK
631 | sendSDKMessage(data) {
632 | if (!this.loaded) {
633 | return; // Not loaded.
634 | }
635 |
636 | if (typeof data == "object") {
637 | data = JSON.stringify(data);
638 | }
639 |
640 | if (this.debugAppMode) {
641 | this.sdkDebug.sendSDKMessage(data);
642 | return;
643 | }
644 |
645 | if (!this.canSendSDKMessage) {
646 | console.warn("The sdk has not been started yet. Please wait for the ON_SDK_START event before sending a message");
647 | return;
648 | }
649 |
650 | this.embed.contentWindow.postMessage({
651 | type: FS_SDK_EVENTS_NAME.SEND_SDK_MESSAGE,
652 | value: data,
653 | }, _furioosServerUrl);
654 | }
655 |
656 | setUserActive() {
657 | this.sendSDKMessage({ "userActive": true });
658 | }
659 |
660 | setThumbnailUrl(thumbnailUrl) {
661 | if (!this.loaded) {
662 | return; // Not loaded.
663 | }
664 |
665 | if (this.debugAppMode) {
666 | console.log("No setThumbnailUrl in debug mode")
667 | return; // Not loaded.
668 | }
669 |
670 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.SET_THUMBNAIL_URL, value: thumbnailUrl }, _furioosServerUrl);
671 | }
672 |
673 | getServerAvailability(getServerAvailabilityCallback, getServerAvailabilityErrorCallback) {
674 | if (!this.loaded) {
675 | return; // Not loaded.
676 | }
677 |
678 | if (this.debugAppMode) {
679 | console.log("No getServerAvailability in debug mode")
680 | return; // Not loaded.
681 | }
682 |
683 | this._getServerAvailabilityCallback = getServerAvailabilityCallback;
684 | this._getServerAvailabilityErrorCallback = getServerAvailabilityErrorCallback;
685 |
686 | // Call the get.
687 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.GET_SERVER_AVAILABILITY }, _furioosServerUrl);
688 | // The response will be treat in the listener below.
689 | }
690 |
691 | getServerMetadata(getServerMetadataCallback, getServerMetadataErrorCallback) {
692 | if (!this.loaded) {
693 | return; // Not loaded.
694 | }
695 |
696 | if (this.debugAppMode) {
697 | console.log("No getServerMetadata in debug mode")
698 | return; // Not loaded.
699 | }
700 |
701 | this._getServerMetadataCallback = getServerMetadataCallback;
702 | this._getServerMetadataErrorCallback = getServerMetadataErrorCallback;
703 |
704 | // Call the get.
705 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.GET_SERVER_METADATA }, _furioosServerUrl);
706 | // The response will be treat in the listener below.
707 | }
708 |
709 | setVolume(volume, setVolumeCallback) {
710 | if (!this.loaded) {
711 | return; // Not loaded.
712 | }
713 |
714 | if (this.debugAppMode) {
715 | console.log("No setVolume in debug mode")
716 | return; // Not loaded.
717 | }
718 |
719 | this._setVolume = setVolumeCallback;
720 | this._volume = volume;
721 |
722 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.SET_VOLUME, value: volume }, _furioosServerUrl);
723 | }
724 |
725 | toggleMuted() {
726 | if (!this.loaded) {
727 | return; // Not loaded.
728 | }
729 |
730 | if (this.debugAppMode) {
731 | console.log("No toggleMuted in debug mode")
732 | return; // Not loaded.
733 | }
734 |
735 | this._volume = 0;
736 |
737 | this.embed.contentWindow.postMessage({ type: FS_SDK_EVENTS_NAME.TOGGLE_VOLUME_MUTED }, _furioosServerUrl);
738 | }
739 |
740 | ////////////////////////
741 | //// DEPRECATED ////
742 | ////////////////////////
743 | // Binding onload callback.
744 | onLoad(onLoadCallback) {
745 | this._onLoadCallback = onLoadCallback;
746 | console.warn("DEPRECATED: OnLoad is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
747 | }
748 |
749 | onUserInactive(onUserInactiveCallback) {
750 | this._onUserInactiveCallback = onUserInactiveCallback;
751 | console.warn("DEPRECATED: onUserInactive is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
752 | }
753 |
754 | onAppInstallProgress(onAppInstallProgress) {
755 | this._onAppInstallProgress = onAppInstallProgress;
756 | console.warn("DEPRECATED: onAppInstallProgress is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
757 | }
758 |
759 | onAppInstallSuccess(onAppInstallSuccess) {
760 | this._onAppInstallSuccess = onAppInstallSuccess;
761 | console.warn("DEPRECATED: onAppInstallSuccess is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
762 | }
763 |
764 | onAppInstallFail(onAppInstallFail) {
765 | this._onAppInstallFail = onAppInstallFail;
766 | console.warn("DEPRECATED: onAppInstallFail is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
767 | }
768 |
769 | onAppStart(onAppStart) {
770 | this._onAppStart = onAppStart;
771 | console.warn("DEPRECATED: onAppStart is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
772 | }
773 |
774 | onStreamStart(onStreamStart) {
775 | this._onStreamStart = onStreamStart;
776 | console.warn("DEPRECATED: onStreamStart is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
777 | }
778 |
779 | onSessionStopped(onSessionStoppedCallback) {
780 | this._onSessionStoppedCallback = onSessionStoppedCallback;
781 | console.warn("DEPRECATED: onSessionStopped is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
782 | }
783 |
784 | onStats(callback) {
785 | this._onStatsCallback = callback;
786 | console.warn("DEPRECATED: onStats is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
787 | }
788 |
789 | onSDKMessage(onSDKMessageCallback) {
790 | this._onSDKMessageCallback = onSDKMessageCallback;
791 | console.warn("DEPRECATED: onSDKMessage is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
792 | }
793 |
794 | onUserActive(onUserActiveCallback) {
795 | this._onUserActiveCallback = onUserActiveCallback;
796 | console.warn("DEPRECATED: onUserActive is deprecated and will not be maintained for long. Use the new .on() method to subscribe to events");
797 | }
798 | }
799 |
800 | module.exports = {
801 | Player,
802 | FS_SDK_EVENTS_NAME,
803 | FS_QUALITY_VALUES,
804 | FS_REGIONS,
805 | QUALITY_VALUES,
806 | }
807 |
--------------------------------------------------------------------------------
/examples/furioos-sdk-js-npm-example/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "furioos-sdk-js-example",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "JSONStream": {
8 | "version": "1.3.5",
9 | "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
10 | "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
11 | "dev": true,
12 | "requires": {
13 | "jsonparse": "^1.2.0",
14 | "through": ">=2.2.7 <3"
15 | }
16 | },
17 | "accepts": {
18 | "version": "1.3.8",
19 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
20 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
21 | "requires": {
22 | "mime-types": "~2.1.34",
23 | "negotiator": "0.6.3"
24 | }
25 | },
26 | "acorn": {
27 | "version": "7.4.1",
28 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
29 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
30 | "dev": true
31 | },
32 | "acorn-node": {
33 | "version": "1.8.2",
34 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
35 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
36 | "dev": true,
37 | "requires": {
38 | "acorn": "^7.0.0",
39 | "acorn-walk": "^7.0.0",
40 | "xtend": "^4.0.2"
41 | }
42 | },
43 | "acorn-walk": {
44 | "version": "7.2.0",
45 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
46 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
47 | "dev": true
48 | },
49 | "array-flatten": {
50 | "version": "1.1.1",
51 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
52 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
53 | },
54 | "asn1.js": {
55 | "version": "5.4.1",
56 | "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
57 | "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
58 | "dev": true,
59 | "requires": {
60 | "bn.js": "^4.0.0",
61 | "inherits": "^2.0.1",
62 | "minimalistic-assert": "^1.0.0",
63 | "safer-buffer": "^2.1.0"
64 | },
65 | "dependencies": {
66 | "bn.js": {
67 | "version": "4.12.0",
68 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
69 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
70 | "dev": true
71 | }
72 | }
73 | },
74 | "assert": {
75 | "version": "1.5.0",
76 | "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
77 | "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
78 | "dev": true,
79 | "requires": {
80 | "object-assign": "^4.1.1",
81 | "util": "0.10.3"
82 | },
83 | "dependencies": {
84 | "inherits": {
85 | "version": "2.0.1",
86 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
87 | "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==",
88 | "dev": true
89 | },
90 | "util": {
91 | "version": "0.10.3",
92 | "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
93 | "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==",
94 | "dev": true,
95 | "requires": {
96 | "inherits": "2.0.1"
97 | }
98 | }
99 | }
100 | },
101 | "available-typed-arrays": {
102 | "version": "1.0.5",
103 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
104 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
105 | "dev": true
106 | },
107 | "balanced-match": {
108 | "version": "1.0.2",
109 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
110 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
111 | "dev": true
112 | },
113 | "base64-js": {
114 | "version": "1.5.1",
115 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
116 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
117 | "dev": true
118 | },
119 | "bn.js": {
120 | "version": "5.2.1",
121 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
122 | "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
123 | "dev": true
124 | },
125 | "body-parser": {
126 | "version": "1.20.0",
127 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
128 | "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
129 | "requires": {
130 | "bytes": "3.1.2",
131 | "content-type": "~1.0.4",
132 | "debug": "2.6.9",
133 | "depd": "2.0.0",
134 | "destroy": "1.2.0",
135 | "http-errors": "2.0.0",
136 | "iconv-lite": "0.4.24",
137 | "on-finished": "2.4.1",
138 | "qs": "6.10.3",
139 | "raw-body": "2.5.1",
140 | "type-is": "~1.6.18",
141 | "unpipe": "1.0.0"
142 | }
143 | },
144 | "brace-expansion": {
145 | "version": "1.1.11",
146 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
147 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
148 | "dev": true,
149 | "requires": {
150 | "balanced-match": "^1.0.0",
151 | "concat-map": "0.0.1"
152 | }
153 | },
154 | "brorand": {
155 | "version": "1.1.0",
156 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
157 | "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
158 | "dev": true
159 | },
160 | "browser-pack": {
161 | "version": "6.1.0",
162 | "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz",
163 | "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==",
164 | "dev": true,
165 | "requires": {
166 | "JSONStream": "^1.0.3",
167 | "combine-source-map": "~0.8.0",
168 | "defined": "^1.0.0",
169 | "safe-buffer": "^5.1.1",
170 | "through2": "^2.0.0",
171 | "umd": "^3.0.0"
172 | }
173 | },
174 | "browser-resolve": {
175 | "version": "2.0.0",
176 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz",
177 | "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==",
178 | "dev": true,
179 | "requires": {
180 | "resolve": "^1.17.0"
181 | }
182 | },
183 | "browserify": {
184 | "version": "17.0.0",
185 | "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz",
186 | "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==",
187 | "dev": true,
188 | "requires": {
189 | "JSONStream": "^1.0.3",
190 | "assert": "^1.4.0",
191 | "browser-pack": "^6.0.1",
192 | "browser-resolve": "^2.0.0",
193 | "browserify-zlib": "~0.2.0",
194 | "buffer": "~5.2.1",
195 | "cached-path-relative": "^1.0.0",
196 | "concat-stream": "^1.6.0",
197 | "console-browserify": "^1.1.0",
198 | "constants-browserify": "~1.0.0",
199 | "crypto-browserify": "^3.0.0",
200 | "defined": "^1.0.0",
201 | "deps-sort": "^2.0.1",
202 | "domain-browser": "^1.2.0",
203 | "duplexer2": "~0.1.2",
204 | "events": "^3.0.0",
205 | "glob": "^7.1.0",
206 | "has": "^1.0.0",
207 | "htmlescape": "^1.1.0",
208 | "https-browserify": "^1.0.0",
209 | "inherits": "~2.0.1",
210 | "insert-module-globals": "^7.2.1",
211 | "labeled-stream-splicer": "^2.0.0",
212 | "mkdirp-classic": "^0.5.2",
213 | "module-deps": "^6.2.3",
214 | "os-browserify": "~0.3.0",
215 | "parents": "^1.0.1",
216 | "path-browserify": "^1.0.0",
217 | "process": "~0.11.0",
218 | "punycode": "^1.3.2",
219 | "querystring-es3": "~0.2.0",
220 | "read-only-stream": "^2.0.0",
221 | "readable-stream": "^2.0.2",
222 | "resolve": "^1.1.4",
223 | "shasum-object": "^1.0.0",
224 | "shell-quote": "^1.6.1",
225 | "stream-browserify": "^3.0.0",
226 | "stream-http": "^3.0.0",
227 | "string_decoder": "^1.1.1",
228 | "subarg": "^1.0.0",
229 | "syntax-error": "^1.1.1",
230 | "through2": "^2.0.0",
231 | "timers-browserify": "^1.0.1",
232 | "tty-browserify": "0.0.1",
233 | "url": "~0.11.0",
234 | "util": "~0.12.0",
235 | "vm-browserify": "^1.0.0",
236 | "xtend": "^4.0.0"
237 | }
238 | },
239 | "browserify-aes": {
240 | "version": "1.2.0",
241 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
242 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
243 | "dev": true,
244 | "requires": {
245 | "buffer-xor": "^1.0.3",
246 | "cipher-base": "^1.0.0",
247 | "create-hash": "^1.1.0",
248 | "evp_bytestokey": "^1.0.3",
249 | "inherits": "^2.0.1",
250 | "safe-buffer": "^5.0.1"
251 | }
252 | },
253 | "browserify-cipher": {
254 | "version": "1.0.1",
255 | "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
256 | "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
257 | "dev": true,
258 | "requires": {
259 | "browserify-aes": "^1.0.4",
260 | "browserify-des": "^1.0.0",
261 | "evp_bytestokey": "^1.0.0"
262 | }
263 | },
264 | "browserify-des": {
265 | "version": "1.0.2",
266 | "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
267 | "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
268 | "dev": true,
269 | "requires": {
270 | "cipher-base": "^1.0.1",
271 | "des.js": "^1.0.0",
272 | "inherits": "^2.0.1",
273 | "safe-buffer": "^5.1.2"
274 | }
275 | },
276 | "browserify-rsa": {
277 | "version": "4.1.0",
278 | "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
279 | "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
280 | "dev": true,
281 | "requires": {
282 | "bn.js": "^5.0.0",
283 | "randombytes": "^2.0.1"
284 | }
285 | },
286 | "browserify-sign": {
287 | "version": "4.2.1",
288 | "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
289 | "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
290 | "dev": true,
291 | "requires": {
292 | "bn.js": "^5.1.1",
293 | "browserify-rsa": "^4.0.1",
294 | "create-hash": "^1.2.0",
295 | "create-hmac": "^1.1.7",
296 | "elliptic": "^6.5.3",
297 | "inherits": "^2.0.4",
298 | "parse-asn1": "^5.1.5",
299 | "readable-stream": "^3.6.0",
300 | "safe-buffer": "^5.2.0"
301 | },
302 | "dependencies": {
303 | "readable-stream": {
304 | "version": "3.6.0",
305 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
306 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
307 | "dev": true,
308 | "requires": {
309 | "inherits": "^2.0.3",
310 | "string_decoder": "^1.1.1",
311 | "util-deprecate": "^1.0.1"
312 | }
313 | }
314 | }
315 | },
316 | "browserify-zlib": {
317 | "version": "0.2.0",
318 | "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
319 | "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
320 | "dev": true,
321 | "requires": {
322 | "pako": "~1.0.5"
323 | }
324 | },
325 | "buffer": {
326 | "version": "5.2.1",
327 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz",
328 | "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==",
329 | "dev": true,
330 | "requires": {
331 | "base64-js": "^1.0.2",
332 | "ieee754": "^1.1.4"
333 | }
334 | },
335 | "buffer-from": {
336 | "version": "1.1.2",
337 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
338 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
339 | "dev": true
340 | },
341 | "buffer-xor": {
342 | "version": "1.0.3",
343 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
344 | "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
345 | "dev": true
346 | },
347 | "builtin-status-codes": {
348 | "version": "3.0.0",
349 | "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
350 | "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
351 | "dev": true
352 | },
353 | "bytes": {
354 | "version": "3.1.2",
355 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
356 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
357 | },
358 | "cached-path-relative": {
359 | "version": "1.1.0",
360 | "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz",
361 | "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==",
362 | "dev": true
363 | },
364 | "call-bind": {
365 | "version": "1.0.2",
366 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
367 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
368 | "requires": {
369 | "function-bind": "^1.1.1",
370 | "get-intrinsic": "^1.0.2"
371 | }
372 | },
373 | "cipher-base": {
374 | "version": "1.0.4",
375 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
376 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
377 | "dev": true,
378 | "requires": {
379 | "inherits": "^2.0.1",
380 | "safe-buffer": "^5.0.1"
381 | }
382 | },
383 | "combine-source-map": {
384 | "version": "0.8.0",
385 | "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz",
386 | "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==",
387 | "dev": true,
388 | "requires": {
389 | "convert-source-map": "~1.1.0",
390 | "inline-source-map": "~0.6.0",
391 | "lodash.memoize": "~3.0.3",
392 | "source-map": "~0.5.3"
393 | }
394 | },
395 | "concat-map": {
396 | "version": "0.0.1",
397 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
398 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
399 | "dev": true
400 | },
401 | "concat-stream": {
402 | "version": "1.6.2",
403 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
404 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
405 | "dev": true,
406 | "requires": {
407 | "buffer-from": "^1.0.0",
408 | "inherits": "^2.0.3",
409 | "readable-stream": "^2.2.2",
410 | "typedarray": "^0.0.6"
411 | }
412 | },
413 | "console-browserify": {
414 | "version": "1.2.0",
415 | "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
416 | "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
417 | "dev": true
418 | },
419 | "constants-browserify": {
420 | "version": "1.0.0",
421 | "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
422 | "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==",
423 | "dev": true
424 | },
425 | "content-disposition": {
426 | "version": "0.5.4",
427 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
428 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
429 | "requires": {
430 | "safe-buffer": "5.2.1"
431 | }
432 | },
433 | "content-type": {
434 | "version": "1.0.4",
435 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
436 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
437 | },
438 | "convert-source-map": {
439 | "version": "1.1.3",
440 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz",
441 | "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==",
442 | "dev": true
443 | },
444 | "cookie": {
445 | "version": "0.5.0",
446 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
447 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
448 | },
449 | "cookie-signature": {
450 | "version": "1.0.6",
451 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
452 | "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
453 | },
454 | "core-util-is": {
455 | "version": "1.0.3",
456 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
457 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
458 | "dev": true
459 | },
460 | "create-ecdh": {
461 | "version": "4.0.4",
462 | "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
463 | "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
464 | "dev": true,
465 | "requires": {
466 | "bn.js": "^4.1.0",
467 | "elliptic": "^6.5.3"
468 | },
469 | "dependencies": {
470 | "bn.js": {
471 | "version": "4.12.0",
472 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
473 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
474 | "dev": true
475 | }
476 | }
477 | },
478 | "create-hash": {
479 | "version": "1.2.0",
480 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
481 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
482 | "dev": true,
483 | "requires": {
484 | "cipher-base": "^1.0.1",
485 | "inherits": "^2.0.1",
486 | "md5.js": "^1.3.4",
487 | "ripemd160": "^2.0.1",
488 | "sha.js": "^2.4.0"
489 | }
490 | },
491 | "create-hmac": {
492 | "version": "1.1.7",
493 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
494 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
495 | "dev": true,
496 | "requires": {
497 | "cipher-base": "^1.0.3",
498 | "create-hash": "^1.1.0",
499 | "inherits": "^2.0.1",
500 | "ripemd160": "^2.0.0",
501 | "safe-buffer": "^5.0.1",
502 | "sha.js": "^2.4.8"
503 | }
504 | },
505 | "crypto-browserify": {
506 | "version": "3.12.0",
507 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
508 | "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
509 | "dev": true,
510 | "requires": {
511 | "browserify-cipher": "^1.0.0",
512 | "browserify-sign": "^4.0.0",
513 | "create-ecdh": "^4.0.0",
514 | "create-hash": "^1.1.0",
515 | "create-hmac": "^1.1.0",
516 | "diffie-hellman": "^5.0.0",
517 | "inherits": "^2.0.1",
518 | "pbkdf2": "^3.0.3",
519 | "public-encrypt": "^4.0.0",
520 | "randombytes": "^2.0.0",
521 | "randomfill": "^1.0.3"
522 | }
523 | },
524 | "dash-ast": {
525 | "version": "1.0.0",
526 | "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz",
527 | "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==",
528 | "dev": true
529 | },
530 | "debug": {
531 | "version": "2.6.9",
532 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
533 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
534 | "requires": {
535 | "ms": "2.0.0"
536 | }
537 | },
538 | "define-properties": {
539 | "version": "1.1.4",
540 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
541 | "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
542 | "dev": true,
543 | "requires": {
544 | "has-property-descriptors": "^1.0.0",
545 | "object-keys": "^1.1.1"
546 | }
547 | },
548 | "defined": {
549 | "version": "1.0.0",
550 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
551 | "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==",
552 | "dev": true
553 | },
554 | "depd": {
555 | "version": "2.0.0",
556 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
557 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
558 | },
559 | "deps-sort": {
560 | "version": "2.0.1",
561 | "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz",
562 | "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==",
563 | "dev": true,
564 | "requires": {
565 | "JSONStream": "^1.0.3",
566 | "shasum-object": "^1.0.0",
567 | "subarg": "^1.0.0",
568 | "through2": "^2.0.0"
569 | }
570 | },
571 | "des.js": {
572 | "version": "1.0.1",
573 | "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
574 | "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
575 | "dev": true,
576 | "requires": {
577 | "inherits": "^2.0.1",
578 | "minimalistic-assert": "^1.0.0"
579 | }
580 | },
581 | "destroy": {
582 | "version": "1.2.0",
583 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
584 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
585 | },
586 | "detective": {
587 | "version": "5.2.1",
588 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz",
589 | "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==",
590 | "dev": true,
591 | "requires": {
592 | "acorn-node": "^1.8.2",
593 | "defined": "^1.0.0",
594 | "minimist": "^1.2.6"
595 | }
596 | },
597 | "diffie-hellman": {
598 | "version": "5.0.3",
599 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
600 | "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
601 | "dev": true,
602 | "requires": {
603 | "bn.js": "^4.1.0",
604 | "miller-rabin": "^4.0.0",
605 | "randombytes": "^2.0.0"
606 | },
607 | "dependencies": {
608 | "bn.js": {
609 | "version": "4.12.0",
610 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
611 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
612 | "dev": true
613 | }
614 | }
615 | },
616 | "domain-browser": {
617 | "version": "1.2.0",
618 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
619 | "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
620 | "dev": true
621 | },
622 | "duplexer2": {
623 | "version": "0.1.4",
624 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
625 | "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
626 | "dev": true,
627 | "requires": {
628 | "readable-stream": "^2.0.2"
629 | }
630 | },
631 | "ee-first": {
632 | "version": "1.1.1",
633 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
634 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
635 | },
636 | "elliptic": {
637 | "version": "6.5.4",
638 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
639 | "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
640 | "dev": true,
641 | "requires": {
642 | "bn.js": "^4.11.9",
643 | "brorand": "^1.1.0",
644 | "hash.js": "^1.0.0",
645 | "hmac-drbg": "^1.0.1",
646 | "inherits": "^2.0.4",
647 | "minimalistic-assert": "^1.0.1",
648 | "minimalistic-crypto-utils": "^1.0.1"
649 | },
650 | "dependencies": {
651 | "bn.js": {
652 | "version": "4.12.0",
653 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
654 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
655 | "dev": true
656 | }
657 | }
658 | },
659 | "encodeurl": {
660 | "version": "1.0.2",
661 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
662 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
663 | },
664 | "es-abstract": {
665 | "version": "1.20.1",
666 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
667 | "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
668 | "dev": true,
669 | "requires": {
670 | "call-bind": "^1.0.2",
671 | "es-to-primitive": "^1.2.1",
672 | "function-bind": "^1.1.1",
673 | "function.prototype.name": "^1.1.5",
674 | "get-intrinsic": "^1.1.1",
675 | "get-symbol-description": "^1.0.0",
676 | "has": "^1.0.3",
677 | "has-property-descriptors": "^1.0.0",
678 | "has-symbols": "^1.0.3",
679 | "internal-slot": "^1.0.3",
680 | "is-callable": "^1.2.4",
681 | "is-negative-zero": "^2.0.2",
682 | "is-regex": "^1.1.4",
683 | "is-shared-array-buffer": "^1.0.2",
684 | "is-string": "^1.0.7",
685 | "is-weakref": "^1.0.2",
686 | "object-inspect": "^1.12.0",
687 | "object-keys": "^1.1.1",
688 | "object.assign": "^4.1.2",
689 | "regexp.prototype.flags": "^1.4.3",
690 | "string.prototype.trimend": "^1.0.5",
691 | "string.prototype.trimstart": "^1.0.5",
692 | "unbox-primitive": "^1.0.2"
693 | }
694 | },
695 | "es-to-primitive": {
696 | "version": "1.2.1",
697 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
698 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
699 | "dev": true,
700 | "requires": {
701 | "is-callable": "^1.1.4",
702 | "is-date-object": "^1.0.1",
703 | "is-symbol": "^1.0.2"
704 | }
705 | },
706 | "escape-html": {
707 | "version": "1.0.3",
708 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
709 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
710 | },
711 | "etag": {
712 | "version": "1.8.1",
713 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
714 | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
715 | },
716 | "events": {
717 | "version": "3.3.0",
718 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
719 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
720 | "dev": true
721 | },
722 | "evp_bytestokey": {
723 | "version": "1.0.3",
724 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
725 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
726 | "dev": true,
727 | "requires": {
728 | "md5.js": "^1.3.4",
729 | "safe-buffer": "^5.1.1"
730 | }
731 | },
732 | "express": {
733 | "version": "4.18.1",
734 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
735 | "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
736 | "requires": {
737 | "accepts": "~1.3.8",
738 | "array-flatten": "1.1.1",
739 | "body-parser": "1.20.0",
740 | "content-disposition": "0.5.4",
741 | "content-type": "~1.0.4",
742 | "cookie": "0.5.0",
743 | "cookie-signature": "1.0.6",
744 | "debug": "2.6.9",
745 | "depd": "2.0.0",
746 | "encodeurl": "~1.0.2",
747 | "escape-html": "~1.0.3",
748 | "etag": "~1.8.1",
749 | "finalhandler": "1.2.0",
750 | "fresh": "0.5.2",
751 | "http-errors": "2.0.0",
752 | "merge-descriptors": "1.0.1",
753 | "methods": "~1.1.2",
754 | "on-finished": "2.4.1",
755 | "parseurl": "~1.3.3",
756 | "path-to-regexp": "0.1.7",
757 | "proxy-addr": "~2.0.7",
758 | "qs": "6.10.3",
759 | "range-parser": "~1.2.1",
760 | "safe-buffer": "5.2.1",
761 | "send": "0.18.0",
762 | "serve-static": "1.15.0",
763 | "setprototypeof": "1.2.0",
764 | "statuses": "2.0.1",
765 | "type-is": "~1.6.18",
766 | "utils-merge": "1.0.1",
767 | "vary": "~1.1.2"
768 | }
769 | },
770 | "fast-safe-stringify": {
771 | "version": "2.1.1",
772 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
773 | "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
774 | "dev": true
775 | },
776 | "finalhandler": {
777 | "version": "1.2.0",
778 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
779 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
780 | "requires": {
781 | "debug": "2.6.9",
782 | "encodeurl": "~1.0.2",
783 | "escape-html": "~1.0.3",
784 | "on-finished": "2.4.1",
785 | "parseurl": "~1.3.3",
786 | "statuses": "2.0.1",
787 | "unpipe": "~1.0.0"
788 | }
789 | },
790 | "for-each": {
791 | "version": "0.3.3",
792 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
793 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
794 | "dev": true,
795 | "requires": {
796 | "is-callable": "^1.1.3"
797 | }
798 | },
799 | "forwarded": {
800 | "version": "0.2.0",
801 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
802 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
803 | },
804 | "fresh": {
805 | "version": "0.5.2",
806 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
807 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
808 | },
809 | "fs.realpath": {
810 | "version": "1.0.0",
811 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
812 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
813 | "dev": true
814 | },
815 | "function-bind": {
816 | "version": "1.1.1",
817 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
818 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
819 | },
820 | "function.prototype.name": {
821 | "version": "1.1.5",
822 | "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
823 | "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
824 | "dev": true,
825 | "requires": {
826 | "call-bind": "^1.0.2",
827 | "define-properties": "^1.1.3",
828 | "es-abstract": "^1.19.0",
829 | "functions-have-names": "^1.2.2"
830 | }
831 | },
832 | "functions-have-names": {
833 | "version": "1.2.3",
834 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
835 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
836 | "dev": true
837 | },
838 | "furioos-sdk": {
839 | "version": "git+https://github.com/Unity-Technologies/furioos-sdk-js.git#1beb50f6d6f8363f4e7fe2b47b72c85f86a53258",
840 | "from": "git+https://github.com/Unity-Technologies/furioos-sdk-js.git#feature/bundle-sdk"
841 | },
842 | "get-assigned-identifiers": {
843 | "version": "1.2.0",
844 | "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz",
845 | "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==",
846 | "dev": true
847 | },
848 | "get-intrinsic": {
849 | "version": "1.1.2",
850 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
851 | "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
852 | "requires": {
853 | "function-bind": "^1.1.1",
854 | "has": "^1.0.3",
855 | "has-symbols": "^1.0.3"
856 | }
857 | },
858 | "get-symbol-description": {
859 | "version": "1.0.0",
860 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
861 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
862 | "dev": true,
863 | "requires": {
864 | "call-bind": "^1.0.2",
865 | "get-intrinsic": "^1.1.1"
866 | }
867 | },
868 | "glob": {
869 | "version": "7.2.3",
870 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
871 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
872 | "dev": true,
873 | "requires": {
874 | "fs.realpath": "^1.0.0",
875 | "inflight": "^1.0.4",
876 | "inherits": "2",
877 | "minimatch": "^3.1.1",
878 | "once": "^1.3.0",
879 | "path-is-absolute": "^1.0.0"
880 | }
881 | },
882 | "has": {
883 | "version": "1.0.3",
884 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
885 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
886 | "requires": {
887 | "function-bind": "^1.1.1"
888 | }
889 | },
890 | "has-bigints": {
891 | "version": "1.0.2",
892 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
893 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
894 | "dev": true
895 | },
896 | "has-property-descriptors": {
897 | "version": "1.0.0",
898 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
899 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
900 | "dev": true,
901 | "requires": {
902 | "get-intrinsic": "^1.1.1"
903 | }
904 | },
905 | "has-symbols": {
906 | "version": "1.0.3",
907 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
908 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
909 | },
910 | "has-tostringtag": {
911 | "version": "1.0.0",
912 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
913 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
914 | "dev": true,
915 | "requires": {
916 | "has-symbols": "^1.0.2"
917 | }
918 | },
919 | "hash-base": {
920 | "version": "3.1.0",
921 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
922 | "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
923 | "dev": true,
924 | "requires": {
925 | "inherits": "^2.0.4",
926 | "readable-stream": "^3.6.0",
927 | "safe-buffer": "^5.2.0"
928 | },
929 | "dependencies": {
930 | "readable-stream": {
931 | "version": "3.6.0",
932 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
933 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
934 | "dev": true,
935 | "requires": {
936 | "inherits": "^2.0.3",
937 | "string_decoder": "^1.1.1",
938 | "util-deprecate": "^1.0.1"
939 | }
940 | }
941 | }
942 | },
943 | "hash.js": {
944 | "version": "1.1.7",
945 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
946 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
947 | "dev": true,
948 | "requires": {
949 | "inherits": "^2.0.3",
950 | "minimalistic-assert": "^1.0.1"
951 | }
952 | },
953 | "hmac-drbg": {
954 | "version": "1.0.1",
955 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
956 | "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
957 | "dev": true,
958 | "requires": {
959 | "hash.js": "^1.0.3",
960 | "minimalistic-assert": "^1.0.0",
961 | "minimalistic-crypto-utils": "^1.0.1"
962 | }
963 | },
964 | "htmlescape": {
965 | "version": "1.1.1",
966 | "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz",
967 | "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==",
968 | "dev": true
969 | },
970 | "http-errors": {
971 | "version": "2.0.0",
972 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
973 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
974 | "requires": {
975 | "depd": "2.0.0",
976 | "inherits": "2.0.4",
977 | "setprototypeof": "1.2.0",
978 | "statuses": "2.0.1",
979 | "toidentifier": "1.0.1"
980 | }
981 | },
982 | "https-browserify": {
983 | "version": "1.0.0",
984 | "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
985 | "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
986 | "dev": true
987 | },
988 | "iconv-lite": {
989 | "version": "0.4.24",
990 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
991 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
992 | "requires": {
993 | "safer-buffer": ">= 2.1.2 < 3"
994 | }
995 | },
996 | "ieee754": {
997 | "version": "1.2.1",
998 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
999 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1000 | "dev": true
1001 | },
1002 | "inflight": {
1003 | "version": "1.0.6",
1004 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1005 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1006 | "dev": true,
1007 | "requires": {
1008 | "once": "^1.3.0",
1009 | "wrappy": "1"
1010 | }
1011 | },
1012 | "inherits": {
1013 | "version": "2.0.4",
1014 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1015 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1016 | },
1017 | "inline-source-map": {
1018 | "version": "0.6.2",
1019 | "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz",
1020 | "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==",
1021 | "dev": true,
1022 | "requires": {
1023 | "source-map": "~0.5.3"
1024 | }
1025 | },
1026 | "insert-module-globals": {
1027 | "version": "7.2.1",
1028 | "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz",
1029 | "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==",
1030 | "dev": true,
1031 | "requires": {
1032 | "JSONStream": "^1.0.3",
1033 | "acorn-node": "^1.5.2",
1034 | "combine-source-map": "^0.8.0",
1035 | "concat-stream": "^1.6.1",
1036 | "is-buffer": "^1.1.0",
1037 | "path-is-absolute": "^1.0.1",
1038 | "process": "~0.11.0",
1039 | "through2": "^2.0.0",
1040 | "undeclared-identifiers": "^1.1.2",
1041 | "xtend": "^4.0.0"
1042 | }
1043 | },
1044 | "internal-slot": {
1045 | "version": "1.0.3",
1046 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
1047 | "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
1048 | "dev": true,
1049 | "requires": {
1050 | "get-intrinsic": "^1.1.0",
1051 | "has": "^1.0.3",
1052 | "side-channel": "^1.0.4"
1053 | }
1054 | },
1055 | "ipaddr.js": {
1056 | "version": "1.9.1",
1057 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1058 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
1059 | },
1060 | "is-arguments": {
1061 | "version": "1.1.1",
1062 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
1063 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
1064 | "dev": true,
1065 | "requires": {
1066 | "call-bind": "^1.0.2",
1067 | "has-tostringtag": "^1.0.0"
1068 | }
1069 | },
1070 | "is-bigint": {
1071 | "version": "1.0.4",
1072 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
1073 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
1074 | "dev": true,
1075 | "requires": {
1076 | "has-bigints": "^1.0.1"
1077 | }
1078 | },
1079 | "is-boolean-object": {
1080 | "version": "1.1.2",
1081 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
1082 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
1083 | "dev": true,
1084 | "requires": {
1085 | "call-bind": "^1.0.2",
1086 | "has-tostringtag": "^1.0.0"
1087 | }
1088 | },
1089 | "is-buffer": {
1090 | "version": "1.1.6",
1091 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
1092 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
1093 | "dev": true
1094 | },
1095 | "is-callable": {
1096 | "version": "1.2.4",
1097 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
1098 | "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
1099 | "dev": true
1100 | },
1101 | "is-core-module": {
1102 | "version": "2.9.0",
1103 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
1104 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
1105 | "dev": true,
1106 | "requires": {
1107 | "has": "^1.0.3"
1108 | }
1109 | },
1110 | "is-date-object": {
1111 | "version": "1.0.5",
1112 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
1113 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
1114 | "dev": true,
1115 | "requires": {
1116 | "has-tostringtag": "^1.0.0"
1117 | }
1118 | },
1119 | "is-generator-function": {
1120 | "version": "1.0.10",
1121 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
1122 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
1123 | "dev": true,
1124 | "requires": {
1125 | "has-tostringtag": "^1.0.0"
1126 | }
1127 | },
1128 | "is-negative-zero": {
1129 | "version": "2.0.2",
1130 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
1131 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
1132 | "dev": true
1133 | },
1134 | "is-number-object": {
1135 | "version": "1.0.7",
1136 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
1137 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
1138 | "dev": true,
1139 | "requires": {
1140 | "has-tostringtag": "^1.0.0"
1141 | }
1142 | },
1143 | "is-regex": {
1144 | "version": "1.1.4",
1145 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
1146 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
1147 | "dev": true,
1148 | "requires": {
1149 | "call-bind": "^1.0.2",
1150 | "has-tostringtag": "^1.0.0"
1151 | }
1152 | },
1153 | "is-shared-array-buffer": {
1154 | "version": "1.0.2",
1155 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
1156 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
1157 | "dev": true,
1158 | "requires": {
1159 | "call-bind": "^1.0.2"
1160 | }
1161 | },
1162 | "is-string": {
1163 | "version": "1.0.7",
1164 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
1165 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
1166 | "dev": true,
1167 | "requires": {
1168 | "has-tostringtag": "^1.0.0"
1169 | }
1170 | },
1171 | "is-symbol": {
1172 | "version": "1.0.4",
1173 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
1174 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
1175 | "dev": true,
1176 | "requires": {
1177 | "has-symbols": "^1.0.2"
1178 | }
1179 | },
1180 | "is-typed-array": {
1181 | "version": "1.1.9",
1182 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz",
1183 | "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==",
1184 | "dev": true,
1185 | "requires": {
1186 | "available-typed-arrays": "^1.0.5",
1187 | "call-bind": "^1.0.2",
1188 | "es-abstract": "^1.20.0",
1189 | "for-each": "^0.3.3",
1190 | "has-tostringtag": "^1.0.0"
1191 | }
1192 | },
1193 | "is-weakref": {
1194 | "version": "1.0.2",
1195 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
1196 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
1197 | "dev": true,
1198 | "requires": {
1199 | "call-bind": "^1.0.2"
1200 | }
1201 | },
1202 | "isarray": {
1203 | "version": "1.0.0",
1204 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1205 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
1206 | "dev": true
1207 | },
1208 | "jsonparse": {
1209 | "version": "1.3.1",
1210 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
1211 | "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
1212 | "dev": true
1213 | },
1214 | "labeled-stream-splicer": {
1215 | "version": "2.0.2",
1216 | "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz",
1217 | "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==",
1218 | "dev": true,
1219 | "requires": {
1220 | "inherits": "^2.0.1",
1221 | "stream-splicer": "^2.0.0"
1222 | }
1223 | },
1224 | "lodash.memoize": {
1225 | "version": "3.0.4",
1226 | "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz",
1227 | "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==",
1228 | "dev": true
1229 | },
1230 | "md5.js": {
1231 | "version": "1.3.5",
1232 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
1233 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
1234 | "dev": true,
1235 | "requires": {
1236 | "hash-base": "^3.0.0",
1237 | "inherits": "^2.0.1",
1238 | "safe-buffer": "^5.1.2"
1239 | }
1240 | },
1241 | "media-typer": {
1242 | "version": "0.3.0",
1243 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1244 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
1245 | },
1246 | "merge-descriptors": {
1247 | "version": "1.0.1",
1248 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1249 | "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
1250 | },
1251 | "methods": {
1252 | "version": "1.1.2",
1253 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1254 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
1255 | },
1256 | "miller-rabin": {
1257 | "version": "4.0.1",
1258 | "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
1259 | "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
1260 | "dev": true,
1261 | "requires": {
1262 | "bn.js": "^4.0.0",
1263 | "brorand": "^1.0.1"
1264 | },
1265 | "dependencies": {
1266 | "bn.js": {
1267 | "version": "4.12.0",
1268 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
1269 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
1270 | "dev": true
1271 | }
1272 | }
1273 | },
1274 | "mime": {
1275 | "version": "1.6.0",
1276 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1277 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
1278 | },
1279 | "mime-db": {
1280 | "version": "1.52.0",
1281 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1282 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
1283 | },
1284 | "mime-types": {
1285 | "version": "2.1.35",
1286 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1287 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1288 | "requires": {
1289 | "mime-db": "1.52.0"
1290 | }
1291 | },
1292 | "minimalistic-assert": {
1293 | "version": "1.0.1",
1294 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
1295 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
1296 | "dev": true
1297 | },
1298 | "minimalistic-crypto-utils": {
1299 | "version": "1.0.1",
1300 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
1301 | "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
1302 | "dev": true
1303 | },
1304 | "minimatch": {
1305 | "version": "3.1.2",
1306 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1307 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1308 | "dev": true,
1309 | "requires": {
1310 | "brace-expansion": "^1.1.7"
1311 | }
1312 | },
1313 | "minimist": {
1314 | "version": "1.2.6",
1315 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
1316 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
1317 | "dev": true
1318 | },
1319 | "mkdirp-classic": {
1320 | "version": "0.5.3",
1321 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
1322 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
1323 | "dev": true
1324 | },
1325 | "module-deps": {
1326 | "version": "6.2.3",
1327 | "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz",
1328 | "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==",
1329 | "dev": true,
1330 | "requires": {
1331 | "JSONStream": "^1.0.3",
1332 | "browser-resolve": "^2.0.0",
1333 | "cached-path-relative": "^1.0.2",
1334 | "concat-stream": "~1.6.0",
1335 | "defined": "^1.0.0",
1336 | "detective": "^5.2.0",
1337 | "duplexer2": "^0.1.2",
1338 | "inherits": "^2.0.1",
1339 | "parents": "^1.0.0",
1340 | "readable-stream": "^2.0.2",
1341 | "resolve": "^1.4.0",
1342 | "stream-combiner2": "^1.1.1",
1343 | "subarg": "^1.0.0",
1344 | "through2": "^2.0.0",
1345 | "xtend": "^4.0.0"
1346 | }
1347 | },
1348 | "ms": {
1349 | "version": "2.0.0",
1350 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1351 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1352 | },
1353 | "negotiator": {
1354 | "version": "0.6.3",
1355 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1356 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
1357 | },
1358 | "object-assign": {
1359 | "version": "4.1.1",
1360 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1361 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1362 | "dev": true
1363 | },
1364 | "object-inspect": {
1365 | "version": "1.12.2",
1366 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
1367 | "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
1368 | },
1369 | "object-keys": {
1370 | "version": "1.1.1",
1371 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1372 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1373 | "dev": true
1374 | },
1375 | "object.assign": {
1376 | "version": "4.1.2",
1377 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
1378 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
1379 | "dev": true,
1380 | "requires": {
1381 | "call-bind": "^1.0.0",
1382 | "define-properties": "^1.1.3",
1383 | "has-symbols": "^1.0.1",
1384 | "object-keys": "^1.1.1"
1385 | }
1386 | },
1387 | "on-finished": {
1388 | "version": "2.4.1",
1389 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1390 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1391 | "requires": {
1392 | "ee-first": "1.1.1"
1393 | }
1394 | },
1395 | "once": {
1396 | "version": "1.4.0",
1397 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1398 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1399 | "dev": true,
1400 | "requires": {
1401 | "wrappy": "1"
1402 | }
1403 | },
1404 | "os-browserify": {
1405 | "version": "0.3.0",
1406 | "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
1407 | "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==",
1408 | "dev": true
1409 | },
1410 | "pako": {
1411 | "version": "1.0.11",
1412 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
1413 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
1414 | "dev": true
1415 | },
1416 | "parents": {
1417 | "version": "1.0.1",
1418 | "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz",
1419 | "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==",
1420 | "dev": true,
1421 | "requires": {
1422 | "path-platform": "~0.11.15"
1423 | }
1424 | },
1425 | "parse-asn1": {
1426 | "version": "5.1.6",
1427 | "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
1428 | "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
1429 | "dev": true,
1430 | "requires": {
1431 | "asn1.js": "^5.2.0",
1432 | "browserify-aes": "^1.0.0",
1433 | "evp_bytestokey": "^1.0.0",
1434 | "pbkdf2": "^3.0.3",
1435 | "safe-buffer": "^5.1.1"
1436 | }
1437 | },
1438 | "parseurl": {
1439 | "version": "1.3.3",
1440 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1441 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
1442 | },
1443 | "path-browserify": {
1444 | "version": "1.0.1",
1445 | "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
1446 | "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
1447 | "dev": true
1448 | },
1449 | "path-is-absolute": {
1450 | "version": "1.0.1",
1451 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1452 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1453 | "dev": true
1454 | },
1455 | "path-parse": {
1456 | "version": "1.0.7",
1457 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1458 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1459 | "dev": true
1460 | },
1461 | "path-platform": {
1462 | "version": "0.11.15",
1463 | "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz",
1464 | "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==",
1465 | "dev": true
1466 | },
1467 | "path-to-regexp": {
1468 | "version": "0.1.7",
1469 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1470 | "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
1471 | },
1472 | "pbkdf2": {
1473 | "version": "3.1.2",
1474 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
1475 | "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
1476 | "dev": true,
1477 | "requires": {
1478 | "create-hash": "^1.1.2",
1479 | "create-hmac": "^1.1.4",
1480 | "ripemd160": "^2.0.1",
1481 | "safe-buffer": "^5.0.1",
1482 | "sha.js": "^2.4.8"
1483 | }
1484 | },
1485 | "process": {
1486 | "version": "0.11.10",
1487 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
1488 | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
1489 | "dev": true
1490 | },
1491 | "process-nextick-args": {
1492 | "version": "2.0.1",
1493 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1494 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
1495 | "dev": true
1496 | },
1497 | "proxy-addr": {
1498 | "version": "2.0.7",
1499 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1500 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1501 | "requires": {
1502 | "forwarded": "0.2.0",
1503 | "ipaddr.js": "1.9.1"
1504 | }
1505 | },
1506 | "public-encrypt": {
1507 | "version": "4.0.3",
1508 | "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
1509 | "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
1510 | "dev": true,
1511 | "requires": {
1512 | "bn.js": "^4.1.0",
1513 | "browserify-rsa": "^4.0.0",
1514 | "create-hash": "^1.1.0",
1515 | "parse-asn1": "^5.0.0",
1516 | "randombytes": "^2.0.1",
1517 | "safe-buffer": "^5.1.2"
1518 | },
1519 | "dependencies": {
1520 | "bn.js": {
1521 | "version": "4.12.0",
1522 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
1523 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
1524 | "dev": true
1525 | }
1526 | }
1527 | },
1528 | "punycode": {
1529 | "version": "1.4.1",
1530 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
1531 | "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
1532 | "dev": true
1533 | },
1534 | "qs": {
1535 | "version": "6.10.3",
1536 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
1537 | "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
1538 | "requires": {
1539 | "side-channel": "^1.0.4"
1540 | }
1541 | },
1542 | "querystring": {
1543 | "version": "0.2.0",
1544 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
1545 | "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==",
1546 | "dev": true
1547 | },
1548 | "querystring-es3": {
1549 | "version": "0.2.1",
1550 | "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
1551 | "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
1552 | "dev": true
1553 | },
1554 | "randombytes": {
1555 | "version": "2.1.0",
1556 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
1557 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
1558 | "dev": true,
1559 | "requires": {
1560 | "safe-buffer": "^5.1.0"
1561 | }
1562 | },
1563 | "randomfill": {
1564 | "version": "1.0.4",
1565 | "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
1566 | "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
1567 | "dev": true,
1568 | "requires": {
1569 | "randombytes": "^2.0.5",
1570 | "safe-buffer": "^5.1.0"
1571 | }
1572 | },
1573 | "range-parser": {
1574 | "version": "1.2.1",
1575 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1576 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
1577 | },
1578 | "raw-body": {
1579 | "version": "2.5.1",
1580 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
1581 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
1582 | "requires": {
1583 | "bytes": "3.1.2",
1584 | "http-errors": "2.0.0",
1585 | "iconv-lite": "0.4.24",
1586 | "unpipe": "1.0.0"
1587 | }
1588 | },
1589 | "read-only-stream": {
1590 | "version": "2.0.0",
1591 | "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz",
1592 | "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==",
1593 | "dev": true,
1594 | "requires": {
1595 | "readable-stream": "^2.0.2"
1596 | }
1597 | },
1598 | "readable-stream": {
1599 | "version": "2.3.7",
1600 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1601 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1602 | "dev": true,
1603 | "requires": {
1604 | "core-util-is": "~1.0.0",
1605 | "inherits": "~2.0.3",
1606 | "isarray": "~1.0.0",
1607 | "process-nextick-args": "~2.0.0",
1608 | "safe-buffer": "~5.1.1",
1609 | "string_decoder": "~1.1.1",
1610 | "util-deprecate": "~1.0.1"
1611 | },
1612 | "dependencies": {
1613 | "safe-buffer": {
1614 | "version": "5.1.2",
1615 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1616 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1617 | "dev": true
1618 | },
1619 | "string_decoder": {
1620 | "version": "1.1.1",
1621 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1622 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1623 | "dev": true,
1624 | "requires": {
1625 | "safe-buffer": "~5.1.0"
1626 | }
1627 | }
1628 | }
1629 | },
1630 | "regexp.prototype.flags": {
1631 | "version": "1.4.3",
1632 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
1633 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
1634 | "dev": true,
1635 | "requires": {
1636 | "call-bind": "^1.0.2",
1637 | "define-properties": "^1.1.3",
1638 | "functions-have-names": "^1.2.2"
1639 | }
1640 | },
1641 | "resolve": {
1642 | "version": "1.22.1",
1643 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
1644 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
1645 | "dev": true,
1646 | "requires": {
1647 | "is-core-module": "^2.9.0",
1648 | "path-parse": "^1.0.7",
1649 | "supports-preserve-symlinks-flag": "^1.0.0"
1650 | }
1651 | },
1652 | "ripemd160": {
1653 | "version": "2.0.2",
1654 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
1655 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
1656 | "dev": true,
1657 | "requires": {
1658 | "hash-base": "^3.0.0",
1659 | "inherits": "^2.0.1"
1660 | }
1661 | },
1662 | "safe-buffer": {
1663 | "version": "5.2.1",
1664 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1665 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
1666 | },
1667 | "safer-buffer": {
1668 | "version": "2.1.2",
1669 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1670 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1671 | },
1672 | "send": {
1673 | "version": "0.18.0",
1674 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
1675 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
1676 | "requires": {
1677 | "debug": "2.6.9",
1678 | "depd": "2.0.0",
1679 | "destroy": "1.2.0",
1680 | "encodeurl": "~1.0.2",
1681 | "escape-html": "~1.0.3",
1682 | "etag": "~1.8.1",
1683 | "fresh": "0.5.2",
1684 | "http-errors": "2.0.0",
1685 | "mime": "1.6.0",
1686 | "ms": "2.1.3",
1687 | "on-finished": "2.4.1",
1688 | "range-parser": "~1.2.1",
1689 | "statuses": "2.0.1"
1690 | },
1691 | "dependencies": {
1692 | "ms": {
1693 | "version": "2.1.3",
1694 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1695 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
1696 | }
1697 | }
1698 | },
1699 | "serve-static": {
1700 | "version": "1.15.0",
1701 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
1702 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
1703 | "requires": {
1704 | "encodeurl": "~1.0.2",
1705 | "escape-html": "~1.0.3",
1706 | "parseurl": "~1.3.3",
1707 | "send": "0.18.0"
1708 | }
1709 | },
1710 | "setprototypeof": {
1711 | "version": "1.2.0",
1712 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1713 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1714 | },
1715 | "sha.js": {
1716 | "version": "2.4.11",
1717 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
1718 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
1719 | "dev": true,
1720 | "requires": {
1721 | "inherits": "^2.0.1",
1722 | "safe-buffer": "^5.0.1"
1723 | }
1724 | },
1725 | "shasum-object": {
1726 | "version": "1.0.0",
1727 | "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz",
1728 | "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==",
1729 | "dev": true,
1730 | "requires": {
1731 | "fast-safe-stringify": "^2.0.7"
1732 | }
1733 | },
1734 | "shell-quote": {
1735 | "version": "1.7.3",
1736 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz",
1737 | "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==",
1738 | "dev": true
1739 | },
1740 | "side-channel": {
1741 | "version": "1.0.4",
1742 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1743 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1744 | "requires": {
1745 | "call-bind": "^1.0.0",
1746 | "get-intrinsic": "^1.0.2",
1747 | "object-inspect": "^1.9.0"
1748 | }
1749 | },
1750 | "simple-concat": {
1751 | "version": "1.0.1",
1752 | "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
1753 | "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
1754 | "dev": true
1755 | },
1756 | "source-map": {
1757 | "version": "0.5.7",
1758 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
1759 | "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
1760 | "dev": true
1761 | },
1762 | "statuses": {
1763 | "version": "2.0.1",
1764 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1765 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
1766 | },
1767 | "stream-browserify": {
1768 | "version": "3.0.0",
1769 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
1770 | "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
1771 | "dev": true,
1772 | "requires": {
1773 | "inherits": "~2.0.4",
1774 | "readable-stream": "^3.5.0"
1775 | },
1776 | "dependencies": {
1777 | "readable-stream": {
1778 | "version": "3.6.0",
1779 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
1780 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1781 | "dev": true,
1782 | "requires": {
1783 | "inherits": "^2.0.3",
1784 | "string_decoder": "^1.1.1",
1785 | "util-deprecate": "^1.0.1"
1786 | }
1787 | }
1788 | }
1789 | },
1790 | "stream-combiner2": {
1791 | "version": "1.1.1",
1792 | "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
1793 | "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==",
1794 | "dev": true,
1795 | "requires": {
1796 | "duplexer2": "~0.1.0",
1797 | "readable-stream": "^2.0.2"
1798 | }
1799 | },
1800 | "stream-http": {
1801 | "version": "3.2.0",
1802 | "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz",
1803 | "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==",
1804 | "dev": true,
1805 | "requires": {
1806 | "builtin-status-codes": "^3.0.0",
1807 | "inherits": "^2.0.4",
1808 | "readable-stream": "^3.6.0",
1809 | "xtend": "^4.0.2"
1810 | },
1811 | "dependencies": {
1812 | "readable-stream": {
1813 | "version": "3.6.0",
1814 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
1815 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1816 | "dev": true,
1817 | "requires": {
1818 | "inherits": "^2.0.3",
1819 | "string_decoder": "^1.1.1",
1820 | "util-deprecate": "^1.0.1"
1821 | }
1822 | }
1823 | }
1824 | },
1825 | "stream-splicer": {
1826 | "version": "2.0.1",
1827 | "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz",
1828 | "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==",
1829 | "dev": true,
1830 | "requires": {
1831 | "inherits": "^2.0.1",
1832 | "readable-stream": "^2.0.2"
1833 | }
1834 | },
1835 | "string.prototype.trimend": {
1836 | "version": "1.0.5",
1837 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
1838 | "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
1839 | "dev": true,
1840 | "requires": {
1841 | "call-bind": "^1.0.2",
1842 | "define-properties": "^1.1.4",
1843 | "es-abstract": "^1.19.5"
1844 | }
1845 | },
1846 | "string.prototype.trimstart": {
1847 | "version": "1.0.5",
1848 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
1849 | "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
1850 | "dev": true,
1851 | "requires": {
1852 | "call-bind": "^1.0.2",
1853 | "define-properties": "^1.1.4",
1854 | "es-abstract": "^1.19.5"
1855 | }
1856 | },
1857 | "string_decoder": {
1858 | "version": "1.3.0",
1859 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1860 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1861 | "dev": true,
1862 | "requires": {
1863 | "safe-buffer": "~5.2.0"
1864 | }
1865 | },
1866 | "subarg": {
1867 | "version": "1.0.0",
1868 | "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
1869 | "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==",
1870 | "dev": true,
1871 | "requires": {
1872 | "minimist": "^1.1.0"
1873 | }
1874 | },
1875 | "supports-preserve-symlinks-flag": {
1876 | "version": "1.0.0",
1877 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1878 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1879 | "dev": true
1880 | },
1881 | "syntax-error": {
1882 | "version": "1.4.0",
1883 | "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz",
1884 | "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==",
1885 | "dev": true,
1886 | "requires": {
1887 | "acorn-node": "^1.2.0"
1888 | }
1889 | },
1890 | "through": {
1891 | "version": "2.3.8",
1892 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1893 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
1894 | "dev": true
1895 | },
1896 | "through2": {
1897 | "version": "2.0.5",
1898 | "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
1899 | "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
1900 | "dev": true,
1901 | "requires": {
1902 | "readable-stream": "~2.3.6",
1903 | "xtend": "~4.0.1"
1904 | }
1905 | },
1906 | "timers-browserify": {
1907 | "version": "1.4.2",
1908 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz",
1909 | "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==",
1910 | "dev": true,
1911 | "requires": {
1912 | "process": "~0.11.0"
1913 | }
1914 | },
1915 | "toidentifier": {
1916 | "version": "1.0.1",
1917 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1918 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
1919 | },
1920 | "tty-browserify": {
1921 | "version": "0.0.1",
1922 | "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
1923 | "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
1924 | "dev": true
1925 | },
1926 | "type-is": {
1927 | "version": "1.6.18",
1928 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1929 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1930 | "requires": {
1931 | "media-typer": "0.3.0",
1932 | "mime-types": "~2.1.24"
1933 | }
1934 | },
1935 | "typedarray": {
1936 | "version": "0.0.6",
1937 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
1938 | "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
1939 | "dev": true
1940 | },
1941 | "umd": {
1942 | "version": "3.0.3",
1943 | "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz",
1944 | "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==",
1945 | "dev": true
1946 | },
1947 | "unbox-primitive": {
1948 | "version": "1.0.2",
1949 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
1950 | "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
1951 | "dev": true,
1952 | "requires": {
1953 | "call-bind": "^1.0.2",
1954 | "has-bigints": "^1.0.2",
1955 | "has-symbols": "^1.0.3",
1956 | "which-boxed-primitive": "^1.0.2"
1957 | }
1958 | },
1959 | "undeclared-identifiers": {
1960 | "version": "1.1.3",
1961 | "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz",
1962 | "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==",
1963 | "dev": true,
1964 | "requires": {
1965 | "acorn-node": "^1.3.0",
1966 | "dash-ast": "^1.0.0",
1967 | "get-assigned-identifiers": "^1.2.0",
1968 | "simple-concat": "^1.0.0",
1969 | "xtend": "^4.0.1"
1970 | }
1971 | },
1972 | "unpipe": {
1973 | "version": "1.0.0",
1974 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1975 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
1976 | },
1977 | "url": {
1978 | "version": "0.11.0",
1979 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
1980 | "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==",
1981 | "dev": true,
1982 | "requires": {
1983 | "punycode": "1.3.2",
1984 | "querystring": "0.2.0"
1985 | },
1986 | "dependencies": {
1987 | "punycode": {
1988 | "version": "1.3.2",
1989 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
1990 | "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==",
1991 | "dev": true
1992 | }
1993 | }
1994 | },
1995 | "util": {
1996 | "version": "0.12.4",
1997 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
1998 | "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
1999 | "dev": true,
2000 | "requires": {
2001 | "inherits": "^2.0.3",
2002 | "is-arguments": "^1.0.4",
2003 | "is-generator-function": "^1.0.7",
2004 | "is-typed-array": "^1.1.3",
2005 | "safe-buffer": "^5.1.2",
2006 | "which-typed-array": "^1.1.2"
2007 | }
2008 | },
2009 | "util-deprecate": {
2010 | "version": "1.0.2",
2011 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2012 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
2013 | "dev": true
2014 | },
2015 | "utils-merge": {
2016 | "version": "1.0.1",
2017 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2018 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
2019 | },
2020 | "vary": {
2021 | "version": "1.1.2",
2022 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2023 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
2024 | },
2025 | "vm-browserify": {
2026 | "version": "1.1.2",
2027 | "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
2028 | "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
2029 | "dev": true
2030 | },
2031 | "which-boxed-primitive": {
2032 | "version": "1.0.2",
2033 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
2034 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
2035 | "dev": true,
2036 | "requires": {
2037 | "is-bigint": "^1.0.1",
2038 | "is-boolean-object": "^1.1.0",
2039 | "is-number-object": "^1.0.4",
2040 | "is-string": "^1.0.5",
2041 | "is-symbol": "^1.0.3"
2042 | }
2043 | },
2044 | "which-typed-array": {
2045 | "version": "1.1.8",
2046 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz",
2047 | "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==",
2048 | "dev": true,
2049 | "requires": {
2050 | "available-typed-arrays": "^1.0.5",
2051 | "call-bind": "^1.0.2",
2052 | "es-abstract": "^1.20.0",
2053 | "for-each": "^0.3.3",
2054 | "has-tostringtag": "^1.0.0",
2055 | "is-typed-array": "^1.1.9"
2056 | }
2057 | },
2058 | "wrappy": {
2059 | "version": "1.0.2",
2060 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2061 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
2062 | "dev": true
2063 | },
2064 | "ws": {
2065 | "version": "8.8.0",
2066 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz",
2067 | "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ=="
2068 | },
2069 | "xtend": {
2070 | "version": "4.0.2",
2071 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
2072 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
2073 | "dev": true
2074 | }
2075 | }
2076 | }
2077 |
--------------------------------------------------------------------------------