ember-browser-services 1.1.8 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/README.md +79 -25
- package/addon/services/browser/session-storage.ts +21 -0
- package/addon/tsconfig.tsbuildinfo +1 -1
- package/addon/types.ts +12 -0
- package/addon/utils/proxy-service.ts +4 -0
- package/addon-test-support/-private/web-storage.ts +31 -0
- package/addon-test-support/index.ts +78 -18
- package/addon-test-support/tsconfig.tsbuildinfo +1 -1
- package/addon-test-support/window-mock-augments.ts +55 -0
- package/app/services/browser/session-storage.js +1 -0
- package/declarations/services/browser/session-storage.d.ts +16 -0
- package/declarations/test-support/-private/web-storage.d.ts +18 -0
- package/declarations/test-support/index.d.ts +8 -7
- package/declarations/test-support/window-mock-augments.d.ts +1 -0
- package/declarations/types.d.ts +5 -0
- package/package.json +40 -37
- package/addon-test-support/-private/-helpers.ts +0 -46
- package/addon-test-support/-private/document.ts +0 -11
- package/addon-test-support/-private/local-storage.ts +0 -28
- package/addon-test-support/-private/navigator.ts +0 -22
- package/addon-test-support/-private/window.ts +0 -27
- package/declarations/test-support/-private/-helpers.d.ts +0 -6
- package/declarations/test-support/-private/document.d.ts +0 -8
- package/declarations/test-support/-private/local-storage.d.ts +0 -14
- package/declarations/test-support/-private/navigator.d.ts +0 -4
- package/declarations/test-support/-private/window.d.ts +0 -19
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,36 @@
|
|
1
|
+
# [2.1.0](https://github.com/CrowdStrike/ember-browser-services/compare/v2.0.2...v2.1.0) (2021-11-23)
|
2
|
+
|
3
|
+
|
4
|
+
### Features
|
5
|
+
|
6
|
+
* support session-storage ([ffaf626](https://github.com/CrowdStrike/ember-browser-services/commit/ffaf6263080546c2dab2f5c62db40166dfc6f3a1))
|
7
|
+
|
8
|
+
## [2.0.2](https://github.com/CrowdStrike/ember-browser-services/compare/v2.0.1...v2.0.2) (2021-11-18)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* **deps:** update dependency ember-cli-htmlbars to v6 ([a3115e3](https://github.com/CrowdStrike/ember-browser-services/commit/a3115e396af97177ce4b3824718ea18648ee0c60))
|
14
|
+
|
15
|
+
## [2.0.1](https://github.com/CrowdStrike/ember-browser-services/compare/v2.0.0...v2.0.1) (2021-11-18)
|
16
|
+
|
17
|
+
|
18
|
+
### Bug Fixes
|
19
|
+
|
20
|
+
* **support:** expand and fix support ([dcd8dd6](https://github.com/CrowdStrike/ember-browser-services/commit/dcd8dd68b2c0170456e82e999513bea6beecbafa))
|
21
|
+
|
22
|
+
# [2.0.0](https://github.com/CrowdStrike/ember-browser-services/compare/v1.1.8...v2.0.0) (2021-09-09)
|
23
|
+
|
24
|
+
|
25
|
+
### Features
|
26
|
+
|
27
|
+
* utilize ember-window-mock for the underlying provider ([659f20f](https://github.com/CrowdStrike/ember-browser-services/commit/659f20f702873c942d6476301730107c71a566c4))
|
28
|
+
|
29
|
+
|
30
|
+
### BREAKING CHANGES
|
31
|
+
|
32
|
+
* invalid hrefs will throw an error
|
33
|
+
|
1
34
|
## [1.1.8](https://github.com/CrowdStrike/ember-browser-services/compare/v1.1.7...v1.1.8) (2021-08-31)
|
2
35
|
|
3
36
|
|
package/README.md
CHANGED
@@ -44,33 +44,60 @@ export default class MyComponent extends Component {
|
|
44
44
|
|
45
45
|
### Testing
|
46
46
|
|
47
|
-
|
47
|
+
_for fuller examples, see the tests directory_
|
48
48
|
|
49
|
-
As with any service, if the default implementation is not suitable for testing,
|
50
|
-
it may be swapped out during the test.
|
51
49
|
|
52
|
-
|
53
|
-
|
50
|
+
There are two types of stubbing you may be interested in when working with browser services
|
51
|
+
- service overriding
|
54
52
|
|
55
|
-
|
56
|
-
|
57
|
-
let called = false;
|
58
|
-
|
59
|
-
this.owner.register(
|
60
|
-
'service:browser/window',
|
61
|
-
class TestWindow extends Service {
|
62
|
-
rareBrowserApi() {
|
63
|
-
called = true;
|
64
|
-
}
|
65
|
-
},
|
66
|
-
);
|
53
|
+
As with any service, if the default implementation is not suitable for testing,
|
54
|
+
it may be swapped out during the test.
|
67
55
|
|
68
|
-
|
56
|
+
```js
|
57
|
+
import Service from '@ember/service';
|
69
58
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
59
|
+
module('Scenario Name', function (hooks) {
|
60
|
+
test('rare browser API', function (assert) {
|
61
|
+
let called = false;
|
62
|
+
|
63
|
+
this.owner.register(
|
64
|
+
'service:browser/window',
|
65
|
+
class TestWindow extends Service {
|
66
|
+
rareBrowserApi() {
|
67
|
+
called = true;
|
68
|
+
}
|
69
|
+
},
|
70
|
+
);
|
71
|
+
|
72
|
+
this.owner.lookup('service:browser/window').rareBrowserApi();
|
73
|
+
|
74
|
+
assert.ok(called, 'the browser api was called');
|
75
|
+
});
|
76
|
+
});
|
77
|
+
```
|
78
|
+
|
79
|
+
- direct assignment
|
80
|
+
|
81
|
+
This approach may be useful for deep-objects are complex interactions that otherwise would be
|
82
|
+
hard to reproduce via normal UI interaction.
|
83
|
+
|
84
|
+
```js
|
85
|
+
module('Scenario Name', function (hooks) {
|
86
|
+
test('rare browser API', function (assert) {
|
87
|
+
let service = this.owner.lookup('service:browser/window');
|
88
|
+
let called = false;
|
89
|
+
|
90
|
+
service.rareBrowserApi = () => (called = true);
|
91
|
+
|
92
|
+
service.rareBrowserApi();
|
93
|
+
|
94
|
+
assert.ok(called, 'the browser api was called');
|
95
|
+
});
|
96
|
+
});
|
97
|
+
```
|
98
|
+
|
99
|
+
|
100
|
+
There is also a shorthand for grouped "modules" in your tests:
|
74
101
|
|
75
102
|
#### Window
|
76
103
|
|
@@ -128,6 +155,25 @@ module('Scenario Name', function (hooks) {
|
|
128
155
|
});
|
129
156
|
});
|
130
157
|
```
|
158
|
+
#### sessionStorage
|
159
|
+
|
160
|
+
```js
|
161
|
+
import { setupBrowserFakes } from 'ember-browser-services/test-support';
|
162
|
+
|
163
|
+
module('Scenario Name', function (hooks) {
|
164
|
+
setupBrowserFakes(hooks, { sessionStorage: true });
|
165
|
+
|
166
|
+
test('session storage service works', function (assert) {
|
167
|
+
let service = this.owner.lookup('service:browser/session-storage');
|
168
|
+
|
169
|
+
assert.equal(service.getItem('foo'), null);
|
170
|
+
|
171
|
+
service.setItem('foo', 'bar');
|
172
|
+
assert.equal(service.getItem('foo'), 'bar');
|
173
|
+
assert.equal(sessionStorage.getItem('foo'), null);
|
174
|
+
});
|
175
|
+
});
|
176
|
+
```
|
131
177
|
|
132
178
|
#### navigator
|
133
179
|
|
@@ -188,6 +234,8 @@ module('Examples: How to use the browser/document service', function (hooks) {
|
|
188
234
|
[ember-window-mock](https://github.com/kaliber5/ember-window-mock) offers much
|
189
235
|
of the same feature set as ember-browser-services.
|
190
236
|
|
237
|
+
_ember-browser-services builds on top of ember-window-mock and the two libraries can be used together_.
|
238
|
+
|
191
239
|
The main differences being:
|
192
240
|
- ember-window-mock
|
193
241
|
- smaller API surface
|
@@ -206,8 +254,14 @@ The main differences being:
|
|
206
254
|
- ember-browser-services
|
207
255
|
- uses services instead of imports
|
208
256
|
- multiple top-level browser APIs, instead of just `window`
|
209
|
-
-
|
210
|
-
|
257
|
+
- setting behavior on services can be done by simply assigning, thanks to ember-window-mock
|
258
|
+
|
259
|
+
```js
|
260
|
+
let service = this.owner.lookup('service:browser/navigator');
|
261
|
+
|
262
|
+
service.someApi = someValue;
|
263
|
+
```
|
264
|
+
- or adding additional behavior to the test version of an object can be done via familiar service extension like:
|
211
265
|
|
212
266
|
```js
|
213
267
|
this.owner.register(
|
@@ -228,7 +282,7 @@ The main differences being:
|
|
228
282
|
Similarities / both addons:
|
229
283
|
- use proxies to fallback to default browser API behavior
|
230
284
|
- provide default stubs for commonly tested behavior (`location`, `localStorage`)
|
231
|
-
|
285
|
+
- all state reset between tests
|
232
286
|
|
233
287
|
|
234
288
|
## Contributing
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import '@ember/service';
|
2
|
+
|
3
|
+
import { proxyService } from 'ember-browser-services/utils/proxy-service';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* In order to have thorough testing, we should only interact with the session storage
|
7
|
+
* (and other browser APIs) via a service.
|
8
|
+
*
|
9
|
+
* We can control, mock, and override the services, but we can't do so with
|
10
|
+
* the browser APIs.
|
11
|
+
*
|
12
|
+
*/
|
13
|
+
const SessionStorageProxyService = proxyService(sessionStorage);
|
14
|
+
|
15
|
+
export default SessionStorageProxyService;
|
16
|
+
|
17
|
+
declare module '@ember/service' {
|
18
|
+
interface Registry {
|
19
|
+
'browser/session-storage': typeof SessionStorageProxyService;
|
20
|
+
}
|
21
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.full.d.ts","../node_modules/@types/ember__object/mixin.d.ts","../node_modules/@types/ember__object/computed.d.ts","../node_modules/@types/ember__object/-private/types.d.ts","../node_modules/@types/ember__object/core.d.ts","../node_modules/@types/ember__object/observable.d.ts","../node_modules/@types/ember__object/index.d.ts","../node_modules/@types/ember__service/index.d.ts","./utils/proxy-service.ts","./services/browser/document.ts","./services/browser/local-storage.ts","./services/browser/navigator.ts","./services/browser/window.ts","./types.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/connect/index.d.ts","../node_modules/@types/body-parser/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@types/chai-as-promised/index.d.ts","../node_modules/@types/component-emitter/index.d.ts","../node_modules/@types/cookie/index.d.ts","../node_modules/@types/cors/index.d.ts","../node_modules/@types/jquery/JQueryStatic.d.ts","../node_modules/@types/jquery/JQuery.d.ts","../node_modules/@types/jquery/misc.d.ts","../node_modules/@types/jquery/legacy.d.ts","../node_modules/@types/sizzle/index.d.ts","../node_modules/@types/jquery/index.d.ts","../node_modules/@types/ember__template/-private/handlebars.d.ts","../node_modules/@types/ember__template/index.d.ts","../node_modules/@types/ember__string/index.d.ts","../node_modules/@types/ember__polyfills/types.d.ts","../node_modules/@types/ember__polyfills/index.d.ts","../node_modules/@types/ember__utils/-private/types.d.ts","../node_modules/@types/ember__utils/index.d.ts","../node_modules/@types/ember__array/-private/mutable-enumerable.d.ts","../node_modules/@types/ember__array/mutable.d.ts","../node_modules/@types/ember__object/-private/copyable.d.ts","../node_modules/@types/ember__array/-private/native-array.d.ts","../node_modules/@types/ember__array/-private/enumerable.d.ts","../node_modules/@types/ember__array/index.d.ts","../node_modules/@types/ember__engine/-private/registry-proxy-mixin.d.ts","../node_modules/@types/ember__engine/-private/types/initializer.d.ts","../node_modules/@types/ember__engine/-private/container-proxy-mixin.d.ts","../node_modules/@types/ember__engine/instance.d.ts","../node_modules/@types/ember__engine/-private/resolver.d.ts","../node_modules/@types/ember__engine/index.d.ts","../node_modules/@types/ember__debug/index.d.ts","../node_modules/@types/ember__runloop/-private/types.d.ts","../node_modules/@types/ember__runloop/types.d.ts","../node_modules/@types/ember__runloop/-private/backburner.d.ts","../node_modules/@types/ember__runloop/index.d.ts","../node_modules/@types/ember__error/index.d.ts","../node_modules/@types/ember__object/-private/action-handler.d.ts","../node_modules/@types/ember__controller/index.d.ts","../node_modules/@types/ember__object/evented.d.ts","../node_modules/@types/ember__component/-private/core-view.d.ts","../node_modules/@types/ember__component/-private/class-names-support.d.ts","../node_modules/@types/ember__component/-private/view-mixin.d.ts","../node_modules/@types/ember__component/-private/action-support.d.ts","../node_modules/@types/ember__component/index.d.ts","../node_modules/@types/ember__routing/-private/route-info.d.ts","../node_modules/@types/ember__routing/-private/route-info-with-attributes.d.ts","../node_modules/@types/ember__routing/-private/transition.d.ts","../node_modules/@types/ember__routing/types.d.ts","../node_modules/@types/ember__routing/route.d.ts","../node_modules/@types/ember__routing/-private/router-dsl.d.ts","../node_modules/@types/ember__routing/router-service.d.ts","../node_modules/@types/ember__routing/router.d.ts","../node_modules/@types/ember__routing/index.d.ts","../node_modules/@types/ember__application/instance.d.ts","../node_modules/@types/ember__application/types.d.ts","../node_modules/@types/ember__application/-private/event-dispatcher.d.ts","../node_modules/@types/ember__application/-private/default-resolver.d.ts","../node_modules/@types/ember__application/-private/registry.d.ts","../node_modules/@types/ember__application/index.d.ts","../node_modules/@types/ember__test/index.d.ts","../node_modules/@types/ember__destroyable/index.d.ts","../node_modules/@types/rsvp/index.d.ts","../node_modules/@types/htmlbars-inline-precompile/index.d.ts","../node_modules/@types/ember__object/observers.d.ts","../node_modules/@types/ember__object/proxy.d.ts","../node_modules/@types/ember__object/promise-proxy-mixin.d.ts","../node_modules/@types/ember__object/internals.d.ts","../node_modules/@types/ember__object/events.d.ts","../node_modules/@types/ember__debug/container-debug-adapter.d.ts","../node_modules/@types/ember__debug/data-adapter.d.ts","../node_modules/@types/ember__application/deprecations.d.ts","../node_modules/@types/ember__array/proxy.d.ts","../node_modules/@types/ember__array/types/prototype-extensions.d.ts","../node_modules/@types/ember__component/-private/target-action-support.d.ts","../node_modules/@types/ember__component/-private/text-support.d.ts","../node_modules/@types/ember__component/text-area.d.ts","../node_modules/@types/ember__component/text-field.d.ts","../node_modules/@types/ember__component/checkbox.d.ts","../node_modules/@types/ember__component/helper.d.ts","../node_modules/@types/ember__routing/hash-location.d.ts","../node_modules/@types/ember__routing/auto-location.d.ts","../node_modules/@types/ember__routing/history-location.d.ts","../node_modules/@types/ember__routing/none-location.d.ts","../node_modules/@types/ember__routing/link-component.d.ts","../node_modules/@types/ember__application/resolver.d.ts","../node_modules/@types/ember__test/adapter.d.ts","../node_modules/@types/ember/index.d.ts","../node_modules/@types/qunit/index.d.ts","../node_modules/@types/ember-test-helpers/index.d.ts","../node_modules/@types/ember-qunit/index.d.ts","../node_modules/@types/ember-resolver/index.d.ts","../node_modules/@types/ember__test-helpers/index.d.ts","../node_modules/@types/range-parser/index.d.ts","../node_modules/@types/qs/index.d.ts","../node_modules/@types/express-serve-static-core/index.d.ts","../node_modules/@types/mime/index.d.ts","../node_modules/@types/serve-static/index.d.ts","../node_modules/@types/express/index.d.ts","../node_modules/@types/fs-extra/index.d.ts","../node_modules/@types/minimatch/index.d.ts","../node_modules/@types/glob/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/unist/index.d.ts","../node_modules/@types/mdast/index.d.ts","../node_modules/@types/minimist/index.d.ts","../node_modules/@types/normalize-package-data/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/retry/index.d.ts","../node_modules/@types/rimraf/index.d.ts","../node_modules/@types/symlink-or-copy/index.d.ts"],"fileInfos":[{"version":"aa9fb4c70f369237c2f45f9d969c9a59e0eae9a192962eb48581fe864aa609db","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","eb75e89d63b3b72dd9ca8b0cac801cecae5be352307c004adeaa60bc9d6df51f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"e54c8715a4954cfdc66cd69489f2b725c09ebf37492dbd91cff0a1688b1159e8","affectsGlobalScope":true},{"version":"e34eb9339171ec45da2801c1967e4d378bd61a1dceaa1b1b4e1b6d28cb9ca962","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"51b8b27c21c066bf877646e320bf6a722b80d1ade65e686923cd9d4494aef1ca","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"2c8c5ee58f30e7c944e04ab1fb5506fdbb4dd507c9efa6972cf4b91cec90c503","affectsGlobalScope":true},{"version":"2bb4b3927299434052b37851a47bf5c39764f2ba88a888a107b32262e9292b7c","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"df9c8a72ca8b0ed62f5470b41208a0587f0f73f0a7db28e5a1272cf92537518e","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"93544ca2f26a48716c1b6c5091842cad63129daac422dfa4bc52460465f22bb1","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"7435b75fdf3509622e79622dbe5091cf4b09688410ee2034e4fc17d0c99d0862","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"9f1817f7c3f02f6d56e0f403b927e90bb133f371dcebc36fa7d6d208ef6899da","affectsGlobalScope":true},{"version":"cd6efb9467a8b6338ece2e2855e37765700f2cd061ca54b01b33878cf5c7677e","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"4632665b87204bb1caa8b44d165bce0c50dfab177df5b561b345a567cabacf9a","affectsGlobalScope":true},"d96fa8a56871904776165ceb8e00bd56127e1a017bb2664cae76223b5f815141","9d78575b3d3486476abb91c5fb557244e279fd4d0452065f36ba5c6153802f57","37412e5cdf8740c66b3351f8748b2a0567c2d8a88717b1f2e1747f25ef8a5567","9530fdd4807b20140eb6fb5c0086f9e4b1035a09ebbbb08d4075d03bc8cb562e","e2754b037d9944a8f84d7c6d0795adf1c3bad726199ef02dffa67ee8d530fe37","b5ee4c617064bb755dd71a57937f3bffac0a831f49770d67650c920d0ff3e8e7","3706aa52dc623e380fdc24e6c94cf23dd853f73d52dec207bdc8120013cc54bb","d8b849301afa5b36f448b6a8f258b823d9b2d2ac0733e5f79e414572588df71e","17b4116ed1f25530b1dddd60d2b04a0d854736004c865c5a2b61836f82d8b3b2","bf5fe1ba0c01e2b37cb69d72754bb952aa6be4d20b31904df894421c590a12e5","3c6ff23b5a76e6ca799eed0947762775c3c9da5afc812b462811a740a17de2e1","63a236884c4cf3d86b2050bcc16769ce24dda4a75f9f16c43c2712c77e8fa866",{"version":"422a37cae7cb81c11bac60ba5e5e842eca050ba2b66c320bd02eb3fad283f765","affectsGlobalScope":true},"c436f76dce334f56a5a408cd4fa0721c58b69b498c28c9d69afae858858c0996","31c268bcfbbb3a89dd4019ff8001069024921c2c0fb73bccc6f8e6f2da7bff09","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"34f1d0e1f63dd8c0bdc1fd15ec2b7216fd709953781c4d1b1213d88e2d94db9e","affectsGlobalScope":true},"4be51d991034b331db6a518e5a9607cb136b6d3ab2a691191a7d481354836a5f",{"version":"fa56e5f529c26a31207fecafbfd88136936868a4c17f8a347f0e8e6ea18309ad","affectsGlobalScope":true},"dbfe629576a07827e766347bea31814a914dbce17a0e6b42b71df91d6b4c5f04","3fe5750809a130a0c9ee5dbca9e262913a10d1deda3ddb1280a77b099197e937",{"version":"d7e32c36d30042b47cd8620b197d3e3381954cf8baa413dc4273796e4cf718a1","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","ca4f1923f7b902be3f19040f9b3859524f8d276f73c1c2985af8df1446a27da8","53cf527b7d4a7ee1c16eeadff678d6df9f2a98cd5ece18f0f9211d8080204734","0038ccd1c90bc523ee4f7eeabc3f4082a48a5775415855e46f142447b9ad1114","aacb7a1f78d635e42d1112144c83508f340722e5293f7f14091581193618dca3","87c064559d14068edb2861fc7d48c1a8196a63523e00cc29aadd57c0eefb24a5","226afbe8d2d18dc02d1aebb449af0a11a278acb98b42c763aeec6d5a8e654441",{"version":"c3a43212afe9781a304d8f5dd3895fd38a143ac46fb64b4d343122e38c83a9ab","affectsGlobalScope":true},"21259ca1ed518e7adf7653fe0c75972a9baaafc459c8a95e78964a867517adac","01862fc59b8c037ea9fe03c6f3dc1ffc95bfc16fb37d58d6e7603706b9041d97","2163cfbd3438e495c08fb59b29740b1f96c7aec8ebb4faf9c9156f4fe94cb501","b9855c90cb7d9dcc9d6235aa9581f57e34d1396fbaaa8eb56d2754bb47b3b118","1f66294c9e9c24e84552cfaa70a27422811649de5a2efc69d3cf2ef38e833308","a82a261dac2131e55347889de6846a3e84741283d93d6525550ab3976be85cf6",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"1207275e727d14356922953c0597c77acad13e9812a0109a756c0c59ff0e87f3","dce04e108fbcbe674bceeea757269b7775a8a07693d6a58f55b36e649541675a","c90911387c5e9e024c309e63a14946a9bc3c71293e8f9d09eece16e11f167974","066f0de5d2acf0be06eb29a5ada8107f93891d7a983e6ba095260406650d742d",{"version":"6ae884f4861da8949f2c466b2d44fb087b2f1de82fe3449c3c52bd1d8cf998e6","affectsGlobalScope":true},"cbe717c2735bf2a6ceb29c2131232e74f4f95878072873dfb263566035024f99","5fd00b0ad7ef4e7eb69341da6ec17400922860afbdbc2cc46a37eba833d8a0bd","bc0c9dbd2b273d9466a31143a5f0118e8902232d906b3987d19d1bd67b96ee5d","757fec48e36f86c8b791b770c31f510d0e53817a95f61130df26df57cb382113","c5274b1cfbfb2610697727d460147756b686139af95cc487d894bc1c41133254","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"a279435e7813d1f061c0cab6ab77b1b9377e8d96851e5ed4a76a1ce6eb6e628f","28e6ac6505a2b6755ce0752cd4d2dbd880e0e4e9bbfeaa3c777821825db2711a",{"version":"8a4f510bad5e5f5312fd966d20675381a3467c0c8d1b528b7f8e5ebb732ba1c9","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","8ee0dfa79a0b3e43bd5c0554157051abd87ef47df49884eba3e6a10bba1ecdc1","dcbcf0056d7bcd4e716bd0cc9223913e58373095c4750250f525694d88f49962","715b8aedc97884235eac2346481e7f1cca0379f870a58a60d22f444f8b7c59a8","1379d5d1decf758cf2041743711f1d0235ef30b1eed5777faba29181088149c5","2ac6c37c23dbb6a87d0657fbaa509bd077dd4ea066fecff1e94a01e19410d8c6","5d50d7b266824bd435c9696f71d64041db90667b6f95d5285adfa6946a73dde5","58250ab8b2768e6d713bb8271d4d1ed1029069bb94631764538a474fe1cb1eca","b9d6227d9cf5e2aac16c149377136b01e8692c0f82f185f6192c78285236e71d","555122eabf41efe584457b407892ed4420c5dc5404004eafed8bc365459f1eef","56f3ed639ae070160aaa79a626e0f956374c7dcd2093216f48cc952981ea2e93",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"4f6762953742f1fa21ec4b41d49c0f76e72e324960f56b127717d2dc9a0baa3e","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","65cfd1c0bc729fbc2b49fe66bc5ebddba5aa3a978c748e1d2e0d07f502238ce2",{"version":"f7834c76f2d4db5fb156f2f18fdf855431843cf0d32620fcf24b836cd4a85096","affectsGlobalScope":true},{"version":"f6ae17283c6912c202004178339d6d22f8c9edfe4e335f9f11b555c631633daf","affectsGlobalScope":true},"a3a88c1869ba1022dfaefac47ff7a984ec62510e9b4d60988f91d5e523266c34","117ffeecf6c55e25b6446f449ad079029b5e7317399b0a693858faaaea5ca73e","6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612",{"version":"2a19c7dd007f71b9db87dba915e20d894dbdac8aa8fab5d1c3083a61f2316a5c","affectsGlobalScope":true},{"version":"2c2069b24e28319e65aaa4b6cf293a54f7c08c09f9dbb0cad22e3239fd17ee9a","affectsGlobalScope":true},{"version":"3bf153ce5217f98baaa648361c9d2c0f5752ee5917f9e5b474deeb5a0c9a30c2","affectsGlobalScope":true},{"version":"6f1f78e8c2a5c7cd2c38aa9cc5da26d9c039f2bbfa753f2a0a54ce41c4dff8d0","affectsGlobalScope":true},"ec89427601297d439c961528832a75017d9356bec2ee42c1d16f2274590d9330","83b41c4e728a2ebc360331cb09a235edf7fb3525ccabe8434ee0d9b61d4f4783","5c4e87dc7a02f905b46f6dca0ff2e301061cf5982dba748a45ab2e9104e5e431","fe6ee6ee26779d8e0960b8a912351eeef403bb214fe296ed15c30a4c78e42c27","0ca6293263a34e366f4e6324e237a8eb4e2eff80d6d4a3b739f1b9dfff968910","6f4776d7e9d3e957394c7891095438ea869f9b1594b35468fa080b8d2184286f","3b58e1efebd36da14e63d58190a64c141ebd9d74faf02592a2e6a3fa65d6890e","08aa645136619fcb989b7a80c9757c69c67ee271a1d937d3e3124b9d30b826fd","338955cd5cd9f362a930657c70ab26b4e5868af14d344676ff9086c119a9c7bf","402672918f2d1324b5cc6fd022d0ffe38568f047109817fcdd197d9046c0c1d3","55463b262402587ce89efd32bd927f57bb9a4163e786a69fe207001b1439fed3","8efd97942be10b42b4ec36aa1e00343520a7036f6058e7ef3252e4601b76ccf7","86a06845d948ab9ed54ec43468d76f7d82b8fbf8acc8d165091e40eb5c2743f9","1918372988f3409eda28484f34d67784d101b81d3612c74a8acdf1f256f67152","43685e702e1af1436aa1cc365f8ebbc60e77cbdd25ca1c8762359de8dc5dc6e1","7d842d43ac15b721a01e70c0a147953a650f921ea289e963e698cdcfe95fb795","76aefae3d07bc765256536ebc12cfe2dd4500c0d22a732278b0658aed8205229","4d6e3b334ad9641dae6a3593483d0901ea2ec49dfc556d4c49ca82e0bd86aa1e","7ad7d826daae0f2ece2b6a9f2061a878de79ba10626d9273b467c59ffc2628f6","16f45390b48259f7c98bc4f1580864dd4d10fae9ac6aafc6527956e294f6cdff","2382c312f12760183c4c3494aef017ccadff1a7b78364f957375ee94fdd4e4bb","d3038a00054d2824bcac74bbcc05c79175bc900687c15579c85182d6f43e6a70","82f189ac9621341577dc9ab65dd233266404850ca9d00cecbab184d05d1f6951","5aff7c348047933a46dd2904de4122e01ddd2ca0b2c202ac651fe8ad523cef97","31e3475a19c89fdc6e178b69fa91c898f9929b597018644200152d8cf65d7559","d854151bab4e76705d4e6e30d03fa1153ea34b26b99ef5e7286e61c14b76fe81","7c8681eb28124441c874bb60629700793a14dd4784d908b5ae8a3a044291f913","8de1143be35fa8f0d23f7264546154451238ec3426c8fe4e192d79df1dc50131","520e9a00f4f3644bfa6ce6a71839239509fe37df11665affa256823a46fd84c0","72706fb358034c6d99e981e3412b4b8720f5188d6e643d72a968e1fb781ddd88","dc1cd9a1db1cedef64be1288788460fcfd8d7a24f27b84adc183e78a3473d182","d895f05288eb89d8fc09f3bd23f5c2695c46e1803539fac2dfc7bfbbf444d7a3","ad091d6664ede83965a45adcfcca95147880ffbe93ba515544bb5fdc958d645e","e88ea1754bf38206aad0bbcbe5bad686bb1906d6d0f165bcbd0a508f267c990d","6386dd51b6ade157b327b4a500c6aaa6fa9ae37fcb4065bcbe3f1bb8d43903be","b501f0e7ecb387e937229b135fbfa64d3f28a9b6bd14bfe5908114b6a2e93f26","7b0ef92ca4e5c3bcb307de98e97a59170538c2e268fd0d79a59c50553af6a062","9405ca26fcb3aac27934c68e4882443e19a5786099fd733b1a297a9f83fd0263","cf8c8dd2536bff7fa2d363c506f156fadd89c685be56b38a5b975dec969179a9","203977224a204f8acf183090d9871e0268df540903c321c33b7cca98f37dce01","c90f22e2a4459b6881c20ddf284957a1a8a2ecd9e422fe26786343b4b4e92447","75ff3db73eddd5817bb3c0592edcc0e423e45106fa57c9109df7c60c71c5c458","9a6bc4fa5cf455d4b86848454cebb092d0adc794a71e4c5c646e2ea29c8f10e7","bf415db387622dbe31009d156e620675a5fe23b2dadec2e12587d8954ae8ec91","a0aae3cf77fb496a93840806df203182dba45dea11838ef8edcb6e15b1be8c67","4570b612394570c2dc1af6c329783a4bfe023785be394562f4741148ad819428","8eb3a8cd95712a049bd12ac50909e0b9d7161ce917252120c2ef42f8a0c8ace3","a6a4ebab46f1176c0b05eee327386475e1d4544eba1db11261d0a0fc07060155","636affe55ca523cba215ece7e38e14e575b273feec68d0eeefedd253af514aea","cb4ffed36c7ac466d643e3cc68f26aa9bb451412f1f6ded51af946791a128791","15b2d197e1b4098140c926d390e9effbded864998cf2613a8f79c6e8278255d1","5f7a5f2c5fddda1cf565694daf0f8f9c19f38084823273dec38de91fddf35c60","8a8f2b1e3749103a4959ed74b6e46b6ac320aceb57db0b8da25081eee6f0d7dd","1123091629afa17fb06017bc9cd3e47c4fd32d7459109da0013836ab916cc1f0","eb631b771a0efdb9e955c775362479806fb1c204cc060a5ba7da6bbe2bd87ebb","56ca54d2591bbf0baca10f87b360a63772ef596b0b084e9fcd40f22d0b50768f","bb9f12997633bd8a60b3660e3f1c56f4f9cbb946f2bad0fbe4178318e4fcd7ad","5e1044a4a6525dd60e517ce941131a75cf25d521df5b6c813ae53b7dc09a5451","addb1fa8641a8b66af4bef39655c2dabbfffe55dc876e996d8908ca275eab3a9","d8eee08299e1948d2b8911df723d8144b478b1ec79233a65e9cd14509b186dc8","80068163bbc88c9f28dc053a13236f4c4ca3c8084ebdc9e02355701b12ff70b4","807288b4daaef8455cdfdb3739a6a753452126124e16b8dae8e618564ceb9cf0","5a07b32145725ce0cc33e793f65fb3c9fa8aed5d205470aa47c5ba9e485e5496","cffab72b5c4cc0aecb29326224f66a86bef67a84f751cfa4cc9b9010ceb683c8","0ae53f0cfbfaa6f77524a8d9df0e93e977dd3f3fa96e613d2b09b3b7d98b678a","4ffbbfda514e10032dc93710aadae5fed914a3ec6b9815de5154e56fb900c41c","0b22567c043921673c591032a5e88a7a426286f45214031fcca520574fcea0a1","84b956377e3f7dbc365dabe8b83422991707fa62964881e22a8522a9989e0704","371438dcb043c8a19cfa46b85aacffa9eb7a3004ec9cd3bf70960a74aaf2daf7","74fda237058419591b16c1a3e1dc43c00c08f5c75dfde4946cc509fb46b73ec0","036c80534d234278e16a752205d4a7e7f99e55b4e11f848c23ebe95f2a48aac8","8c2cb979d200cd14c5b04b8b2d757c3ef3c91fb70ad0da58d319aefe8e31ff6e","e4f7551eac2795d3a906575d4b1b3c26c381a16ac7931bb7b7fbfbdaeda4dcd5","6b2194415694ef14c9e42e90faa2524f34d0f68af793c00997f9ee9836688ab0","8dd4b5d18a38c8dadbd2a169aab22573be4fe29d48f2e35fd658b63dd2dbac7f","16f45390b48259f7c98bc4f1580864dd4d10fae9ac6aafc6527956e294f6cdff","d589dfa8364bf5bcddbc80c0db81414785b0fd223511c7390a03a525436742ba","0c8524bd82c139916beec5058ff02431f49c8ff21876a6b1efe3de0c1b2d50e6",{"version":"fb1c1afd32dfdf6359b3972aaf2aa483d9f094de8d2136e55e78a63bf2d75523","affectsGlobalScope":true},"4869263db981f90e1e16c763d9240dfdb1319da20526e56dc68df66760b7573e",{"version":"d0dc30bf4ec5733e14f88570a99d4b4f3dbba6da42b22e9ec563032c9de77593","affectsGlobalScope":true},"4ee4da2ece4efeff7ecd644ec140c4acd49ac0ada8821c679e9745df40dcc148","ee56b397e119d2bbe7b3c3b80eb1220e060315c410d5f6137edb9bda189c75bf","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"61b60d145059c3c8e3c7b484713191b6d0b70999bcb11f2b26286b15926a2b5f","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","aca36e2d27783f4bad7fc1786a532ff76024f0fc8575df48bcd9a5eb452fe7e7","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","725b884357ba84171341a8e4cc08edf11417854fd069842ca6d22afb2e340e45","0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","2a2e2c6463bcf3c59f31bc9ab4b6ef963bbf7dffb049cd017e2c1834e3adca63","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","58a3914b1cce4560d9ad6eee2b716caaa030eda0a90b21ca2457ea9e2783eaa3","3034db2891e04de367126370bebec88ac3b4e3b1eb8b7dc30671ccddb717eed2","7bb937550ebed130a912a9aac54d884b50cbb15061ce100ea1fd001e4be0dc58"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declarationDir":"../declarations","emitDeclarationOnly":true,"experimentalDecorators":true,"importsNotUsedAsValues":2,"inlineSourceMap":true,"inlineSources":true,"module":99,"noEmitOnError":false,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":false,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":99},"fileIdsList":[[55,56,57,58,59,60,105,166],[57,58,59,60,105],[55,57,58,59,60,61,105,166],[80,105,112,113],[105,115],[105],[80,105,112],[80,105],[105,201,202,203],[105,201],[105,125,176,177,201],[49,50,51,52,53,54,55,57,58,59,60,105,125,126,127,128,130,132,133,134,136,137,138,139,141,142,144,145,146,149,150,151,152,153,158,161,163,165,166,167,168,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,190,191,192,193,194,195,196,197,198,199,200,201],[105,143,173],[105,169],[51,105],[105,144,167,168,169,170,171,172],[105,142],[54,105],[49,50,105,136,138],[49,105,137],[49,53,105,134,135],[49,50,105,136,137],[49,105,133,137,138],[50,54,105,134],[53,105,134,135],[49,105],[54,105,151,153],[49,105,188],[105,158],[105,125,154,155,156,157],[105,158,189],[49,50,54,105,151],[105,143],[54,105,183],[54,105,139,140,142,143],[54,105,139,141],[49,50,105],[51,54,105],[50,51,52,53,105,131],[49,51,52,105],[49,105,176],[105,129],[105,159],[105,159,160],[105,161,163,164,165,166],[54,105,151,152,153,161,162],[55,57,58,59,60,105,159,160,161,166],[54,55,57,58,59,60,105,153,161,164,165],[105,146,147,148],[50,54,105],[105,127],[105,126],[105,150,173,177,199,201,206],[105,173],[54,105,131],[77,80,105,112,207,208],[105,114,208,209,211],[78,105,112],[77,105,112,214],[105,120,121,122,123,124],[105,217],[62,105],[65,105],[66,71,105],[67,77,78,85,94,104,105],[67,68,77,85,105],[69,105],[70,71,78,86,105],[71,94,101,105],[72,74,77,85,105],[73,105],[74,75,105],[76,77,105],[77,105],[77,78,79,94,104,105],[77,78,79,94,105],[80,85,94,104,105],[77,78,80,81,85,94,101,104,105],[80,82,94,101,104,105],[62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111],[77,83,105],[84,104,105],[74,77,85,94,105],[86,105],[87,105],[65,88,105],[89,103,105,109],[90,105],[91,105],[77,92,105],[92,93,105,107],[77,94,95,96,105],[94,96,105],[94,95,105],[97,105],[98,105],[77,99,100,105],[99,100,105],[71,85,101,105],[102,105],[85,103,105],[66,80,91,104,105],[71,105],[94,105,106],[105,107],[105,108],[66,71,77,79,88,94,104,105,107,109],[94,105,110],[78,105,112,215],[80,105,112,210]],"referencedMap":[[57,1],[58,1],[59,1],[60,1],[61,2],[56,3],[114,4],[116,5],[115,6],[117,6],[113,7],[118,6],[119,8],[204,9],[205,10],[203,11],[201,12],[171,13],[170,14],[172,15],[185,6],[173,16],[168,17],[199,18],[169,6],[137,19],[133,20],[136,21],[138,22],[134,23],[186,24],[187,25],[157,26],[155,26],[154,27],[188,18],[189,28],[156,26],[192,29],[193,18],[158,30],[190,31],[191,31],[152,32],[183,33],[184,34],[145,6],[175,6],[141,26],[139,26],[143,18],[140,6],[144,35],[142,36],[150,6],[151,26],[135,26],[51,37],[50,38],[52,15],[153,26],[182,15],[54,39],[181,15],[49,38],[53,40],[178,15],[180,41],[179,38],[130,42],[129,6],[160,43],[159,6],[164,6],[161,44],[195,18],[194,18],[196,18],[167,45],[198,29],[197,18],[163,46],[165,47],[166,48],[162,6],[148,6],[146,6],[149,49],[147,6],[55,50],[128,51],[126,6],[127,52],[206,53],[200,6],[174,54],[131,6],[132,55],[209,56],[212,57],[213,58],[215,59],[177,6],[121,6],[120,6],[125,60],[123,6],[122,6],[216,6],[218,61],[210,6],[214,6],[219,6],[62,62],[63,62],[65,63],[66,64],[67,65],[68,66],[69,67],[70,68],[71,69],[72,70],[73,71],[74,72],[75,72],[76,73],[77,74],[78,75],[79,76],[64,6],[111,6],[80,77],[81,78],[82,79],[112,80],[83,81],[84,82],[85,83],[86,84],[87,85],[88,86],[89,87],[90,88],[91,89],[92,90],[93,91],[94,92],[96,93],[95,94],[97,95],[98,96],[99,97],[100,98],[101,99],[102,100],[103,101],[104,102],[105,103],[106,104],[107,105],[108,106],[109,107],[110,108],[220,6],[221,6],[208,6],[202,6],[207,6],[222,6],[223,109],[176,6],[211,110],[124,6],[224,6],[217,6],[10,6],[11,6],[15,6],[14,6],[2,6],[16,6],[17,6],[18,6],[19,6],[20,6],[21,6],[22,6],[23,6],[3,6],[4,6],[27,6],[24,6],[25,6],[26,6],[28,6],[29,6],[30,6],[5,6],[31,6],[32,6],[33,6],[34,6],[6,6],[35,6],[36,6],[37,6],[38,6],[7,6],[43,6],[39,6],[40,6],[41,6],[42,6],[8,6],[44,6],[45,6],[46,6],[1,6],[9,6],[48,6],[47,6],[13,6],[12,6]],"exportedModulesMap":[[57,1],[58,1],[59,1],[60,1],[61,2],[56,3],[114,4],[116,5],[115,6],[117,6],[113,7],[118,6],[119,8],[204,9],[205,10],[203,11],[201,12],[171,13],[170,14],[172,15],[185,6],[173,16],[168,17],[199,18],[169,6],[137,19],[133,20],[136,21],[138,22],[134,23],[186,24],[187,25],[157,26],[155,26],[154,27],[188,18],[189,28],[156,26],[192,29],[193,18],[158,30],[190,31],[191,31],[152,32],[183,33],[184,34],[145,6],[175,6],[141,26],[139,26],[143,18],[140,6],[144,35],[142,36],[150,6],[151,26],[135,26],[51,37],[50,38],[52,15],[153,26],[182,15],[54,39],[181,15],[49,38],[53,40],[178,15],[180,41],[179,38],[130,42],[129,6],[160,43],[159,6],[164,6],[161,44],[195,18],[194,18],[196,18],[167,45],[198,29],[197,18],[163,46],[165,47],[166,48],[162,6],[148,6],[146,6],[149,49],[147,6],[55,50],[128,51],[126,6],[127,52],[206,53],[200,6],[174,54],[131,6],[132,55],[209,56],[212,57],[213,58],[215,59],[177,6],[121,6],[120,6],[125,60],[123,6],[122,6],[216,6],[218,61],[210,6],[214,6],[219,6],[62,62],[63,62],[65,63],[66,64],[67,65],[68,66],[69,67],[70,68],[71,69],[72,70],[73,71],[74,72],[75,72],[76,73],[77,74],[78,75],[79,76],[64,6],[111,6],[80,77],[81,78],[82,79],[112,80],[83,81],[84,82],[85,83],[86,84],[87,85],[88,86],[89,87],[90,88],[91,89],[92,90],[93,91],[94,92],[96,93],[95,94],[97,95],[98,96],[99,97],[100,98],[101,99],[102,100],[103,101],[104,102],[105,103],[106,104],[107,105],[108,106],[109,107],[110,108],[220,6],[221,6],[208,6],[202,6],[207,6],[222,6],[223,109],[176,6],[211,110],[124,6],[224,6],[217,6],[10,6],[11,6],[15,6],[14,6],[2,6],[16,6],[17,6],[18,6],[19,6],[20,6],[21,6],[22,6],[23,6],[3,6],[4,6],[27,6],[24,6],[25,6],[26,6],[28,6],[29,6],[30,6],[5,6],[31,6],[32,6],[33,6],[34,6],[6,6],[35,6],[36,6],[37,6],[38,6],[7,6],[43,6],[39,6],[40,6],[41,6],[42,6],[8,6],[44,6],[45,6],[46,6],[1,6],[9,6],[48,6],[47,6],[13,6],[12,6]],"semanticDiagnosticsPerFile":[57,58,59,60,61,56,114,116,115,117,113,118,119,204,205,203,201,171,170,172,185,173,168,199,169,137,133,136,138,134,186,187,157,155,154,188,189,156,192,193,158,190,191,152,183,184,145,175,141,139,143,140,144,142,150,151,135,51,50,52,153,182,54,181,49,53,178,180,179,130,129,160,159,164,161,195,194,196,167,198,197,163,165,166,162,148,146,149,147,55,128,126,127,206,200,174,131,132,209,212,213,215,177,121,120,125,123,122,216,218,210,214,219,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,64,111,80,81,82,112,83,84,85,86,87,88,89,90,91,92,93,94,96,95,97,98,99,100,101,102,103,104,105,106,107,108,109,110,220,221,208,202,207,222,223,176,211,124,224,217,10,11,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,35,36,37,38,7,43,39,40,41,42,8,44,45,46,1,9,48,47,13,12]},"version":"4.4.2"}
|
1
|
+
{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.esnext.full.d.ts","../node_modules/@types/ember__object/mixin.d.ts","../node_modules/@types/ember__object/computed.d.ts","../node_modules/@types/ember__object/-private/types.d.ts","../node_modules/@types/ember__object/core.d.ts","../node_modules/@types/ember__object/observable.d.ts","../node_modules/@types/ember__object/index.d.ts","../node_modules/@types/ember__service/index.d.ts","./utils/proxy-service.ts","./services/browser/document.ts","./services/browser/local-storage.ts","./services/browser/session-storage.ts","./services/browser/navigator.ts","./services/browser/window.ts","./types.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/@types/connect/index.d.ts","../node_modules/@types/body-parser/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@types/chai-as-promised/index.d.ts","../node_modules/@types/component-emitter/index.d.ts","../node_modules/@types/concat-stream/index.d.ts","../node_modules/@types/cookie/index.d.ts","../node_modules/@types/cors/index.d.ts","../node_modules/@types/ms/index.d.ts","../node_modules/@types/debug/index.d.ts","../node_modules/@types/jquery/JQueryStatic.d.ts","../node_modules/@types/jquery/JQuery.d.ts","../node_modules/@types/jquery/misc.d.ts","../node_modules/@types/jquery/legacy.d.ts","../node_modules/@types/sizzle/index.d.ts","../node_modules/@types/jquery/index.d.ts","../node_modules/@types/ember__template/-private/handlebars.d.ts","../node_modules/@types/ember__template/index.d.ts","../node_modules/@types/ember__string/index.d.ts","../node_modules/@types/ember__polyfills/types.d.ts","../node_modules/@types/ember__polyfills/index.d.ts","../node_modules/@types/ember__utils/-private/types.d.ts","../node_modules/@types/ember__utils/index.d.ts","../node_modules/@types/ember__array/-private/mutable-enumerable.d.ts","../node_modules/@types/ember__array/mutable.d.ts","../node_modules/@types/ember__object/-private/copyable.d.ts","../node_modules/@types/ember__array/-private/native-array.d.ts","../node_modules/@types/ember__array/-private/enumerable.d.ts","../node_modules/@types/ember__array/index.d.ts","../node_modules/@types/ember__engine/-private/registry-proxy-mixin.d.ts","../node_modules/@types/ember__engine/-private/types/initializer.d.ts","../node_modules/@types/ember__engine/-private/container-proxy-mixin.d.ts","../node_modules/@types/ember__engine/instance.d.ts","../node_modules/@types/ember__engine/-private/resolver.d.ts","../node_modules/@types/ember__engine/index.d.ts","../node_modules/@types/ember__debug/index.d.ts","../node_modules/@types/ember__runloop/-private/types.d.ts","../node_modules/@types/ember__runloop/types.d.ts","../node_modules/@types/ember__runloop/-private/backburner.d.ts","../node_modules/@types/ember__runloop/index.d.ts","../node_modules/@types/ember__error/index.d.ts","../node_modules/@types/ember__object/-private/action-handler.d.ts","../node_modules/@types/ember__controller/index.d.ts","../node_modules/@types/ember__object/evented.d.ts","../node_modules/@types/ember__component/-private/core-view.d.ts","../node_modules/@types/ember__component/-private/class-names-support.d.ts","../node_modules/@types/ember__component/-private/view-mixin.d.ts","../node_modules/@types/ember__component/-private/action-support.d.ts","../node_modules/@types/ember__component/index.d.ts","../node_modules/@types/ember__routing/-private/route-info.d.ts","../node_modules/@types/ember__routing/-private/route-info-with-attributes.d.ts","../node_modules/@types/ember__routing/-private/transition.d.ts","../node_modules/@types/ember__routing/types.d.ts","../node_modules/@types/ember__routing/route.d.ts","../node_modules/@types/ember__routing/-private/router-dsl.d.ts","../node_modules/@types/ember__routing/router-service.d.ts","../node_modules/@types/ember__routing/router.d.ts","../node_modules/@types/ember__routing/index.d.ts","../node_modules/@types/ember__application/instance.d.ts","../node_modules/@types/ember__application/types.d.ts","../node_modules/@types/ember__application/-private/event-dispatcher.d.ts","../node_modules/@types/ember__application/-private/default-resolver.d.ts","../node_modules/@types/ember__application/-private/registry.d.ts","../node_modules/@types/ember__application/index.d.ts","../node_modules/@types/ember__test/index.d.ts","../node_modules/@types/ember__destroyable/index.d.ts","../node_modules/@types/rsvp/index.d.ts","../node_modules/@types/htmlbars-inline-precompile/index.d.ts","../node_modules/@types/ember__object/observers.d.ts","../node_modules/@types/ember__object/proxy.d.ts","../node_modules/@types/ember__object/promise-proxy-mixin.d.ts","../node_modules/@types/ember__object/internals.d.ts","../node_modules/@types/ember__object/events.d.ts","../node_modules/@types/ember__debug/container-debug-adapter.d.ts","../node_modules/@types/ember__debug/data-adapter.d.ts","../node_modules/@types/ember__application/deprecations.d.ts","../node_modules/@types/ember__array/proxy.d.ts","../node_modules/@types/ember__array/types/prototype-extensions.d.ts","../node_modules/@types/ember__component/-private/target-action-support.d.ts","../node_modules/@types/ember__component/-private/text-support.d.ts","../node_modules/@types/ember__component/text-area.d.ts","../node_modules/@types/ember__component/text-field.d.ts","../node_modules/@types/ember__component/checkbox.d.ts","../node_modules/@types/ember__component/helper.d.ts","../node_modules/@types/ember__routing/hash-location.d.ts","../node_modules/@types/ember__routing/auto-location.d.ts","../node_modules/@types/ember__routing/history-location.d.ts","../node_modules/@types/ember__routing/none-location.d.ts","../node_modules/@types/ember__routing/link-component.d.ts","../node_modules/@types/ember__application/resolver.d.ts","../node_modules/@types/ember__test/adapter.d.ts","../node_modules/@types/ember/index.d.ts","../node_modules/@types/qunit/index.d.ts","../node_modules/@types/ember-test-helpers/index.d.ts","../node_modules/@types/ember-qunit/index.d.ts","../node_modules/@types/ember-resolver/index.d.ts","../node_modules/@types/ember__test-helpers/index.d.ts","../node_modules/@types/eslint/helpers.d.ts","../node_modules/@types/eslint/lib/rules/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/estree/index.d.ts","../node_modules/@types/eslint/index.d.ts","../node_modules/@types/estree-jsx/index.d.ts","../node_modules/@types/range-parser/index.d.ts","../node_modules/@types/qs/index.d.ts","../node_modules/@types/express-serve-static-core/index.d.ts","../node_modules/@types/mime/index.d.ts","../node_modules/@types/serve-static/index.d.ts","../node_modules/@types/express/index.d.ts","../node_modules/@types/fs-extra/index.d.ts","../node_modules/@types/minimatch/index.d.ts","../node_modules/@types/glob/index.d.ts","../node_modules/@types/is-empty/index.d.ts","../node_modules/@types/js-yaml/index.d.ts","../node_modules/@types/unist/index.d.ts","../node_modules/@types/mdast/index.d.ts","../node_modules/@types/minimist/index.d.ts","../node_modules/@types/normalize-package-data/index.d.ts","../node_modules/@types/parse-json/index.d.ts","../node_modules/@types/retry/index.d.ts","../node_modules/@types/rimraf/index.d.ts","../node_modules/@types/supports-color/index.d.ts","../node_modules/@types/symlink-or-copy/index.d.ts","../node_modules/@types/text-table/index.d.ts"],"fileInfos":[{"version":"6adbf5efd0e374ff5f427a4f26a5a413e9734eee5067a0e86da69aea41910b52","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"927cb2b60048e1395b183bf74b2b80a75bdb1dbe384e1d9fac654313ea2fb136","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"e8c9f4e445a489991ca1a4232667de3ac36b07ba75ea335971fbeacf2d26fe67","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"d96fa8a56871904776165ceb8e00bd56127e1a017bb2664cae76223b5f815141","9d78575b3d3486476abb91c5fb557244e279fd4d0452065f36ba5c6153802f57","37412e5cdf8740c66b3351f8748b2a0567c2d8a88717b1f2e1747f25ef8a5567","9530fdd4807b20140eb6fb5c0086f9e4b1035a09ebbbb08d4075d03bc8cb562e","e2754b037d9944a8f84d7c6d0795adf1c3bad726199ef02dffa67ee8d530fe37","b5ee4c617064bb755dd71a57937f3bffac0a831f49770d67650c920d0ff3e8e7","3706aa52dc623e380fdc24e6c94cf23dd853f73d52dec207bdc8120013cc54bb","d8b849301afa5b36f448b6a8f258b823d9b2d2ac0733e5f79e414572588df71e","b8f3952616a51a68151b06721ea2bb5966a4e01c88bc67d0d408a5a5c14c7a6c","bf5fe1ba0c01e2b37cb69d72754bb952aa6be4d20b31904df894421c590a12e5","3c6ff23b5a76e6ca799eed0947762775c3c9da5afc812b462811a740a17de2e1","5dbe32c2663649f50a37f94e93b8a91424b770d6dcc98313748bc6f102294737","63a236884c4cf3d86b2050bcc16769ce24dda4a75f9f16c43c2712c77e8fa866",{"version":"422a37cae7cb81c11bac60ba5e5e842eca050ba2b66c320bd02eb3fad283f765","affectsGlobalScope":true},"f7111401e652b5d900b9808d9ab482e92c529b8a1194be743ae49c74a725f0f5","0d5a2ee1fdfa82740e0103389b9efd6bfe145a20018a2da3c02b89666181f4d9","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"92d63add669d18ebc349efbacd88966d6f2ccdddfb1b880b2db98ae3aa7bf7c4","affectsGlobalScope":true},"ccc94049a9841fe47abe5baef6be9a38fc6228807974ae675fb15dc22531b4be",{"version":"9acfe4d1ff027015151ce81d60797b04b52bffe97ad8310bb0ec2e8fd61e1303","affectsGlobalScope":true},"95843d5cfafced8f3f8a5ce57d2335f0bcd361b9483587d12a25e4bd403b8216","afc6e96061af46bcff47246158caee7e056f5288783f2d83d6858cd25be1c565",{"version":"34f5bcac12b36d70304b73de5f5aab3bb91bd9919f984be80579ebcad03a624e","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","2f520601649a893e6a49a8851ebfcf4be8ce090dc1281c2a08a871cb04e8251f","f50c975ab7b50e25a69e3d8a3773894125b44e9698924105f23b812bf7488baf","2b8c764f856a1dd0a9a2bf23e5efddbff157de8138b0754010be561ae5fcaa90","ad4b60488fb1e562bf375dac9299815f7028bf667d9b5887b2d01d501b7d1ddd","246341c3a7a2638cf830d690e69de1e6085a102c6a30596435b050e6ac86c11a","6972fca26f6e9bd56197568d4379f99071a90766e06b4fcb5920a0130a9202be",{"version":"4a2628e95962c8ab756121faa3ac2ed348112ff7a87b5c286dd2cc3326546b4c","affectsGlobalScope":true},"6dfd135b38ab97c536d9c966fc5a5a879a19c6ed75c2c9633902be1ef0945ff7","a049a59a02009fc023684fcfaf0ac526fe36c35dcc5d2b7d620c1750ba11b083","a361a26932d73497a174a6d48c53cfedb55f735f20e8638fdf7b25cdeaac9ca4","b287b810b5035d5685f1df6e1e418f1ca452a3ed4f59fd5cc081dbf2045f0d9b","4b9a003b5c556c96784132945bb41c655ea11273b1917f5c8d0c154dd5fd20dd","a458dc78104cc80048ac24fdc02fe6dce254838094c2f25641b3f954d9721241",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"902cd98bf46e95caf4118a0733fb801e9e90eec3edaed6abdad77124afec9ca2","abc1c425b2ad6720433f40f1877abfa4223f0f3dd486c9c28c492179ca183cb6","cd4854d38f4eb5592afd98ab95ca17389a7dfe38013d9079e802d739bdbcc939","94eed4cc2f5f658d5e229ff1ccd38860bddf4233e347bf78edd2154dee1f2b99",{"version":"e51bee3200733b1f58818b5a9ea90fcd61c5b8afa3a0378391991f3696826a65","affectsGlobalScope":true},"9f1069b9e2c051737b1f9b4f1baf50e4a63385a6a89c32235549ae87fc3d5492","ee18f2da7a037c6ceeb112a084e485aead9ea166980bf433474559eac1b46553","29c2706fa0cc49a2bd90c83234da33d08bb9554ecec675e91c1f85087f5a5324","0acbf26bf958f9e80c1ffa587b74749d2697b75b484062d36e103c137c562bc3","d7838022c7dab596357a9604b9c6adffe37dc34085ce0779c958ce9545bd7139","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"a279435e7813d1f061c0cab6ab77b1b9377e8d96851e5ed4a76a1ce6eb6e628f","c33a6ea7147af60d8e98f1ac127047f4b0d4e2ce28b8f08ff3de07ca7cc00637",{"version":"b42b47e17b8ece2424ae8039feb944c2e3ba4b262986aebd582e51efbdca93dc","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","2408611d9b4146e35d1dbd1f443ccd8e187c74614a54b80300728277529dbf11","998a3de5237518c0b3ac00a11b3b4417affb008aa20aedee52f3fdae3cb86151","ad41008ffe077206e1811fc873f4d9005b5fd7f6ab52bb6118fef600815a5cb4","d88ecca73348e7c337541c4b8b60a50aca5e87384f6b8a422fc6603c637e4c21","badae0df9a8016ac36994b0a0e7b82ba6aaa3528e175a8c3cb161e4683eec03e","c3db860bcaaaeb3bbc23f353bbda1f8ab82756c8d5e973bebb3953cb09ea68f2","235a53595bd20b0b0eeb1a29cb2887c67c48375e92f03749b2488fbd46d0b1a0","bc09393cd4cd13f69cf1366d4236fbae5359bb550f0de4e15767e9a91d63dfb1","9c266243b01545e11d2733a55ad02b4c00ecdbda99c561cd1674f96e89cdc958","c71155c05fc76ff948a4759abc1cb9feec036509f500174bc18dad4c7827a60c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"e6ef68f677c1b63967d87568043b8af9d2dfd71d5873acd1de3abeb1db606741","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90",{"version":"0c9d1fd5b43d5e88c277f7f53cffc87778190f2f9a1f57743559421f04fc730b","affectsGlobalScope":true},{"version":"f6ae17283c6912c202004178339d6d22f8c9edfe4e335f9f11b555c631633daf","affectsGlobalScope":true},"567a315b240a060518c532d38a46803b6d35e75dc14a9be435b6dc20c816741e","310a0cc92822ada13db096f9970a576de760b2f82a3782a24af62cb5a07e0aff","117ffeecf6c55e25b6446f449ad079029b5e7317399b0a693858faaaea5ca73e","6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","78828b06c0d3b586954015e9ebde5480b009e166c71244763bda328ec0920f41",{"version":"2a19c7dd007f71b9db87dba915e20d894dbdac8aa8fab5d1c3083a61f2316a5c","affectsGlobalScope":true},{"version":"f3832e609ad73d8001ef05659bea2b8b03ea96026623e814834ff128f5e0f99b","affectsGlobalScope":true},{"version":"a4832e26b82049fc2774c96ca6e1c17b2c204246570a62fdbe7e8ee8af2cd4d4","affectsGlobalScope":true},{"version":"6f1f78e8c2a5c7cd2c38aa9cc5da26d9c039f2bbfa753f2a0a54ce41c4dff8d0","affectsGlobalScope":true},"ec89427601297d439c961528832a75017d9356bec2ee42c1d16f2274590d9330","d0b93cf4a086095121a40a8a878f81c72783fc819ad055225a36ef829c6f41d4","5c4e87dc7a02f905b46f6dca0ff2e301061cf5982dba748a45ab2e9104e5e431","fe6ee6ee26779d8e0960b8a912351eeef403bb214fe296ed15c30a4c78e42c27","0ca6293263a34e366f4e6324e237a8eb4e2eff80d6d4a3b739f1b9dfff968910","6f4776d7e9d3e957394c7891095438ea869f9b1594b35468fa080b8d2184286f","3b58e1efebd36da14e63d58190a64c141ebd9d74faf02592a2e6a3fa65d6890e","08aa645136619fcb989b7a80c9757c69c67ee271a1d937d3e3124b9d30b826fd","338955cd5cd9f362a930657c70ab26b4e5868af14d344676ff9086c119a9c7bf","402672918f2d1324b5cc6fd022d0ffe38568f047109817fcdd197d9046c0c1d3","55463b262402587ce89efd32bd927f57bb9a4163e786a69fe207001b1439fed3","8efd97942be10b42b4ec36aa1e00343520a7036f6058e7ef3252e4601b76ccf7","86a06845d948ab9ed54ec43468d76f7d82b8fbf8acc8d165091e40eb5c2743f9","1918372988f3409eda28484f34d67784d101b81d3612c74a8acdf1f256f67152","43685e702e1af1436aa1cc365f8ebbc60e77cbdd25ca1c8762359de8dc5dc6e1","7d842d43ac15b721a01e70c0a147953a650f921ea289e963e698cdcfe95fb795","76aefae3d07bc765256536ebc12cfe2dd4500c0d22a732278b0658aed8205229","4d6e3b334ad9641dae6a3593483d0901ea2ec49dfc556d4c49ca82e0bd86aa1e","7ad7d826daae0f2ece2b6a9f2061a878de79ba10626d9273b467c59ffc2628f6","16f45390b48259f7c98bc4f1580864dd4d10fae9ac6aafc6527956e294f6cdff","2382c312f12760183c4c3494aef017ccadff1a7b78364f957375ee94fdd4e4bb","cbce6c6474c00626496abf74f2c97b145a64f81fc74edc7fd865e8e0e9eccdc7","82f189ac9621341577dc9ab65dd233266404850ca9d00cecbab184d05d1f6951","5aff7c348047933a46dd2904de4122e01ddd2ca0b2c202ac651fe8ad523cef97","31e3475a19c89fdc6e178b69fa91c898f9929b597018644200152d8cf65d7559","d854151bab4e76705d4e6e30d03fa1153ea34b26b99ef5e7286e61c14b76fe81","7c8681eb28124441c874bb60629700793a14dd4784d908b5ae8a3a044291f913","8de1143be35fa8f0d23f7264546154451238ec3426c8fe4e192d79df1dc50131","ef22582a8ec971dbb9faa901211ca72514ff1db555a74c721f70a9b23acc534c","72706fb358034c6d99e981e3412b4b8720f5188d6e643d72a968e1fb781ddd88","dc1cd9a1db1cedef64be1288788460fcfd8d7a24f27b84adc183e78a3473d182","d895f05288eb89d8fc09f3bd23f5c2695c46e1803539fac2dfc7bfbbf444d7a3","ad091d6664ede83965a45adcfcca95147880ffbe93ba515544bb5fdc958d645e","e88ea1754bf38206aad0bbcbe5bad686bb1906d6d0f165bcbd0a508f267c990d","6386dd51b6ade157b327b4a500c6aaa6fa9ae37fcb4065bcbe3f1bb8d43903be","b501f0e7ecb387e937229b135fbfa64d3f28a9b6bd14bfe5908114b6a2e93f26","7b0ef92ca4e5c3bcb307de98e97a59170538c2e268fd0d79a59c50553af6a062","9405ca26fcb3aac27934c68e4882443e19a5786099fd733b1a297a9f83fd0263","cf8c8dd2536bff7fa2d363c506f156fadd89c685be56b38a5b975dec969179a9","203977224a204f8acf183090d9871e0268df540903c321c33b7cca98f37dce01","c90f22e2a4459b6881c20ddf284957a1a8a2ecd9e422fe26786343b4b4e92447","75ff3db73eddd5817bb3c0592edcc0e423e45106fa57c9109df7c60c71c5c458","9a6bc4fa5cf455d4b86848454cebb092d0adc794a71e4c5c646e2ea29c8f10e7","bf415db387622dbe31009d156e620675a5fe23b2dadec2e12587d8954ae8ec91","a0aae3cf77fb496a93840806df203182dba45dea11838ef8edcb6e15b1be8c67","4570b612394570c2dc1af6c329783a4bfe023785be394562f4741148ad819428","8eb3a8cd95712a049bd12ac50909e0b9d7161ce917252120c2ef42f8a0c8ace3","a6a4ebab46f1176c0b05eee327386475e1d4544eba1db11261d0a0fc07060155","636affe55ca523cba215ece7e38e14e575b273feec68d0eeefedd253af514aea","cb4ffed36c7ac466d643e3cc68f26aa9bb451412f1f6ded51af946791a128791","15b2d197e1b4098140c926d390e9effbded864998cf2613a8f79c6e8278255d1","5f7a5f2c5fddda1cf565694daf0f8f9c19f38084823273dec38de91fddf35c60","8a8f2b1e3749103a4959ed74b6e46b6ac320aceb57db0b8da25081eee6f0d7dd","1123091629afa17fb06017bc9cd3e47c4fd32d7459109da0013836ab916cc1f0","eb631b771a0efdb9e955c775362479806fb1c204cc060a5ba7da6bbe2bd87ebb","56ca54d2591bbf0baca10f87b360a63772ef596b0b084e9fcd40f22d0b50768f","bb9f12997633bd8a60b3660e3f1c56f4f9cbb946f2bad0fbe4178318e4fcd7ad","5e1044a4a6525dd60e517ce941131a75cf25d521df5b6c813ae53b7dc09a5451","addb1fa8641a8b66af4bef39655c2dabbfffe55dc876e996d8908ca275eab3a9","d8eee08299e1948d2b8911df723d8144b478b1ec79233a65e9cd14509b186dc8","80068163bbc88c9f28dc053a13236f4c4ca3c8084ebdc9e02355701b12ff70b4","807288b4daaef8455cdfdb3739a6a753452126124e16b8dae8e618564ceb9cf0","5a07b32145725ce0cc33e793f65fb3c9fa8aed5d205470aa47c5ba9e485e5496","cffab72b5c4cc0aecb29326224f66a86bef67a84f751cfa4cc9b9010ceb683c8","0ae53f0cfbfaa6f77524a8d9df0e93e977dd3f3fa96e613d2b09b3b7d98b678a","4ffbbfda514e10032dc93710aadae5fed914a3ec6b9815de5154e56fb900c41c","0b22567c043921673c591032a5e88a7a426286f45214031fcca520574fcea0a1","84b956377e3f7dbc365dabe8b83422991707fa62964881e22a8522a9989e0704","371438dcb043c8a19cfa46b85aacffa9eb7a3004ec9cd3bf70960a74aaf2daf7","74fda237058419591b16c1a3e1dc43c00c08f5c75dfde4946cc509fb46b73ec0","036c80534d234278e16a752205d4a7e7f99e55b4e11f848c23ebe95f2a48aac8","8c2cb979d200cd14c5b04b8b2d757c3ef3c91fb70ad0da58d319aefe8e31ff6e","e4f7551eac2795d3a906575d4b1b3c26c381a16ac7931bb7b7fbfbdaeda4dcd5","6b2194415694ef14c9e42e90faa2524f34d0f68af793c00997f9ee9836688ab0","8dd4b5d18a38c8dadbd2a169aab22573be4fe29d48f2e35fd658b63dd2dbac7f","16f45390b48259f7c98bc4f1580864dd4d10fae9ac6aafc6527956e294f6cdff","d589dfa8364bf5bcddbc80c0db81414785b0fd223511c7390a03a525436742ba","0c8524bd82c139916beec5058ff02431f49c8ff21876a6b1efe3de0c1b2d50e6",{"version":"fb1c1afd32dfdf6359b3972aaf2aa483d9f094de8d2136e55e78a63bf2d75523","affectsGlobalScope":true},"4869263db981f90e1e16c763d9240dfdb1319da20526e56dc68df66760b7573e",{"version":"5703c05afffe0026e84535bcf7c9779c0c88cc769add41f497f369b8d319df5b","affectsGlobalScope":true},"4ee4da2ece4efeff7ecd644ec140c4acd49ac0ada8821c679e9745df40dcc148","ad5b0cfec39975fdb103ec457fb03d2dc5db1003cd60178329b80cdacda317a5",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"0133ebdd17a823ae56861948870cde4dac18dd8818ab641039c85bbb720429e0","0359682c54e487c4cab2b53b2b4d35cc8dea4d9914bc6abcdb5701f8b8e745a4","7d7c8ef7d48a035142c07dae60545ecc0e4af4c337742760cb09726f2f8e31db","874d84ca5699231d5af2868fef01fc63f948bd83be928881479db48508f92ca0","f54243828d27a24d59ebf25740dfe6e7dff3931723f8ce7b658cdbe766f89da9","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"d168ca1638b27c95909b68805c84b8018dba87630bb1e4cc99be4ccdf119f39d","affectsGlobalScope":true},"84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","aca36e2d27783f4bad7fc1786a532ff76024f0fc8575df48bcd9a5eb452fe7e7","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","d45d40831ccbd547e3f4ae8f326420b9e454dd27fa970f417c8e94a23e93db29","686e548ae30250d62532c8cacb43fccc922b693408371bd3503563c4a0f28eed","cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","2a2e2c6463bcf3c59f31bc9ab4b6ef963bbf7dffb049cd017e2c1834e3adca63","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","58a3914b1cce4560d9ad6eee2b716caaa030eda0a90b21ca2457ea9e2783eaa3","3034db2891e04de367126370bebec88ac3b4e3b1eb8b7dc30671ccddb717eed2","105fa3d1b286795f9ac1b82f5a737db303dfe65ebc9830c1938a2bbe538a861f","7bb937550ebed130a912a9aac54d884b50cbb15061ce100ea1fd001e4be0dc58","0010173d7ce339de64a40603a5fd67950bc107e5983fb7521b52b221146ebfe1"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declarationDir":"../declarations","emitDeclarationOnly":true,"experimentalDecorators":true,"importsNotUsedAsValues":2,"inlineSourceMap":true,"inlineSources":true,"module":99,"noEmitOnError":false,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitReturns":false,"noImplicitThis":true,"noUnusedLocals":true,"noUnusedParameters":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":99},"fileIdsList":[[56,57,58,59,60,61,62,107,171],[58,59,60,61,62,107],[56,58,59,60,61,62,63,107,171],[82,107,114,115],[107,117],[107],[96,107,114],[82,107,114],[82,107],[107,123],[107,206,207,208],[107,206],[107,130,181,182,206],[50,51,52,53,54,55,56,58,59,60,61,62,107,130,131,132,133,135,137,138,139,141,142,143,144,146,147,149,150,151,154,155,156,157,158,163,166,168,170,171,172,173,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,195,196,197,198,199,200,201,202,203,204,205,206],[107,148,178],[107,174],[52,107],[107,149,172,173,174,175,176,177],[107,147],[55,107],[50,51,107,141,143],[50,107,142],[50,54,107,139,140],[50,51,107,141,142],[50,107,138,142,143],[51,55,107,139],[54,107,139,140],[50,107],[55,107,156,158],[50,107,193],[107,163],[107,130,159,160,161,162],[107,163,194],[50,51,55,107,156],[107,148],[55,107,188],[55,107,144,145,147,148],[55,107,144,146],[50,51,107],[52,55,107],[51,52,53,54,107,136],[50,52,53,107],[50,107,181],[107,134],[107,164],[107,164,165],[107,166,168,169,170,171],[55,107,156,157,158,166,167],[56,58,59,60,61,62,107,164,165,166,171],[55,56,58,59,60,61,62,107,158,166,169,170],[107,151,152,153],[51,55,107],[107,132],[107,131],[107,155,178,182,204,206,211],[107,178],[55,107,136],[107,212,213,214,215],[107,216],[107,215],[79,82,107,114,218,219],[107,116,219,220,222],[80,107,114],[79,80,107,114,225],[107,125,126,127,128,129],[107,229],[64,107],[67,107],[68,73,107],[69,79,80,87,96,106,107],[69,70,79,87,107],[71,107],[72,73,80,88,107],[73,96,103,107],[74,76,79,87,107],[75,107],[76,77,107],[78,79,107],[79,107],[79,80,81,96,106,107],[79,80,81,96,107],[82,87,96,106,107],[79,80,82,83,87,96,103,106,107],[82,84,96,103,106,107],[64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113],[79,85,107],[86,106,107],[76,79,87,96,107],[88,107],[89,107],[67,90,107],[91,105,107,111],[92,107],[93,107],[79,94,107],[94,95,107,109],[79,96,97,98,107],[96,98,107],[96,97,107],[99,107],[100,107],[79,101,102,107],[101,102,107],[73,87,103,107],[104,107],[87,105,107],[68,82,93,106,107],[73,107],[96,107,108],[107,109],[107,110],[68,73,79,81,90,96,106,107,109,111],[96,107,112],[80,107,114,226],[82,107,114,221]],"referencedMap":[[58,1],[59,1],[61,1],[60,1],[62,1],[63,2],[57,3],[116,4],[118,5],[117,6],[119,6],[120,7],[115,8],[121,6],[122,9],[124,10],[209,11],[210,12],[208,13],[206,14],[176,15],[175,16],[177,17],[190,6],[178,18],[173,19],[204,20],[174,6],[142,21],[138,22],[141,23],[143,24],[139,25],[191,26],[192,27],[162,28],[160,28],[159,29],[193,20],[194,30],[161,28],[197,31],[198,20],[163,32],[195,33],[196,33],[157,34],[188,35],[189,36],[150,6],[180,6],[146,28],[144,28],[148,20],[145,6],[149,37],[147,38],[155,6],[156,28],[140,28],[52,39],[51,40],[53,17],[158,28],[187,17],[55,41],[186,17],[50,40],[54,42],[183,17],[185,43],[184,40],[135,44],[134,6],[165,45],[164,6],[169,6],[166,46],[200,20],[199,20],[201,20],[172,47],[203,31],[202,20],[168,48],[170,49],[171,50],[167,6],[153,6],[151,6],[154,51],[152,6],[56,52],[133,53],[131,6],[132,54],[211,55],[205,6],[179,56],[136,6],[137,57],[212,6],[216,58],[213,59],[217,60],[215,6],[220,61],[223,62],[224,63],[226,64],[182,6],[227,6],[126,6],[125,6],[130,65],[128,6],[127,6],[228,6],[214,6],[230,66],[221,6],[225,6],[231,6],[123,6],[64,67],[65,67],[67,68],[68,69],[69,70],[70,71],[71,72],[72,73],[73,74],[74,75],[75,76],[76,77],[77,77],[78,78],[79,79],[80,80],[81,81],[66,6],[113,6],[82,82],[83,83],[84,84],[114,85],[85,86],[86,87],[87,88],[88,89],[89,90],[90,91],[91,92],[92,93],[93,94],[94,95],[95,96],[96,97],[98,98],[97,99],[99,100],[100,101],[101,102],[102,103],[103,104],[104,105],[105,106],[106,107],[107,108],[108,109],[109,110],[110,111],[111,112],[112,113],[232,6],[233,6],[219,6],[207,6],[218,6],[234,6],[235,114],[181,6],[222,115],[129,6],[236,6],[237,6],[238,6],[229,6],[10,6],[11,6],[15,6],[14,6],[2,6],[16,6],[17,6],[18,6],[19,6],[20,6],[21,6],[22,6],[23,6],[3,6],[4,6],[27,6],[24,6],[25,6],[26,6],[28,6],[29,6],[30,6],[5,6],[31,6],[32,6],[33,6],[34,6],[6,6],[35,6],[36,6],[37,6],[38,6],[7,6],[43,6],[39,6],[40,6],[41,6],[42,6],[8,6],[47,6],[44,6],[45,6],[46,6],[1,6],[9,6],[49,6],[48,6],[13,6],[12,6]],"exportedModulesMap":[[58,1],[59,1],[61,1],[60,1],[62,1],[63,2],[57,3],[116,4],[118,5],[117,6],[119,6],[120,7],[115,8],[121,6],[122,9],[124,10],[209,11],[210,12],[208,13],[206,14],[176,15],[175,16],[177,17],[190,6],[178,18],[173,19],[204,20],[174,6],[142,21],[138,22],[141,23],[143,24],[139,25],[191,26],[192,27],[162,28],[160,28],[159,29],[193,20],[194,30],[161,28],[197,31],[198,20],[163,32],[195,33],[196,33],[157,34],[188,35],[189,36],[150,6],[180,6],[146,28],[144,28],[148,20],[145,6],[149,37],[147,38],[155,6],[156,28],[140,28],[52,39],[51,40],[53,17],[158,28],[187,17],[55,41],[186,17],[50,40],[54,42],[183,17],[185,43],[184,40],[135,44],[134,6],[165,45],[164,6],[169,6],[166,46],[200,20],[199,20],[201,20],[172,47],[203,31],[202,20],[168,48],[170,49],[171,50],[167,6],[153,6],[151,6],[154,51],[152,6],[56,52],[133,53],[131,6],[132,54],[211,55],[205,6],[179,56],[136,6],[137,57],[212,6],[216,58],[213,59],[217,60],[215,6],[220,61],[223,62],[224,63],[226,64],[182,6],[227,6],[126,6],[125,6],[130,65],[128,6],[127,6],[228,6],[214,6],[230,66],[221,6],[225,6],[231,6],[123,6],[64,67],[65,67],[67,68],[68,69],[69,70],[70,71],[71,72],[72,73],[73,74],[74,75],[75,76],[76,77],[77,77],[78,78],[79,79],[80,80],[81,81],[66,6],[113,6],[82,82],[83,83],[84,84],[114,85],[85,86],[86,87],[87,88],[88,89],[89,90],[90,91],[91,92],[92,93],[93,94],[94,95],[95,96],[96,97],[98,98],[97,99],[99,100],[100,101],[101,102],[102,103],[103,104],[104,105],[105,106],[106,107],[107,108],[108,109],[109,110],[110,111],[111,112],[112,113],[232,6],[233,6],[219,6],[207,6],[218,6],[234,6],[235,114],[181,6],[222,115],[129,6],[236,6],[237,6],[238,6],[229,6],[10,6],[11,6],[15,6],[14,6],[2,6],[16,6],[17,6],[18,6],[19,6],[20,6],[21,6],[22,6],[23,6],[3,6],[4,6],[27,6],[24,6],[25,6],[26,6],[28,6],[29,6],[30,6],[5,6],[31,6],[32,6],[33,6],[34,6],[6,6],[35,6],[36,6],[37,6],[38,6],[7,6],[43,6],[39,6],[40,6],[41,6],[42,6],[8,6],[47,6],[44,6],[45,6],[46,6],[1,6],[9,6],[49,6],[48,6],[13,6],[12,6]],"semanticDiagnosticsPerFile":[58,59,61,60,62,63,57,116,118,117,119,120,115,121,122,124,209,210,208,206,176,175,177,190,178,173,204,174,142,138,141,143,139,191,192,162,160,159,193,194,161,197,198,163,195,196,157,188,189,150,180,146,144,148,145,149,147,155,156,140,52,51,53,158,187,55,186,50,54,183,185,184,135,134,165,164,169,166,200,199,201,172,203,202,168,170,171,167,153,151,154,152,56,133,131,132,211,205,179,136,137,212,216,213,217,215,220,223,224,226,182,227,126,125,130,128,127,228,214,230,221,225,231,123,64,65,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,66,113,82,83,84,114,85,86,87,88,89,90,91,92,93,94,95,96,98,97,99,100,101,102,103,104,105,106,107,108,109,110,111,112,232,233,219,207,218,234,235,181,222,129,236,237,238,229,10,11,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,35,36,37,38,7,43,39,40,41,42,8,47,44,45,46,1,9,49,48,13,12]},"version":"4.5.2"}
|
package/addon/types.ts
CHANGED
@@ -1,13 +1,25 @@
|
|
1
1
|
import type { default as _DocumentService } from './services/browser/document';
|
2
2
|
import type { default as _LocalStorageService } from './services/browser/local-storage';
|
3
|
+
import type { default as _SessionStorageService } from './services/browser/session-storage';
|
3
4
|
import type { default as _NavigatorService } from './services/browser/navigator';
|
4
5
|
import type { default as _WindowService } from './services/browser/window';
|
5
6
|
|
6
7
|
export type WindowService = typeof _WindowService;
|
7
8
|
export type DocumentService = typeof _DocumentService;
|
8
9
|
export type LocalStorageService = typeof _LocalStorageService;
|
10
|
+
export type SessionStorageService = typeof _SessionStorageService;
|
9
11
|
export type NavigatorService = typeof _NavigatorService;
|
10
12
|
|
11
13
|
export interface Class<T> {
|
12
14
|
new (...args: unknown[]): T;
|
13
15
|
}
|
16
|
+
|
17
|
+
// https://stackoverflow.com/a/51365037/356849
|
18
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
19
|
+
export type RecursivePartial<T> = {
|
20
|
+
[P in keyof T]?: T[P] extends (infer U)[]
|
21
|
+
? RecursivePartial<U>[]
|
22
|
+
: T[P] extends object
|
23
|
+
? RecursivePartial<T[P]>
|
24
|
+
: T[P];
|
25
|
+
};
|
@@ -76,6 +76,8 @@ export function proxyService<BrowserAPI>(
|
|
76
76
|
|
77
77
|
static create(injections: Parameters<CreateMethod>): ReturnType<CreateMethod> {
|
78
78
|
let serviceInstance = class ProxiedService extends Service {
|
79
|
+
// @private
|
80
|
+
declare __browser_object__: BrowserAPI;
|
79
81
|
/*
|
80
82
|
* We cannot create the base Service, we must use a new one.
|
81
83
|
* If we don't, we are unable to run tests in a legacy qunit environment
|
@@ -88,6 +90,8 @@ export function proxyService<BrowserAPI>(
|
|
88
90
|
|
89
91
|
let browserObject = isConstructable(ObjectToProxy) ? new ObjectToProxy() : ObjectToProxy;
|
90
92
|
|
93
|
+
serviceInstance.__browser_object__ = browserObject;
|
94
|
+
|
91
95
|
return new Proxy(serviceInstance, instanceHandlerFor(browserObject));
|
92
96
|
}
|
93
97
|
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import Service from '@ember/service';
|
2
|
+
|
3
|
+
type FakeWebStorage = Record<string, string>;
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Mimics the Web Storage API, as used by localStorage and sessionStorage.
|
7
|
+
*
|
8
|
+
*/
|
9
|
+
class FakeWebStorageService extends Service {
|
10
|
+
fakeWebStorage: FakeWebStorage = {};
|
11
|
+
|
12
|
+
setItem(key: string, value: string): void {
|
13
|
+
// Everything in Web Storage is a string
|
14
|
+
this.fakeWebStorage[key] = `${value}`;
|
15
|
+
}
|
16
|
+
|
17
|
+
getItem(key: string): string | null {
|
18
|
+
return this.fakeWebStorage[key] || null;
|
19
|
+
}
|
20
|
+
|
21
|
+
removeItem(key: string): void {
|
22
|
+
delete this.fakeWebStorage[key];
|
23
|
+
}
|
24
|
+
|
25
|
+
clear(): void {
|
26
|
+
this.fakeWebStorage = {};
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
export class FakeLocalStorageService extends FakeWebStorageService {}
|
31
|
+
export class FakeSessionStorageService extends FakeWebStorageService {}
|
@@ -1,41 +1,101 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
|
1
|
+
import window from 'ember-window-mock';
|
2
|
+
import Service from '@ember/service';
|
3
|
+
import { proxyService } from 'ember-browser-services/utils/proxy-service';
|
4
|
+
import { setupWindowMock } from 'ember-window-mock/test-support';
|
5
|
+
|
6
|
+
import { FakeLocalStorageService, FakeSessionStorageService } from './-private/web-storage';
|
6
7
|
|
7
|
-
import type Service from '@ember/service';
|
8
8
|
import type { TestContext } from 'ember-test-helpers';
|
9
|
+
import type { RecursivePartial } from 'ember-browser-services/types';
|
10
|
+
import { patchWindow } from './window-mock-augments';
|
9
11
|
|
10
12
|
type Fakes = {
|
11
|
-
window?: boolean |
|
13
|
+
window?: boolean | typeof Service | RecursivePartial<Window>;
|
12
14
|
localStorage?: boolean;
|
13
|
-
|
14
|
-
|
15
|
+
sessionStorage?: boolean;
|
16
|
+
document?: boolean | typeof Service | RecursivePartial<Document>;
|
17
|
+
navigator?: boolean | RecursivePartial<Navigator>;
|
15
18
|
};
|
16
19
|
|
17
20
|
export function setupBrowserFakes(hooks: NestedHooks, options: Fakes): void {
|
21
|
+
setupWindowMock(hooks);
|
22
|
+
|
18
23
|
hooks.beforeEach(function (this: TestContext) {
|
19
24
|
if (options.window) {
|
20
|
-
|
25
|
+
// default, can still be overwritten
|
26
|
+
// see: https://github.com/kaliber5/ember-window-mock/issues/175
|
27
|
+
let patched = patchWindow(window);
|
28
|
+
let service = maybeMake(options.window, patched);
|
29
|
+
|
30
|
+
this.owner.register('service:browser/window', service);
|
21
31
|
}
|
22
32
|
|
23
33
|
if (options.document) {
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
);
|
34
|
+
let service = maybeMake(options.document, window.document);
|
35
|
+
|
36
|
+
this.owner.register('service:browser/document', service);
|
28
37
|
}
|
29
38
|
|
30
39
|
if (options.localStorage) {
|
31
40
|
this.owner.register('service:browser/local-storage', FakeLocalStorageService);
|
32
41
|
}
|
33
42
|
|
43
|
+
if (options.sessionStorage) {
|
44
|
+
this.owner.register('service:browser/session-storage', FakeSessionStorageService);
|
45
|
+
}
|
46
|
+
|
34
47
|
if (options.navigator) {
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
);
|
48
|
+
let service = maybeMake(options.navigator, window.navigator);
|
49
|
+
|
50
|
+
this.owner.register('service:browser/navigator', service);
|
39
51
|
}
|
40
52
|
});
|
41
53
|
}
|
54
|
+
|
55
|
+
// this usage of any is correct, because it literally could be *any*thing
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
57
|
+
type UnknownObject = Record<string, any>;
|
58
|
+
|
59
|
+
export function maybeMake<DefaultType extends UnknownObject, TestClass extends UnknownObject>(
|
60
|
+
maybeImplementation: true | typeof Service | TestClass | RecursivePartial<DefaultType>,
|
61
|
+
target: DefaultType,
|
62
|
+
): DefaultType {
|
63
|
+
if (maybeImplementation === true) {
|
64
|
+
return proxyService(target);
|
65
|
+
}
|
66
|
+
|
67
|
+
if (maybeImplementation.prototype instanceof Service) {
|
68
|
+
return target;
|
69
|
+
}
|
70
|
+
|
71
|
+
if (typeof maybeImplementation === 'object') {
|
72
|
+
applyStub(target, maybeImplementation);
|
73
|
+
|
74
|
+
return proxyService(target);
|
75
|
+
}
|
76
|
+
|
77
|
+
return proxyService(target);
|
78
|
+
}
|
79
|
+
|
80
|
+
// we are already using ember-window-mock, so the proxy internal to that package will
|
81
|
+
// "just handle" setting stuff on the window
|
82
|
+
//
|
83
|
+
// NOTE:
|
84
|
+
// - Location implementation is incomplete:
|
85
|
+
// https://github.com/kaliber5/ember-window-mock/blob/2b8fbf581fc65e7f5455cd291497a3fdc2efdaf5/addon-test-support/-private/mock/location.js#L23
|
86
|
+
// - does not allow setting "origin"
|
87
|
+
function applyStub(root: any, partial?: any) {
|
88
|
+
if (!partial) return root;
|
89
|
+
|
90
|
+
for (let key of Object.keys(partial)) {
|
91
|
+
let value = partial[key];
|
92
|
+
|
93
|
+
if (Array.isArray(value)) {
|
94
|
+
root[key] = value;
|
95
|
+
} else if (typeof value === 'object') {
|
96
|
+
applyStub(root[key], value);
|
97
|
+
} else {
|
98
|
+
root[key] = value;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|