├── part-1
├── README.md
├── index.html
├── style.css
├── app.js
└── config.codekit3
└── part-2
├── README.md
├── favicon.ico
├── favicon-16x16.png
├── favicon-32x32.png
├── mstile-70x70.png
├── apple-touch-icon.png
├── mstile-144x144.png
├── mstile-150x150.png
├── mstile-310x150.png
├── mstile-310x310.png
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── browserconfig.xml
├── site.webmanifest
├── style-min.css
├── style.css
├── app.js
├── index.html
├── safari-pinned-tab.svg
├── sw.js
├── config.codekit3
└── adapter-min.js
/part-1/README.md:
--------------------------------------------------------------------------------
1 | # camera-app
2 | Super awesome camera web app built with HTML, CSS, and JS.
3 |
--------------------------------------------------------------------------------
/part-2/README.md:
--------------------------------------------------------------------------------
1 | # camera-app
2 | Super awesome camera web app built with HTML, CSS, and JS.
3 |
--------------------------------------------------------------------------------
/part-2/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/favicon.ico
--------------------------------------------------------------------------------
/part-2/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/favicon-16x16.png
--------------------------------------------------------------------------------
/part-2/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/favicon-32x32.png
--------------------------------------------------------------------------------
/part-2/mstile-70x70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/mstile-70x70.png
--------------------------------------------------------------------------------
/part-2/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/apple-touch-icon.png
--------------------------------------------------------------------------------
/part-2/mstile-144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/mstile-144x144.png
--------------------------------------------------------------------------------
/part-2/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/mstile-150x150.png
--------------------------------------------------------------------------------
/part-2/mstile-310x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/mstile-310x150.png
--------------------------------------------------------------------------------
/part-2/mstile-310x310.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/mstile-310x310.png
--------------------------------------------------------------------------------
/part-2/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/android-chrome-192x192.png
--------------------------------------------------------------------------------
/part-2/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/abenjamin765/camera-app/HEAD/part-2/android-chrome-512x512.png
--------------------------------------------------------------------------------
/part-2/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #603cba
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/part-2/site.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Camera app",
3 | "short_name": "Camera app",
4 | "icons": [
5 | {
6 | "src": "android-chrome-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png"
9 | },
10 | {
11 | "src": "android-chrome-512x512.png",
12 | "sizes": "512x512",
13 | "type": "image/png"
14 | },
15 | {
16 | "src": "apple-touch-icon.png",
17 | "sizes": "180x180",
18 | "type": "image/png"
19 | }
20 | ],
21 |
22 | "theme_color": "#ffffff",
23 | "background_color": "#ffffff",
24 | "display": "standalone"
25 | }
26 |
--------------------------------------------------------------------------------
/part-2/style-min.css:
--------------------------------------------------------------------------------
1 | html,body{margin:0;padding:0;height:100%;width:100%}#camera,#camera--view,#camera--sensor,#camera--output{position:fixed;height:100%;width:100%;-o-object-fit:cover;object-fit:cover}#camera--view,#camera--sensor,#camera--output{-webkit-transform:scaleX(-1);transform:scaleX(-1);-webkit-filter:FlipH;filter:FlipH}#camera--trigger{width:200px;background-color:black;color:white;font-size:16px;border-radius:30px;border:none;padding:15px 20px;text-align:center;-webkit-box-shadow:0 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0 5px 10px 0 rgba(0,0,0,0.2);position:fixed;bottom:30px;left:calc(50% - 100px)}.taken{height:100px !important;width:100px !important;-webkit-transition:all 0.5s ease-in;transition:all 0.5s ease-in;border:solid 3px white;-webkit-box-shadow:0 5px 10px 0 rgba(0,0,0,0.2);box-shadow:0 5px 10px 0 rgba(0,0,0,0.2);top:20px;right:20px;z-index:2}
2 |
--------------------------------------------------------------------------------
/part-1/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Camera App
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/part-1/style.css:
--------------------------------------------------------------------------------
1 | html, body{
2 | margin: 0;
3 | padding: 0;
4 | height: 100%;
5 | width: 100%;
6 | }
7 |
8 | #camera, #camera--view, #camera--sensor, #camera--output{
9 | position: fixed;
10 | height: 100%;
11 | width: 100%;
12 | object-fit: cover;
13 | }
14 |
15 | #camera--view, #camera--sensor, #camera--output{
16 | transform: scaleX(-1);
17 | filter: FlipH;
18 | }
19 |
20 | #camera--trigger{
21 | width: 200px;
22 | background-color: black;
23 | color: white;
24 | font-size: 16px;
25 | border-radius: 30px;
26 | border: none;
27 | padding: 15px 20px;
28 | text-align: center;
29 | box-shadow: 0 5px 10px 0 rgba(0,0,0,0.2);
30 | position: fixed;
31 | bottom: 30px;
32 | left: calc(50% - 100px);
33 | }
34 |
35 | .taken{
36 | height: 100px!important;
37 | width: 100px!important;
38 | transition: all 0.5s ease-in;
39 | border: solid 3px white;
40 | box-shadow: 0 5px 10px 0 rgba(0,0,0,0.2);
41 | top: 20px;
42 | right: 20px;
43 | z-index: 2;
44 | }
--------------------------------------------------------------------------------
/part-2/style.css:
--------------------------------------------------------------------------------
1 | html, body{
2 | margin: 0;
3 | padding: 0;
4 | height: 100%;
5 | width: 100%;
6 | }
7 |
8 | #camera, #camera--view, #camera--sensor, #camera--output{
9 | position: fixed;
10 | height: 100%;
11 | width: 100%;
12 | object-fit: cover;
13 | }
14 |
15 | #camera--view, #camera--sensor, #camera--output{
16 | transform: scaleX(-1);
17 | filter: FlipH;
18 | }
19 |
20 | #camera--trigger{
21 | width: 200px;
22 | background-color: black;
23 | color: white;
24 | font-size: 16px;
25 | border-radius: 30px;
26 | border: none;
27 | padding: 15px 20px;
28 | text-align: center;
29 | box-shadow: 0 5px 10px 0 rgba(0,0,0,0.2);
30 | position: fixed;
31 | bottom: 30px;
32 | left: calc(50% - 100px);
33 | }
34 |
35 | .taken{
36 | height: 100px!important;
37 | width: 100px!important;
38 | transition: all 0.5s ease-in;
39 | border: solid 3px white;
40 | box-shadow: 0 5px 10px 0 rgba(0,0,0,0.2);
41 | top: 20px;
42 | right: 20px;
43 | z-index: 2;
44 | }
--------------------------------------------------------------------------------
/part-1/app.js:
--------------------------------------------------------------------------------
1 | // Set constraints for the video stream
2 | var constraints = { video: { facingMode: "user" }, audio: false };
3 | var track = null;
4 |
5 | // Define constants
6 | const cameraView = document.querySelector("#camera--view"),
7 | cameraOutput = document.querySelector("#camera--output"),
8 | cameraSensor = document.querySelector("#camera--sensor"),
9 | cameraTrigger = document.querySelector("#camera--trigger");
10 |
11 | // Access the device camera and stream to cameraView
12 | function cameraStart() {
13 | navigator.mediaDevices
14 | .getUserMedia(constraints)
15 | .then(function(stream) {
16 | track = stream.getTracks()[0];
17 | cameraView.srcObject = stream;
18 | })
19 | .catch(function(error) {
20 | console.error("Oops. Something is broken.", error);
21 | });
22 | }
23 |
24 | // Take a picture when cameraTrigger is tapped
25 | cameraTrigger.onclick = function() {
26 | cameraSensor.width = cameraView.videoWidth;
27 | cameraSensor.height = cameraView.videoHeight;
28 | cameraSensor.getContext("2d").drawImage(cameraView, 0, 0);
29 | cameraOutput.src = cameraSensor.toDataURL("image/webp");
30 | cameraOutput.classList.add("taken");
31 | // track.stop();
32 | };
33 |
34 | // Start the video stream when the window loads
35 | window.addEventListener("load", cameraStart, false);
--------------------------------------------------------------------------------
/part-2/app.js:
--------------------------------------------------------------------------------
1 | // Set constraints for the video stream
2 | var constraints = { video: { facingMode: "user" }, audio: false };
3 | var track = null;
4 |
5 | // Define constants
6 | const cameraView = document.querySelector("#camera--view"),
7 | cameraOutput = document.querySelector("#camera--output"),
8 | cameraSensor = document.querySelector("#camera--sensor"),
9 | cameraTrigger = document.querySelector("#camera--trigger");
10 |
11 | // Access the device camera and stream to cameraView
12 | function cameraStart() {
13 | navigator.mediaDevices
14 | .getUserMedia(constraints)
15 | .then(function(stream) {
16 | track = stream.getTracks()[0];
17 | cameraView.srcObject = stream;
18 | })
19 | .catch(function(error) {
20 | console.error("Oops. Something is broken.", error);
21 | });
22 | }
23 |
24 | // Take a picture when cameraTrigger is tapped
25 | cameraTrigger.onclick = function() {
26 | cameraSensor.width = cameraView.videoWidth;
27 | cameraSensor.height = cameraView.videoHeight;
28 | cameraSensor.getContext("2d").drawImage(cameraView, 0, 0);
29 | cameraOutput.src = cameraSensor.toDataURL("image/webp");
30 | cameraOutput.classList.add("taken");
31 | // track.stop();
32 | };
33 |
34 | // Start the video stream when the window loads
35 | window.addEventListener("load", cameraStart, false);
36 |
37 |
38 | // Install ServiceWorker
39 | if ('serviceWorker' in navigator) {
40 | console.log('CLIENT: service worker registration in progress.');
41 | navigator.serviceWorker.register( '/camera-app/part-2/sw.js' , { scope : ' ' } ).then(function() {
42 | console.log('CLIENT: service worker registration complete.');
43 | }, function() {
44 | console.log('CLIENT: service worker registration failure.');
45 | });
46 | } else {
47 | console.log('CLIENT: service worker is not supported.');
48 | }
49 |
50 |
--------------------------------------------------------------------------------
/part-2/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Camera App
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/part-2/safari-pinned-tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
41 |
--------------------------------------------------------------------------------
/part-2/sw.js:
--------------------------------------------------------------------------------
1 | "use strict";
2 |
3 | console.log('WORKER: executing.');
4 |
5 | /* A version number is useful when updating the worker logic,
6 | allowing you to remove outdated cache entries during the update.
7 | */
8 | var version = 'v1::';
9 |
10 | /* These resources will be downloaded and cached by the service worker
11 | during the installation process. If any resource fails to be downloaded,
12 | then the service worker won't be installed either.
13 | */
14 | var offlineFundamentals = [
15 | '',
16 | 'index.html',
17 | 'style.css',
18 | 'app.js'
19 | ];
20 |
21 | /* The install event fires when the service worker is first installed.
22 | You can use this event to prepare the service worker to be able to serve
23 | files while visitors are offline.
24 | */
25 | self.addEventListener("install", function(event) {
26 | console.log('WORKER: install event in progress.');
27 | /* Using event.waitUntil(p) blocks the installation process on the provided
28 | promise. If the promise is rejected, the service worker won't be installed.
29 | */
30 | event.waitUntil(
31 | /* The caches built-in is a promise-based API that helps you cache responses,
32 | as well as finding and deleting them.
33 | */
34 | caches
35 | /* You can open a cache by name, and this method returns a promise. We use
36 | a versioned cache name here so that we can remove old cache entries in
37 | one fell swoop later, when phasing out an older service worker.
38 | */
39 | .open(version + 'fundamentals')
40 | .then(function(cache) {
41 | /* After the cache is opened, we can fill it with the offline fundamentals.
42 | The method below will add all resources in `offlineFundamentals` to the
43 | cache, after making requests for them.
44 | */
45 | return cache.addAll(offlineFundamentals);
46 | })
47 | .then(function() {
48 | console.log('WORKER: install completed');
49 | })
50 | );
51 | });
52 |
53 | /* The fetch event fires whenever a page controlled by this service worker requests
54 | a resource. This isn't limited to `fetch` or even XMLHttpRequest. Instead, it
55 | comprehends even the request for the HTML page on first load, as well as JS and
56 | CSS resources, fonts, any images, etc.
57 | */
58 | self.addEventListener("fetch", function(event) {
59 | console.log('WORKER: fetch event in progress.');
60 |
61 | /* We should only cache GET requests, and deal with the rest of method in the
62 | client-side, by handling failed POST,PUT,PATCH,etc. requests.
63 | */
64 | if (event.request.method !== 'GET') {
65 | /* If we don't block the event as shown below, then the request will go to
66 | the network as usual.
67 | */
68 | console.log('WORKER: fetch event ignored.', event.request.method, event.request.url);
69 | return;
70 | }
71 | /* Similar to event.waitUntil in that it blocks the fetch event on a promise.
72 | Fulfillment result will be used as the response, and rejection will end in a
73 | HTTP response indicating failure.
74 | */
75 | event.respondWith(
76 | caches
77 | /* This method returns a promise that resolves to a cache entry matching
78 | the request. Once the promise is settled, we can then provide a response
79 | to the fetch request.
80 | */
81 | .match(event.request)
82 | .then(function(cached) {
83 | /* Even if the response is in our cache, we go to the network as well.
84 | This pattern is known for producing "eventually fresh" responses,
85 | where we return cached responses immediately, and meanwhile pull
86 | a network response and store that in the cache.
87 |
88 | Read more:
89 | https://ponyfoo.com/articles/progressive-networking-serviceworker
90 | */
91 | var networked = fetch(event.request)
92 | // We handle the network request with success and failure scenarios.
93 | .then(fetchedFromNetwork, unableToResolve)
94 | // We should catch errors on the fetchedFromNetwork handler as well.
95 | .catch(unableToResolve);
96 |
97 | /* We return the cached response immediately if there is one, and fall
98 | back to waiting on the network as usual.
99 | */
100 | console.log('WORKER: fetch event', cached ? '(cached)' : '(network)', event.request.url);
101 | return cached || networked;
102 |
103 | function fetchedFromNetwork(response) {
104 | /* We copy the response before replying to the network request.
105 | This is the response that will be stored on the ServiceWorker cache.
106 | */
107 | var cacheCopy = response.clone();
108 |
109 | console.log('WORKER: fetch response from network.', event.request.url);
110 |
111 | caches
112 | // We open a cache to store the response for this request.
113 | .open(version + 'pages')
114 | .then(function add(cache) {
115 | /* We store the response for this request. It'll later become
116 | available to caches.match(event.request) calls, when looking
117 | for cached responses.
118 | */
119 | cache.put(event.request, cacheCopy);
120 | })
121 | .then(function() {
122 | console.log('WORKER: fetch response stored in cache.', event.request.url);
123 | });
124 |
125 | // Return the response so that the promise is settled in fulfillment.
126 | return response;
127 | }
128 |
129 | /* When this method is called, it means we were unable to produce a response
130 | from either the cache or the network. This is our opportunity to produce
131 | a meaningful response even when all else fails. It's the last chance, so
132 | you probably want to display a "Service Unavailable" view or a generic
133 | error response.
134 | */
135 | function unableToResolve () {
136 | /* There's a couple of things we can do here.
137 | - Test the Accept header and then return one of the `offlineFundamentals`
138 | e.g: `return caches.match('/some/cached/image.png')`
139 | - You should also consider the origin. It's easier to decide what
140 | "unavailable" means for requests against your origins than for requests
141 | against a third party, such as an ad provider.
142 | - Generate a Response programmaticaly, as shown below, and return that.
143 | */
144 |
145 | console.log('WORKER: fetch request failed in both cache and network.');
146 |
147 | /* Here we're creating a response programmatically. The first parameter is the
148 | response body, and the second one defines the options for the response.
149 | */
150 | return new Response('Service Unavailable
', {
151 | status: 503,
152 | statusText: 'Service Unavailable',
153 | headers: new Headers({
154 | 'Content-Type': 'text/html'
155 | })
156 | });
157 | }
158 | })
159 | );
160 | });
161 |
162 | /* The activate event fires after a service worker has been successfully installed.
163 | It is most useful when phasing out an older version of a service worker, as at
164 | this point you know that the new worker was installed correctly. In this example,
165 | we delete old caches that don't match the version in the worker we just finished
166 | installing.
167 | */
168 | self.addEventListener("activate", function(event) {
169 | /* Just like with the install event, event.waitUntil blocks activate on a promise.
170 | Activation will fail unless the promise is fulfilled.
171 | */
172 | console.log('WORKER: activate event in progress.');
173 |
174 | event.waitUntil(
175 | caches
176 | /* This method returns a promise which will resolve to an array of available
177 | cache keys.
178 | */
179 | .keys()
180 | .then(function (keys) {
181 | // We return a promise that settles when all outdated caches are deleted.
182 | return Promise.all(
183 | keys
184 | .filter(function (key) {
185 | // Filter by keys that don't start with the latest version prefix.
186 | return !key.startsWith(version);
187 | })
188 | .map(function (key) {
189 | /* Return a promise that's fulfilled
190 | when each outdated cache is deleted.
191 | */
192 | return caches.delete(key);
193 | })
194 | );
195 | })
196 | .then(function() {
197 | console.log('WORKER: activate completed.');
198 | })
199 | );
200 | });
201 |
--------------------------------------------------------------------------------
/part-1/config.codekit3:
--------------------------------------------------------------------------------
1 | {
2 | "AAInfo": "This is a CodeKit 3 project config file. MODIFYING THE CONTENTS OF THIS FILE IS A POOR LIFE DECISION. Doing so will cause CodeKit to crash and\/or corrupt your project. I know it looks like JSON, but it is *not*. Many numbers in this file are 64-bit long long bitFlags, which JSON does not support. These numbers *cannot* be treated as discrete values and if you attempt to parse this file as standard JSON with any public JSON parser, these values will be corrupted. This file is not backwards-compatible with CodeKit 1 or 2. For more information, see https:\/\/codekitapp.com\/",
3 | "buildSteps": [
4 | {
5 | "name": "Process All Remaining Files and Folders",
6 | "stepType": 1,
7 | "uuidString": "D05C3701-F2DF-4F1D-9EF2-D68F8AB45F41"
8 | }
9 | ],
10 | "creatorBuild": "26680",
11 | "files": {
12 | "\/android-chrome-192x192.png": {
13 | "ft": 32768,
14 | "iS": 2110,
15 | "oA": 0,
16 | "oAP": "\/android-chrome-192x192.png",
17 | "oF": 0,
18 | "oIPL": 0,
19 | "opt": 0,
20 | "oT": 1,
21 | "q": 100
22 | },
23 | "\/android-chrome-512x512.png": {
24 | "ft": 32768,
25 | "iS": 6088,
26 | "oA": 0,
27 | "oAP": "\/android-chrome-512x512.png",
28 | "oF": 0,
29 | "oIPL": 0,
30 | "opt": 0,
31 | "oT": 1,
32 | "q": 100
33 | },
34 | "\/app.js": {
35 | "ft": 64,
36 | "ma": 0,
37 | "mi": 1,
38 | "oA": 1,
39 | "oAP": "\/app-min.js",
40 | "oF": 1,
41 | "sC": 1,
42 | "tS": 0
43 | },
44 | "\/apple-touch-icon.png": {
45 | "ft": 32768,
46 | "iS": 1876,
47 | "oA": 0,
48 | "oAP": "\/apple-touch-icon.png",
49 | "oF": 0,
50 | "oIPL": 0,
51 | "opt": 0,
52 | "oT": 1,
53 | "q": 100
54 | },
55 | "\/browserconfig.xml": {
56 | "cB": 0,
57 | "ft": 8192,
58 | "oA": 0,
59 | "oAP": "\/browserconfig.xml",
60 | "oF": 0
61 | },
62 | "\/favicon-16x16.png": {
63 | "ft": 32768,
64 | "iS": 643,
65 | "oA": 0,
66 | "oAP": "\/favicon-16x16.png",
67 | "oF": 0,
68 | "oIPL": 0,
69 | "opt": 0,
70 | "oT": 1,
71 | "q": 100
72 | },
73 | "\/favicon-32x32.png": {
74 | "ft": 32768,
75 | "iS": 861,
76 | "oA": 0,
77 | "oAP": "\/favicon-32x32.png",
78 | "oF": 0,
79 | "oIPL": 0,
80 | "opt": 0,
81 | "oT": 1,
82 | "q": 100
83 | },
84 | "\/favicon.ico": {
85 | "cB": 0,
86 | "ft": 8192,
87 | "oA": 0,
88 | "oAP": "\/favicon.ico",
89 | "oF": 0
90 | },
91 | "\/index.html": {
92 | "cB": 0,
93 | "ft": 8192,
94 | "oA": 1,
95 | "oAP": "\/index.html",
96 | "oF": 1
97 | },
98 | "\/mstile-144x144.png": {
99 | "ft": 32768,
100 | "iS": 2532,
101 | "oA": 0,
102 | "oAP": "\/mstile-144x144.png",
103 | "oF": 0,
104 | "oIPL": 0,
105 | "opt": 0,
106 | "oT": 1,
107 | "q": 100
108 | },
109 | "\/mstile-150x150.png": {
110 | "ft": 32768,
111 | "iS": 2616,
112 | "oA": 0,
113 | "oAP": "\/mstile-150x150.png",
114 | "oF": 0,
115 | "oIPL": 0,
116 | "opt": 0,
117 | "oT": 1,
118 | "q": 100
119 | },
120 | "\/mstile-310x150.png": {
121 | "ft": 32768,
122 | "iS": 2833,
123 | "oA": 0,
124 | "oAP": "\/mstile-310x150.png",
125 | "oF": 0,
126 | "oIPL": 0,
127 | "opt": 0,
128 | "oT": 1,
129 | "q": 100
130 | },
131 | "\/mstile-310x310.png": {
132 | "ft": 32768,
133 | "iS": 5654,
134 | "oA": 0,
135 | "oAP": "\/mstile-310x310.png",
136 | "oF": 0,
137 | "oIPL": 0,
138 | "opt": 0,
139 | "oT": 1,
140 | "q": 100
141 | },
142 | "\/mstile-70x70.png": {
143 | "ft": 32768,
144 | "iS": 1681,
145 | "oA": 0,
146 | "oAP": "\/mstile-70x70.png",
147 | "oF": 0,
148 | "oIPL": 0,
149 | "opt": 0,
150 | "oT": 1,
151 | "q": 100
152 | },
153 | "\/README.md": {
154 | "cB": 0,
155 | "cS": 0,
156 | "eF": 1,
157 | "eL": 1,
158 | "ema": 1,
159 | "eSQ": 1,
160 | "ft": 4096,
161 | "oA": 1,
162 | "oAP": "\/README.html",
163 | "oF": 1,
164 | "oFM": 0,
165 | "oS": 0,
166 | "pHT": 0,
167 | "pME": 1,
168 | "rFN": 0,
169 | "uCM": 0
170 | },
171 | "\/safari-pinned-tab.svg": {
172 | "ft": 2097152,
173 | "miP": 0,
174 | "oA": 2,
175 | "oAP": "\/safari-pinned-tab.svg",
176 | "oF": 0,
177 | "opt": 0,
178 | "plM": 3758088159,
179 | "prP": 0
180 | },
181 | "\/site.webmanifest": {
182 | "cB": 0,
183 | "ft": 8192,
184 | "oA": 0,
185 | "oAP": "\/site.webmanifest",
186 | "oF": 0
187 | },
188 | "\/style-min.css": {
189 | "aP": 1,
190 | "bl": 0,
191 | "ft": 16,
192 | "ma": 0,
193 | "oA": 0,
194 | "oAP": "\/style-min-min.css",
195 | "oF": 0,
196 | "oS": 3
197 | },
198 | "\/style.css": {
199 | "aP": 1,
200 | "bl": 0,
201 | "ft": 16,
202 | "ma": 0,
203 | "oA": 0,
204 | "oAP": "\/style-min.css",
205 | "oF": 0,
206 | "oS": 3
207 | },
208 | "\/sw.js": {
209 | "ft": 64,
210 | "ma": 0,
211 | "mi": 1,
212 | "oA": 1,
213 | "oAP": "\/sw-min.js",
214 | "oF": 1,
215 | "sC": 1,
216 | "tS": 0
217 | }
218 | },
219 | "hooks": [
220 | ],
221 | "manualImportLinks": {
222 | },
223 | "projectAttributes": {
224 | "creationDate": 546057140,
225 | "displayValue": "camera-app",
226 | "displayValueWasSetByUser": 0,
227 | "iconImageName": "\/apple-touch-icon.png",
228 | "iconImageWasSetByUser": 0
229 | },
230 | "projectSettings": {
231 | "abortBuildOnError": 1,
232 | "alwaysUseExternalServer": 0,
233 | "animateCSSInjections": 1,
234 | "autoBuildNewItems": 1,
235 | "autoprefixerBrowserString": "> 1%, last 2 versions, Firefox ESR, Opera 12.1",
236 | "autoprefixerEnableIEGrid": 0,
237 | "babelAuxiliaryCommentAfter": "",
238 | "babelAuxiliaryCommentBefore": "",
239 | "babelConfigFileHandlingType": 0,
240 | "babelCustomPluginsList": "",
241 | "babelCustomPresetsList": "",
242 | "babelInsertModuleIDs": 0,
243 | "babelModuleID": "",
244 | "babelNoComments": 0,
245 | "babelPlugins": {
246 | "async-generator-functions": {
247 | "active": 0
248 | },
249 | "async-to-generator": {
250 | "active": 0
251 | },
252 | "async-to-module-method": {
253 | "active": 0
254 | },
255 | "class-properties": {
256 | "active": 0
257 | },
258 | "decorators": {
259 | "active": 0
260 | },
261 | "decorators-legacy": {
262 | "active": 0
263 | },
264 | "do-expressions": {
265 | "active": 0
266 | },
267 | "es2015-arrow-functions": {
268 | "active": 0
269 | },
270 | "es2015-block-scoped-functions": {
271 | "active": 0
272 | },
273 | "es2015-block-scoping": {
274 | "active": 0
275 | },
276 | "es2015-classes": {
277 | "active": 0
278 | },
279 | "es2015-computed-properties": {
280 | "active": 0
281 | },
282 | "es2015-constants": {
283 | "active": 0
284 | },
285 | "es2015-destructuring": {
286 | "active": 0
287 | },
288 | "es2015-duplicate-keys": {
289 | "active": 0
290 | },
291 | "es2015-for-of": {
292 | "active": 0
293 | },
294 | "es2015-function-name": {
295 | "active": 0
296 | },
297 | "es2015-literals": {
298 | "active": 0
299 | },
300 | "es2015-modules-amd": {
301 | "active": 0
302 | },
303 | "es2015-modules-commonjs": {
304 | "active": 0
305 | },
306 | "es2015-modules-systemjs": {
307 | "active": 0
308 | },
309 | "es2015-modules-umd": {
310 | "active": 0
311 | },
312 | "es2015-object-super": {
313 | "active": 0
314 | },
315 | "es2015-parameters": {
316 | "active": 0
317 | },
318 | "es2015-shorthand-properties": {
319 | "active": 0
320 | },
321 | "es2015-spread": {
322 | "active": 0
323 | },
324 | "es2015-sticky-regex": {
325 | "active": 0
326 | },
327 | "es2015-template-literals": {
328 | "active": 0
329 | },
330 | "es2015-typeof-symbol": {
331 | "active": 0
332 | },
333 | "es2015-unicode-regex": {
334 | "active": 0
335 | },
336 | "es3-member-expression-literals": {
337 | "active": 0
338 | },
339 | "es3-property-literals": {
340 | "active": 0
341 | },
342 | "es5-property-mutators": {
343 | "active": 0
344 | },
345 | "eval": {
346 | "active": 0
347 | },
348 | "exponentiation-operator": {
349 | "active": 0
350 | },
351 | "export-extensions": {
352 | "active": 0
353 | },
354 | "external-helpers": {
355 | "active": 0
356 | },
357 | "flow-comments": {
358 | "active": 0
359 | },
360 | "flow-strip-types": {
361 | "active": 0
362 | },
363 | "function-bind": {
364 | "active": 0
365 | },
366 | "inline-environment-variables": {
367 | "active": 0
368 | },
369 | "jscript": {
370 | "active": 0
371 | },
372 | "member-expression-literals": {
373 | "active": 0
374 | },
375 | "merge-sibling-variables": {
376 | "active": 0
377 | },
378 | "minify-booleans": {
379 | "active": 0
380 | },
381 | "node-env-inline": {
382 | "active": 0
383 | },
384 | "object-assign": {
385 | "active": 0
386 | },
387 | "object-rest-spread": {
388 | "active": 0
389 | },
390 | "object-set-prototype-of-to-assign": {
391 | "active": 0
392 | },
393 | "property-literals": {
394 | "active": 0
395 | },
396 | "proto-to-assign": {
397 | "active": 0
398 | },
399 | "react-constant-elements": {
400 | "active": 0
401 | },
402 | "react-display-name": {
403 | "active": 0
404 | },
405 | "react-inline-elements": {
406 | "active": 0
407 | },
408 | "react-jsx": {
409 | "active": 0
410 | },
411 | "react-jsx-compat": {
412 | "active": 0
413 | },
414 | "react-jsx-self": {
415 | "active": 0
416 | },
417 | "react-jsx-source": {
418 | "active": 0
419 | },
420 | "regenerator": {
421 | "active": 0
422 | },
423 | "remove-console": {
424 | "active": 0
425 | },
426 | "remove-debugger": {
427 | "active": 0
428 | },
429 | "runtime": {
430 | "active": 0
431 | },
432 | "simplify-comparison-operators": {
433 | "active": 0
434 | },
435 | "strict-mode": {
436 | "active": 0
437 | },
438 | "syntax-async-generators": {
439 | "active": 0
440 | },
441 | "syntax-class-properties": {
442 | "active": 0
443 | },
444 | "syntax-decorators": {
445 | "active": 0
446 | },
447 | "syntax-do-expressions": {
448 | "active": 0
449 | },
450 | "syntax-export-extensions": {
451 | "active": 0
452 | },
453 | "syntax-flow": {
454 | "active": 0
455 | },
456 | "syntax-function-bind": {
457 | "active": 0
458 | },
459 | "syntax-function-sent": {
460 | "active": 0
461 | },
462 | "syntax-jsx": {
463 | "active": 0
464 | },
465 | "syntax-object-rest-spread": {
466 | "active": 0
467 | },
468 | "undeclared-variables-check": {
469 | "active": 0
470 | },
471 | "undefined-to-void": {
472 | "active": 0
473 | }
474 | },
475 | "babelPresetType": 193,
476 | "babelRetainLines": 0,
477 | "bowerAbbreviatedPath": "bower_components",
478 | "bowerAutoCreateInfoFile": 1,
479 | "bowerInstallDevDependencies": 0,
480 | "bowerSaveDependencies": 1,
481 | "bowerSaveDevDependencies": 0,
482 | "bowerUseExactVersion": 0,
483 | "browserRefreshDelay": 0,
484 | "buildFolderActive": 0,
485 | "buildFolderName": "build",
486 | "cleanBuild": 1,
487 | "coffeeLintFlags2": {
488 | "arrow_spacing": {
489 | "active": 0,
490 | "flagValue": -1
491 | },
492 | "camel_case_classes": {
493 | "active": 1,
494 | "flagValue": -1
495 | },
496 | "colon_assignment_spacing": {
497 | "active": 0,
498 | "flagValue": 1
499 | },
500 | "cyclomatic_complexity": {
501 | "active": 0,
502 | "flagValue": 10
503 | },
504 | "duplicate_key": {
505 | "active": 1,
506 | "flagValue": -1
507 | },
508 | "empty_constructor_needs_parens": {
509 | "active": 0,
510 | "flagValue": -1
511 | },
512 | "ensure_comprehensions": {
513 | "active": 1,
514 | "flagValue": -1
515 | },
516 | "indentation": {
517 | "active": 1,
518 | "flagValue": 2
519 | },
520 | "line_endings": {
521 | "active": 0,
522 | "flagValue": 0
523 | },
524 | "max_line_length": {
525 | "active": 0,
526 | "flagValue": 150
527 | },
528 | "missing_fat_arrows": {
529 | "active": 0,
530 | "flagValue": -1
531 | },
532 | "newlines_after_classes": {
533 | "active": 0,
534 | "flagValue": 3
535 | },
536 | "no_backticks": {
537 | "active": 1,
538 | "flagValue": -1
539 | },
540 | "no_debugger": {
541 | "active": 1,
542 | "flagValue": -1
543 | },
544 | "no_empty_functions": {
545 | "active": 0,
546 | "flagValue": -1
547 | },
548 | "no_empty_param_list": {
549 | "active": 0,
550 | "flagValue": -1
551 | },
552 | "no_implicit_braces": {
553 | "active": 1,
554 | "flagValue": -1
555 | },
556 | "no_implicit_parens": {
557 | "active": 0,
558 | "flagValue": -1
559 | },
560 | "no_interpolation_in_single_quotes": {
561 | "active": 0,
562 | "flagValue": -1
563 | },
564 | "no_nested_string_interpolation": {
565 | "active": 1,
566 | "flagValue": -1
567 | },
568 | "no_plusplus": {
569 | "active": 0,
570 | "flagValue": -1
571 | },
572 | "no_private_function_fat_arrows": {
573 | "active": 1,
574 | "flagValue": -1
575 | },
576 | "no_stand_alone_at": {
577 | "active": 1,
578 | "flagValue": -1
579 | },
580 | "no_tabs": {
581 | "active": 1,
582 | "flagValue": -1
583 | },
584 | "no_this": {
585 | "active": 0,
586 | "flagValue": -1
587 | },
588 | "no_throwing_strings": {
589 | "active": 1,
590 | "flagValue": -1
591 | },
592 | "no_trailing_semicolons": {
593 | "active": 1,
594 | "flagValue": -1
595 | },
596 | "no_trailing_whitespace": {
597 | "active": 1,
598 | "flagValue": -1
599 | },
600 | "no_unnecessary_double_quotes": {
601 | "active": 0,
602 | "flagValue": -1
603 | },
604 | "no_unnecessary_fat_arrows": {
605 | "active": 1,
606 | "flagValue": -1
607 | },
608 | "non_empty_constructor_needs_parens": {
609 | "active": 0,
610 | "flagValue": -1
611 | },
612 | "prefer_english_operator": {
613 | "active": 0,
614 | "flagValue": -1
615 | },
616 | "space_operators": {
617 | "active": 0,
618 | "flagValue": -1
619 | },
620 | "spacing_after_comma": {
621 | "active": 1,
622 | "flagValue": -1
623 | }
624 | },
625 | "esLintConfigFileHandlingType": 0,
626 | "esLintECMAVersion": 7,
627 | "esLintEnvironmentsMask": 1,
628 | "esLintRules": {
629 | "accessor-pairs": {
630 | "active": 0,
631 | "optionString": "{'setWithoutGet': true, 'getWithoutSet': false}"
632 | },
633 | "array-bracket-newline": {
634 | "active": 0,
635 | "optionString": "{'multiline': true, 'minItems': null}"
636 | },
637 | "array-bracket-spacing": {
638 | "active": 0,
639 | "optionString": "'never', {'singleValue': false, 'objectsInArrays': false, 'arraysInArrays': false}"
640 | },
641 | "array-callback-return": {
642 | "active": 0,
643 | "optionString": ""
644 | },
645 | "array-element-newline": {
646 | "active": 0,
647 | "optionString": "'always'"
648 | },
649 | "arrow-body-style": {
650 | "active": 0,
651 | "optionString": "'as-needed', {'requireReturnForObjectLiteral': false}"
652 | },
653 | "arrow-parens": {
654 | "active": 0,
655 | "optionString": "'always'"
656 | },
657 | "arrow-spacing": {
658 | "active": 0,
659 | "optionString": "{'before': true, 'after': true}"
660 | },
661 | "block-scoped-var": {
662 | "active": 0,
663 | "optionString": ""
664 | },
665 | "block-spacing": {
666 | "active": 0,
667 | "optionString": "'always'"
668 | },
669 | "brace-style": {
670 | "active": 0,
671 | "optionString": "'1tbs', {'allowSingleLine': true}"
672 | },
673 | "callback-return": {
674 | "active": 0,
675 | "optionString": "['callback', 'cb', 'next']"
676 | },
677 | "camelcase": {
678 | "active": 0,
679 | "optionString": "{'properties': 'always'}"
680 | },
681 | "capitalized-comments": {
682 | "active": 0,
683 | "optionString": "'always', {'ignoreInlineComments': false, 'ignoreConsecutiveComments': false}"
684 | },
685 | "class-methods-use-this": {
686 | "active": 0,
687 | "optionString": "{'exceptMethods': []}"
688 | },
689 | "comma-dangle": {
690 | "active": 1,
691 | "optionString": "'never'"
692 | },
693 | "comma-spacing": {
694 | "active": 0,
695 | "optionString": "{'before': false, 'after': true}"
696 | },
697 | "comma-style": {
698 | "active": 0,
699 | "optionString": "'last'"
700 | },
701 | "complexity": {
702 | "active": 0,
703 | "optionString": "20"
704 | },
705 | "computed-property-spacing": {
706 | "active": 0,
707 | "optionString": "'never'"
708 | },
709 | "consistent-return": {
710 | "active": 0,
711 | "optionString": "{'treatUndefinedAsUnspecified': false}"
712 | },
713 | "consistent-this": {
714 | "active": 0,
715 | "optionString": "'that'"
716 | },
717 | "constructor-super": {
718 | "active": 1,
719 | "optionString": ""
720 | },
721 | "curly": {
722 | "active": 0,
723 | "optionString": "'all'"
724 | },
725 | "default-case": {
726 | "active": 0,
727 | "optionString": ""
728 | },
729 | "dot-location": {
730 | "active": 0,
731 | "optionString": "'object'"
732 | },
733 | "dot-notation": {
734 | "active": 0,
735 | "optionString": "{'allowKeywords': false}"
736 | },
737 | "eol-last": {
738 | "active": 0,
739 | "optionString": "'always'"
740 | },
741 | "eqeqeq": {
742 | "active": 0,
743 | "optionString": "'always', {'null': 'always'}"
744 | },
745 | "for-direction": {
746 | "active": 0,
747 | "optionString": ""
748 | },
749 | "func-call-spacing": {
750 | "active": 0,
751 | "optionString": "'never'"
752 | },
753 | "func-name-matching": {
754 | "active": 0,
755 | "optionString": "'always', {'includeCommonJSModuleExports': false}"
756 | },
757 | "func-names": {
758 | "active": 0,
759 | "optionString": "'always'"
760 | },
761 | "func-style": {
762 | "active": 0,
763 | "optionString": "'expression'"
764 | },
765 | "function-paren-newline": {
766 | "active": 0,
767 | "optionString": "'multiline'"
768 | },
769 | "generator-star-spacing": {
770 | "active": 0,
771 | "optionString": "{'before': true, 'after': false}"
772 | },
773 | "getter-return": {
774 | "active": 0,
775 | "optionString": "{'allowImplicit': false}"
776 | },
777 | "global-require": {
778 | "active": 0,
779 | "optionString": ""
780 | },
781 | "guard-for-in": {
782 | "active": 0,
783 | "optionString": ""
784 | },
785 | "handle-callback-err": {
786 | "active": 0,
787 | "optionString": "'err'"
788 | },
789 | "id-blacklist": {
790 | "active": 0,
791 | "optionString": "'data', 'err', 'e', 'cb', 'callback'"
792 | },
793 | "id-length": {
794 | "active": 0,
795 | "optionString": "{'min': 2, 'max': 1000, 'properties': 'always', 'exceptions': ['x', 'i', 'y']}"
796 | },
797 | "id-match": {
798 | "active": 0,
799 | "optionString": "'^[a-z]+([A-Z][a-z]+)*$', {'properties': false, 'onlyDeclarations': true}"
800 | },
801 | "implicit-arrow-linebreak": {
802 | "active": 0,
803 | "optionString": "'beside'"
804 | },
805 | "indent": {
806 | "active": 0,
807 | "optionString": "4, {'SwitchCase': 0, 'VariableDeclarator': 1, 'outerIIFEBody': 1, }"
808 | },
809 | "init-declarations": {
810 | "active": 0,
811 | "optionString": "'always', {'ignoreForLoopInit': true}"
812 | },
813 | "jsx-quotes": {
814 | "active": 0,
815 | "optionString": "'prefer-double'"
816 | },
817 | "key-spacing": {
818 | "active": 0,
819 | "optionString": "{'singleLine': {'beforeColon': false, 'afterColon': true, 'mode':'strict'}, 'multiLine': {'beforeColon': false, 'afterColon': true, 'align': 'value', 'mode':'minimum'}}"
820 | },
821 | "keyword-spacing": {
822 | "active": 0,
823 | "optionString": "{'before': true, 'after': true, 'overrides': {}}"
824 | },
825 | "line-comment-position": {
826 | "active": 0,
827 | "optionString": "{'position': 'above'}"
828 | },
829 | "linebreak-style": {
830 | "active": 0,
831 | "optionString": "'unix'"
832 | },
833 | "lines-around-comment": {
834 | "active": 0,
835 | "optionString": "{'beforeBlockComment': true}"
836 | },
837 | "lines-between-class-members": {
838 | "active": 0,
839 | "optionString": "'always', {exceptAfterSingleLine: false}"
840 | },
841 | "max-depth": {
842 | "active": 0,
843 | "optionString": "{'max': 4}"
844 | },
845 | "max-len": {
846 | "active": 0,
847 | "optionString": "{'code': 80, 'comments': 80, 'tabWidth': 4, 'ignoreUrls': true, 'ignoreStrings': true, 'ignoreTemplateLiterals': true, 'ignoreRegExpLiterals': true}"
848 | },
849 | "max-lines": {
850 | "active": 0,
851 | "optionString": "{'max': 300, 'skipBlankLines': true, 'skipComments': true}"
852 | },
853 | "max-nested-callbacks": {
854 | "active": 0,
855 | "optionString": "{'max': 10}"
856 | },
857 | "max-params": {
858 | "active": 0,
859 | "optionString": "{'max': 4}"
860 | },
861 | "max-statements": {
862 | "active": 0,
863 | "optionString": "{'max': 10}, {'ignoreTopLevelFunctions': true}"
864 | },
865 | "max-statements-per-line": {
866 | "active": 0,
867 | "optionString": "{'max': 1}"
868 | },
869 | "multiline-comment-style": {
870 | "active": 0,
871 | "optionString": "'starred-block'"
872 | },
873 | "multiline-ternary": {
874 | "active": 0,
875 | "optionString": "'always'"
876 | },
877 | "new-cap": {
878 | "active": 0,
879 | "optionString": "{'newIsCap': true, 'capIsNew': true, 'newIsCapExceptions': [], 'capIsNewExceptions': ['Array', 'Boolean', 'Date', 'Error', 'Function', 'Number', 'Object', 'RegExp', 'String', 'Symbol'], 'properties': true}"
880 | },
881 | "new-parens": {
882 | "active": 0,
883 | "optionString": ""
884 | },
885 | "newline-per-chained-call": {
886 | "active": 0,
887 | "optionString": "{'ignoreChainWithDepth': 2}"
888 | },
889 | "no-alert": {
890 | "active": 0,
891 | "optionString": ""
892 | },
893 | "no-array-constructor": {
894 | "active": 0,
895 | "optionString": ""
896 | },
897 | "no-await-in-loop": {
898 | "active": 0,
899 | "optionString": ""
900 | },
901 | "no-bitwise": {
902 | "active": 0,
903 | "optionString": "{'allow': ['~'], 'int32Hint': true}"
904 | },
905 | "no-buffer-constructor": {
906 | "active": 0,
907 | "optionString": ""
908 | },
909 | "no-caller": {
910 | "active": 0,
911 | "optionString": ""
912 | },
913 | "no-case-declarations": {
914 | "active": 1,
915 | "optionString": ""
916 | },
917 | "no-catch-shadow": {
918 | "active": 0,
919 | "optionString": ""
920 | },
921 | "no-class-assign": {
922 | "active": 1,
923 | "optionString": ""
924 | },
925 | "no-compare-neg-zero": {
926 | "active": 0,
927 | "optionString": ""
928 | },
929 | "no-cond-assign": {
930 | "active": 1,
931 | "optionString": "'except-parens'"
932 | },
933 | "no-confusing-arrow": {
934 | "active": 0,
935 | "optionString": "{'allowParens': false}"
936 | },
937 | "no-console": {
938 | "active": 1,
939 | "optionString": "{'allow': ['warn', 'error']}"
940 | },
941 | "no-const-assign": {
942 | "active": 1,
943 | "optionString": ""
944 | },
945 | "no-constant-condition": {
946 | "active": 1,
947 | "optionString": "{'checkLoops': true}"
948 | },
949 | "no-continue": {
950 | "active": 0,
951 | "optionString": ""
952 | },
953 | "no-control-regex": {
954 | "active": 1,
955 | "optionString": ""
956 | },
957 | "no-debugger": {
958 | "active": 1,
959 | "optionString": ""
960 | },
961 | "no-delete-var": {
962 | "active": 1,
963 | "optionString": ""
964 | },
965 | "no-div-regex": {
966 | "active": 0,
967 | "optionString": ""
968 | },
969 | "no-dupe-args": {
970 | "active": 1,
971 | "optionString": ""
972 | },
973 | "no-dupe-class-members": {
974 | "active": 1,
975 | "optionString": ""
976 | },
977 | "no-dupe-keys": {
978 | "active": 1,
979 | "optionString": ""
980 | },
981 | "no-duplicate-imports": {
982 | "active": 0,
983 | "optionString": "{'includeExports': false}"
984 | },
985 | "no-else-return": {
986 | "active": 0,
987 | "optionString": ""
988 | },
989 | "no-empty": {
990 | "active": 1,
991 | "optionString": "{'allowEmptyCatch': false}"
992 | },
993 | "no-empty-character-class": {
994 | "active": 1,
995 | "optionString": ""
996 | },
997 | "no-empty-function": {
998 | "active": 0,
999 | "optionString": "{'allow': []}"
1000 | },
1001 | "no-empty-pattern": {
1002 | "active": 1,
1003 | "optionString": ""
1004 | },
1005 | "no-eq-null": {
1006 | "active": 0,
1007 | "optionString": ""
1008 | },
1009 | "no-eval": {
1010 | "active": 0,
1011 | "optionString": "{'allowIndirect': false}"
1012 | },
1013 | "no-ex-assign": {
1014 | "active": 1,
1015 | "optionString": ""
1016 | },
1017 | "no-extend-native": {
1018 | "active": 0,
1019 | "optionString": "{'exceptions': []}"
1020 | },
1021 | "no-extra-bind": {
1022 | "active": 0,
1023 | "optionString": ""
1024 | },
1025 | "no-extra-boolean-cast": {
1026 | "active": 1,
1027 | "optionString": ""
1028 | },
1029 | "no-extra-labels": {
1030 | "active": 0,
1031 | "optionString": ""
1032 | },
1033 | "no-extra-parens": {
1034 | "active": 0,
1035 | "optionString": "'all', {'conditionalAssign': false, 'returnAssign': false, 'nestedBinaryExpressions': false, 'ignoreJSX': 'none', 'enforceForArrowConditionals': false}"
1036 | },
1037 | "no-extra-semi": {
1038 | "active": 1,
1039 | "optionString": ""
1040 | },
1041 | "no-fallthrough": {
1042 | "active": 1,
1043 | "optionString": ""
1044 | },
1045 | "no-floating-decimal": {
1046 | "active": 0,
1047 | "optionString": ""
1048 | },
1049 | "no-func-assign": {
1050 | "active": 1,
1051 | "optionString": ""
1052 | },
1053 | "no-global-assign": {
1054 | "active": 1,
1055 | "optionString": "{'exceptions': []}"
1056 | },
1057 | "no-implicit-coercion": {
1058 | "active": 0,
1059 | "optionString": "{'boolean': true, 'number': true, 'string': true, 'allow': []}"
1060 | },
1061 | "no-implicit-globals": {
1062 | "active": 0,
1063 | "optionString": ""
1064 | },
1065 | "no-implied-eval": {
1066 | "active": 0,
1067 | "optionString": ""
1068 | },
1069 | "no-inline-comments": {
1070 | "active": 0,
1071 | "optionString": ""
1072 | },
1073 | "no-inner-declarations": {
1074 | "active": 1,
1075 | "optionString": "'functions'"
1076 | },
1077 | "no-invalid-regexp": {
1078 | "active": 1,
1079 | "optionString": "{'allowConstructorFlags': ['u', 'y']}"
1080 | },
1081 | "no-invalid-this": {
1082 | "active": 0,
1083 | "optionString": ""
1084 | },
1085 | "no-irregular-whitespace": {
1086 | "active": 1,
1087 | "optionString": "{'skipStrings': true, 'skipComments': false, 'skipRegExps': true, 'skipTemplates': true}"
1088 | },
1089 | "no-iterator": {
1090 | "active": 0,
1091 | "optionString": ""
1092 | },
1093 | "no-label-var": {
1094 | "active": 0,
1095 | "optionString": ""
1096 | },
1097 | "no-labels": {
1098 | "active": 0,
1099 | "optionString": "{'allowLoop': false, 'allowSwitch': false}"
1100 | },
1101 | "no-lone-blocks": {
1102 | "active": 0,
1103 | "optionString": ""
1104 | },
1105 | "no-lonely-if": {
1106 | "active": 0,
1107 | "optionString": ""
1108 | },
1109 | "no-loop-func": {
1110 | "active": 0,
1111 | "optionString": ""
1112 | },
1113 | "no-magic-numbers": {
1114 | "active": 0,
1115 | "optionString": "{'ignore': [], 'ignoreArrayIndexes': true, 'enforceConst': false, 'detectObjects': false}"
1116 | },
1117 | "no-mixed-operators": {
1118 | "active": 0,
1119 | "optionString": "{'groups': [['+', '-', '*', '\/', '%', '**'], ['&', '|', '^', '~', '<<', '>>', '>>>'], ['==', '!=', '===', '!==', '>', '>=', '<', '<='], ['&&', '||'], ['in', 'instanceof']], 'allowSamePrecedence': true}"
1120 | },
1121 | "no-mixed-requires": {
1122 | "active": 0,
1123 | "optionString": "{'grouping': false, 'allowCall': false }"
1124 | },
1125 | "no-mixed-spaces-and-tabs": {
1126 | "active": 0,
1127 | "optionString": ""
1128 | },
1129 | "no-multi-assign": {
1130 | "active": 0,
1131 | "optionString": ""
1132 | },
1133 | "no-multi-spaces": {
1134 | "active": 0,
1135 | "optionString": "{'exceptions': {'Property': true, 'BinaryExpression': false, 'VariableDeclarator': false, 'ImportDeclaration': false}}"
1136 | },
1137 | "no-multi-str": {
1138 | "active": 0,
1139 | "optionString": ""
1140 | },
1141 | "no-multiple-empty-lines": {
1142 | "active": 0,
1143 | "optionString": "{'max': 2, 'maxBOF': 2, 'maxEOF': 2}"
1144 | },
1145 | "no-negated-condition": {
1146 | "active": 0,
1147 | "optionString": ""
1148 | },
1149 | "no-nested-ternary": {
1150 | "active": 0,
1151 | "optionString": ""
1152 | },
1153 | "no-new": {
1154 | "active": 0,
1155 | "optionString": ""
1156 | },
1157 | "no-new-func": {
1158 | "active": 0,
1159 | "optionString": ""
1160 | },
1161 | "no-new-object": {
1162 | "active": 0,
1163 | "optionString": ""
1164 | },
1165 | "no-new-require": {
1166 | "active": 0,
1167 | "optionString": ""
1168 | },
1169 | "no-new-symbol": {
1170 | "active": 1,
1171 | "optionString": ""
1172 | },
1173 | "no-new-wrappers": {
1174 | "active": 0,
1175 | "optionString": ""
1176 | },
1177 | "no-obj-calls": {
1178 | "active": 1,
1179 | "optionString": ""
1180 | },
1181 | "no-octal": {
1182 | "active": 1,
1183 | "optionString": ""
1184 | },
1185 | "no-octal-escape": {
1186 | "active": 0,
1187 | "optionString": ""
1188 | },
1189 | "no-param-reassign": {
1190 | "active": 0,
1191 | "optionString": "{'props': false}"
1192 | },
1193 | "no-path-concat": {
1194 | "active": 0,
1195 | "optionString": ""
1196 | },
1197 | "no-plusplus": {
1198 | "active": 0,
1199 | "optionString": "{'allowForLoopAfterthoughts': false}"
1200 | },
1201 | "no-process-env": {
1202 | "active": 0,
1203 | "optionString": ""
1204 | },
1205 | "no-process-exit": {
1206 | "active": 0,
1207 | "optionString": ""
1208 | },
1209 | "no-proto": {
1210 | "active": 0,
1211 | "optionString": ""
1212 | },
1213 | "no-prototype-builtins": {
1214 | "active": 0,
1215 | "optionString": ""
1216 | },
1217 | "no-redeclare": {
1218 | "active": 1,
1219 | "optionString": "{'builtinGlobals': false}"
1220 | },
1221 | "no-regex-spaces": {
1222 | "active": 1,
1223 | "optionString": ""
1224 | },
1225 | "no-restricted-globals": {
1226 | "active": 0,
1227 | "optionString": "'event', 'fdescribe'"
1228 | },
1229 | "no-restricted-imports": {
1230 | "active": 0,
1231 | "optionString": ""
1232 | },
1233 | "no-restricted-modules": {
1234 | "active": 0,
1235 | "optionString": ""
1236 | },
1237 | "no-restricted-properties": {
1238 | "active": 0,
1239 | "optionString": "[{'object': 'disallowedObjectName', 'property': 'disallowedPropertyName'}, {'object': 'disallowedObjectName', 'property': 'anotherDisallowedPropertyName', 'message': 'Please use allowedObjectName.allowedPropertyName.'}]"
1240 | },
1241 | "no-restricted-syntax": {
1242 | "active": 0,
1243 | "optionString": "'FunctionExpression', 'WithStatement'"
1244 | },
1245 | "no-return-assign": {
1246 | "active": 0,
1247 | "optionString": "'except-parens'"
1248 | },
1249 | "no-return-await": {
1250 | "active": 0,
1251 | "optionString": ""
1252 | },
1253 | "no-script-url": {
1254 | "active": 0,
1255 | "optionString": ""
1256 | },
1257 | "no-self-assign": {
1258 | "active": 1,
1259 | "optionString": "{'props': false}"
1260 | },
1261 | "no-self-compare": {
1262 | "active": 0,
1263 | "optionString": ""
1264 | },
1265 | "no-sequences": {
1266 | "active": 0,
1267 | "optionString": ""
1268 | },
1269 | "no-shadow": {
1270 | "active": 0,
1271 | "optionString": "{'builtinGlobals': false, 'hoist': 'functions', 'allow': []}"
1272 | },
1273 | "no-shadow-restricted-names": {
1274 | "active": 0,
1275 | "optionString": ""
1276 | },
1277 | "no-sparse-arrays": {
1278 | "active": 1,
1279 | "optionString": ""
1280 | },
1281 | "no-sync": {
1282 | "active": 0,
1283 | "optionString": "{'allowAtRootLevel': false}"
1284 | },
1285 | "no-tabs": {
1286 | "active": 0,
1287 | "optionString": ""
1288 | },
1289 | "no-template-curly-in-string": {
1290 | "active": 0,
1291 | "optionString": ""
1292 | },
1293 | "no-ternary": {
1294 | "active": 0,
1295 | "optionString": ""
1296 | },
1297 | "no-this-before-super": {
1298 | "active": 1,
1299 | "optionString": ""
1300 | },
1301 | "no-throw-literal": {
1302 | "active": 0,
1303 | "optionString": ""
1304 | },
1305 | "no-trailing-spaces": {
1306 | "active": 0,
1307 | "optionString": "{'skipBlankLines': false, 'ignoreComments': false}"
1308 | },
1309 | "no-undef": {
1310 | "active": 1,
1311 | "optionString": "{'typeof': false}"
1312 | },
1313 | "no-undef-init": {
1314 | "active": 0,
1315 | "optionString": ""
1316 | },
1317 | "no-undefined": {
1318 | "active": 0,
1319 | "optionString": ""
1320 | },
1321 | "no-underscore-dangle": {
1322 | "active": 0,
1323 | "optionString": "{'allow': [], 'allowAfterThis': false, 'allowAfterSuper': false, 'enforceInMethodNames': false}"
1324 | },
1325 | "no-unexpected-multiline": {
1326 | "active": 1,
1327 | "optionString": ""
1328 | },
1329 | "no-unmodified-loop-condition": {
1330 | "active": 0,
1331 | "optionString": ""
1332 | },
1333 | "no-unneeded-ternary": {
1334 | "active": 0,
1335 | "optionString": "{'defaultAssignment': true}"
1336 | },
1337 | "no-unreachable": {
1338 | "active": 1,
1339 | "optionString": ""
1340 | },
1341 | "no-unsafe-finally": {
1342 | "active": 1,
1343 | "optionString": ""
1344 | },
1345 | "no-unsafe-negation": {
1346 | "active": 1,
1347 | "optionString": ""
1348 | },
1349 | "no-unused-expressions": {
1350 | "active": 0,
1351 | "optionString": "{'allowShortCircuit': false, 'allowTernary': false, 'allowTaggedTemplates': false}"
1352 | },
1353 | "no-unused-labels": {
1354 | "active": 1,
1355 | "optionString": ""
1356 | },
1357 | "no-unused-vars": {
1358 | "active": 1,
1359 | "optionString": "{'vars': 'all', 'args': 'after-used', 'caughtErrors': 'none', 'ignoreRestSiblings': false}"
1360 | },
1361 | "no-use-before-define": {
1362 | "active": 0,
1363 | "optionString": "{'functions': true, 'classes': true, 'variables': true}"
1364 | },
1365 | "no-useless-call": {
1366 | "active": 0,
1367 | "optionString": ""
1368 | },
1369 | "no-useless-computed-key": {
1370 | "active": 0,
1371 | "optionString": ""
1372 | },
1373 | "no-useless-concat": {
1374 | "active": 0,
1375 | "optionString": ""
1376 | },
1377 | "no-useless-constructor": {
1378 | "active": 0,
1379 | "optionString": ""
1380 | },
1381 | "no-useless-escape": {
1382 | "active": 0,
1383 | "optionString": ""
1384 | },
1385 | "no-useless-rename": {
1386 | "active": 0,
1387 | "optionString": "{'ignoreDestructuring': false, 'ignoreImport': false, 'ignoreExport': false}"
1388 | },
1389 | "no-useless-return": {
1390 | "active": 0,
1391 | "optionString": ""
1392 | },
1393 | "no-var": {
1394 | "active": 0,
1395 | "optionString": ""
1396 | },
1397 | "no-void": {
1398 | "active": 0,
1399 | "optionString": ""
1400 | },
1401 | "no-warning-comments": {
1402 | "active": 0,
1403 | "optionString": "{'terms': ['todo', 'fixme', 'xxx'], 'location': 'start'}"
1404 | },
1405 | "no-whitespace-before-property": {
1406 | "active": 0,
1407 | "optionString": ""
1408 | },
1409 | "no-with": {
1410 | "active": 0,
1411 | "optionString": ""
1412 | },
1413 | "nonblock-statement-body-position": {
1414 | "active": 0,
1415 | "optionString": "'beside'"
1416 | },
1417 | "object-curly-newline": {
1418 | "active": 0,
1419 | "optionString": "{'ObjectExpression': {'multiline': true}, 'ObjectPattern': {'multiline': true}}"
1420 | },
1421 | "object-curly-spacing": {
1422 | "active": 0,
1423 | "optionString": "'never'"
1424 | },
1425 | "object-property-newline": {
1426 | "active": 0,
1427 | "optionString": "{'allowMultiplePropertiesPerLine': true}"
1428 | },
1429 | "object-shorthand": {
1430 | "active": 0,
1431 | "optionString": "'always', {'avoidQuotes': false, 'ignoreConstructors': false}"
1432 | },
1433 | "one-var": {
1434 | "active": 0,
1435 | "optionString": "'always'"
1436 | },
1437 | "one-var-declaration-per-line": {
1438 | "active": 0,
1439 | "optionString": "'always'"
1440 | },
1441 | "operator-assignment": {
1442 | "active": 0,
1443 | "optionString": "'always'"
1444 | },
1445 | "operator-linebreak": {
1446 | "active": 0,
1447 | "optionString": "'after', {'overrides': {'?': 'after', '+=': 'none'}}"
1448 | },
1449 | "padded-blocks": {
1450 | "active": 0,
1451 | "optionString": "{'blocks': 'always', 'switches': 'always', 'classes': 'always'}"
1452 | },
1453 | "padding-line-between-statements": {
1454 | "active": 0,
1455 | "optionString": "{blankLine: 'always', prev:'*', next:'return'}"
1456 | },
1457 | "prefer-arrow-callback": {
1458 | "active": 0,
1459 | "optionString": ""
1460 | },
1461 | "prefer-const": {
1462 | "active": 0,
1463 | "optionString": "{'destructuring': 'any', 'ignoreReadBeforeAssign': false}"
1464 | },
1465 | "prefer-destructuring": {
1466 | "active": 0,
1467 | "optionString": "{'array': true, 'object': true}, {'enforceForRenamedProperties': false}"
1468 | },
1469 | "prefer-numeric-literals": {
1470 | "active": 0,
1471 | "optionString": ""
1472 | },
1473 | "prefer-promise-reject-errors": {
1474 | "active": 0,
1475 | "optionString": "{'allowEmptyReject': false}"
1476 | },
1477 | "prefer-rest-params": {
1478 | "active": 0,
1479 | "optionString": ""
1480 | },
1481 | "prefer-spread": {
1482 | "active": 0,
1483 | "optionString": ""
1484 | },
1485 | "prefer-template": {
1486 | "active": 0,
1487 | "optionString": ""
1488 | },
1489 | "quote-props": {
1490 | "active": 0,
1491 | "optionString": "'always'"
1492 | },
1493 | "quotes": {
1494 | "active": 0,
1495 | "optionString": "'double', {'avoidEscape': true, 'allowTemplateLiterals': true}"
1496 | },
1497 | "radix": {
1498 | "active": 0,
1499 | "optionString": "'always'"
1500 | },
1501 | "require-await": {
1502 | "active": 0,
1503 | "optionString": ""
1504 | },
1505 | "require-jsdoc": {
1506 | "active": 0,
1507 | "optionString": "{'require': {'FunctionDeclaration': true, 'MethodDefinition': false, 'ClassDeclaration': false, 'ArrowFunctionExpression': false}}"
1508 | },
1509 | "require-yield": {
1510 | "active": 1,
1511 | "optionString": ""
1512 | },
1513 | "rest-spread-spacing": {
1514 | "active": 0,
1515 | "optionString": "'never'"
1516 | },
1517 | "semi": {
1518 | "active": 0,
1519 | "optionString": "'always', {'omitLastInOneLineBlock': false}"
1520 | },
1521 | "semi-spacing": {
1522 | "active": 0,
1523 | "optionString": "{'before': false, 'after': true}"
1524 | },
1525 | "semi-style": {
1526 | "active": 0,
1527 | "optionString": "'last'"
1528 | },
1529 | "sort-imports": {
1530 | "active": 0,
1531 | "optionString": "{'ignoreCase': false, 'ignoreMemberSort': true, 'memberSyntaxSortOrder': ['none', 'all', 'multiple', 'single']}"
1532 | },
1533 | "sort-keys": {
1534 | "active": 0,
1535 | "optionString": "'asc', {'caseSensitive': true, 'natural': false}"
1536 | },
1537 | "sort-vars": {
1538 | "active": 0,
1539 | "optionString": "{'ignoreCase': false}"
1540 | },
1541 | "space-before-blocks": {
1542 | "active": 0,
1543 | "optionString": "{'functions': 'always', 'keywords': 'always', 'classes': 'always'}"
1544 | },
1545 | "space-before-function-paren": {
1546 | "active": 0,
1547 | "optionString": "{'anonymous': 'always', 'named': 'never'}"
1548 | },
1549 | "space-in-parens": {
1550 | "active": 0,
1551 | "optionString": "'never', {'exceptions': []}"
1552 | },
1553 | "space-infix-ops": {
1554 | "active": 0,
1555 | "optionString": "{'int32Hint': false}"
1556 | },
1557 | "space-unary-ops": {
1558 | "active": 0,
1559 | "optionString": "{'words': true, 'nonwords': false, 'overrides': {}}"
1560 | },
1561 | "spaced-comment": {
1562 | "active": 0,
1563 | "optionString": "'always', {'line': {'markers': ['\/'], 'exceptions': ['-', '+']}, 'block': {'markers': ['!'], 'exceptions': ['*'], 'balanced': false}}"
1564 | },
1565 | "strict": {
1566 | "active": 0,
1567 | "optionString": "'safe'"
1568 | },
1569 | "switch-colon-spacing": {
1570 | "active": 0,
1571 | "optionString": "{'after': true, 'before': false}"
1572 | },
1573 | "symbol-description": {
1574 | "active": 0,
1575 | "optionString": ""
1576 | },
1577 | "template-curly-spacing": {
1578 | "active": 0,
1579 | "optionString": "'never'"
1580 | },
1581 | "template-tag-spacing": {
1582 | "active": 0,
1583 | "optionString": "'never'"
1584 | },
1585 | "unicode-bom": {
1586 | "active": 0,
1587 | "optionString": "'never'"
1588 | },
1589 | "use-isnan": {
1590 | "active": 1,
1591 | "optionString": ""
1592 | },
1593 | "valid-jsdoc": {
1594 | "active": 0,
1595 | "optionString": "{'prefer': {'return': 'returns'}, 'requireReturn': true, 'requireReturnDescription': true, 'requireReturnType': true, 'requireParamDescription': true}"
1596 | },
1597 | "valid-typeof": {
1598 | "active": 1,
1599 | "optionString": "{'requireStringLiterals': true}"
1600 | },
1601 | "vars-on-top": {
1602 | "active": 0,
1603 | "optionString": ""
1604 | },
1605 | "wrap-iife": {
1606 | "active": 0,
1607 | "optionString": "'outside'"
1608 | },
1609 | "wrap-regex": {
1610 | "active": 0,
1611 | "optionString": ""
1612 | },
1613 | "yield-star-spacing": {
1614 | "active": 0,
1615 | "optionString": "{'before': false, 'after': true}"
1616 | },
1617 | "yoda": {
1618 | "active": 0,
1619 | "optionString": "'never', {'exceptRange': false, 'onlyEquality': false}"
1620 | }
1621 | },
1622 | "esLintSourceType": 0,
1623 | "externalServerAddress": "http:\/\/localhost:8888",
1624 | "gitIgnoreBuildFolder": 1,
1625 | "hideConfigFile": 0,
1626 | "jsCheckerReservedNamesString": "",
1627 | "jsHintFlags2": {
1628 | "asi": {
1629 | "active": 0,
1630 | "flagValue": -1
1631 | },
1632 | "bitwise": {
1633 | "active": 1,
1634 | "flagValue": -1
1635 | },
1636 | "boss": {
1637 | "active": 0,
1638 | "flagValue": -1
1639 | },
1640 | "browser": {
1641 | "active": 1,
1642 | "flagValue": -1
1643 | },
1644 | "browserify": {
1645 | "active": 0,
1646 | "flagValue": -1
1647 | },
1648 | "camelcase": {
1649 | "active": 0,
1650 | "flagValue": -1
1651 | },
1652 | "couch": {
1653 | "active": 0,
1654 | "flagValue": -1
1655 | },
1656 | "curly": {
1657 | "active": 1,
1658 | "flagValue": -1
1659 | },
1660 | "debug": {
1661 | "active": 0,
1662 | "flagValue": -1
1663 | },
1664 | "devel": {
1665 | "active": 0,
1666 | "flagValue": -1
1667 | },
1668 | "dojo": {
1669 | "active": 0,
1670 | "flagValue": -1
1671 | },
1672 | "elision": {
1673 | "active": 1,
1674 | "flagValue": -1
1675 | },
1676 | "eqeqeq": {
1677 | "active": 1,
1678 | "flagValue": -1
1679 | },
1680 | "eqnull": {
1681 | "active": 0,
1682 | "flagValue": -1
1683 | },
1684 | "es3": {
1685 | "active": 0,
1686 | "flagValue": -1
1687 | },
1688 | "esnext": {
1689 | "active": 0,
1690 | "flagValue": -1
1691 | },
1692 | "evil": {
1693 | "active": 0,
1694 | "flagValue": -1
1695 | },
1696 | "expr": {
1697 | "active": 0,
1698 | "flagValue": -1
1699 | },
1700 | "forin": {
1701 | "active": 0,
1702 | "flagValue": -1
1703 | },
1704 | "freeze": {
1705 | "active": 1,
1706 | "flagValue": -1
1707 | },
1708 | "funcscope": {
1709 | "active": 0,
1710 | "flagValue": -1
1711 | },
1712 | "futurehostile": {
1713 | "active": 0,
1714 | "flagValue": -1
1715 | },
1716 | "globalstrict": {
1717 | "active": 0,
1718 | "flagValue": -1
1719 | },
1720 | "immed": {
1721 | "active": 0,
1722 | "flagValue": -1
1723 | },
1724 | "indent": {
1725 | "active": 0,
1726 | "flagValue": 4
1727 | },
1728 | "iterator": {
1729 | "active": 0,
1730 | "flagValue": -1
1731 | },
1732 | "jasmine": {
1733 | "active": 0,
1734 | "flagValue": -1
1735 | },
1736 | "jquery": {
1737 | "active": 1,
1738 | "flagValue": -1
1739 | },
1740 | "lastsemic": {
1741 | "active": 0,
1742 | "flagValue": -1
1743 | },
1744 | "latedef": {
1745 | "active": 1,
1746 | "flagValue": -1
1747 | },
1748 | "laxbreak": {
1749 | "active": 0,
1750 | "flagValue": -1
1751 | },
1752 | "laxcomma": {
1753 | "active": 0,
1754 | "flagValue": -1
1755 | },
1756 | "loopfunc": {
1757 | "active": 0,
1758 | "flagValue": -1
1759 | },
1760 | "maxcomplexity": {
1761 | "active": 0,
1762 | "flagValue": 10
1763 | },
1764 | "maxdepth": {
1765 | "active": 0,
1766 | "flagValue": 3
1767 | },
1768 | "maxlen": {
1769 | "active": 0,
1770 | "flagValue": 150
1771 | },
1772 | "maxparams": {
1773 | "active": 0,
1774 | "flagValue": 3
1775 | },
1776 | "maxstatements": {
1777 | "active": 0,
1778 | "flagValue": 4
1779 | },
1780 | "mocha": {
1781 | "active": 0,
1782 | "flagValue": -1
1783 | },
1784 | "mootools": {
1785 | "active": 0,
1786 | "flagValue": -1
1787 | },
1788 | "moz": {
1789 | "active": 0,
1790 | "flagValue": -1
1791 | },
1792 | "multistr": {
1793 | "active": 0,
1794 | "flagValue": -1
1795 | },
1796 | "newcap": {
1797 | "active": 1,
1798 | "flagValue": -1
1799 | },
1800 | "noarg": {
1801 | "active": 1,
1802 | "flagValue": -1
1803 | },
1804 | "nocomma": {
1805 | "active": 0,
1806 | "flagValue": -1
1807 | },
1808 | "node": {
1809 | "active": 0,
1810 | "flagValue": -1
1811 | },
1812 | "noempty": {
1813 | "active": 0,
1814 | "flagValue": -1
1815 | },
1816 | "nonbsp": {
1817 | "active": 0,
1818 | "flagValue": -1
1819 | },
1820 | "nonew": {
1821 | "active": 1,
1822 | "flagValue": -1
1823 | },
1824 | "nonstandard": {
1825 | "active": 0,
1826 | "flagValue": -1
1827 | },
1828 | "notypeof": {
1829 | "active": 1,
1830 | "flagValue": -1
1831 | },
1832 | "noyield": {
1833 | "active": 0,
1834 | "flagValue": -1
1835 | },
1836 | "onecase": {
1837 | "active": 0,
1838 | "flagValue": -1
1839 | },
1840 | "phantom": {
1841 | "active": 0,
1842 | "flagValue": -1
1843 | },
1844 | "plusplus": {
1845 | "active": 0,
1846 | "flagValue": -1
1847 | },
1848 | "proto": {
1849 | "active": 0,
1850 | "flagValue": -1
1851 | },
1852 | "prototypejs": {
1853 | "active": 0,
1854 | "flagValue": -1
1855 | },
1856 | "qunit": {
1857 | "active": 0,
1858 | "flagValue": -1
1859 | },
1860 | "regexp": {
1861 | "active": 1,
1862 | "flagValue": -1
1863 | },
1864 | "rhino": {
1865 | "active": 0,
1866 | "flagValue": -1
1867 | },
1868 | "scripturl": {
1869 | "active": 0,
1870 | "flagValue": -1
1871 | },
1872 | "shadow": {
1873 | "active": 0,
1874 | "flagValue": -1
1875 | },
1876 | "shelljs": {
1877 | "active": 0,
1878 | "flagValue": -1
1879 | },
1880 | "singleGroups": {
1881 | "active": 0,
1882 | "flagValue": -1
1883 | },
1884 | "strict": {
1885 | "active": 0,
1886 | "flagValue": -1
1887 | },
1888 | "sub": {
1889 | "active": 0,
1890 | "flagValue": -1
1891 | },
1892 | "supernew": {
1893 | "active": 0,
1894 | "flagValue": -1
1895 | },
1896 | "typed": {
1897 | "active": 0,
1898 | "flagValue": -1
1899 | },
1900 | "undef": {
1901 | "active": 1,
1902 | "flagValue": -1
1903 | },
1904 | "unused": {
1905 | "active": 1,
1906 | "flagValue": -1
1907 | },
1908 | "varstmt": {
1909 | "active": 0,
1910 | "flagValue": -1
1911 | },
1912 | "withstmt": {
1913 | "active": 0,
1914 | "flagValue": -1
1915 | },
1916 | "worker": {
1917 | "active": 0,
1918 | "flagValue": -1
1919 | },
1920 | "wsh": {
1921 | "active": 0,
1922 | "flagValue": -1
1923 | },
1924 | "yui": {
1925 | "active": 0,
1926 | "flagValue": -1
1927 | }
1928 | },
1929 | "jsLintFlags2": {
1930 | "bitwise": {
1931 | "active": 0,
1932 | "flagValue": -1
1933 | },
1934 | "browser": {
1935 | "active": 1,
1936 | "flagValue": -1
1937 | },
1938 | "couch": {
1939 | "active": 0,
1940 | "flagValue": -1
1941 | },
1942 | "devel": {
1943 | "active": 0,
1944 | "flagValue": -1
1945 | },
1946 | "es6": {
1947 | "active": 0,
1948 | "flagValue": -1
1949 | },
1950 | "eval": {
1951 | "active": 0,
1952 | "flagValue": -1
1953 | },
1954 | "for": {
1955 | "active": 0,
1956 | "flagValue": -1
1957 | },
1958 | "maxlen": {
1959 | "active": 0,
1960 | "flagValue": 150
1961 | },
1962 | "node": {
1963 | "active": 0,
1964 | "flagValue": -1
1965 | },
1966 | "this": {
1967 | "active": 0,
1968 | "flagValue": -1
1969 | },
1970 | "white": {
1971 | "active": 0,
1972 | "flagValue": -1
1973 | }
1974 | },
1975 | "languageDefaultsCOFFEE": {
1976 | "autoOutputAction": 0,
1977 | "autoOutputPathFilenamePattern": "*.js",
1978 | "autoOutputPathRelativePath": "",
1979 | "autoOutputPathReplace1": "",
1980 | "autoOutputPathReplace2": "",
1981 | "autoOutputPathStyle": 0,
1982 | "createSourceMap": 0,
1983 | "minifyOutput": 1,
1984 | "outputStyle": 0,
1985 | "syntaxCheckerStyle": 1,
1986 | "transpilerStyle": 1
1987 | },
1988 | "languageDefaultsCSS": {
1989 | "autoOutputAction": 0,
1990 | "autoOutputPathFilenamePattern": "*-min.css",
1991 | "autoOutputPathRelativePath": "",
1992 | "autoOutputPathReplace1": "",
1993 | "autoOutputPathReplace2": "",
1994 | "autoOutputPathStyle": 0,
1995 | "createSourceMap": 0,
1996 | "outputStyle": 3,
1997 | "shouldRunAutoprefixer": 1,
1998 | "shouldRunBless": 0
1999 | },
2000 | "languageDefaultsGIF": {
2001 | "autoOutputAction": 0,
2002 | "autoOutputPathFilenamePattern": "*.gif",
2003 | "autoOutputPathRelativePath": "",
2004 | "autoOutputPathReplace1": "",
2005 | "autoOutputPathReplace2": "",
2006 | "autoOutputPathStyle": 0
2007 | },
2008 | "languageDefaultsHAML": {
2009 | "autoOutputAction": 0,
2010 | "autoOutputPathFilenamePattern": "*.html",
2011 | "autoOutputPathRelativePath": "",
2012 | "autoOutputPathReplace1": "",
2013 | "autoOutputPathReplace2": "",
2014 | "autoOutputPathStyle": 0,
2015 | "escapeHTMLCharacters": 0,
2016 | "noEscapeInAttributes": 0,
2017 | "outputFormat": 2,
2018 | "outputStyle": 0,
2019 | "shouldRunCacheBuster": 0,
2020 | "useCDATA": 0,
2021 | "useDoubleQuotes": 0,
2022 | "useUnixNewlines": 0
2023 | },
2024 | "languageDefaultsJPG": {
2025 | "autoOutputAction": 0,
2026 | "autoOutputPathFilenamePattern": "*.jpg",
2027 | "autoOutputPathRelativePath": "",
2028 | "autoOutputPathReplace1": "",
2029 | "autoOutputPathReplace2": "",
2030 | "autoOutputPathStyle": 0,
2031 | "outputFormat": 0,
2032 | "quality": 100
2033 | },
2034 | "languageDefaultsJS": {
2035 | "autoOutputAction": 0,
2036 | "autoOutputPathFilenamePattern": "*-min.js",
2037 | "autoOutputPathRelativePath": "\/min",
2038 | "autoOutputPathReplace1": "",
2039 | "autoOutputPathReplace2": "",
2040 | "autoOutputPathStyle": 0,
2041 | "createSourceMap": 0,
2042 | "minifyOutput": 1,
2043 | "syntaxCheckerStyle": 1,
2044 | "transpilerStyle": 0
2045 | },
2046 | "languageDefaultsJSON": {
2047 | "autoOutputAction": 1,
2048 | "autoOutputPathFilenamePattern": "*-min.json",
2049 | "autoOutputPathRelativePath": "",
2050 | "autoOutputPathReplace1": "",
2051 | "autoOutputPathReplace2": "",
2052 | "autoOutputPathStyle": 0,
2053 | "orderOutput": 0,
2054 | "outputStyle": 1
2055 | },
2056 | "languageDefaultsKIT": {
2057 | "autoOutputAction": 0,
2058 | "autoOutputPathFilenamePattern": "*.html",
2059 | "autoOutputPathRelativePath": "",
2060 | "autoOutputPathReplace1": "kit",
2061 | "autoOutputPathReplace2": "html",
2062 | "autoOutputPathStyle": 0,
2063 | "shouldRunCacheBuster": 0
2064 | },
2065 | "languageDefaultsLESS": {
2066 | "allowInsecureImports": 0,
2067 | "autoOutputAction": 0,
2068 | "autoOutputPathFilenamePattern": "*.css",
2069 | "autoOutputPathRelativePath": "..\/css",
2070 | "autoOutputPathReplace1": "less",
2071 | "autoOutputPathReplace2": "css",
2072 | "autoOutputPathStyle": 0,
2073 | "createSourceMap": 1,
2074 | "disableJavascript": 0,
2075 | "ieCompatibility": 1,
2076 | "outputStyle": 0,
2077 | "relativeURLS": 0,
2078 | "shouldRunAutoprefixer": 0,
2079 | "shouldRunBless": 0,
2080 | "strictImports": 0,
2081 | "strictMath": 0,
2082 | "strictUnits": 0
2083 | },
2084 | "languageDefaultsMARKDOWN": {
2085 | "autoOutputAction": 0,
2086 | "autoOutputPathFilenamePattern": "*.html",
2087 | "autoOutputPathRelativePath": "",
2088 | "autoOutputPathReplace1": "",
2089 | "autoOutputPathReplace2": "",
2090 | "autoOutputPathStyle": 0,
2091 | "criticStyle": 0,
2092 | "enableFootnotes": 1,
2093 | "enableLabels": 1,
2094 | "enableSmartQuotes": 1,
2095 | "maskEmailAddresses": 1,
2096 | "outputFormat": 0,
2097 | "outputStyle": 0,
2098 | "parseMetadata": 1,
2099 | "processHTML": 0,
2100 | "randomFootnoteNumbers": 0,
2101 | "shouldRunCacheBuster": 0,
2102 | "useCompatibilityMode": 0
2103 | },
2104 | "languageDefaultsOTHER": {
2105 | "autoOutputAction": 0,
2106 | "autoOutputPathFilenamePattern": "*.*",
2107 | "autoOutputPathRelativePath": "",
2108 | "autoOutputPathReplace1": "",
2109 | "autoOutputPathReplace2": "",
2110 | "autoOutputPathStyle": 0,
2111 | "shouldRunCacheBuster": 0
2112 | },
2113 | "languageDefaultsPNG": {
2114 | "autoOutputAction": 0,
2115 | "autoOutputPathFilenamePattern": "*.png",
2116 | "autoOutputPathRelativePath": "",
2117 | "autoOutputPathReplace1": "",
2118 | "autoOutputPathReplace2": "",
2119 | "autoOutputPathStyle": 0,
2120 | "optimizerType": 1,
2121 | "quality": 100
2122 | },
2123 | "languageDefaultsPUG": {
2124 | "autoOutputAction": 0,
2125 | "autoOutputPathFilenamePattern": "*.html",
2126 | "autoOutputPathRelativePath": "",
2127 | "autoOutputPathReplace1": "",
2128 | "autoOutputPathReplace2": "",
2129 | "autoOutputPathStyle": 0,
2130 | "compileDebug": 1,
2131 | "outputStyle": 0,
2132 | "shouldRunCacheBuster": 0
2133 | },
2134 | "languageDefaultsSASS": {
2135 | "autoOutputAction": 0,
2136 | "autoOutputPathFilenamePattern": "*.css",
2137 | "autoOutputPathRelativePath": "..\/css",
2138 | "autoOutputPathReplace1": "sass",
2139 | "autoOutputPathReplace2": "css",
2140 | "autoOutputPathStyle": 0,
2141 | "createSourceMap": 0,
2142 | "debugStyle": 0,
2143 | "decimalPrecision": 10,
2144 | "outputStyle": 0,
2145 | "shouldRunAutoprefixer": 0,
2146 | "shouldRunBless": 0,
2147 | "useLibsass": 1
2148 | },
2149 | "languageDefaultsSLIM": {
2150 | "autoOutputAction": 0,
2151 | "autoOutputPathFilenamePattern": "*.html",
2152 | "autoOutputPathRelativePath": "",
2153 | "autoOutputPathReplace1": "",
2154 | "autoOutputPathReplace2": "",
2155 | "autoOutputPathStyle": 0,
2156 | "compileOnly": 0,
2157 | "logicless": 0,
2158 | "outputFormat": 0,
2159 | "outputStyle": 1,
2160 | "railsCompatible": 0,
2161 | "shouldRunCacheBuster": 0
2162 | },
2163 | "languageDefaultsSTYLUS": {
2164 | "autoOutputAction": 0,
2165 | "autoOutputPathFilenamePattern": "*.css",
2166 | "autoOutputPathRelativePath": "..\/css",
2167 | "autoOutputPathReplace1": "stylus",
2168 | "autoOutputPathReplace2": "css",
2169 | "autoOutputPathStyle": 0,
2170 | "createSourceMap": 0,
2171 | "debugStyle": 0,
2172 | "importCSS": 0,
2173 | "outputStyle": 0,
2174 | "resolveRelativeURLS": 0,
2175 | "shouldRunAutoprefixer": 0,
2176 | "shouldRunBless": 0
2177 | },
2178 | "languageDefaultsSVG": {
2179 | "autoOutputAction": 2,
2180 | "autoOutputPathFilenamePattern": "*.svg",
2181 | "autoOutputPathRelativePath": "",
2182 | "autoOutputPathReplace1": "",
2183 | "autoOutputPathReplace2": "",
2184 | "autoOutputPathStyle": 0,
2185 | "pluginMask": 3758088159
2186 | },
2187 | "languageDefaultsTS": {
2188 | "autoOutputAction": 0,
2189 | "autoOutputPathFilenamePattern": "*.js",
2190 | "autoOutputPathRelativePath": "\/js",
2191 | "autoOutputPathReplace1": "",
2192 | "autoOutputPathReplace2": "",
2193 | "autoOutputPathStyle": 0,
2194 | "createDeclarationFile": 0,
2195 | "createSourceMap": 0,
2196 | "jsxMode": 0,
2197 | "minifyOutput": 0,
2198 | "moduleResolutionType": 0,
2199 | "moduleType": 2,
2200 | "noImplicitAny": 0,
2201 | "preserveConstEnums": 0,
2202 | "removeComments": 0,
2203 | "suppressImplicitAnyIndexErrors": 0,
2204 | "targetECMAVersion": 0
2205 | },
2206 | "languageDefaultsUserDefined": [
2207 | ],
2208 | "overrideExternalServerCSS": 0,
2209 | "previewPathAddition": "",
2210 | "skippedFoldersString": "log, _logs, logs, _cache, cache, \/storage\/framework\/sessions, node_modules",
2211 | "sourceFolderName": "source",
2212 | "susyVersion": 3,
2213 | "uglifyDefinesString": "",
2214 | "uglifyFlags2": {
2215 | "ascii-only": {
2216 | "active": 0,
2217 | "flagValue": -1
2218 | },
2219 | "bare-returns": {
2220 | "active": 0,
2221 | "flagValue": -1
2222 | },
2223 | "booleans": {
2224 | "active": 1,
2225 | "flagValue": -1
2226 | },
2227 | "bracketize": {
2228 | "active": 0,
2229 | "flagValue": -1
2230 | },
2231 | "cascade": {
2232 | "active": 1,
2233 | "flagValue": -1
2234 | },
2235 | "comments": {
2236 | "active": 1,
2237 | "flagValue": -1
2238 | },
2239 | "comparisons": {
2240 | "active": 1,
2241 | "flagValue": -1
2242 | },
2243 | "compress": {
2244 | "active": 1,
2245 | "flagValue": -1
2246 | },
2247 | "conditionals": {
2248 | "active": 1,
2249 | "flagValue": -1
2250 | },
2251 | "dead_code": {
2252 | "active": 0,
2253 | "flagValue": -1
2254 | },
2255 | "drop_console": {
2256 | "active": 0,
2257 | "flagValue": -1
2258 | },
2259 | "drop_debugger": {
2260 | "active": 1,
2261 | "flagValue": -1
2262 | },
2263 | "eval": {
2264 | "active": 0,
2265 | "flagValue": -1
2266 | },
2267 | "evaluate": {
2268 | "active": 1,
2269 | "flagValue": -1
2270 | },
2271 | "hoist_funs": {
2272 | "active": 1,
2273 | "flagValue": -1
2274 | },
2275 | "hoist_vars": {
2276 | "active": 0,
2277 | "flagValue": -1
2278 | },
2279 | "if_return": {
2280 | "active": 1,
2281 | "flagValue": -1
2282 | },
2283 | "indent-level": {
2284 | "active": 0,
2285 | "flagValue": 4
2286 | },
2287 | "indent-start": {
2288 | "active": 0,
2289 | "flagValue": 0
2290 | },
2291 | "inline-script": {
2292 | "active": 0,
2293 | "flagValue": -1
2294 | },
2295 | "join_vars": {
2296 | "active": 1,
2297 | "flagValue": -1
2298 | },
2299 | "keep_fargs": {
2300 | "active": 0,
2301 | "flagValue": -1
2302 | },
2303 | "keep_fnames": {
2304 | "active": 0,
2305 | "flagValue": -1
2306 | },
2307 | "loops": {
2308 | "active": 1,
2309 | "flagValue": -1
2310 | },
2311 | "mangle": {
2312 | "active": 1,
2313 | "flagValue": -1
2314 | },
2315 | "max-line-len": {
2316 | "active": 1,
2317 | "flagValue": 32000
2318 | },
2319 | "negate_iife": {
2320 | "active": 1,
2321 | "flagValue": -1
2322 | },
2323 | "properties": {
2324 | "active": 1,
2325 | "flagValue": -1
2326 | },
2327 | "pure_getters": {
2328 | "active": 0,
2329 | "flagValue": -1
2330 | },
2331 | "quote-keys": {
2332 | "active": 0,
2333 | "flagValue": -1
2334 | },
2335 | "screw-ie8": {
2336 | "active": 1,
2337 | "flagValue": -1
2338 | },
2339 | "semicolons": {
2340 | "active": 1,
2341 | "flagValue": -1
2342 | },
2343 | "sequences": {
2344 | "active": 1,
2345 | "flagValue": -1
2346 | },
2347 | "sort": {
2348 | "active": 0,
2349 | "flagValue": -1
2350 | },
2351 | "space-colon": {
2352 | "active": 1,
2353 | "flagValue": -1
2354 | },
2355 | "support-ie8": {
2356 | "active": 0,
2357 | "flagValue": -1
2358 | },
2359 | "toplevel": {
2360 | "active": 0,
2361 | "flagValue": -1
2362 | },
2363 | "unsafe": {
2364 | "active": 0,
2365 | "flagValue": -1
2366 | },
2367 | "unused": {
2368 | "active": 0,
2369 | "flagValue": -1
2370 | },
2371 | "warnings": {
2372 | "active": 0,
2373 | "flagValue": -1
2374 | },
2375 | "width": {
2376 | "active": 1,
2377 | "flagValue": 80
2378 | }
2379 | },
2380 | "uglifyReservedNamesString": "$",
2381 | "websiteRelativeRoot": ""
2382 | },
2383 | "settingsFileVersion": "3"
2384 | }
--------------------------------------------------------------------------------
/part-2/config.codekit3:
--------------------------------------------------------------------------------
1 | {
2 | "AAInfo": "This is a CodeKit 3 project config file. MODIFYING THE CONTENTS OF THIS FILE IS A POOR LIFE DECISION. Doing so will cause CodeKit to crash and\/or corrupt your project. I know it looks like JSON, but it is *not*. Many numbers in this file are 64-bit long long bitFlags, which JSON does not support. These numbers *cannot* be treated as discrete values and if you attempt to parse this file as standard JSON with any public JSON parser, these values will be corrupted. This file is not backwards-compatible with CodeKit 1 or 2. For more information, see https:\/\/codekitapp.com\/",
3 | "buildSteps": [
4 | {
5 | "name": "Process All Remaining Files and Folders",
6 | "stepType": 1,
7 | "uuidString": "D05C3701-F2DF-4F1D-9EF2-D68F8AB45F41"
8 | }
9 | ],
10 | "creatorBuild": "26680",
11 | "files": {
12 | "\/android-chrome-192x192.png": {
13 | "ft": 32768,
14 | "iS": 2110,
15 | "oA": 0,
16 | "oAP": "\/android-chrome-192x192.png",
17 | "oF": 0,
18 | "oIPL": 0,
19 | "opt": 0,
20 | "oT": 1,
21 | "q": 100
22 | },
23 | "\/android-chrome-512x512.png": {
24 | "ft": 32768,
25 | "iS": 6088,
26 | "oA": 0,
27 | "oAP": "\/android-chrome-512x512.png",
28 | "oF": 0,
29 | "oIPL": 0,
30 | "opt": 0,
31 | "oT": 1,
32 | "q": 100
33 | },
34 | "\/app.js": {
35 | "ft": 64,
36 | "ma": 0,
37 | "mi": 1,
38 | "oA": 1,
39 | "oAP": "\/app-min.js",
40 | "oF": 1,
41 | "sC": 1,
42 | "tS": 0
43 | },
44 | "\/apple-touch-icon.png": {
45 | "ft": 32768,
46 | "iS": 1876,
47 | "oA": 0,
48 | "oAP": "\/apple-touch-icon.png",
49 | "oF": 0,
50 | "oIPL": 0,
51 | "opt": 0,
52 | "oT": 1,
53 | "q": 100
54 | },
55 | "\/browserconfig.xml": {
56 | "cB": 0,
57 | "ft": 8192,
58 | "oA": 0,
59 | "oAP": "\/browserconfig.xml",
60 | "oF": 0
61 | },
62 | "\/favicon-16x16.png": {
63 | "ft": 32768,
64 | "iS": 643,
65 | "oA": 0,
66 | "oAP": "\/favicon-16x16.png",
67 | "oF": 0,
68 | "oIPL": 0,
69 | "opt": 0,
70 | "oT": 1,
71 | "q": 100
72 | },
73 | "\/favicon-32x32.png": {
74 | "ft": 32768,
75 | "iS": 861,
76 | "oA": 0,
77 | "oAP": "\/favicon-32x32.png",
78 | "oF": 0,
79 | "oIPL": 0,
80 | "opt": 0,
81 | "oT": 1,
82 | "q": 100
83 | },
84 | "\/favicon.ico": {
85 | "cB": 0,
86 | "ft": 8192,
87 | "oA": 0,
88 | "oAP": "\/favicon.ico",
89 | "oF": 0
90 | },
91 | "\/index.html": {
92 | "cB": 0,
93 | "ft": 8192,
94 | "oA": 1,
95 | "oAP": "\/index.html",
96 | "oF": 1
97 | },
98 | "\/mstile-144x144.png": {
99 | "ft": 32768,
100 | "iS": 2532,
101 | "oA": 0,
102 | "oAP": "\/mstile-144x144.png",
103 | "oF": 0,
104 | "oIPL": 0,
105 | "opt": 0,
106 | "oT": 1,
107 | "q": 100
108 | },
109 | "\/mstile-150x150.png": {
110 | "ft": 32768,
111 | "iS": 2616,
112 | "oA": 0,
113 | "oAP": "\/mstile-150x150.png",
114 | "oF": 0,
115 | "oIPL": 0,
116 | "opt": 0,
117 | "oT": 1,
118 | "q": 100
119 | },
120 | "\/mstile-310x150.png": {
121 | "ft": 32768,
122 | "iS": 2833,
123 | "oA": 0,
124 | "oAP": "\/mstile-310x150.png",
125 | "oF": 0,
126 | "oIPL": 0,
127 | "opt": 0,
128 | "oT": 1,
129 | "q": 100
130 | },
131 | "\/mstile-310x310.png": {
132 | "ft": 32768,
133 | "iS": 5654,
134 | "oA": 0,
135 | "oAP": "\/mstile-310x310.png",
136 | "oF": 0,
137 | "oIPL": 0,
138 | "opt": 0,
139 | "oT": 1,
140 | "q": 100
141 | },
142 | "\/mstile-70x70.png": {
143 | "ft": 32768,
144 | "iS": 1681,
145 | "oA": 0,
146 | "oAP": "\/mstile-70x70.png",
147 | "oF": 0,
148 | "oIPL": 0,
149 | "opt": 0,
150 | "oT": 1,
151 | "q": 100
152 | },
153 | "\/README.md": {
154 | "cB": 0,
155 | "cS": 0,
156 | "eF": 1,
157 | "eL": 1,
158 | "ema": 1,
159 | "eSQ": 1,
160 | "ft": 4096,
161 | "oA": 1,
162 | "oAP": "\/README.html",
163 | "oF": 1,
164 | "oFM": 0,
165 | "oS": 0,
166 | "pHT": 0,
167 | "pME": 1,
168 | "rFN": 0,
169 | "uCM": 0
170 | },
171 | "\/safari-pinned-tab.svg": {
172 | "ft": 2097152,
173 | "miP": 0,
174 | "oA": 2,
175 | "oAP": "\/safari-pinned-tab.svg",
176 | "oF": 0,
177 | "opt": 0,
178 | "plM": 3758088159,
179 | "prP": 0
180 | },
181 | "\/site.webmanifest": {
182 | "cB": 0,
183 | "ft": 8192,
184 | "oA": 0,
185 | "oAP": "\/site.webmanifest",
186 | "oF": 0
187 | },
188 | "\/style-min.css": {
189 | "aP": 1,
190 | "bl": 0,
191 | "ft": 16,
192 | "ma": 0,
193 | "oA": 0,
194 | "oAP": "\/style-min-min.css",
195 | "oF": 0,
196 | "oS": 3
197 | },
198 | "\/style.css": {
199 | "aP": 1,
200 | "bl": 0,
201 | "ft": 16,
202 | "ma": 0,
203 | "oA": 0,
204 | "oAP": "\/style-min.css",
205 | "oF": 0,
206 | "oS": 3
207 | },
208 | "\/sw.js": {
209 | "ft": 64,
210 | "ma": 0,
211 | "mi": 1,
212 | "oA": 1,
213 | "oAP": "\/sw-min.js",
214 | "oF": 1,
215 | "sC": 1,
216 | "tS": 0
217 | }
218 | },
219 | "hooks": [
220 | ],
221 | "manualImportLinks": {
222 | },
223 | "projectAttributes": {
224 | "creationDate": 546057140,
225 | "displayValue": "camera-app",
226 | "displayValueWasSetByUser": 0,
227 | "iconImageName": "\/apple-touch-icon.png",
228 | "iconImageWasSetByUser": 0
229 | },
230 | "projectSettings": {
231 | "abortBuildOnError": 1,
232 | "alwaysUseExternalServer": 0,
233 | "animateCSSInjections": 1,
234 | "autoBuildNewItems": 1,
235 | "autoprefixerBrowserString": "> 1%, last 2 versions, Firefox ESR, Opera 12.1",
236 | "autoprefixerEnableIEGrid": 0,
237 | "babelAuxiliaryCommentAfter": "",
238 | "babelAuxiliaryCommentBefore": "",
239 | "babelConfigFileHandlingType": 0,
240 | "babelCustomPluginsList": "",
241 | "babelCustomPresetsList": "",
242 | "babelInsertModuleIDs": 0,
243 | "babelModuleID": "",
244 | "babelNoComments": 0,
245 | "babelPlugins": {
246 | "async-generator-functions": {
247 | "active": 0
248 | },
249 | "async-to-generator": {
250 | "active": 0
251 | },
252 | "async-to-module-method": {
253 | "active": 0
254 | },
255 | "class-properties": {
256 | "active": 0
257 | },
258 | "decorators": {
259 | "active": 0
260 | },
261 | "decorators-legacy": {
262 | "active": 0
263 | },
264 | "do-expressions": {
265 | "active": 0
266 | },
267 | "es2015-arrow-functions": {
268 | "active": 0
269 | },
270 | "es2015-block-scoped-functions": {
271 | "active": 0
272 | },
273 | "es2015-block-scoping": {
274 | "active": 0
275 | },
276 | "es2015-classes": {
277 | "active": 0
278 | },
279 | "es2015-computed-properties": {
280 | "active": 0
281 | },
282 | "es2015-constants": {
283 | "active": 0
284 | },
285 | "es2015-destructuring": {
286 | "active": 0
287 | },
288 | "es2015-duplicate-keys": {
289 | "active": 0
290 | },
291 | "es2015-for-of": {
292 | "active": 0
293 | },
294 | "es2015-function-name": {
295 | "active": 0
296 | },
297 | "es2015-literals": {
298 | "active": 0
299 | },
300 | "es2015-modules-amd": {
301 | "active": 0
302 | },
303 | "es2015-modules-commonjs": {
304 | "active": 0
305 | },
306 | "es2015-modules-systemjs": {
307 | "active": 0
308 | },
309 | "es2015-modules-umd": {
310 | "active": 0
311 | },
312 | "es2015-object-super": {
313 | "active": 0
314 | },
315 | "es2015-parameters": {
316 | "active": 0
317 | },
318 | "es2015-shorthand-properties": {
319 | "active": 0
320 | },
321 | "es2015-spread": {
322 | "active": 0
323 | },
324 | "es2015-sticky-regex": {
325 | "active": 0
326 | },
327 | "es2015-template-literals": {
328 | "active": 0
329 | },
330 | "es2015-typeof-symbol": {
331 | "active": 0
332 | },
333 | "es2015-unicode-regex": {
334 | "active": 0
335 | },
336 | "es3-member-expression-literals": {
337 | "active": 0
338 | },
339 | "es3-property-literals": {
340 | "active": 0
341 | },
342 | "es5-property-mutators": {
343 | "active": 0
344 | },
345 | "eval": {
346 | "active": 0
347 | },
348 | "exponentiation-operator": {
349 | "active": 0
350 | },
351 | "export-extensions": {
352 | "active": 0
353 | },
354 | "external-helpers": {
355 | "active": 0
356 | },
357 | "flow-comments": {
358 | "active": 0
359 | },
360 | "flow-strip-types": {
361 | "active": 0
362 | },
363 | "function-bind": {
364 | "active": 0
365 | },
366 | "inline-environment-variables": {
367 | "active": 0
368 | },
369 | "jscript": {
370 | "active": 0
371 | },
372 | "member-expression-literals": {
373 | "active": 0
374 | },
375 | "merge-sibling-variables": {
376 | "active": 0
377 | },
378 | "minify-booleans": {
379 | "active": 0
380 | },
381 | "node-env-inline": {
382 | "active": 0
383 | },
384 | "object-assign": {
385 | "active": 0
386 | },
387 | "object-rest-spread": {
388 | "active": 0
389 | },
390 | "object-set-prototype-of-to-assign": {
391 | "active": 0
392 | },
393 | "property-literals": {
394 | "active": 0
395 | },
396 | "proto-to-assign": {
397 | "active": 0
398 | },
399 | "react-constant-elements": {
400 | "active": 0
401 | },
402 | "react-display-name": {
403 | "active": 0
404 | },
405 | "react-inline-elements": {
406 | "active": 0
407 | },
408 | "react-jsx": {
409 | "active": 0
410 | },
411 | "react-jsx-compat": {
412 | "active": 0
413 | },
414 | "react-jsx-self": {
415 | "active": 0
416 | },
417 | "react-jsx-source": {
418 | "active": 0
419 | },
420 | "regenerator": {
421 | "active": 0
422 | },
423 | "remove-console": {
424 | "active": 0
425 | },
426 | "remove-debugger": {
427 | "active": 0
428 | },
429 | "runtime": {
430 | "active": 0
431 | },
432 | "simplify-comparison-operators": {
433 | "active": 0
434 | },
435 | "strict-mode": {
436 | "active": 0
437 | },
438 | "syntax-async-generators": {
439 | "active": 0
440 | },
441 | "syntax-class-properties": {
442 | "active": 0
443 | },
444 | "syntax-decorators": {
445 | "active": 0
446 | },
447 | "syntax-do-expressions": {
448 | "active": 0
449 | },
450 | "syntax-export-extensions": {
451 | "active": 0
452 | },
453 | "syntax-flow": {
454 | "active": 0
455 | },
456 | "syntax-function-bind": {
457 | "active": 0
458 | },
459 | "syntax-function-sent": {
460 | "active": 0
461 | },
462 | "syntax-jsx": {
463 | "active": 0
464 | },
465 | "syntax-object-rest-spread": {
466 | "active": 0
467 | },
468 | "undeclared-variables-check": {
469 | "active": 0
470 | },
471 | "undefined-to-void": {
472 | "active": 0
473 | }
474 | },
475 | "babelPresetType": 193,
476 | "babelRetainLines": 0,
477 | "bowerAbbreviatedPath": "bower_components",
478 | "bowerAutoCreateInfoFile": 1,
479 | "bowerInstallDevDependencies": 0,
480 | "bowerSaveDependencies": 1,
481 | "bowerSaveDevDependencies": 0,
482 | "bowerUseExactVersion": 0,
483 | "browserRefreshDelay": 0,
484 | "buildFolderActive": 0,
485 | "buildFolderName": "build",
486 | "cleanBuild": 1,
487 | "coffeeLintFlags2": {
488 | "arrow_spacing": {
489 | "active": 0,
490 | "flagValue": -1
491 | },
492 | "camel_case_classes": {
493 | "active": 1,
494 | "flagValue": -1
495 | },
496 | "colon_assignment_spacing": {
497 | "active": 0,
498 | "flagValue": 1
499 | },
500 | "cyclomatic_complexity": {
501 | "active": 0,
502 | "flagValue": 10
503 | },
504 | "duplicate_key": {
505 | "active": 1,
506 | "flagValue": -1
507 | },
508 | "empty_constructor_needs_parens": {
509 | "active": 0,
510 | "flagValue": -1
511 | },
512 | "ensure_comprehensions": {
513 | "active": 1,
514 | "flagValue": -1
515 | },
516 | "indentation": {
517 | "active": 1,
518 | "flagValue": 2
519 | },
520 | "line_endings": {
521 | "active": 0,
522 | "flagValue": 0
523 | },
524 | "max_line_length": {
525 | "active": 0,
526 | "flagValue": 150
527 | },
528 | "missing_fat_arrows": {
529 | "active": 0,
530 | "flagValue": -1
531 | },
532 | "newlines_after_classes": {
533 | "active": 0,
534 | "flagValue": 3
535 | },
536 | "no_backticks": {
537 | "active": 1,
538 | "flagValue": -1
539 | },
540 | "no_debugger": {
541 | "active": 1,
542 | "flagValue": -1
543 | },
544 | "no_empty_functions": {
545 | "active": 0,
546 | "flagValue": -1
547 | },
548 | "no_empty_param_list": {
549 | "active": 0,
550 | "flagValue": -1
551 | },
552 | "no_implicit_braces": {
553 | "active": 1,
554 | "flagValue": -1
555 | },
556 | "no_implicit_parens": {
557 | "active": 0,
558 | "flagValue": -1
559 | },
560 | "no_interpolation_in_single_quotes": {
561 | "active": 0,
562 | "flagValue": -1
563 | },
564 | "no_nested_string_interpolation": {
565 | "active": 1,
566 | "flagValue": -1
567 | },
568 | "no_plusplus": {
569 | "active": 0,
570 | "flagValue": -1
571 | },
572 | "no_private_function_fat_arrows": {
573 | "active": 1,
574 | "flagValue": -1
575 | },
576 | "no_stand_alone_at": {
577 | "active": 1,
578 | "flagValue": -1
579 | },
580 | "no_tabs": {
581 | "active": 1,
582 | "flagValue": -1
583 | },
584 | "no_this": {
585 | "active": 0,
586 | "flagValue": -1
587 | },
588 | "no_throwing_strings": {
589 | "active": 1,
590 | "flagValue": -1
591 | },
592 | "no_trailing_semicolons": {
593 | "active": 1,
594 | "flagValue": -1
595 | },
596 | "no_trailing_whitespace": {
597 | "active": 1,
598 | "flagValue": -1
599 | },
600 | "no_unnecessary_double_quotes": {
601 | "active": 0,
602 | "flagValue": -1
603 | },
604 | "no_unnecessary_fat_arrows": {
605 | "active": 1,
606 | "flagValue": -1
607 | },
608 | "non_empty_constructor_needs_parens": {
609 | "active": 0,
610 | "flagValue": -1
611 | },
612 | "prefer_english_operator": {
613 | "active": 0,
614 | "flagValue": -1
615 | },
616 | "space_operators": {
617 | "active": 0,
618 | "flagValue": -1
619 | },
620 | "spacing_after_comma": {
621 | "active": 1,
622 | "flagValue": -1
623 | }
624 | },
625 | "esLintConfigFileHandlingType": 0,
626 | "esLintECMAVersion": 7,
627 | "esLintEnvironmentsMask": 1,
628 | "esLintRules": {
629 | "accessor-pairs": {
630 | "active": 0,
631 | "optionString": "{'setWithoutGet': true, 'getWithoutSet': false}"
632 | },
633 | "array-bracket-newline": {
634 | "active": 0,
635 | "optionString": "{'multiline': true, 'minItems': null}"
636 | },
637 | "array-bracket-spacing": {
638 | "active": 0,
639 | "optionString": "'never', {'singleValue': false, 'objectsInArrays': false, 'arraysInArrays': false}"
640 | },
641 | "array-callback-return": {
642 | "active": 0,
643 | "optionString": ""
644 | },
645 | "array-element-newline": {
646 | "active": 0,
647 | "optionString": "'always'"
648 | },
649 | "arrow-body-style": {
650 | "active": 0,
651 | "optionString": "'as-needed', {'requireReturnForObjectLiteral': false}"
652 | },
653 | "arrow-parens": {
654 | "active": 0,
655 | "optionString": "'always'"
656 | },
657 | "arrow-spacing": {
658 | "active": 0,
659 | "optionString": "{'before': true, 'after': true}"
660 | },
661 | "block-scoped-var": {
662 | "active": 0,
663 | "optionString": ""
664 | },
665 | "block-spacing": {
666 | "active": 0,
667 | "optionString": "'always'"
668 | },
669 | "brace-style": {
670 | "active": 0,
671 | "optionString": "'1tbs', {'allowSingleLine': true}"
672 | },
673 | "callback-return": {
674 | "active": 0,
675 | "optionString": "['callback', 'cb', 'next']"
676 | },
677 | "camelcase": {
678 | "active": 0,
679 | "optionString": "{'properties': 'always'}"
680 | },
681 | "capitalized-comments": {
682 | "active": 0,
683 | "optionString": "'always', {'ignoreInlineComments': false, 'ignoreConsecutiveComments': false}"
684 | },
685 | "class-methods-use-this": {
686 | "active": 0,
687 | "optionString": "{'exceptMethods': []}"
688 | },
689 | "comma-dangle": {
690 | "active": 1,
691 | "optionString": "'never'"
692 | },
693 | "comma-spacing": {
694 | "active": 0,
695 | "optionString": "{'before': false, 'after': true}"
696 | },
697 | "comma-style": {
698 | "active": 0,
699 | "optionString": "'last'"
700 | },
701 | "complexity": {
702 | "active": 0,
703 | "optionString": "20"
704 | },
705 | "computed-property-spacing": {
706 | "active": 0,
707 | "optionString": "'never'"
708 | },
709 | "consistent-return": {
710 | "active": 0,
711 | "optionString": "{'treatUndefinedAsUnspecified': false}"
712 | },
713 | "consistent-this": {
714 | "active": 0,
715 | "optionString": "'that'"
716 | },
717 | "constructor-super": {
718 | "active": 1,
719 | "optionString": ""
720 | },
721 | "curly": {
722 | "active": 0,
723 | "optionString": "'all'"
724 | },
725 | "default-case": {
726 | "active": 0,
727 | "optionString": ""
728 | },
729 | "dot-location": {
730 | "active": 0,
731 | "optionString": "'object'"
732 | },
733 | "dot-notation": {
734 | "active": 0,
735 | "optionString": "{'allowKeywords': false}"
736 | },
737 | "eol-last": {
738 | "active": 0,
739 | "optionString": "'always'"
740 | },
741 | "eqeqeq": {
742 | "active": 0,
743 | "optionString": "'always', {'null': 'always'}"
744 | },
745 | "for-direction": {
746 | "active": 0,
747 | "optionString": ""
748 | },
749 | "func-call-spacing": {
750 | "active": 0,
751 | "optionString": "'never'"
752 | },
753 | "func-name-matching": {
754 | "active": 0,
755 | "optionString": "'always', {'includeCommonJSModuleExports': false}"
756 | },
757 | "func-names": {
758 | "active": 0,
759 | "optionString": "'always'"
760 | },
761 | "func-style": {
762 | "active": 0,
763 | "optionString": "'expression'"
764 | },
765 | "function-paren-newline": {
766 | "active": 0,
767 | "optionString": "'multiline'"
768 | },
769 | "generator-star-spacing": {
770 | "active": 0,
771 | "optionString": "{'before': true, 'after': false}"
772 | },
773 | "getter-return": {
774 | "active": 0,
775 | "optionString": "{'allowImplicit': false}"
776 | },
777 | "global-require": {
778 | "active": 0,
779 | "optionString": ""
780 | },
781 | "guard-for-in": {
782 | "active": 0,
783 | "optionString": ""
784 | },
785 | "handle-callback-err": {
786 | "active": 0,
787 | "optionString": "'err'"
788 | },
789 | "id-blacklist": {
790 | "active": 0,
791 | "optionString": "'data', 'err', 'e', 'cb', 'callback'"
792 | },
793 | "id-length": {
794 | "active": 0,
795 | "optionString": "{'min': 2, 'max': 1000, 'properties': 'always', 'exceptions': ['x', 'i', 'y']}"
796 | },
797 | "id-match": {
798 | "active": 0,
799 | "optionString": "'^[a-z]+([A-Z][a-z]+)*$', {'properties': false, 'onlyDeclarations': true}"
800 | },
801 | "implicit-arrow-linebreak": {
802 | "active": 0,
803 | "optionString": "'beside'"
804 | },
805 | "indent": {
806 | "active": 0,
807 | "optionString": "4, {'SwitchCase': 0, 'VariableDeclarator': 1, 'outerIIFEBody': 1, }"
808 | },
809 | "init-declarations": {
810 | "active": 0,
811 | "optionString": "'always', {'ignoreForLoopInit': true}"
812 | },
813 | "jsx-quotes": {
814 | "active": 0,
815 | "optionString": "'prefer-double'"
816 | },
817 | "key-spacing": {
818 | "active": 0,
819 | "optionString": "{'singleLine': {'beforeColon': false, 'afterColon': true, 'mode':'strict'}, 'multiLine': {'beforeColon': false, 'afterColon': true, 'align': 'value', 'mode':'minimum'}}"
820 | },
821 | "keyword-spacing": {
822 | "active": 0,
823 | "optionString": "{'before': true, 'after': true, 'overrides': {}}"
824 | },
825 | "line-comment-position": {
826 | "active": 0,
827 | "optionString": "{'position': 'above'}"
828 | },
829 | "linebreak-style": {
830 | "active": 0,
831 | "optionString": "'unix'"
832 | },
833 | "lines-around-comment": {
834 | "active": 0,
835 | "optionString": "{'beforeBlockComment': true}"
836 | },
837 | "lines-between-class-members": {
838 | "active": 0,
839 | "optionString": "'always', {exceptAfterSingleLine: false}"
840 | },
841 | "max-depth": {
842 | "active": 0,
843 | "optionString": "{'max': 4}"
844 | },
845 | "max-len": {
846 | "active": 0,
847 | "optionString": "{'code': 80, 'comments': 80, 'tabWidth': 4, 'ignoreUrls': true, 'ignoreStrings': true, 'ignoreTemplateLiterals': true, 'ignoreRegExpLiterals': true}"
848 | },
849 | "max-lines": {
850 | "active": 0,
851 | "optionString": "{'max': 300, 'skipBlankLines': true, 'skipComments': true}"
852 | },
853 | "max-nested-callbacks": {
854 | "active": 0,
855 | "optionString": "{'max': 10}"
856 | },
857 | "max-params": {
858 | "active": 0,
859 | "optionString": "{'max': 4}"
860 | },
861 | "max-statements": {
862 | "active": 0,
863 | "optionString": "{'max': 10}, {'ignoreTopLevelFunctions': true}"
864 | },
865 | "max-statements-per-line": {
866 | "active": 0,
867 | "optionString": "{'max': 1}"
868 | },
869 | "multiline-comment-style": {
870 | "active": 0,
871 | "optionString": "'starred-block'"
872 | },
873 | "multiline-ternary": {
874 | "active": 0,
875 | "optionString": "'always'"
876 | },
877 | "new-cap": {
878 | "active": 0,
879 | "optionString": "{'newIsCap': true, 'capIsNew': true, 'newIsCapExceptions': [], 'capIsNewExceptions': ['Array', 'Boolean', 'Date', 'Error', 'Function', 'Number', 'Object', 'RegExp', 'String', 'Symbol'], 'properties': true}"
880 | },
881 | "new-parens": {
882 | "active": 0,
883 | "optionString": ""
884 | },
885 | "newline-per-chained-call": {
886 | "active": 0,
887 | "optionString": "{'ignoreChainWithDepth': 2}"
888 | },
889 | "no-alert": {
890 | "active": 0,
891 | "optionString": ""
892 | },
893 | "no-array-constructor": {
894 | "active": 0,
895 | "optionString": ""
896 | },
897 | "no-await-in-loop": {
898 | "active": 0,
899 | "optionString": ""
900 | },
901 | "no-bitwise": {
902 | "active": 0,
903 | "optionString": "{'allow': ['~'], 'int32Hint': true}"
904 | },
905 | "no-buffer-constructor": {
906 | "active": 0,
907 | "optionString": ""
908 | },
909 | "no-caller": {
910 | "active": 0,
911 | "optionString": ""
912 | },
913 | "no-case-declarations": {
914 | "active": 1,
915 | "optionString": ""
916 | },
917 | "no-catch-shadow": {
918 | "active": 0,
919 | "optionString": ""
920 | },
921 | "no-class-assign": {
922 | "active": 1,
923 | "optionString": ""
924 | },
925 | "no-compare-neg-zero": {
926 | "active": 0,
927 | "optionString": ""
928 | },
929 | "no-cond-assign": {
930 | "active": 1,
931 | "optionString": "'except-parens'"
932 | },
933 | "no-confusing-arrow": {
934 | "active": 0,
935 | "optionString": "{'allowParens': false}"
936 | },
937 | "no-console": {
938 | "active": 1,
939 | "optionString": "{'allow': ['warn', 'error']}"
940 | },
941 | "no-const-assign": {
942 | "active": 1,
943 | "optionString": ""
944 | },
945 | "no-constant-condition": {
946 | "active": 1,
947 | "optionString": "{'checkLoops': true}"
948 | },
949 | "no-continue": {
950 | "active": 0,
951 | "optionString": ""
952 | },
953 | "no-control-regex": {
954 | "active": 1,
955 | "optionString": ""
956 | },
957 | "no-debugger": {
958 | "active": 1,
959 | "optionString": ""
960 | },
961 | "no-delete-var": {
962 | "active": 1,
963 | "optionString": ""
964 | },
965 | "no-div-regex": {
966 | "active": 0,
967 | "optionString": ""
968 | },
969 | "no-dupe-args": {
970 | "active": 1,
971 | "optionString": ""
972 | },
973 | "no-dupe-class-members": {
974 | "active": 1,
975 | "optionString": ""
976 | },
977 | "no-dupe-keys": {
978 | "active": 1,
979 | "optionString": ""
980 | },
981 | "no-duplicate-imports": {
982 | "active": 0,
983 | "optionString": "{'includeExports': false}"
984 | },
985 | "no-else-return": {
986 | "active": 0,
987 | "optionString": ""
988 | },
989 | "no-empty": {
990 | "active": 1,
991 | "optionString": "{'allowEmptyCatch': false}"
992 | },
993 | "no-empty-character-class": {
994 | "active": 1,
995 | "optionString": ""
996 | },
997 | "no-empty-function": {
998 | "active": 0,
999 | "optionString": "{'allow': []}"
1000 | },
1001 | "no-empty-pattern": {
1002 | "active": 1,
1003 | "optionString": ""
1004 | },
1005 | "no-eq-null": {
1006 | "active": 0,
1007 | "optionString": ""
1008 | },
1009 | "no-eval": {
1010 | "active": 0,
1011 | "optionString": "{'allowIndirect': false}"
1012 | },
1013 | "no-ex-assign": {
1014 | "active": 1,
1015 | "optionString": ""
1016 | },
1017 | "no-extend-native": {
1018 | "active": 0,
1019 | "optionString": "{'exceptions': []}"
1020 | },
1021 | "no-extra-bind": {
1022 | "active": 0,
1023 | "optionString": ""
1024 | },
1025 | "no-extra-boolean-cast": {
1026 | "active": 1,
1027 | "optionString": ""
1028 | },
1029 | "no-extra-labels": {
1030 | "active": 0,
1031 | "optionString": ""
1032 | },
1033 | "no-extra-parens": {
1034 | "active": 0,
1035 | "optionString": "'all', {'conditionalAssign': false, 'returnAssign': false, 'nestedBinaryExpressions': false, 'ignoreJSX': 'none', 'enforceForArrowConditionals': false}"
1036 | },
1037 | "no-extra-semi": {
1038 | "active": 1,
1039 | "optionString": ""
1040 | },
1041 | "no-fallthrough": {
1042 | "active": 1,
1043 | "optionString": ""
1044 | },
1045 | "no-floating-decimal": {
1046 | "active": 0,
1047 | "optionString": ""
1048 | },
1049 | "no-func-assign": {
1050 | "active": 1,
1051 | "optionString": ""
1052 | },
1053 | "no-global-assign": {
1054 | "active": 1,
1055 | "optionString": "{'exceptions': []}"
1056 | },
1057 | "no-implicit-coercion": {
1058 | "active": 0,
1059 | "optionString": "{'boolean': true, 'number': true, 'string': true, 'allow': []}"
1060 | },
1061 | "no-implicit-globals": {
1062 | "active": 0,
1063 | "optionString": ""
1064 | },
1065 | "no-implied-eval": {
1066 | "active": 0,
1067 | "optionString": ""
1068 | },
1069 | "no-inline-comments": {
1070 | "active": 0,
1071 | "optionString": ""
1072 | },
1073 | "no-inner-declarations": {
1074 | "active": 1,
1075 | "optionString": "'functions'"
1076 | },
1077 | "no-invalid-regexp": {
1078 | "active": 1,
1079 | "optionString": "{'allowConstructorFlags': ['u', 'y']}"
1080 | },
1081 | "no-invalid-this": {
1082 | "active": 0,
1083 | "optionString": ""
1084 | },
1085 | "no-irregular-whitespace": {
1086 | "active": 1,
1087 | "optionString": "{'skipStrings': true, 'skipComments': false, 'skipRegExps': true, 'skipTemplates': true}"
1088 | },
1089 | "no-iterator": {
1090 | "active": 0,
1091 | "optionString": ""
1092 | },
1093 | "no-label-var": {
1094 | "active": 0,
1095 | "optionString": ""
1096 | },
1097 | "no-labels": {
1098 | "active": 0,
1099 | "optionString": "{'allowLoop': false, 'allowSwitch': false}"
1100 | },
1101 | "no-lone-blocks": {
1102 | "active": 0,
1103 | "optionString": ""
1104 | },
1105 | "no-lonely-if": {
1106 | "active": 0,
1107 | "optionString": ""
1108 | },
1109 | "no-loop-func": {
1110 | "active": 0,
1111 | "optionString": ""
1112 | },
1113 | "no-magic-numbers": {
1114 | "active": 0,
1115 | "optionString": "{'ignore': [], 'ignoreArrayIndexes': true, 'enforceConst': false, 'detectObjects': false}"
1116 | },
1117 | "no-mixed-operators": {
1118 | "active": 0,
1119 | "optionString": "{'groups': [['+', '-', '*', '\/', '%', '**'], ['&', '|', '^', '~', '<<', '>>', '>>>'], ['==', '!=', '===', '!==', '>', '>=', '<', '<='], ['&&', '||'], ['in', 'instanceof']], 'allowSamePrecedence': true}"
1120 | },
1121 | "no-mixed-requires": {
1122 | "active": 0,
1123 | "optionString": "{'grouping': false, 'allowCall': false }"
1124 | },
1125 | "no-mixed-spaces-and-tabs": {
1126 | "active": 0,
1127 | "optionString": ""
1128 | },
1129 | "no-multi-assign": {
1130 | "active": 0,
1131 | "optionString": ""
1132 | },
1133 | "no-multi-spaces": {
1134 | "active": 0,
1135 | "optionString": "{'exceptions': {'Property': true, 'BinaryExpression': false, 'VariableDeclarator': false, 'ImportDeclaration': false}}"
1136 | },
1137 | "no-multi-str": {
1138 | "active": 0,
1139 | "optionString": ""
1140 | },
1141 | "no-multiple-empty-lines": {
1142 | "active": 0,
1143 | "optionString": "{'max': 2, 'maxBOF': 2, 'maxEOF': 2}"
1144 | },
1145 | "no-negated-condition": {
1146 | "active": 0,
1147 | "optionString": ""
1148 | },
1149 | "no-nested-ternary": {
1150 | "active": 0,
1151 | "optionString": ""
1152 | },
1153 | "no-new": {
1154 | "active": 0,
1155 | "optionString": ""
1156 | },
1157 | "no-new-func": {
1158 | "active": 0,
1159 | "optionString": ""
1160 | },
1161 | "no-new-object": {
1162 | "active": 0,
1163 | "optionString": ""
1164 | },
1165 | "no-new-require": {
1166 | "active": 0,
1167 | "optionString": ""
1168 | },
1169 | "no-new-symbol": {
1170 | "active": 1,
1171 | "optionString": ""
1172 | },
1173 | "no-new-wrappers": {
1174 | "active": 0,
1175 | "optionString": ""
1176 | },
1177 | "no-obj-calls": {
1178 | "active": 1,
1179 | "optionString": ""
1180 | },
1181 | "no-octal": {
1182 | "active": 1,
1183 | "optionString": ""
1184 | },
1185 | "no-octal-escape": {
1186 | "active": 0,
1187 | "optionString": ""
1188 | },
1189 | "no-param-reassign": {
1190 | "active": 0,
1191 | "optionString": "{'props': false}"
1192 | },
1193 | "no-path-concat": {
1194 | "active": 0,
1195 | "optionString": ""
1196 | },
1197 | "no-plusplus": {
1198 | "active": 0,
1199 | "optionString": "{'allowForLoopAfterthoughts': false}"
1200 | },
1201 | "no-process-env": {
1202 | "active": 0,
1203 | "optionString": ""
1204 | },
1205 | "no-process-exit": {
1206 | "active": 0,
1207 | "optionString": ""
1208 | },
1209 | "no-proto": {
1210 | "active": 0,
1211 | "optionString": ""
1212 | },
1213 | "no-prototype-builtins": {
1214 | "active": 0,
1215 | "optionString": ""
1216 | },
1217 | "no-redeclare": {
1218 | "active": 1,
1219 | "optionString": "{'builtinGlobals': false}"
1220 | },
1221 | "no-regex-spaces": {
1222 | "active": 1,
1223 | "optionString": ""
1224 | },
1225 | "no-restricted-globals": {
1226 | "active": 0,
1227 | "optionString": "'event', 'fdescribe'"
1228 | },
1229 | "no-restricted-imports": {
1230 | "active": 0,
1231 | "optionString": ""
1232 | },
1233 | "no-restricted-modules": {
1234 | "active": 0,
1235 | "optionString": ""
1236 | },
1237 | "no-restricted-properties": {
1238 | "active": 0,
1239 | "optionString": "[{'object': 'disallowedObjectName', 'property': 'disallowedPropertyName'}, {'object': 'disallowedObjectName', 'property': 'anotherDisallowedPropertyName', 'message': 'Please use allowedObjectName.allowedPropertyName.'}]"
1240 | },
1241 | "no-restricted-syntax": {
1242 | "active": 0,
1243 | "optionString": "'FunctionExpression', 'WithStatement'"
1244 | },
1245 | "no-return-assign": {
1246 | "active": 0,
1247 | "optionString": "'except-parens'"
1248 | },
1249 | "no-return-await": {
1250 | "active": 0,
1251 | "optionString": ""
1252 | },
1253 | "no-script-url": {
1254 | "active": 0,
1255 | "optionString": ""
1256 | },
1257 | "no-self-assign": {
1258 | "active": 1,
1259 | "optionString": "{'props': false}"
1260 | },
1261 | "no-self-compare": {
1262 | "active": 0,
1263 | "optionString": ""
1264 | },
1265 | "no-sequences": {
1266 | "active": 0,
1267 | "optionString": ""
1268 | },
1269 | "no-shadow": {
1270 | "active": 0,
1271 | "optionString": "{'builtinGlobals': false, 'hoist': 'functions', 'allow': []}"
1272 | },
1273 | "no-shadow-restricted-names": {
1274 | "active": 0,
1275 | "optionString": ""
1276 | },
1277 | "no-sparse-arrays": {
1278 | "active": 1,
1279 | "optionString": ""
1280 | },
1281 | "no-sync": {
1282 | "active": 0,
1283 | "optionString": "{'allowAtRootLevel': false}"
1284 | },
1285 | "no-tabs": {
1286 | "active": 0,
1287 | "optionString": ""
1288 | },
1289 | "no-template-curly-in-string": {
1290 | "active": 0,
1291 | "optionString": ""
1292 | },
1293 | "no-ternary": {
1294 | "active": 0,
1295 | "optionString": ""
1296 | },
1297 | "no-this-before-super": {
1298 | "active": 1,
1299 | "optionString": ""
1300 | },
1301 | "no-throw-literal": {
1302 | "active": 0,
1303 | "optionString": ""
1304 | },
1305 | "no-trailing-spaces": {
1306 | "active": 0,
1307 | "optionString": "{'skipBlankLines': false, 'ignoreComments': false}"
1308 | },
1309 | "no-undef": {
1310 | "active": 1,
1311 | "optionString": "{'typeof': false}"
1312 | },
1313 | "no-undef-init": {
1314 | "active": 0,
1315 | "optionString": ""
1316 | },
1317 | "no-undefined": {
1318 | "active": 0,
1319 | "optionString": ""
1320 | },
1321 | "no-underscore-dangle": {
1322 | "active": 0,
1323 | "optionString": "{'allow': [], 'allowAfterThis': false, 'allowAfterSuper': false, 'enforceInMethodNames': false}"
1324 | },
1325 | "no-unexpected-multiline": {
1326 | "active": 1,
1327 | "optionString": ""
1328 | },
1329 | "no-unmodified-loop-condition": {
1330 | "active": 0,
1331 | "optionString": ""
1332 | },
1333 | "no-unneeded-ternary": {
1334 | "active": 0,
1335 | "optionString": "{'defaultAssignment': true}"
1336 | },
1337 | "no-unreachable": {
1338 | "active": 1,
1339 | "optionString": ""
1340 | },
1341 | "no-unsafe-finally": {
1342 | "active": 1,
1343 | "optionString": ""
1344 | },
1345 | "no-unsafe-negation": {
1346 | "active": 1,
1347 | "optionString": ""
1348 | },
1349 | "no-unused-expressions": {
1350 | "active": 0,
1351 | "optionString": "{'allowShortCircuit': false, 'allowTernary': false, 'allowTaggedTemplates': false}"
1352 | },
1353 | "no-unused-labels": {
1354 | "active": 1,
1355 | "optionString": ""
1356 | },
1357 | "no-unused-vars": {
1358 | "active": 1,
1359 | "optionString": "{'vars': 'all', 'args': 'after-used', 'caughtErrors': 'none', 'ignoreRestSiblings': false}"
1360 | },
1361 | "no-use-before-define": {
1362 | "active": 0,
1363 | "optionString": "{'functions': true, 'classes': true, 'variables': true}"
1364 | },
1365 | "no-useless-call": {
1366 | "active": 0,
1367 | "optionString": ""
1368 | },
1369 | "no-useless-computed-key": {
1370 | "active": 0,
1371 | "optionString": ""
1372 | },
1373 | "no-useless-concat": {
1374 | "active": 0,
1375 | "optionString": ""
1376 | },
1377 | "no-useless-constructor": {
1378 | "active": 0,
1379 | "optionString": ""
1380 | },
1381 | "no-useless-escape": {
1382 | "active": 0,
1383 | "optionString": ""
1384 | },
1385 | "no-useless-rename": {
1386 | "active": 0,
1387 | "optionString": "{'ignoreDestructuring': false, 'ignoreImport': false, 'ignoreExport': false}"
1388 | },
1389 | "no-useless-return": {
1390 | "active": 0,
1391 | "optionString": ""
1392 | },
1393 | "no-var": {
1394 | "active": 0,
1395 | "optionString": ""
1396 | },
1397 | "no-void": {
1398 | "active": 0,
1399 | "optionString": ""
1400 | },
1401 | "no-warning-comments": {
1402 | "active": 0,
1403 | "optionString": "{'terms': ['todo', 'fixme', 'xxx'], 'location': 'start'}"
1404 | },
1405 | "no-whitespace-before-property": {
1406 | "active": 0,
1407 | "optionString": ""
1408 | },
1409 | "no-with": {
1410 | "active": 0,
1411 | "optionString": ""
1412 | },
1413 | "nonblock-statement-body-position": {
1414 | "active": 0,
1415 | "optionString": "'beside'"
1416 | },
1417 | "object-curly-newline": {
1418 | "active": 0,
1419 | "optionString": "{'ObjectExpression': {'multiline': true}, 'ObjectPattern': {'multiline': true}}"
1420 | },
1421 | "object-curly-spacing": {
1422 | "active": 0,
1423 | "optionString": "'never'"
1424 | },
1425 | "object-property-newline": {
1426 | "active": 0,
1427 | "optionString": "{'allowMultiplePropertiesPerLine': true}"
1428 | },
1429 | "object-shorthand": {
1430 | "active": 0,
1431 | "optionString": "'always', {'avoidQuotes': false, 'ignoreConstructors': false}"
1432 | },
1433 | "one-var": {
1434 | "active": 0,
1435 | "optionString": "'always'"
1436 | },
1437 | "one-var-declaration-per-line": {
1438 | "active": 0,
1439 | "optionString": "'always'"
1440 | },
1441 | "operator-assignment": {
1442 | "active": 0,
1443 | "optionString": "'always'"
1444 | },
1445 | "operator-linebreak": {
1446 | "active": 0,
1447 | "optionString": "'after', {'overrides': {'?': 'after', '+=': 'none'}}"
1448 | },
1449 | "padded-blocks": {
1450 | "active": 0,
1451 | "optionString": "{'blocks': 'always', 'switches': 'always', 'classes': 'always'}"
1452 | },
1453 | "padding-line-between-statements": {
1454 | "active": 0,
1455 | "optionString": "{blankLine: 'always', prev:'*', next:'return'}"
1456 | },
1457 | "prefer-arrow-callback": {
1458 | "active": 0,
1459 | "optionString": ""
1460 | },
1461 | "prefer-const": {
1462 | "active": 0,
1463 | "optionString": "{'destructuring': 'any', 'ignoreReadBeforeAssign': false}"
1464 | },
1465 | "prefer-destructuring": {
1466 | "active": 0,
1467 | "optionString": "{'array': true, 'object': true}, {'enforceForRenamedProperties': false}"
1468 | },
1469 | "prefer-numeric-literals": {
1470 | "active": 0,
1471 | "optionString": ""
1472 | },
1473 | "prefer-promise-reject-errors": {
1474 | "active": 0,
1475 | "optionString": "{'allowEmptyReject': false}"
1476 | },
1477 | "prefer-rest-params": {
1478 | "active": 0,
1479 | "optionString": ""
1480 | },
1481 | "prefer-spread": {
1482 | "active": 0,
1483 | "optionString": ""
1484 | },
1485 | "prefer-template": {
1486 | "active": 0,
1487 | "optionString": ""
1488 | },
1489 | "quote-props": {
1490 | "active": 0,
1491 | "optionString": "'always'"
1492 | },
1493 | "quotes": {
1494 | "active": 0,
1495 | "optionString": "'double', {'avoidEscape': true, 'allowTemplateLiterals': true}"
1496 | },
1497 | "radix": {
1498 | "active": 0,
1499 | "optionString": "'always'"
1500 | },
1501 | "require-await": {
1502 | "active": 0,
1503 | "optionString": ""
1504 | },
1505 | "require-jsdoc": {
1506 | "active": 0,
1507 | "optionString": "{'require': {'FunctionDeclaration': true, 'MethodDefinition': false, 'ClassDeclaration': false, 'ArrowFunctionExpression': false}}"
1508 | },
1509 | "require-yield": {
1510 | "active": 1,
1511 | "optionString": ""
1512 | },
1513 | "rest-spread-spacing": {
1514 | "active": 0,
1515 | "optionString": "'never'"
1516 | },
1517 | "semi": {
1518 | "active": 0,
1519 | "optionString": "'always', {'omitLastInOneLineBlock': false}"
1520 | },
1521 | "semi-spacing": {
1522 | "active": 0,
1523 | "optionString": "{'before': false, 'after': true}"
1524 | },
1525 | "semi-style": {
1526 | "active": 0,
1527 | "optionString": "'last'"
1528 | },
1529 | "sort-imports": {
1530 | "active": 0,
1531 | "optionString": "{'ignoreCase': false, 'ignoreMemberSort': true, 'memberSyntaxSortOrder': ['none', 'all', 'multiple', 'single']}"
1532 | },
1533 | "sort-keys": {
1534 | "active": 0,
1535 | "optionString": "'asc', {'caseSensitive': true, 'natural': false}"
1536 | },
1537 | "sort-vars": {
1538 | "active": 0,
1539 | "optionString": "{'ignoreCase': false}"
1540 | },
1541 | "space-before-blocks": {
1542 | "active": 0,
1543 | "optionString": "{'functions': 'always', 'keywords': 'always', 'classes': 'always'}"
1544 | },
1545 | "space-before-function-paren": {
1546 | "active": 0,
1547 | "optionString": "{'anonymous': 'always', 'named': 'never'}"
1548 | },
1549 | "space-in-parens": {
1550 | "active": 0,
1551 | "optionString": "'never', {'exceptions': []}"
1552 | },
1553 | "space-infix-ops": {
1554 | "active": 0,
1555 | "optionString": "{'int32Hint': false}"
1556 | },
1557 | "space-unary-ops": {
1558 | "active": 0,
1559 | "optionString": "{'words': true, 'nonwords': false, 'overrides': {}}"
1560 | },
1561 | "spaced-comment": {
1562 | "active": 0,
1563 | "optionString": "'always', {'line': {'markers': ['\/'], 'exceptions': ['-', '+']}, 'block': {'markers': ['!'], 'exceptions': ['*'], 'balanced': false}}"
1564 | },
1565 | "strict": {
1566 | "active": 0,
1567 | "optionString": "'safe'"
1568 | },
1569 | "switch-colon-spacing": {
1570 | "active": 0,
1571 | "optionString": "{'after': true, 'before': false}"
1572 | },
1573 | "symbol-description": {
1574 | "active": 0,
1575 | "optionString": ""
1576 | },
1577 | "template-curly-spacing": {
1578 | "active": 0,
1579 | "optionString": "'never'"
1580 | },
1581 | "template-tag-spacing": {
1582 | "active": 0,
1583 | "optionString": "'never'"
1584 | },
1585 | "unicode-bom": {
1586 | "active": 0,
1587 | "optionString": "'never'"
1588 | },
1589 | "use-isnan": {
1590 | "active": 1,
1591 | "optionString": ""
1592 | },
1593 | "valid-jsdoc": {
1594 | "active": 0,
1595 | "optionString": "{'prefer': {'return': 'returns'}, 'requireReturn': true, 'requireReturnDescription': true, 'requireReturnType': true, 'requireParamDescription': true}"
1596 | },
1597 | "valid-typeof": {
1598 | "active": 1,
1599 | "optionString": "{'requireStringLiterals': true}"
1600 | },
1601 | "vars-on-top": {
1602 | "active": 0,
1603 | "optionString": ""
1604 | },
1605 | "wrap-iife": {
1606 | "active": 0,
1607 | "optionString": "'outside'"
1608 | },
1609 | "wrap-regex": {
1610 | "active": 0,
1611 | "optionString": ""
1612 | },
1613 | "yield-star-spacing": {
1614 | "active": 0,
1615 | "optionString": "{'before': false, 'after': true}"
1616 | },
1617 | "yoda": {
1618 | "active": 0,
1619 | "optionString": "'never', {'exceptRange': false, 'onlyEquality': false}"
1620 | }
1621 | },
1622 | "esLintSourceType": 0,
1623 | "externalServerAddress": "http:\/\/localhost:8888",
1624 | "gitIgnoreBuildFolder": 1,
1625 | "hideConfigFile": 0,
1626 | "jsCheckerReservedNamesString": "",
1627 | "jsHintFlags2": {
1628 | "asi": {
1629 | "active": 0,
1630 | "flagValue": -1
1631 | },
1632 | "bitwise": {
1633 | "active": 1,
1634 | "flagValue": -1
1635 | },
1636 | "boss": {
1637 | "active": 0,
1638 | "flagValue": -1
1639 | },
1640 | "browser": {
1641 | "active": 1,
1642 | "flagValue": -1
1643 | },
1644 | "browserify": {
1645 | "active": 0,
1646 | "flagValue": -1
1647 | },
1648 | "camelcase": {
1649 | "active": 0,
1650 | "flagValue": -1
1651 | },
1652 | "couch": {
1653 | "active": 0,
1654 | "flagValue": -1
1655 | },
1656 | "curly": {
1657 | "active": 1,
1658 | "flagValue": -1
1659 | },
1660 | "debug": {
1661 | "active": 0,
1662 | "flagValue": -1
1663 | },
1664 | "devel": {
1665 | "active": 0,
1666 | "flagValue": -1
1667 | },
1668 | "dojo": {
1669 | "active": 0,
1670 | "flagValue": -1
1671 | },
1672 | "elision": {
1673 | "active": 1,
1674 | "flagValue": -1
1675 | },
1676 | "eqeqeq": {
1677 | "active": 1,
1678 | "flagValue": -1
1679 | },
1680 | "eqnull": {
1681 | "active": 0,
1682 | "flagValue": -1
1683 | },
1684 | "es3": {
1685 | "active": 0,
1686 | "flagValue": -1
1687 | },
1688 | "esnext": {
1689 | "active": 0,
1690 | "flagValue": -1
1691 | },
1692 | "evil": {
1693 | "active": 0,
1694 | "flagValue": -1
1695 | },
1696 | "expr": {
1697 | "active": 0,
1698 | "flagValue": -1
1699 | },
1700 | "forin": {
1701 | "active": 0,
1702 | "flagValue": -1
1703 | },
1704 | "freeze": {
1705 | "active": 1,
1706 | "flagValue": -1
1707 | },
1708 | "funcscope": {
1709 | "active": 0,
1710 | "flagValue": -1
1711 | },
1712 | "futurehostile": {
1713 | "active": 0,
1714 | "flagValue": -1
1715 | },
1716 | "globalstrict": {
1717 | "active": 0,
1718 | "flagValue": -1
1719 | },
1720 | "immed": {
1721 | "active": 0,
1722 | "flagValue": -1
1723 | },
1724 | "indent": {
1725 | "active": 0,
1726 | "flagValue": 4
1727 | },
1728 | "iterator": {
1729 | "active": 0,
1730 | "flagValue": -1
1731 | },
1732 | "jasmine": {
1733 | "active": 0,
1734 | "flagValue": -1
1735 | },
1736 | "jquery": {
1737 | "active": 1,
1738 | "flagValue": -1
1739 | },
1740 | "lastsemic": {
1741 | "active": 0,
1742 | "flagValue": -1
1743 | },
1744 | "latedef": {
1745 | "active": 1,
1746 | "flagValue": -1
1747 | },
1748 | "laxbreak": {
1749 | "active": 0,
1750 | "flagValue": -1
1751 | },
1752 | "laxcomma": {
1753 | "active": 0,
1754 | "flagValue": -1
1755 | },
1756 | "loopfunc": {
1757 | "active": 0,
1758 | "flagValue": -1
1759 | },
1760 | "maxcomplexity": {
1761 | "active": 0,
1762 | "flagValue": 10
1763 | },
1764 | "maxdepth": {
1765 | "active": 0,
1766 | "flagValue": 3
1767 | },
1768 | "maxlen": {
1769 | "active": 0,
1770 | "flagValue": 150
1771 | },
1772 | "maxparams": {
1773 | "active": 0,
1774 | "flagValue": 3
1775 | },
1776 | "maxstatements": {
1777 | "active": 0,
1778 | "flagValue": 4
1779 | },
1780 | "mocha": {
1781 | "active": 0,
1782 | "flagValue": -1
1783 | },
1784 | "mootools": {
1785 | "active": 0,
1786 | "flagValue": -1
1787 | },
1788 | "moz": {
1789 | "active": 0,
1790 | "flagValue": -1
1791 | },
1792 | "multistr": {
1793 | "active": 0,
1794 | "flagValue": -1
1795 | },
1796 | "newcap": {
1797 | "active": 1,
1798 | "flagValue": -1
1799 | },
1800 | "noarg": {
1801 | "active": 1,
1802 | "flagValue": -1
1803 | },
1804 | "nocomma": {
1805 | "active": 0,
1806 | "flagValue": -1
1807 | },
1808 | "node": {
1809 | "active": 0,
1810 | "flagValue": -1
1811 | },
1812 | "noempty": {
1813 | "active": 0,
1814 | "flagValue": -1
1815 | },
1816 | "nonbsp": {
1817 | "active": 0,
1818 | "flagValue": -1
1819 | },
1820 | "nonew": {
1821 | "active": 1,
1822 | "flagValue": -1
1823 | },
1824 | "nonstandard": {
1825 | "active": 0,
1826 | "flagValue": -1
1827 | },
1828 | "notypeof": {
1829 | "active": 1,
1830 | "flagValue": -1
1831 | },
1832 | "noyield": {
1833 | "active": 0,
1834 | "flagValue": -1
1835 | },
1836 | "onecase": {
1837 | "active": 0,
1838 | "flagValue": -1
1839 | },
1840 | "phantom": {
1841 | "active": 0,
1842 | "flagValue": -1
1843 | },
1844 | "plusplus": {
1845 | "active": 0,
1846 | "flagValue": -1
1847 | },
1848 | "proto": {
1849 | "active": 0,
1850 | "flagValue": -1
1851 | },
1852 | "prototypejs": {
1853 | "active": 0,
1854 | "flagValue": -1
1855 | },
1856 | "qunit": {
1857 | "active": 0,
1858 | "flagValue": -1
1859 | },
1860 | "regexp": {
1861 | "active": 1,
1862 | "flagValue": -1
1863 | },
1864 | "rhino": {
1865 | "active": 0,
1866 | "flagValue": -1
1867 | },
1868 | "scripturl": {
1869 | "active": 0,
1870 | "flagValue": -1
1871 | },
1872 | "shadow": {
1873 | "active": 0,
1874 | "flagValue": -1
1875 | },
1876 | "shelljs": {
1877 | "active": 0,
1878 | "flagValue": -1
1879 | },
1880 | "singleGroups": {
1881 | "active": 0,
1882 | "flagValue": -1
1883 | },
1884 | "strict": {
1885 | "active": 0,
1886 | "flagValue": -1
1887 | },
1888 | "sub": {
1889 | "active": 0,
1890 | "flagValue": -1
1891 | },
1892 | "supernew": {
1893 | "active": 0,
1894 | "flagValue": -1
1895 | },
1896 | "typed": {
1897 | "active": 0,
1898 | "flagValue": -1
1899 | },
1900 | "undef": {
1901 | "active": 1,
1902 | "flagValue": -1
1903 | },
1904 | "unused": {
1905 | "active": 1,
1906 | "flagValue": -1
1907 | },
1908 | "varstmt": {
1909 | "active": 0,
1910 | "flagValue": -1
1911 | },
1912 | "withstmt": {
1913 | "active": 0,
1914 | "flagValue": -1
1915 | },
1916 | "worker": {
1917 | "active": 0,
1918 | "flagValue": -1
1919 | },
1920 | "wsh": {
1921 | "active": 0,
1922 | "flagValue": -1
1923 | },
1924 | "yui": {
1925 | "active": 0,
1926 | "flagValue": -1
1927 | }
1928 | },
1929 | "jsLintFlags2": {
1930 | "bitwise": {
1931 | "active": 0,
1932 | "flagValue": -1
1933 | },
1934 | "browser": {
1935 | "active": 1,
1936 | "flagValue": -1
1937 | },
1938 | "couch": {
1939 | "active": 0,
1940 | "flagValue": -1
1941 | },
1942 | "devel": {
1943 | "active": 0,
1944 | "flagValue": -1
1945 | },
1946 | "es6": {
1947 | "active": 0,
1948 | "flagValue": -1
1949 | },
1950 | "eval": {
1951 | "active": 0,
1952 | "flagValue": -1
1953 | },
1954 | "for": {
1955 | "active": 0,
1956 | "flagValue": -1
1957 | },
1958 | "maxlen": {
1959 | "active": 0,
1960 | "flagValue": 150
1961 | },
1962 | "node": {
1963 | "active": 0,
1964 | "flagValue": -1
1965 | },
1966 | "this": {
1967 | "active": 0,
1968 | "flagValue": -1
1969 | },
1970 | "white": {
1971 | "active": 0,
1972 | "flagValue": -1
1973 | }
1974 | },
1975 | "languageDefaultsCOFFEE": {
1976 | "autoOutputAction": 0,
1977 | "autoOutputPathFilenamePattern": "*.js",
1978 | "autoOutputPathRelativePath": "",
1979 | "autoOutputPathReplace1": "",
1980 | "autoOutputPathReplace2": "",
1981 | "autoOutputPathStyle": 0,
1982 | "createSourceMap": 0,
1983 | "minifyOutput": 1,
1984 | "outputStyle": 0,
1985 | "syntaxCheckerStyle": 1,
1986 | "transpilerStyle": 1
1987 | },
1988 | "languageDefaultsCSS": {
1989 | "autoOutputAction": 0,
1990 | "autoOutputPathFilenamePattern": "*-min.css",
1991 | "autoOutputPathRelativePath": "",
1992 | "autoOutputPathReplace1": "",
1993 | "autoOutputPathReplace2": "",
1994 | "autoOutputPathStyle": 0,
1995 | "createSourceMap": 0,
1996 | "outputStyle": 3,
1997 | "shouldRunAutoprefixer": 1,
1998 | "shouldRunBless": 0
1999 | },
2000 | "languageDefaultsGIF": {
2001 | "autoOutputAction": 0,
2002 | "autoOutputPathFilenamePattern": "*.gif",
2003 | "autoOutputPathRelativePath": "",
2004 | "autoOutputPathReplace1": "",
2005 | "autoOutputPathReplace2": "",
2006 | "autoOutputPathStyle": 0
2007 | },
2008 | "languageDefaultsHAML": {
2009 | "autoOutputAction": 0,
2010 | "autoOutputPathFilenamePattern": "*.html",
2011 | "autoOutputPathRelativePath": "",
2012 | "autoOutputPathReplace1": "",
2013 | "autoOutputPathReplace2": "",
2014 | "autoOutputPathStyle": 0,
2015 | "escapeHTMLCharacters": 0,
2016 | "noEscapeInAttributes": 0,
2017 | "outputFormat": 2,
2018 | "outputStyle": 0,
2019 | "shouldRunCacheBuster": 0,
2020 | "useCDATA": 0,
2021 | "useDoubleQuotes": 0,
2022 | "useUnixNewlines": 0
2023 | },
2024 | "languageDefaultsJPG": {
2025 | "autoOutputAction": 0,
2026 | "autoOutputPathFilenamePattern": "*.jpg",
2027 | "autoOutputPathRelativePath": "",
2028 | "autoOutputPathReplace1": "",
2029 | "autoOutputPathReplace2": "",
2030 | "autoOutputPathStyle": 0,
2031 | "outputFormat": 0,
2032 | "quality": 100
2033 | },
2034 | "languageDefaultsJS": {
2035 | "autoOutputAction": 0,
2036 | "autoOutputPathFilenamePattern": "*-min.js",
2037 | "autoOutputPathRelativePath": "\/min",
2038 | "autoOutputPathReplace1": "",
2039 | "autoOutputPathReplace2": "",
2040 | "autoOutputPathStyle": 0,
2041 | "createSourceMap": 0,
2042 | "minifyOutput": 1,
2043 | "syntaxCheckerStyle": 1,
2044 | "transpilerStyle": 0
2045 | },
2046 | "languageDefaultsJSON": {
2047 | "autoOutputAction": 1,
2048 | "autoOutputPathFilenamePattern": "*-min.json",
2049 | "autoOutputPathRelativePath": "",
2050 | "autoOutputPathReplace1": "",
2051 | "autoOutputPathReplace2": "",
2052 | "autoOutputPathStyle": 0,
2053 | "orderOutput": 0,
2054 | "outputStyle": 1
2055 | },
2056 | "languageDefaultsKIT": {
2057 | "autoOutputAction": 0,
2058 | "autoOutputPathFilenamePattern": "*.html",
2059 | "autoOutputPathRelativePath": "",
2060 | "autoOutputPathReplace1": "kit",
2061 | "autoOutputPathReplace2": "html",
2062 | "autoOutputPathStyle": 0,
2063 | "shouldRunCacheBuster": 0
2064 | },
2065 | "languageDefaultsLESS": {
2066 | "allowInsecureImports": 0,
2067 | "autoOutputAction": 0,
2068 | "autoOutputPathFilenamePattern": "*.css",
2069 | "autoOutputPathRelativePath": "..\/css",
2070 | "autoOutputPathReplace1": "less",
2071 | "autoOutputPathReplace2": "css",
2072 | "autoOutputPathStyle": 0,
2073 | "createSourceMap": 1,
2074 | "disableJavascript": 0,
2075 | "ieCompatibility": 1,
2076 | "outputStyle": 0,
2077 | "relativeURLS": 0,
2078 | "shouldRunAutoprefixer": 0,
2079 | "shouldRunBless": 0,
2080 | "strictImports": 0,
2081 | "strictMath": 0,
2082 | "strictUnits": 0
2083 | },
2084 | "languageDefaultsMARKDOWN": {
2085 | "autoOutputAction": 0,
2086 | "autoOutputPathFilenamePattern": "*.html",
2087 | "autoOutputPathRelativePath": "",
2088 | "autoOutputPathReplace1": "",
2089 | "autoOutputPathReplace2": "",
2090 | "autoOutputPathStyle": 0,
2091 | "criticStyle": 0,
2092 | "enableFootnotes": 1,
2093 | "enableLabels": 1,
2094 | "enableSmartQuotes": 1,
2095 | "maskEmailAddresses": 1,
2096 | "outputFormat": 0,
2097 | "outputStyle": 0,
2098 | "parseMetadata": 1,
2099 | "processHTML": 0,
2100 | "randomFootnoteNumbers": 0,
2101 | "shouldRunCacheBuster": 0,
2102 | "useCompatibilityMode": 0
2103 | },
2104 | "languageDefaultsOTHER": {
2105 | "autoOutputAction": 0,
2106 | "autoOutputPathFilenamePattern": "*.*",
2107 | "autoOutputPathRelativePath": "",
2108 | "autoOutputPathReplace1": "",
2109 | "autoOutputPathReplace2": "",
2110 | "autoOutputPathStyle": 0,
2111 | "shouldRunCacheBuster": 0
2112 | },
2113 | "languageDefaultsPNG": {
2114 | "autoOutputAction": 0,
2115 | "autoOutputPathFilenamePattern": "*.png",
2116 | "autoOutputPathRelativePath": "",
2117 | "autoOutputPathReplace1": "",
2118 | "autoOutputPathReplace2": "",
2119 | "autoOutputPathStyle": 0,
2120 | "optimizerType": 1,
2121 | "quality": 100
2122 | },
2123 | "languageDefaultsPUG": {
2124 | "autoOutputAction": 0,
2125 | "autoOutputPathFilenamePattern": "*.html",
2126 | "autoOutputPathRelativePath": "",
2127 | "autoOutputPathReplace1": "",
2128 | "autoOutputPathReplace2": "",
2129 | "autoOutputPathStyle": 0,
2130 | "compileDebug": 1,
2131 | "outputStyle": 0,
2132 | "shouldRunCacheBuster": 0
2133 | },
2134 | "languageDefaultsSASS": {
2135 | "autoOutputAction": 0,
2136 | "autoOutputPathFilenamePattern": "*.css",
2137 | "autoOutputPathRelativePath": "..\/css",
2138 | "autoOutputPathReplace1": "sass",
2139 | "autoOutputPathReplace2": "css",
2140 | "autoOutputPathStyle": 0,
2141 | "createSourceMap": 0,
2142 | "debugStyle": 0,
2143 | "decimalPrecision": 10,
2144 | "outputStyle": 0,
2145 | "shouldRunAutoprefixer": 0,
2146 | "shouldRunBless": 0,
2147 | "useLibsass": 1
2148 | },
2149 | "languageDefaultsSLIM": {
2150 | "autoOutputAction": 0,
2151 | "autoOutputPathFilenamePattern": "*.html",
2152 | "autoOutputPathRelativePath": "",
2153 | "autoOutputPathReplace1": "",
2154 | "autoOutputPathReplace2": "",
2155 | "autoOutputPathStyle": 0,
2156 | "compileOnly": 0,
2157 | "logicless": 0,
2158 | "outputFormat": 0,
2159 | "outputStyle": 1,
2160 | "railsCompatible": 0,
2161 | "shouldRunCacheBuster": 0
2162 | },
2163 | "languageDefaultsSTYLUS": {
2164 | "autoOutputAction": 0,
2165 | "autoOutputPathFilenamePattern": "*.css",
2166 | "autoOutputPathRelativePath": "..\/css",
2167 | "autoOutputPathReplace1": "stylus",
2168 | "autoOutputPathReplace2": "css",
2169 | "autoOutputPathStyle": 0,
2170 | "createSourceMap": 0,
2171 | "debugStyle": 0,
2172 | "importCSS": 0,
2173 | "outputStyle": 0,
2174 | "resolveRelativeURLS": 0,
2175 | "shouldRunAutoprefixer": 0,
2176 | "shouldRunBless": 0
2177 | },
2178 | "languageDefaultsSVG": {
2179 | "autoOutputAction": 2,
2180 | "autoOutputPathFilenamePattern": "*.svg",
2181 | "autoOutputPathRelativePath": "",
2182 | "autoOutputPathReplace1": "",
2183 | "autoOutputPathReplace2": "",
2184 | "autoOutputPathStyle": 0,
2185 | "pluginMask": 3758088159
2186 | },
2187 | "languageDefaultsTS": {
2188 | "autoOutputAction": 0,
2189 | "autoOutputPathFilenamePattern": "*.js",
2190 | "autoOutputPathRelativePath": "\/js",
2191 | "autoOutputPathReplace1": "",
2192 | "autoOutputPathReplace2": "",
2193 | "autoOutputPathStyle": 0,
2194 | "createDeclarationFile": 0,
2195 | "createSourceMap": 0,
2196 | "jsxMode": 0,
2197 | "minifyOutput": 0,
2198 | "moduleResolutionType": 0,
2199 | "moduleType": 2,
2200 | "noImplicitAny": 0,
2201 | "preserveConstEnums": 0,
2202 | "removeComments": 0,
2203 | "suppressImplicitAnyIndexErrors": 0,
2204 | "targetECMAVersion": 0
2205 | },
2206 | "languageDefaultsUserDefined": [
2207 | ],
2208 | "overrideExternalServerCSS": 0,
2209 | "previewPathAddition": "",
2210 | "skippedFoldersString": "log, _logs, logs, _cache, cache, \/storage\/framework\/sessions, node_modules",
2211 | "sourceFolderName": "source",
2212 | "susyVersion": 3,
2213 | "uglifyDefinesString": "",
2214 | "uglifyFlags2": {
2215 | "ascii-only": {
2216 | "active": 0,
2217 | "flagValue": -1
2218 | },
2219 | "bare-returns": {
2220 | "active": 0,
2221 | "flagValue": -1
2222 | },
2223 | "booleans": {
2224 | "active": 1,
2225 | "flagValue": -1
2226 | },
2227 | "bracketize": {
2228 | "active": 0,
2229 | "flagValue": -1
2230 | },
2231 | "cascade": {
2232 | "active": 1,
2233 | "flagValue": -1
2234 | },
2235 | "comments": {
2236 | "active": 1,
2237 | "flagValue": -1
2238 | },
2239 | "comparisons": {
2240 | "active": 1,
2241 | "flagValue": -1
2242 | },
2243 | "compress": {
2244 | "active": 1,
2245 | "flagValue": -1
2246 | },
2247 | "conditionals": {
2248 | "active": 1,
2249 | "flagValue": -1
2250 | },
2251 | "dead_code": {
2252 | "active": 0,
2253 | "flagValue": -1
2254 | },
2255 | "drop_console": {
2256 | "active": 0,
2257 | "flagValue": -1
2258 | },
2259 | "drop_debugger": {
2260 | "active": 1,
2261 | "flagValue": -1
2262 | },
2263 | "eval": {
2264 | "active": 0,
2265 | "flagValue": -1
2266 | },
2267 | "evaluate": {
2268 | "active": 1,
2269 | "flagValue": -1
2270 | },
2271 | "hoist_funs": {
2272 | "active": 1,
2273 | "flagValue": -1
2274 | },
2275 | "hoist_vars": {
2276 | "active": 0,
2277 | "flagValue": -1
2278 | },
2279 | "if_return": {
2280 | "active": 1,
2281 | "flagValue": -1
2282 | },
2283 | "indent-level": {
2284 | "active": 0,
2285 | "flagValue": 4
2286 | },
2287 | "indent-start": {
2288 | "active": 0,
2289 | "flagValue": 0
2290 | },
2291 | "inline-script": {
2292 | "active": 0,
2293 | "flagValue": -1
2294 | },
2295 | "join_vars": {
2296 | "active": 1,
2297 | "flagValue": -1
2298 | },
2299 | "keep_fargs": {
2300 | "active": 0,
2301 | "flagValue": -1
2302 | },
2303 | "keep_fnames": {
2304 | "active": 0,
2305 | "flagValue": -1
2306 | },
2307 | "loops": {
2308 | "active": 1,
2309 | "flagValue": -1
2310 | },
2311 | "mangle": {
2312 | "active": 1,
2313 | "flagValue": -1
2314 | },
2315 | "max-line-len": {
2316 | "active": 1,
2317 | "flagValue": 32000
2318 | },
2319 | "negate_iife": {
2320 | "active": 1,
2321 | "flagValue": -1
2322 | },
2323 | "properties": {
2324 | "active": 1,
2325 | "flagValue": -1
2326 | },
2327 | "pure_getters": {
2328 | "active": 0,
2329 | "flagValue": -1
2330 | },
2331 | "quote-keys": {
2332 | "active": 0,
2333 | "flagValue": -1
2334 | },
2335 | "screw-ie8": {
2336 | "active": 1,
2337 | "flagValue": -1
2338 | },
2339 | "semicolons": {
2340 | "active": 1,
2341 | "flagValue": -1
2342 | },
2343 | "sequences": {
2344 | "active": 1,
2345 | "flagValue": -1
2346 | },
2347 | "sort": {
2348 | "active": 0,
2349 | "flagValue": -1
2350 | },
2351 | "space-colon": {
2352 | "active": 1,
2353 | "flagValue": -1
2354 | },
2355 | "support-ie8": {
2356 | "active": 0,
2357 | "flagValue": -1
2358 | },
2359 | "toplevel": {
2360 | "active": 0,
2361 | "flagValue": -1
2362 | },
2363 | "unsafe": {
2364 | "active": 0,
2365 | "flagValue": -1
2366 | },
2367 | "unused": {
2368 | "active": 0,
2369 | "flagValue": -1
2370 | },
2371 | "warnings": {
2372 | "active": 0,
2373 | "flagValue": -1
2374 | },
2375 | "width": {
2376 | "active": 1,
2377 | "flagValue": 80
2378 | }
2379 | },
2380 | "uglifyReservedNamesString": "$",
2381 | "websiteRelativeRoot": ""
2382 | },
2383 | "settingsFileVersion": "3"
2384 | }
--------------------------------------------------------------------------------
/part-2/adapter-min.js:
--------------------------------------------------------------------------------
1 | !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.adapter=e()}}(function(){var e,t,r;return function e(t,r,n){function i(o,s){if(!r[o]){if(!t[o]){var c="function"==typeof require&&require;if(!s&&c)return c(o,!0);if(a)return a(o,!0);var d=new Error("Cannot find module '"+o+"'");throw d.code="MODULE_NOT_FOUND",d}var p=r[o]={exports:{}};t[o][0].call(p.exports,function(e){var r=t[o][1][e];return i(r||e)},p,p.exports,e,t,r,n)}return r[o].exports}for(var a="function"==typeof require&&require,o=0;o=14393&&-1===e.indexOf("?transport=udp"):(r=!0,!0)}),delete e.url,e.urls=i?n[0]:n,!!n.length}})}function a(e,t){var r={codecs:[],headerExtensions:[],fecMechanisms:[]},n=function(e,t){e=parseInt(e,10);for(var r=0;r0;o--)this._iceGatherers.push(new e.RTCIceGatherer({iceServers:r.iceServers,gatherPolicy:r.iceTransportPolicy}));else r.iceCandidatePoolSize=0;this._config=r,this.transceivers=[],this._sdpSessionId=d.generateSessionId(),this._sdpSessionVersion=0,this._dtlsRole=void 0,this._isClosed=!1};f.prototype.onicecandidate=null,f.prototype.onaddstream=null,f.prototype.ontrack=null,f.prototype.onremovestream=null,f.prototype.onsignalingstatechange=null,f.prototype.oniceconnectionstatechange=null,f.prototype.onconnectionstatechange=null,f.prototype.onicegatheringstatechange=null,f.prototype.onnegotiationneeded=null,f.prototype.ondatachannel=null,f.prototype._dispatchEvent=function(e,t){this._isClosed||(this.dispatchEvent(t),"function"==typeof this["on"+e]&&this["on"+e](t))},f.prototype._emitGatheringStateChange=function(){var e=new Event("icegatheringstatechange");this._dispatchEvent("icegatheringstatechange",e)},f.prototype.getConfiguration=function(){return this._config},f.prototype.getLocalStreams=function(){return this.localStreams},f.prototype.getRemoteStreams=function(){return this.remoteStreams},f.prototype._createTransceiver=function(e,t){var r=this.transceivers.length>0,n={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:e,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,associatedRemoteMediaStreams:[],wantReceive:!0};if(this.usingBundle&&r)n.iceTransport=this.transceivers[0].iceTransport,n.dtlsTransport=this.transceivers[0].dtlsTransport;else{var i=this._createIceAndDtlsTransports();n.iceTransport=i.iceTransport,n.dtlsTransport=i.dtlsTransport}return t||this.transceivers.push(n),n},f.prototype.addTrack=function(t,r){if(this._isClosed)throw c("InvalidStateError","Attempted to call addTrack on a closed peerconnection.");if(this.transceivers.find(function(e){return e.track===t}))throw c("InvalidAccessError","Track already exists.");for(var n,i=0;i=15025)e.getTracks().forEach(function(t){r.addTrack(t,e)});else{var n=e.clone();e.getTracks().forEach(function(e,t){var r=n.getTracks()[t];e.addEventListener("enabled",function(e){r.enabled=e.enabled})}),n.getTracks().forEach(function(e){r.addTrack(e,n)})}},f.prototype.removeTrack=function(t){if(this._isClosed)throw c("InvalidStateError","Attempted to call removeTrack on a closed peerconnection.");if(!(t instanceof e.RTCRtpSender))throw new TypeError("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.");var r=this.transceivers.find(function(e){return e.rtpSender===t});if(!r)throw c("InvalidAccessError","Sender was not created by this connection.");var n=r.stream;r.rtpSender.stop(),r.rtpSender=null,r.track=null,r.stream=null,-1===this.transceivers.map(function(e){return e.stream}).indexOf(n)&&this.localStreams.indexOf(n)>-1&&this.localStreams.splice(this.localStreams.indexOf(n),1),this._maybeFireNegotiationNeeded()},f.prototype.removeStream=function(e){var t=this;e.getTracks().forEach(function(e){var r=t.getSenders().find(function(t){return t.track===e});r&&t.removeTrack(r)})},f.prototype.getSenders=function(){return this.transceivers.filter(function(e){return!!e.rtpSender}).map(function(e){return e.rtpSender})},f.prototype.getReceivers=function(){return this.transceivers.filter(function(e){return!!e.rtpReceiver}).map(function(e){return e.rtpReceiver})},f.prototype._createIceGatherer=function(t,r){var n=this;if(r&&t>0)return this.transceivers[0].iceGatherer;if(this._iceGatherers.length)return this._iceGatherers.shift();var i=new e.RTCIceGatherer({iceServers:this._config.iceServers,gatherPolicy:this._config.iceTransportPolicy});return Object.defineProperty(i,"state",{value:"new",writable:!0}),this.transceivers[t].bufferedCandidateEvents=[],this.transceivers[t].bufferCandidates=function(e){var r=!e.candidate||0===Object.keys(e.candidate).length;i.state=r?"completed":"gathering",null!==n.transceivers[t].bufferedCandidateEvents&&n.transceivers[t].bufferedCandidateEvents.push(e)},i.addEventListener("localcandidate",this.transceivers[t].bufferCandidates),i},f.prototype._gather=function(t,r){var n=this,i=this.transceivers[r].iceGatherer;if(!i.onlocalcandidate){var a=this.transceivers[r].bufferedCandidateEvents;this.transceivers[r].bufferedCandidateEvents=null,i.removeEventListener("localcandidate",this.transceivers[r].bufferCandidates),i.onlocalcandidate=function(e){if(!(n.usingBundle&&r>0)){var a=new Event("icecandidate");a.candidate={sdpMid:t,sdpMLineIndex:r};var o=e.candidate,s=!o||0===Object.keys(o).length;if(s)"new"!==i.state&&"gathering"!==i.state||(i.state="completed");else{"new"===i.state&&(i.state="gathering"),o.component=1,o.ufrag=i.getLocalParameters().usernameFragment;var c=d.writeCandidate(o);a.candidate=Object.assign(a.candidate,d.parseCandidate(c)),a.candidate.candidate=c,a.candidate.toJSON=function(){return{candidate:a.candidate.candidate,sdpMid:a.candidate.sdpMid,sdpMLineIndex:a.candidate.sdpMLineIndex,usernameFragment:a.candidate.usernameFragment}}}var p=d.getMediaSections(n.localDescription.sdp);p[a.candidate.sdpMLineIndex]+=s?"a=end-of-candidates\r\n":"a="+a.candidate.candidate+"\r\n",n.localDescription.sdp=d.getDescription(n.localDescription.sdp)+p.join("");var u=n.transceivers.every(function(e){return e.iceGatherer&&"completed"===e.iceGatherer.state});"gathering"!==n.iceGatheringState&&(n.iceGatheringState="gathering",n._emitGatheringStateChange()),s||n._dispatchEvent("icecandidate",a),u&&(n._dispatchEvent("icecandidate",new Event("icecandidate")),n.iceGatheringState="complete",n._emitGatheringStateChange())}},e.setTimeout(function(){a.forEach(function(e){i.onlocalcandidate(e)})},0)}},f.prototype._createIceAndDtlsTransports=function(){var t=this,r=new e.RTCIceTransport(null);r.onicestatechange=function(){t._updateIceConnectionState(),t._updateConnectionState()};var n=new e.RTCDtlsTransport(r);return n.ondtlsstatechange=function(){t._updateConnectionState()},n.onerror=function(){Object.defineProperty(n,"state",{value:"failed",writable:!0}),t._updateConnectionState()},{iceTransport:r,dtlsTransport:n}},f.prototype._disposeIceAndDtlsTransports=function(e){var t=this.transceivers[e].iceGatherer;t&&(delete t.onlocalcandidate,delete this.transceivers[e].iceGatherer);var r=this.transceivers[e].iceTransport;r&&(delete r.onicestatechange,delete this.transceivers[e].iceTransport);var n=this.transceivers[e].dtlsTransport;n&&(delete n.ondtlsstatechange,delete n.onerror,delete this.transceivers[e].dtlsTransport)},f.prototype._transceive=function(e,r,n){var i=a(e.localCapabilities,e.remoteCapabilities);r&&e.rtpSender&&(i.encodings=e.sendEncodingParameters,i.rtcp={cname:d.localCName,compound:e.rtcpParameters.compound},e.recvEncodingParameters.length&&(i.rtcp.ssrc=e.recvEncodingParameters[0].ssrc),e.rtpSender.send(i)),n&&e.rtpReceiver&&i.codecs.length>0&&("video"===e.kind&&e.recvEncodingParameters&&t<15019&&e.recvEncodingParameters.forEach(function(e){delete e.rtx}),e.recvEncodingParameters.length?i.encodings=e.recvEncodingParameters:i.encodings=[{}],i.rtcp={compound:e.rtcpParameters.compound},e.rtcpParameters.cname&&(i.rtcp.cname=e.rtcpParameters.cname),e.sendEncodingParameters.length&&(i.rtcp.ssrc=e.sendEncodingParameters[0].ssrc),e.rtpReceiver.receive(i))},f.prototype.setLocalDescription=function(e){var t=this;if(-1===["offer","answer"].indexOf(e.type))return Promise.reject(c("TypeError",'Unsupported type "'+e.type+'"'));if(!o("setLocalDescription",e.type,t.signalingState)||t._isClosed)return Promise.reject(c("InvalidStateError","Can not set local "+e.type+" in state "+t.signalingState));var r,n;if("offer"===e.type)r=d.splitSections(e.sdp),n=r.shift(),r.forEach(function(e,r){var n=d.parseRtpParameters(e);t.transceivers[r].localCapabilities=n}),t.transceivers.forEach(function(e,r){t._gather(e.mid,r)});else if("answer"===e.type){r=d.splitSections(t.remoteDescription.sdp),n=r.shift();var i=d.matchPrefix(n,"a=ice-lite").length>0;r.forEach(function(e,r){var o=t.transceivers[r],s=o.iceGatherer,c=o.iceTransport,p=o.dtlsTransport,u=o.localCapabilities,f=o.remoteCapabilities;if(!(d.isRejected(e)&&0===d.matchPrefix(e,"a=bundle-only").length||o.rejected)){var l=d.getIceParameters(e,n),m=d.getDtlsParameters(e,n);i&&(m.role="server"),t.usingBundle&&0!==r||(t._gather(o.mid,r),"new"===c.state&&c.start(s,l,i?"controlling":"controlled"),"new"===p.state&&p.start(m));var v=a(u,f);t._transceive(o,v.codecs.length>0,!1)}})}return t.localDescription={type:e.type,sdp:e.sdp},"offer"===e.type?t._updateSignalingState("have-local-offer"):t._updateSignalingState("stable"),Promise.resolve()},f.prototype.setRemoteDescription=function(n){var i=this;if(-1===["offer","answer"].indexOf(n.type))return Promise.reject(c("TypeError",'Unsupported type "'+n.type+'"'));if(!o("setRemoteDescription",n.type,i.signalingState)||i._isClosed)return Promise.reject(c("InvalidStateError","Can not set remote "+n.type+" in state "+i.signalingState));var a={};i.remoteStreams.forEach(function(e){a[e.id]=e});var f=[],l=d.splitSections(n.sdp),m=l.shift(),v=d.matchPrefix(m,"a=ice-lite").length>0,h=d.matchPrefix(m,"a=group:BUNDLE ").length>0;i.usingBundle=h;var g=d.matchPrefix(m,"a=ice-options:")[0];return i.canTrickleIceCandidates=!!g&&g.substr(14).split(" ").indexOf("trickle")>=0,l.forEach(function(o,c){var u=d.splitLines(o),l=d.getKind(o),g=d.isRejected(o)&&0===d.matchPrefix(o,"a=bundle-only").length,y=u[0].substr(2).split(" ")[2],C=d.getDirection(o,m),T=d.parseMsid(o),S=d.getMid(o)||d.generateIdentifier();if("application"===l&&"DTLS/SCTP"===y||g)return void(i.transceivers[c]={mid:S,kind:l,rejected:!0});!g&&i.transceivers[c]&&i.transceivers[c].rejected&&(i.transceivers[c]=i._createTransceiver(l,!0));var R,P,b,E,k,w,_,x,O,M=d.parseRtpParameters(o),D,L;g||(D=d.getIceParameters(o,m),L=d.getDtlsParameters(o,m),L.role="client"),_=d.parseRtpEncodingParameters(o);var I=d.parseRtcpParameters(o),j=d.matchPrefix(o,"a=end-of-candidates",m).length>0,N=d.matchPrefix(o,"a=candidate:").map(function(e){return d.parseCandidate(e)}).filter(function(e){return 1===e.component});if(("offer"===n.type||"answer"===n.type)&&!g&&h&&c>0&&i.transceivers[c]&&(i._disposeIceAndDtlsTransports(c),i.transceivers[c].iceGatherer=i.transceivers[0].iceGatherer,i.transceivers[c].iceTransport=i.transceivers[0].iceTransport,i.transceivers[c].dtlsTransport=i.transceivers[0].dtlsTransport,i.transceivers[c].rtpSender&&i.transceivers[c].rtpSender.setTransport(i.transceivers[0].dtlsTransport),i.transceivers[c].rtpReceiver&&i.transceivers[c].rtpReceiver.setTransport(i.transceivers[0].dtlsTransport)),"offer"!==n.type||g)"answer"!==n.type||g||(R=i.transceivers[c],P=R.iceGatherer,b=R.iceTransport,E=R.dtlsTransport,k=R.rtpReceiver,w=R.sendEncodingParameters,x=R.localCapabilities,i.transceivers[c].recvEncodingParameters=_,i.transceivers[c].remoteCapabilities=M,i.transceivers[c].rtcpParameters=I,N.length&&"new"===b.state&&(!v&&!j||h&&0!==c?N.forEach(function(e){s(R.iceTransport,e)}):b.setRemoteCandidates(N)),h&&0!==c||("new"===b.state&&b.start(P,D,"controlling"),"new"===E.state&&E.start(L)),i._transceive(R,"sendrecv"===C||"recvonly"===C,"sendrecv"===C||"sendonly"===C),!k||"sendrecv"!==C&&"sendonly"!==C?delete R.rtpReceiver:(O=k.track,T?(a[T.stream]||(a[T.stream]=new e.MediaStream),r(O,a[T.stream]),f.push([O,k,a[T.stream]])):(a.default||(a.default=new e.MediaStream),r(O,a.default),f.push([O,k,a.default]))));else{R=i.transceivers[c]||i._createTransceiver(l),R.mid=S,R.iceGatherer||(R.iceGatherer=i._createIceGatherer(c,h)),N.length&&"new"===R.iceTransport.state&&(!j||h&&0!==c?N.forEach(function(e){s(R.iceTransport,e)}):R.iceTransport.setRemoteCandidates(N)),x=e.RTCRtpReceiver.getCapabilities(l),t<15019&&(x.codecs=x.codecs.filter(function(e){return"rtx"!==e.name})),w=R.sendEncodingParameters||[{ssrc:1001*(2*c+2)}];var A=!1;if("sendrecv"===C||"sendonly"===C){if(A=!R.rtpReceiver,k=R.rtpReceiver||new e.RTCRtpReceiver(R.dtlsTransport,l),A){var U;O=k.track,T&&"-"===T.stream||(T?(a[T.stream]||(a[T.stream]=new e.MediaStream,Object.defineProperty(a[T.stream],"id",{get:function(){return T.stream}})),Object.defineProperty(O,"id",{get:function(){return T.track}}),U=a[T.stream]):(a.default||(a.default=new e.MediaStream),U=a.default)),U&&(r(O,U),R.associatedRemoteMediaStreams.push(U)),f.push([O,k,U])}}else R.rtpReceiver&&R.rtpReceiver.track&&(R.associatedRemoteMediaStreams.forEach(function(e){var t=e.getTracks().find(function(e){return e.id===R.rtpReceiver.track.id});t&&p(t,e)}),R.associatedRemoteMediaStreams=[]);R.localCapabilities=x,R.remoteCapabilities=M,R.rtpReceiver=k,R.rtcpParameters=I,R.sendEncodingParameters=w,R.recvEncodingParameters=_,i._transceive(i.transceivers[c],!1,A)}}),void 0===i._dtlsRole&&(i._dtlsRole="offer"===n.type?"active":"passive"),i.remoteDescription={type:n.type,sdp:n.sdp},"offer"===n.type?i._updateSignalingState("have-remote-offer"):i._updateSignalingState("stable"),Object.keys(a).forEach(function(t){var r=a[t];if(r.getTracks().length){if(-1===i.remoteStreams.indexOf(r)){i.remoteStreams.push(r);var n=new Event("addstream");n.stream=r,e.setTimeout(function(){i._dispatchEvent("addstream",n)})}f.forEach(function(e){var t=e[0],n=e[1];r.id===e[2].id&&u(i,t,n,[r])})}}),f.forEach(function(e){e[2]||u(i,e[0],e[1],[])}),e.setTimeout(function(){i&&i.transceivers&&i.transceivers.forEach(function(e){e.iceTransport&&"new"===e.iceTransport.state&&e.iceTransport.getRemoteCandidates().length>0&&(console.warn("Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification"),e.iceTransport.addRemoteCandidate({}))})},4e3),Promise.resolve()},f.prototype.close=function(){this.transceivers.forEach(function(e){e.iceTransport&&e.iceTransport.stop(),e.dtlsTransport&&e.dtlsTransport.stop(),e.rtpSender&&e.rtpSender.stop(),e.rtpReceiver&&e.rtpReceiver.stop()}),this._isClosed=!0,this._updateSignalingState("closed")},f.prototype._updateSignalingState=function(e){this.signalingState=e;var t=new Event("signalingstatechange");this._dispatchEvent("signalingstatechange",t)},f.prototype._maybeFireNegotiationNeeded=function(){var t=this;"stable"===this.signalingState&&!0!==this.needNegotiation&&(this.needNegotiation=!0,e.setTimeout(function(){if(t.needNegotiation){t.needNegotiation=!1;var e=new Event("negotiationneeded");t._dispatchEvent("negotiationneeded",e)}},0))},f.prototype._updateIceConnectionState=function(){var e,t={new:0,closed:0,checking:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(e){t[e.iceTransport.state]++}),e="new",t.failed>0?e="failed":t.checking>0?e="checking":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0?e="connected":t.completed>0&&(e="completed"),e!==this.iceConnectionState){this.iceConnectionState=e;var r=new Event("iceconnectionstatechange");this._dispatchEvent("iceconnectionstatechange",r)}},f.prototype._updateConnectionState=function(){var e,t={new:0,closed:0,connecting:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(e){t[e.iceTransport.state]++,t[e.dtlsTransport.state]++}),t.connected+=t.completed,e="new",t.failed>0?e="failed":t.connecting>0?e="connecting":t.disconnected>0?e="disconnected":t.new>0?e="new":t.connected>0&&(e="connected"),e!==this.connectionState){this.connectionState=e;var r=new Event("connectionstatechange");this._dispatchEvent("connectionstatechange",r)}},f.prototype.createOffer=function(){var r=this;if(r._isClosed)return Promise.reject(c("InvalidStateError","Can not call createOffer after close"));var i=r.transceivers.filter(function(e){return"audio"===e.kind}).length,a=r.transceivers.filter(function(e){return"video"===e.kind}).length,o=arguments[0];if(o){if(o.mandatory||o.optional)throw new TypeError("Legacy mandatory/optional constraints not supported.");void 0!==o.offerToReceiveAudio&&(i=!0===o.offerToReceiveAudio?1:!1===o.offerToReceiveAudio?0:o.offerToReceiveAudio),void 0!==o.offerToReceiveVideo&&(a=!0===o.offerToReceiveVideo?1:!1===o.offerToReceiveVideo?0:o.offerToReceiveVideo)}for(r.transceivers.forEach(function(e){"audio"===e.kind?--i<0&&(e.wantReceive=!1):"video"===e.kind&&--a<0&&(e.wantReceive=!1)});i>0||a>0;)i>0&&(r._createTransceiver("audio"),i--),a>0&&(r._createTransceiver("video"),a--);var s=d.writeSessionBoilerplate(r._sdpSessionId,r._sdpSessionVersion++);r.transceivers.forEach(function(n,i){var a=n.track,o=n.kind,s=n.mid||d.generateIdentifier();n.mid=s,n.iceGatherer||(n.iceGatherer=r._createIceGatherer(i,r.usingBundle));var c=e.RTCRtpSender.getCapabilities(o);t<15019&&(c.codecs=c.codecs.filter(function(e){return"rtx"!==e.name})),c.codecs.forEach(function(e){"H264"===e.name&&void 0===e.parameters["level-asymmetry-allowed"]&&(e.parameters["level-asymmetry-allowed"]="1"),n.remoteCapabilities&&n.remoteCapabilities.codecs&&n.remoteCapabilities.codecs.forEach(function(t){e.name.toLowerCase()===t.name.toLowerCase()&&e.clockRate===t.clockRate&&(e.preferredPayloadType=t.payloadType)})}),c.headerExtensions.forEach(function(e){(n.remoteCapabilities&&n.remoteCapabilities.headerExtensions||[]).forEach(function(t){e.uri===t.uri&&(e.id=t.id)})});var p=n.sendEncodingParameters||[{ssrc:1001*(2*i+1)}];a&&t>=15019&&"video"===o&&!p[0].rtx&&(p[0].rtx={ssrc:p[0].ssrc+1}),n.wantReceive&&(n.rtpReceiver=new e.RTCRtpReceiver(n.dtlsTransport,o)),n.localCapabilities=c,n.sendEncodingParameters=p}),"max-compat"!==r._config.bundlePolicy&&(s+="a=group:BUNDLE "+r.transceivers.map(function(e){return e.mid}).join(" ")+"\r\n"),s+="a=ice-options:trickle\r\n",r.transceivers.forEach(function(e,t){s+=n(e,e.localCapabilities,"offer",e.stream,r._dtlsRole),s+="a=rtcp-rsize\r\n",!e.iceGatherer||"new"===r.iceGatheringState||0!==t&&r.usingBundle||(e.iceGatherer.getLocalCandidates().forEach(function(e){e.component=1,s+="a="+d.writeCandidate(e)+"\r\n"}),"completed"===e.iceGatherer.state&&(s+="a=end-of-candidates\r\n"))});var p=new e.RTCSessionDescription({type:"offer",sdp:s});return Promise.resolve(p)},f.prototype.createAnswer=function(){var r=this;if(r._isClosed)return Promise.reject(c("InvalidStateError","Can not call createAnswer after close"));if("have-remote-offer"!==r.signalingState&&"have-local-pranswer"!==r.signalingState)return Promise.reject(c("InvalidStateError","Can not call createAnswer in signalingState "+r.signalingState));var i=d.writeSessionBoilerplate(r._sdpSessionId,r._sdpSessionVersion++);r.usingBundle&&(i+="a=group:BUNDLE "+r.transceivers.map(function(e){return e.mid}).join(" ")+"\r\n");var o=d.getMediaSections(r.remoteDescription.sdp).length;r.transceivers.forEach(function(e,s){if(!(s+1>o)){if(e.rejected)return"application"===e.kind?i+="m=application 0 DTLS/SCTP 5000\r\n":"audio"===e.kind?i+="m=audio 0 UDP/TLS/RTP/SAVPF 0\r\na=rtpmap:0 PCMU/8000\r\n":"video"===e.kind&&(i+="m=video 0 UDP/TLS/RTP/SAVPF 120\r\na=rtpmap:120 VP8/90000\r\n"),void(i+="c=IN IP4 0.0.0.0\r\na=inactive\r\na=mid:"+e.mid+"\r\n");if(e.stream){var c;"audio"===e.kind?c=e.stream.getAudioTracks()[0]:"video"===e.kind&&(c=e.stream.getVideoTracks()[0]),c&&t>=15019&&"video"===e.kind&&!e.sendEncodingParameters[0].rtx&&(e.sendEncodingParameters[0].rtx={ssrc:e.sendEncodingParameters[0].ssrc+1})}var d=a(e.localCapabilities,e.remoteCapabilities);!d.codecs.filter(function(e){return"rtx"===e.name.toLowerCase()}).length&&e.sendEncodingParameters[0].rtx&&delete e.sendEncodingParameters[0].rtx,i+=n(e,d,"answer",e.stream,r._dtlsRole),e.rtcpParameters&&e.rtcpParameters.reducedSize&&(i+="a=rtcp-rsize\r\n")}});var s=new e.RTCSessionDescription({type:"answer",sdp:i});return Promise.resolve(s)},f.prototype.addIceCandidate=function(e){var t=this,r;return e&&void 0===e.sdpMLineIndex&&!e.sdpMid?Promise.reject(new TypeError("sdpMLineIndex or sdpMid required")):new Promise(function(n,i){if(!t.remoteDescription)return i(c("InvalidStateError","Can not add ICE candidate without a remote description"));if(e&&""!==e.candidate){var a=e.sdpMLineIndex;if(e.sdpMid)for(var o=0;o0?d.parseCandidate(e.candidate):{};if("tcp"===u.protocol&&(0===u.port||9===u.port))return n();if(u.component&&1!==u.component)return n();if((0===a||a>0&&p.iceTransport!==t.transceivers[0].iceTransport)&&!s(p.iceTransport,u))return i(c("OperationError","Can not add ICE candidate"));var f=e.candidate.trim();0===f.indexOf("a=")&&(f=f.substr(2)),r=d.getMediaSections(t.remoteDescription.sdp),r[a]+="a="+(u.type?f:"end-of-candidates")+"\r\n",t.remoteDescription.sdp=d.getDescription(t.remoteDescription.sdp)+r.join("")}else for(var l=0;l0?"m="+e:e).trim()+"\r\n"})},n.getDescription=function(e){var t=n.splitSections(e);return t&&t[0]},n.getMediaSections=function(e){var t=n.splitSections(e);return t.shift(),t},n.matchPrefix=function(e,t){return n.splitLines(e).filter(function(e){return 0===e.indexOf(t)})},n.parseCandidate=function(e){var t;t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" ");for(var r={foundation:t[0],component:parseInt(t[1],10),protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],port:parseInt(t[5],10),type:t[7]},n=8;n0?t[0].split("/")[1]:"sendrecv",uri:t[1]}},n.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+"\r\n"},n.parseFmtp=function(e){for(var t={},r,n=e.substr(e.indexOf(" ")+1).split(";"),i=0;i-1?(r.attribute=e.substr(t+1,n-t-1),r.value=e.substr(n+1)):r.attribute=e.substr(t+1),r},n.getMid=function(e){var t=n.matchPrefix(e,"a=mid:")[0];if(t)return t.substr(6)},n.parseFingerprint=function(e){var t=e.substr(14).split(" ");return{algorithm:t[0].toLowerCase(),
2 | value:t[1]}},n.getDtlsParameters=function(e,t){return{role:"auto",fingerprints:n.matchPrefix(e+t,"a=fingerprint:").map(n.parseFingerprint)}},n.writeDtlsParameters=function(e,t){var r="a=setup:"+t+"\r\n";return e.fingerprints.forEach(function(e){r+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"}),r},n.getIceParameters=function(e,t){var r=n.splitLines(e);return r=r.concat(n.splitLines(t)),{usernameFragment:r.filter(function(e){return 0===e.indexOf("a=ice-ufrag:")})[0].substr(12),password:r.filter(function(e){return 0===e.indexOf("a=ice-pwd:")})[0].substr(10)}},n.writeIceParameters=function(e){return"a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n"},n.parseRtpParameters=function(e){for(var t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},r=n.splitLines(e),i=r[0].split(" "),a=3;a0?"9":"0",r+=" UDP/TLS/RTP/SAVPF ",r+=t.codecs.map(function(e){return void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType}).join(" ")+"\r\n",r+="c=IN IP4 0.0.0.0\r\n",r+="a=rtcp:9 IN IP4 0.0.0.0\r\n",t.codecs.forEach(function(e){r+=n.writeRtpMap(e),r+=n.writeFmtp(e),r+=n.writeRtcpFb(e)});var i=0;return t.codecs.forEach(function(e){e.maxptime>i&&(i=e.maxptime)}),i>0&&(r+="a=maxptime:"+i+"\r\n"),r+="a=rtcp-mux\r\n",t.headerExtensions.forEach(function(e){r+=n.writeExtmap(e)}),r},n.parseRtpEncodingParameters=function(e){var t=[],r=n.parseRtpParameters(e),i=-1!==r.fecMechanisms.indexOf("RED"),a=-1!==r.fecMechanisms.indexOf("ULPFEC"),o=n.matchPrefix(e,"a=ssrc:").map(function(e){return n.parseSsrcMedia(e)}).filter(function(e){return"cname"===e.attribute}),s=o.length>0&&o[0].ssrc,c,d=n.matchPrefix(e,"a=ssrc-group:FID").map(function(e){var t=e.split(" ");return t.shift(),t.map(function(e){return parseInt(e,10)})});d.length>0&&d[0].length>1&&d[0][0]===s&&(c=d[0][1]),r.codecs.forEach(function(e){if("RTX"===e.name.toUpperCase()&&e.parameters.apt){var r={ssrc:s,codecPayloadType:parseInt(e.parameters.apt,10),rtx:{ssrc:c}};t.push(r),i&&(r=JSON.parse(JSON.stringify(r)),r.fec={ssrc:c,mechanism:a?"red+ulpfec":"red"},t.push(r))}}),0===t.length&&s&&t.push({ssrc:s});var p=n.matchPrefix(e,"b=");return p.length&&(p=0===p[0].indexOf("b=TIAS:")?parseInt(p[0].substr(7),10):0===p[0].indexOf("b=AS:")?1e3*parseInt(p[0].substr(5),10)*.95-16e3:void 0,t.forEach(function(e){e.maxBitrate=p})),t},n.parseRtcpParameters=function(e){var t={},r,i=n.matchPrefix(e,"a=ssrc:").map(function(e){return n.parseSsrcMedia(e)}).filter(function(e){return"cname"===e.attribute})[0];i&&(t.cname=i.value,t.ssrc=i.ssrc);var a=n.matchPrefix(e,"a=rtcp-rsize");t.reducedSize=a.length>0,t.compound=0===a.length;var o=n.matchPrefix(e,"a=rtcp-mux");return t.mux=o.length>0,t},n.parseMsid=function(e){var t,r=n.matchPrefix(e,"a=msid:");if(1===r.length)return t=r[0].substr(7).split(" "),{stream:t[0],track:t[1]};var i=n.matchPrefix(e,"a=ssrc:").map(function(e){return n.parseSsrcMedia(e)}).filter(function(e){return"msid"===e.attribute});return i.length>0?(t=i[0].value.split(" "),{stream:t[0],track:t[1]}):void 0},n.generateSessionId=function(){return Math.random().toString().substr(2,21)},n.writeSessionBoilerplate=function(e,t){var r,i=void 0!==t?t:2;return"v=0\r\no=thisisadapterortc "+(r=e||n.generateSessionId())+" "+i+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},n.writeMediaSection=function(e,t,r,i){var a=n.writeRtpDescription(e.kind,t);if(a+=n.writeIceParameters(e.iceGatherer.getLocalParameters()),a+=n.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),"offer"===r?"actpass":"active"),a+="a=mid:"+e.mid+"\r\n",e.direction?a+="a="+e.direction+"\r\n":e.rtpSender&&e.rtpReceiver?a+="a=sendrecv\r\n":e.rtpSender?a+="a=sendonly\r\n":e.rtpReceiver?a+="a=recvonly\r\n":a+="a=inactive\r\n",e.rtpSender){var o="msid:"+i.id+" "+e.rtpSender.track.id+"\r\n";a+="a="+o,a+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" "+o,e.sendEncodingParameters[0].rtx&&(a+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" "+o,a+="a=ssrc-group:FID "+e.sendEncodingParameters[0].ssrc+" "+e.sendEncodingParameters[0].rtx.ssrc+"\r\n")}return a+="a=ssrc:"+e.sendEncodingParameters[0].ssrc+" cname:"+n.localCName+"\r\n",e.rtpSender&&e.sendEncodingParameters[0].rtx&&(a+="a=ssrc:"+e.sendEncodingParameters[0].rtx.ssrc+" cname:"+n.localCName+"\r\n"),a},n.getDirection=function(e,t){for(var r=n.splitLines(e),i=0;i=65)return this.shimAddTrackRemoveTrackWithNative(e);var a=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){var e=this,t=a.apply(this);return e._reverseStreams=e._reverseStreams||{},t.map(function(t){return e._reverseStreams[t.id]})};var o=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){var r=this;if(r._streams=r._streams||{},r._reverseStreams=r._reverseStreams||{},t.getTracks().forEach(function(e){if(r.getSenders().find(function(t){return t.track===e}))throw new DOMException("Track already exists.","InvalidAccessError")}),!r._reverseStreams[t.id]){var n=new e.MediaStream(t.getTracks());r._streams[t.id]=n,r._reverseStreams[n.id]=t,t=n}o.apply(r,[t])};var s=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){var t=this;t._streams=t._streams||{},t._reverseStreams=t._reverseStreams||{},s.apply(t,[t._streams[e.id]||e]),delete t._reverseStreams[t._streams[e.id]?t._streams[e.id].id:e.id],delete t._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,r){var n=this;if("closed"===n.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");var i=[].slice.call(arguments,1);if(1!==i.length||!i[0].getTracks().find(function(e){return e===t}))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(n.getSenders().find(function(e){return e.track===t}))throw new DOMException("Track already exists.","InvalidAccessError");n._streams=n._streams||{},n._reverseStreams=n._reverseStreams||{};var a=n._streams[r.id];if(a)a.addTrack(t),Promise.resolve().then(function(){n.dispatchEvent(new Event("negotiationneeded"))});else{var o=new e.MediaStream([t]);n._streams[r.id]=o,n._reverseStreams[o.id]=r,n.addStream(o)}return n.getSenders().find(function(e){return e.track===t})},["createOffer","createAnswer"].forEach(function(r){var n=e.RTCPeerConnection.prototype[r];e.RTCPeerConnection.prototype[r]=function(){var e=this,r=arguments;return arguments.length&&"function"==typeof arguments[0]?n.apply(e,[function(n){var i=t(e,n);r[0].apply(null,[i])},function(e){r[1]&&r[1].apply(null,e)},arguments[2]]):n.apply(e,arguments).then(function(r){return t(e,r)})}});var c=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){var e=this;return arguments.length&&arguments[0].type?(arguments[0]=r(e,arguments[0]),c.apply(e,arguments)):c.apply(e,arguments)};var d=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get:function(){var e=this,r=d.get.apply(this);return""===r.type?r:t(e,r)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){var t=this;if("closed"===t.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(e._pc!==t)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");t._streams=t._streams||{};var r;Object.keys(t._streams).forEach(function(n){t._streams[n].getTracks().find(function(t){return e.track===t})&&(r=t._streams[n])}),r&&(1===r.getTracks().length?t.removeStream(t._reverseStreams[r.id]):r.removeTrack(e.track),t.dispatchEvent(new Event("negotiationneeded")))}},shimPeerConnection:function(e){var t=n.detectBrowser(e);if(!e.RTCPeerConnection&&e.webkitRTCPeerConnection)e.RTCPeerConnection=function(t,r){return i("PeerConnection"),t&&t.iceTransportPolicy&&(t.iceTransports=t.iceTransportPolicy),new e.webkitRTCPeerConnection(t,r)},e.RTCPeerConnection.prototype=e.webkitRTCPeerConnection.prototype,e.webkitRTCPeerConnection.generateCertificate&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:function(){return e.webkitRTCPeerConnection.generateCertificate}});else{var r=e.RTCPeerConnection;e.RTCPeerConnection=function(e,t){if(e&&e.iceServers){for(var i=[],a=0;a0&&"function"==typeof e)return a.apply(this,arguments);if(0===a.length&&(0===arguments.length||"function"!=typeof arguments[0]))return a.apply(this,[]);var o=function(e){var t={};return e.result().forEach(function(e){var r={id:e.id,timestamp:e.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[e.type]||e.type};e.names().forEach(function(t){r[t]=e.stat(t)}),t[r.id]=r}),t},s=function(e){return new Map(Object.keys(e).map(function(t){return[t,e[t]]}))};if(arguments.length>=2){var c=function(e){i[1](s(o(e)))};return a.apply(this,[c,arguments[0]])}return new Promise(function(e,t){a.apply(n,[function(t){e(s(o(t)))},t])}).then(t,r)},t.version<51&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){var r=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=function(){var e=arguments,t=this,n=new Promise(function(n,i){r.apply(t,[e[0],n,i])});return e.length<2?n:n.then(function(){e[1].apply(null,[])},function(t){e.length>=3&&e[2].apply(null,[t])})}}),t.version<52&&["createOffer","createAnswer"].forEach(function(t){var r=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=function(){var e=this;if(arguments.length<1||1===arguments.length&&"object"==typeof arguments[0]){var t=1===arguments.length?arguments[0]:void 0;return new Promise(function(n,i){r.apply(e,[n,i,t])})}return r.apply(this,arguments)}}),["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){var r=e.RTCPeerConnection.prototype[t];e.RTCPeerConnection.prototype[t]=function(){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),r.apply(this,arguments)}});var o=e.RTCPeerConnection.prototype.addIceCandidate;e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?o.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())}}}},{"../utils.js":13,"./getusermedia":6}],6:[function(e,t,r){"use strict";var n=e("../utils.js"),i=n.log;t.exports=function(e){var t=n.detectBrowser(e),r=e&&e.navigator,a=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;var t={};return Object.keys(e).forEach(function(r){if("require"!==r&&"advanced"!==r&&"mediaSource"!==r){var n="object"==typeof e[r]?e[r]:{ideal:e[r]};void 0!==n.exact&&"number"==typeof n.exact&&(n.min=n.max=n.exact);var i=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==n.ideal){t.optional=t.optional||[];var a={};"number"==typeof n.ideal?(a[i("min",r)]=n.ideal,t.optional.push(a),a={},a[i("max",r)]=n.ideal,t.optional.push(a)):(a[i("",r)]=n.ideal,t.optional.push(a))}void 0!==n.exact&&"number"!=typeof n.exact?(t.mandatory=t.mandatory||{},t.mandatory[i("",r)]=n.exact):["min","max"].forEach(function(e){void 0!==n[e]&&(t.mandatory=t.mandatory||{},t.mandatory[i(e,r)]=n[e])})}}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},o=function(e,n){if(t.version>=61)return n(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){var o=function(e,t,r){t in e&&!(r in e)&&(e[r]=e[t],delete e[t])};e=JSON.parse(JSON.stringify(e)),o(e.audio,"autoGainControl","googAutoGainControl"),o(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=a(e.audio)}if(e&&"object"==typeof e.video){var s=e.video.facingMode;s=s&&("object"==typeof s?s:{ideal:s});var c=t.version<66;if(s&&("user"===s.exact||"environment"===s.exact||"user"===s.ideal||"environment"===s.ideal)&&(!r.mediaDevices.getSupportedConstraints||!r.mediaDevices.getSupportedConstraints().facingMode||c)){delete e.video.facingMode;var d;if("environment"===s.exact||"environment"===s.ideal?d=["back","rear"]:"user"!==s.exact&&"user"!==s.ideal||(d=["front"]),d)return r.mediaDevices.enumerateDevices().then(function(t){t=t.filter(function(e){return"videoinput"===e.kind});var r=t.find(function(e){return d.some(function(t){return-1!==e.label.toLowerCase().indexOf(t)})});return!r&&t.length&&-1!==d.indexOf("back")&&(r=t[t.length-1]),r&&(e.video.deviceId=s.exact?{exact:r.deviceId}:{ideal:r.deviceId}),e.video=a(e.video),i("chrome: "+JSON.stringify(e)),n(e)})}e.video=a(e.video)}return i("chrome: "+JSON.stringify(e)),n(e)},s=function(e){return{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},c=function(e,t,n){o(e,function(e){r.webkitGetUserMedia(e,t,function(e){n&&n(s(e))})})};r.getUserMedia=c;var d=function(e){return new Promise(function(t,n){r.getUserMedia(e,t,n)})};if(r.mediaDevices||(r.mediaDevices={getUserMedia:d,enumerateDevices:function(){return new Promise(function(t){var r={audio:"audioinput",video:"videoinput"};return e.MediaStreamTrack.getSources(function(e){t(e.map(function(e){return{label:e.label,kind:r[e.kind],deviceId:e.id,groupId:""}}))})})},getSupportedConstraints:function(){return{deviceId:!0,echoCancellation:!0,facingMode:!0,frameRate:!0,height:!0,width:!0}}}),r.mediaDevices.getUserMedia){var p=r.mediaDevices.getUserMedia.bind(r.mediaDevices);r.mediaDevices.getUserMedia=function(e){return o(e,function(e){return p(e).then(function(t){if(e.audio&&!t.getAudioTracks().length||e.video&&!t.getVideoTracks().length)throw t.getTracks().forEach(function(e){e.stop()}),new DOMException("","NotFoundError");return t},function(e){return Promise.reject(s(e))})})}}else r.mediaDevices.getUserMedia=function(e){return d(e)};void 0===r.mediaDevices.addEventListener&&(r.mediaDevices.addEventListener=function(){i("Dummy mediaDevices.addEventListener called.")}),void 0===r.mediaDevices.removeEventListener&&(r.mediaDevices.removeEventListener=function(){i("Dummy mediaDevices.removeEventListener called.")})}},{"../utils.js":13}],7:[function(e,t,r){"use strict";var n=e("sdp"),i=e("./utils");t.exports={shimRTCIceCandidate:function(e){if(e.RTCIceCandidate&&!(e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)){var t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&(e=JSON.parse(JSON.stringify(e)),e.candidate=e.candidate.substr(2)),e.candidate&&e.candidate.length){var r=new t(e),i=n.parseCandidate(e.candidate),a=Object.assign(r,i);return a.toJSON=function(){return{candidate:a.candidate,sdpMid:a.sdpMid,sdpMLineIndex:a.sdpMLineIndex,usernameFragment:a.usernameFragment}},a}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,i.wrapPeerConnectionEvent(e,"icecandidate",function(t){return t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t})}},shimCreateObjectURL:function(e){var t=e&&e.URL;if("object"==typeof e&&e.HTMLMediaElement&&"srcObject"in e.HTMLMediaElement.prototype&&t.createObjectURL&&t.revokeObjectURL){var r=t.createObjectURL.bind(t),n=t.revokeObjectURL.bind(t),a=new Map,o=0;t.createObjectURL=function(e){if("getTracks"in e){var t="polyblob:"+ ++o;return a.set(t,e),i.deprecated("URL.createObjectURL(stream)","elem.srcObject = stream"),t}return r(e)},t.revokeObjectURL=function(e){n(e),a.delete(e)};var s=Object.getOwnPropertyDescriptor(e.HTMLMediaElement.prototype,"src");Object.defineProperty(e.HTMLMediaElement.prototype,"src",{get:function(){return s.get.apply(this)},set:function(e){return this.srcObject=a.get(e)||null,s.set.apply(this,[e])}});var c=e.HTMLMediaElement.prototype.setAttribute;e.HTMLMediaElement.prototype.setAttribute=function(){return 2===arguments.length&&"src"===(""+arguments[0]).toLowerCase()&&(this.srcObject=a.get(arguments[1])||null),c.apply(this,arguments)}}},shimMaxMessageSize:function(e){if(!e.RTCSctpTransport&&e.RTCPeerConnection){var t=i.detectBrowser(e);"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get:function(){return void 0===this._sctp?null:this._sctp}});var r=function(e){var t=n.splitSections(e.sdp);return t.shift(),t.some(function(e){var t=n.parseMLine(e);return t&&"application"===t.kind&&-1!==t.protocol.indexOf("SCTP")})},a=function(e){var t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;var r=parseInt(t[1],10);return r!==r?-1:r},o=function(e){var r=65536;return"firefox"===t.browser&&(r=t.version<57?-1===e?16384:2147483637:57===t.version?65535:65536),r},s=function(e,r){var i=65536;"firefox"===t.browser&&57===t.version&&(i=65535);var a=n.matchPrefix(e.sdp,"a=max-message-size:");return a.length>0?i=parseInt(a[0].substr(19),10):"firefox"===t.browser&&-1!==r&&(i=2147483637),i},c=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){var e=this;if(e._sctp=null,r(arguments[0])){var t=a(arguments[0]),n=o(t),i=s(arguments[0],t),d;d=0===n&&0===i?Number.POSITIVE_INFINITY:0===n||0===i?Math.max(n,i):Math.min(n,i);var p={};Object.defineProperty(p,"maxMessageSize",{get:function(){return d}}),e._sctp=p}return c.apply(e,arguments)}}},shimSendThrowTypeError:function(e){if(e.RTCPeerConnection&&"createDataChannel"in e.RTCPeerConnection.prototype){var t=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){var e=this,r=t.apply(e,arguments),n=r.send;return r.send=function(){var t=this,r=arguments[0];if((r.length||r.size||r.byteLength)>e.sctp.maxMessageSize)throw new DOMException("Message too large (can send a maximum of "+e.sctp.maxMessageSize+" bytes)","TypeError");return n.apply(t,arguments)},r}}}}},{"./utils":13,sdp:2}],8:[function(e,t,r){"use strict";var n=e("../utils"),i=e("rtcpeerconnection-shim");t.exports={shimGetUserMedia:e("./getusermedia"),shimPeerConnection:function(e){var t=n.detectBrowser(e);if(e.RTCIceGatherer&&(e.RTCIceCandidate||(e.RTCIceCandidate=function(e){return e}),e.RTCSessionDescription||(e.RTCSessionDescription=function(e){return e}),t.version<15025)){var r=Object.getOwnPropertyDescriptor(e.MediaStreamTrack.prototype,"enabled");Object.defineProperty(e.MediaStreamTrack.prototype,"enabled",{set:function(e){r.set.call(this,e);var t=new Event("enabled");t.enabled=e,this.dispatchEvent(t)}})}!e.RTCRtpSender||"dtmf"in e.RTCRtpSender.prototype||Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get:function(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=new e.RTCDtmfSender(this):"video"===this.track.kind&&(this._dtmf=null)),this._dtmf}}),e.RTCDtmfSender&&!e.RTCDTMFSender&&(e.RTCDTMFSender=e.RTCDtmfSender),e.RTCPeerConnection=i(e,t.version)},shimReplaceTrack:function(e){!e.RTCRtpSender||"replaceTrack"in e.RTCRtpSender.prototype||(e.RTCRtpSender.prototype.replaceTrack=e.RTCRtpSender.prototype.setTrack)}}},{"../utils":13,"./getusermedia":9,"rtcpeerconnection-shim":1}],9:[function(e,t,r){"use strict";t.exports=function(e){var t=e&&e.navigator,r=function(e){return{name:{PermissionDeniedError:"NotAllowedError"}[e.name]||e.name,message:e.message,constraint:e.constraint,toString:function(){return this.name}}},n=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(e){return n(e).catch(function(e){return Promise.reject(r(e))})}}},{}],10:[function(e,t,r){"use strict";var n=e("../utils");t.exports={shimGetUserMedia:e("./getusermedia"),shimOnTrack:function(e){"object"!=typeof e||!e.RTCPeerConnection||"ontrack"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get:function(){return this._ontrack},set:function(e){this._ontrack&&(this.removeEventListener("track",this._ontrack),this.removeEventListener("addstream",this._ontrackpoly)),this.addEventListener("track",this._ontrack=e),this.addEventListener("addstream",this._ontrackpoly=function(e){e.stream.getTracks().forEach(function(t){var r=new Event("track");r.track=t,r.receiver={track:t},r.transceiver={receiver:r.receiver},r.streams=[e.stream],this.dispatchEvent(r)}.bind(this))}.bind(this))}}),"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get:function(){return{receiver:this.receiver}}})},shimSourceObject:function(e){"object"==typeof e&&(!e.HTMLMediaElement||"srcObject"in e.HTMLMediaElement.prototype||Object.defineProperty(e.HTMLMediaElement.prototype,"srcObject",{get:function(){return this.mozSrcObject},
3 | set:function(e){this.mozSrcObject=e}}))},shimPeerConnection:function(e){var t=n.detectBrowser(e);if("object"==typeof e&&(e.RTCPeerConnection||e.mozRTCPeerConnection)){e.RTCPeerConnection||(e.RTCPeerConnection=function(r,n){if(t.version<38&&r&&r.iceServers){for(var i=[],a=0;a55&&"autoGainControl"in r.mediaDevices.getSupportedConstraints())){var u=function(e,t,r){t in e&&!(r in e)&&(e[r]=e[t],delete e[t])},f=r.mediaDevices.getUserMedia.bind(r.mediaDevices);if(r.mediaDevices.getUserMedia=function(e){return"object"==typeof e&&"object"==typeof e.audio&&(e=JSON.parse(JSON.stringify(e)),u(e.audio,"autoGainControl","mozAutoGainControl"),u(e.audio,"noiseSuppression","mozNoiseSuppression")),f(e)},a&&a.prototype.getSettings){var l=a.prototype.getSettings;a.prototype.getSettings=function(){var e=l.apply(this,arguments);return u(e,"mozAutoGainControl","autoGainControl"),u(e,"mozNoiseSuppression","noiseSuppression"),e}}if(a&&a.prototype.applyConstraints){var m=a.prototype.applyConstraints;a.prototype.applyConstraints=function(e){return"audio"===this.kind&&"object"==typeof e&&(e=JSON.parse(JSON.stringify(e)),u(e,"autoGainControl","mozAutoGainControl"),u(e,"noiseSuppression","mozNoiseSuppression")),m.apply(this,[e])}}}r.getUserMedia=function(e,i,a){if(t.version<44)return s(e,i,a);n.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),r.mediaDevices.getUserMedia(e).then(i,a)}}},{"../utils":13}],12:[function(e,t,r){"use strict";var n=e("../utils");t.exports={shimLocalStreamsAPI:function(e){if("object"==typeof e&&e.RTCPeerConnection){if("getLocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),"getStreamById"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getStreamById=function(e){var t=null;return this._localStreams&&this._localStreams.forEach(function(r){r.id===e&&(t=r)}),this._remoteStreams&&this._remoteStreams.forEach(function(r){r.id===e&&(t=r)}),t}),!("addStream"in e.RTCPeerConnection.prototype)){var t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),-1===this._localStreams.indexOf(e)&&this._localStreams.push(e);var r=this;e.getTracks().forEach(function(n){t.call(r,n,e)})},e.RTCPeerConnection.prototype.addTrack=function(e,r){return r&&(this._localStreams?-1===this._localStreams.indexOf(r)&&this._localStreams.push(r):this._localStreams=[r]),t.call(this,e,r)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);var t=this._localStreams.indexOf(e);if(-1!==t){this._localStreams.splice(t,1);var r=this,n=e.getTracks();this.getSenders().forEach(function(e){-1!==n.indexOf(e.track)&&r.removeTrack(e)})}})}},shimRemoteStreamsAPI:function(e){"object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),"onaddstream"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get:function(){return this._onaddstream},set:function(e){var t=this;this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=function(e){e.streams.forEach(function(e){if(t._remoteStreams||(t._remoteStreams=[]),!(t._remoteStreams.indexOf(e)>=0)){t._remoteStreams.push(e);var r=new Event("addstream");r.stream=e,t.dispatchEvent(r)}})})}}))},shimCallbacksAPI:function(e){if("object"==typeof e&&e.RTCPeerConnection){var t=e.RTCPeerConnection.prototype,r=t.createOffer,n=t.createAnswer,i=t.setLocalDescription,a=t.setRemoteDescription,o=t.addIceCandidate;t.createOffer=function(e,t){var n=arguments.length>=2?arguments[2]:arguments[0],i=r.apply(this,[n]);return t?(i.then(e,t),Promise.resolve()):i},t.createAnswer=function(e,t){var r=arguments.length>=2?arguments[2]:arguments[0],i=n.apply(this,[r]);return t?(i.then(e,t),Promise.resolve()):i};var s=function(e,t,r){var n=i.apply(this,[e]);return r?(n.then(t,r),Promise.resolve()):n};t.setLocalDescription=s,s=function(e,t,r){var n=a.apply(this,[e]);return r?(n.then(t,r),Promise.resolve()):n},t.setRemoteDescription=s,s=function(e,t,r){var n=o.apply(this,[e]);return r?(n.then(t,r),Promise.resolve()):n},t.addIceCandidate=s}},shimGetUserMedia:function(e){var t=e&&e.navigator;t.getUserMedia||(t.webkitGetUserMedia?t.getUserMedia=t.webkitGetUserMedia.bind(t):t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,r,n){t.mediaDevices.getUserMedia(e).then(r,n)}.bind(t)))},shimRTCIceServerUrls:function(e){var t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,r){if(e&&e.iceServers){for(var i=[],a=0;a=r&&parseInt(n[r],10)}function i(e,t,r){if(e.RTCPeerConnection){var n=e.RTCPeerConnection.prototype,i=n.addEventListener;n.addEventListener=function(e,n){if(e!==t)return i.apply(this,arguments);var a=function(e){n(r(e))};return this._eventMap=this._eventMap||{},this._eventMap[n]=a,i.apply(this,[e,a])};var a=n.removeEventListener;n.removeEventListener=function(e,r){if(e!==t||!this._eventMap||!this._eventMap[r])return a.apply(this,arguments);var n=this._eventMap[r];return delete this._eventMap[r],a.apply(this,[e,n])},Object.defineProperty(n,"on"+t,{get:function(){return this["_on"+t]},set:function(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)}})}}var a=!0,o=!0;t.exports={extractVersion:n,wrapPeerConnectionEvent:i,disableLog:function(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(a=e,e?"adapter.js logging disabled":"adapter.js logging enabled")},disableWarnings:function(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(o=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))},log:function(){if("object"==typeof window){if(a)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}},deprecated:function(e,t){o&&console.warn(e+" is deprecated, please use "+t+" instead.")},detectBrowser:function(e){var t=e&&e.navigator,r={};if(r.browser=null,r.version=null,void 0===e||!e.navigator)return r.browser="Not a browser.",r;if(t.mozGetUserMedia)r.browser="firefox",r.version=n(t.userAgent,/Firefox\/(\d+)\./,1);else if(t.webkitGetUserMedia)r.browser="chrome",r.version=n(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(t.mediaDevices&&t.userAgent.match(/Edge\/(\d+).(\d+)$/))r.browser="edge",r.version=n(t.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!e.RTCPeerConnection||!t.userAgent.match(/AppleWebKit\/(\d+)\./))return r.browser="Not a supported browser.",r;r.browser="safari",r.version=n(t.userAgent,/AppleWebKit\/(\d+)\./,1)}return r}}},{}]},{},[3])(3)});
--------------------------------------------------------------------------------