From 7f7f29fd609170e5db4be115c46e91d6af7f362d Mon Sep 17 00:00:00 2001 From: Thomas Reginald Date: Tue, 26 Oct 2021 18:14:45 -0700 Subject: [PATCH] October 2021 Release of the APL 1.8 compliant APL Viewhost Web For more details on this release refer to CHANGELOG.md To learn about APL see: https://developer.amazon.com/docs/alexa-presentation-language/understand-apl.html --- CHANGELOG.md | 18 +- LICENSE | 2 +- NOTICE | 2 +- README.md | 6 + THIRD-PARTY.txt | 25 - fonts/Amazon-Ember-Bold.ttf | Bin 103744 -> 0 bytes fonts/Amazon-Ember-BoldItalic.ttf | Bin 104232 -> 0 bytes fonts/Amazon-Ember-Light.ttf | Bin 104104 -> 0 bytes fonts/Amazon-Ember-LightItalic.ttf | Bin 104616 -> 0 bytes fonts/Amazon-Ember-Medium.ttf | Bin 162892 -> 0 bytes fonts/Amazon-Ember-MediumItalic.ttf | Bin 170292 -> 0 bytes fonts/Amazon-Ember-Regular.ttf | Bin 106076 -> 0 bytes fonts/Amazon-Ember-RegularItalic.ttf | Bin 105072 -> 0 bytes fonts/Amazon-Ember-Thin.ttf | Bin 105260 -> 0 bytes fonts/Amazon-Ember-ThinItalic.ttf | Bin 103756 -> 0 bytes fonts/LICENSE.txt | 3 - js/.gitignore | 6 +- js/apl-html/lib/dts/Content.d.ts | 32 +- js/apl-html/lib/dts/Context.d.ts | 6 + js/apl-html/lib/logging/LoggerFactory.d.ts | 2 +- js/apl-html/package.json | 3 +- js/apl-html/src/APLRenderer.ts | 191 +- js/apl-html/src/AudioPlayerWrapper.ts | 2 +- js/apl-html/src/CommandFactory.ts | 18 +- js/apl-html/src/ComponentFactory.ts | 4 +- js/apl-html/src/Content.ts | 17 +- js/apl-html/src/components/Component.ts | 28 +- js/apl-html/src/components/Container.ts | 2 +- js/apl-html/src/components/EditText.ts | 14 +- js/apl-html/src/components/Image.ts | 821 ++++---- .../src/components/MultiChildScrollable.ts | 2 +- js/apl-html/src/components/ScrollView.ts | 2 +- js/apl-html/src/components/Scrollable.ts | 4 +- js/apl-html/src/components/TouchWrapper.ts | 4 +- .../src/components/TouchableComponent.ts | 30 - js/apl-html/src/components/avg/AVG.ts | 10 +- js/apl-html/src/components/avg/AVGText.ts | 4 +- js/apl-html/src/components/avg/Filter.ts | 2 +- js/apl-html/src/components/avg/Gradient.ts | 6 +- .../src/components/avg/GraphicsUtils.ts | 4 +- js/apl-html/src/components/avg/Group.ts | 8 +- js/apl-html/src/components/avg/Path.ts | 6 +- js/apl-html/src/components/avg/Patterns.ts | 10 +- .../src/components/avg/VectorGraphic.ts | 14 +- .../avg/VectorGraphicElementUpdater.ts | 4 +- js/apl-html/src/components/filters/Blend.ts | 4 +- js/apl-html/src/components/filters/Blur.ts | 2 +- js/apl-html/src/components/filters/Color.ts | 4 +- .../src/components/filters/Gradient.ts | 20 +- .../src/components/filters/Grayscale.ts | 2 +- .../src/components/filters/ImageFilter.ts | 10 +- js/apl-html/src/components/filters/Noise.ts | 5 +- .../src/components/filters/Saturate.ts | 2 +- .../src/components/helpers/ImageAligner.ts | 224 +- .../src/components/helpers/StylesApplier.ts | 2 - .../src/components/pager/PagerComponent.ts | 2 +- .../components/text/AbstractWordSequencer.ts | 2 +- .../src/components/text/DocumentBuilder.ts | 4 +- .../src/components/text/RichTextNode.ts | 4 +- js/apl-html/src/components/text/Text.ts | 6 +- js/apl-html/src/components/video/Video.ts | 10 +- .../src/components/video/VideoCallTypes.ts | 4 +- .../components/video/VideoEventProcessor.ts | 171 +- .../components/video/VideoEventSequencer.ts | 2 +- .../src/components/video/VideoHolder.ts | 6 +- js/apl-html/src/events/Event.ts | 4 +- js/apl-html/src/events/ExtensionEvent.ts | 2 +- js/apl-html/src/events/Focus.ts | 4 +- js/apl-html/src/events/HighlightSequencer.ts | 6 +- js/apl-html/src/events/MediaRequest.ts | 25 + js/apl-html/src/events/PlayMedia.ts | 2 +- .../src/events/RequestFirstLineBounds.ts | 4 +- js/apl-html/src/events/ScrollTo.ts | 32 - js/apl-html/src/events/SetPage.ts | 32 - js/apl-html/src/events/Speak.ts | 8 +- js/apl-html/src/extensions/IExtension.ts | 2 +- .../src/extensions/IExtensionManager.ts | 3 +- js/apl-html/src/index.ts | 6 +- js/apl-html/src/logging/LoggerFactory.ts | 2 +- js/apl-html/src/media/MediaErrorCode.ts | 9 + js/apl-html/src/media/MediaState.ts | 53 + js/apl-html/src/media/audio/AudioPlayer.ts | 20 +- .../src/media/audio/DefaultAudioPlayer.ts | 2 +- js/apl-html/src/media/video/HLSVideoPlayer.ts | 48 +- .../src/media/video/PlaybackStateHandler.ts | 2 +- .../media/video/PlayerNetworkRetryManager.ts | 55 + js/apl-html/src/media/video/VideoPlayer.ts | 14 +- js/apl-html/src/utils/ArrayUtils.ts | 24 + js/apl-html/src/utils/BrowserUtils.ts | 22 + js/apl-html/src/utils/Constant.ts | 5 + js/apl-html/src/utils/DisplayStateUtils.ts | 15 + js/apl-html/src/utils/FilterUtils.ts | 123 +- js/apl-html/src/utils/FontUtils.ts | 8 +- js/apl-html/src/utils/ImageRetrievalUtils.ts | 135 ++ js/apl-html/src/utils/ImageUtils.ts | 532 +++++ js/apl-html/src/utils/Maybe.ts | 12 + js/apl-html/src/utils/MediaRequestUtils.ts | 51 + js/apl-html/src/utils/MediaStateUtils.ts | 15 + js/apl-html/src/utils/SpatialNavigation.ts | 203 -- js/apl-html/src/utils/VectorGraphicUtils.ts | 76 + js/apl-html/tslint.json | 4 +- js/apl-wasm/package.json | 4 +- js/apl-wasm/src/APLWASMRenderer.ts | 21 +- js/apl-wasm/src/LiveArray.ts | 156 -- js/apl-wasm/src/LiveMap.ts | 108 - js/apl-wasm/src/extensions/Extension.ts | 195 -- .../src/extensions/ExtensionConnection.ts | 2 +- .../src/extensions/ExtensionManager.ts | 4 +- js/apl-wasm/src/extensions/IExtension.ts | 117 -- .../audioplayer/AudioPlayerEnvironment.ts | 11 - .../audioplayer/AudioPlayerExtension.ts | 7 +- .../AudioPlayerExtensionObserverInterface.ts | 3 +- .../backstack/BackstackExtension.ts | 20 +- .../src/extensions/backstack/GoBackCommand.ts | 6 +- js/apl-wasm/src/extensions/backstack/Stack.ts | 2 +- js/apl-wasm/tslint.json | 2 +- js/dts-packer/src/index.ts | 1 - js/package.json | 3 +- js/yarn.lock | 1864 +++++++++++++---- package.json | 2 +- scripts/fetch.js | 2 +- wasm/CMakeLists.txt | 8 +- wasm/include/wasm/content.h | 2 + wasm/include/wasm/context.h | 3 + wasm/src/component.cpp | 11 +- wasm/src/content.cpp | 14 +- wasm/src/context.cpp | 20 +- wasm/src/embindutils.cpp | 4 +- wasm/src/rootconfig.cpp | 4 +- 129 files changed, 3723 insertions(+), 2231 deletions(-) delete mode 100644 fonts/Amazon-Ember-Bold.ttf delete mode 100644 fonts/Amazon-Ember-BoldItalic.ttf delete mode 100644 fonts/Amazon-Ember-Light.ttf delete mode 100644 fonts/Amazon-Ember-LightItalic.ttf delete mode 100644 fonts/Amazon-Ember-Medium.ttf delete mode 100644 fonts/Amazon-Ember-MediumItalic.ttf delete mode 100644 fonts/Amazon-Ember-Regular.ttf delete mode 100644 fonts/Amazon-Ember-RegularItalic.ttf delete mode 100644 fonts/Amazon-Ember-Thin.ttf delete mode 100644 fonts/Amazon-Ember-ThinItalic.ttf delete mode 100644 fonts/LICENSE.txt delete mode 100644 js/apl-html/src/components/TouchableComponent.ts create mode 100644 js/apl-html/src/events/MediaRequest.ts delete mode 100644 js/apl-html/src/events/ScrollTo.ts delete mode 100644 js/apl-html/src/events/SetPage.ts create mode 100644 js/apl-html/src/media/MediaErrorCode.ts create mode 100644 js/apl-html/src/media/MediaState.ts create mode 100644 js/apl-html/src/media/video/PlayerNetworkRetryManager.ts create mode 100644 js/apl-html/src/utils/ArrayUtils.ts create mode 100644 js/apl-html/src/utils/BrowserUtils.ts create mode 100644 js/apl-html/src/utils/DisplayStateUtils.ts create mode 100644 js/apl-html/src/utils/ImageRetrievalUtils.ts create mode 100644 js/apl-html/src/utils/ImageUtils.ts create mode 100644 js/apl-html/src/utils/Maybe.ts create mode 100644 js/apl-html/src/utils/MediaRequestUtils.ts create mode 100644 js/apl-html/src/utils/MediaStateUtils.ts delete mode 100644 js/apl-html/src/utils/SpatialNavigation.ts create mode 100644 js/apl-html/src/utils/VectorGraphicUtils.ts delete mode 100644 js/apl-wasm/src/LiveArray.ts delete mode 100644 js/apl-wasm/src/LiveMap.ts delete mode 100644 js/apl-wasm/src/extensions/Extension.ts delete mode 100644 js/apl-wasm/src/extensions/IExtension.ts delete mode 100644 js/apl-wasm/src/extensions/audioplayer/AudioPlayerEnvironment.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index a87efad..32bdcf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,29 @@ # Changelog for apl-viewhost-web +## [1.8.0] + +This release adds support for version 1.8 of the APL specification. Please also see APL Core Library for changes: [apl-core-library CHANGELOG](https://github.com/alexa/apl-core-library/blob/master/CHANGELOG.md) + +### Added + +- Image/VectorGraphics onLoad and onFail handlers +- Video onTrackReady and onTrackFail handlers +- DisplayState and onDisplayStateChange handler + +### Changed + +- Bug fixes + ## [1.7.0] This release adds support for version 1.7 of the APL specification. Please also see APL Core Library for changes: [apl-core-library CHANGELOG](https://github.com/alexa/apl-core-library/blob/master/CHANGELOG.md) -## Added +### Added - Right to left layout support (see APL Core Library changes) - E2E Encryption extension -## Changed +### Changed - Performance improvements for MultiChildScrollable - Enable Audio Player to change volume diff --git a/LICENSE b/LICENSE index 67db858..19dc35b 100644 --- a/LICENSE +++ b/LICENSE @@ -172,4 +172,4 @@ of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. + of your accepting any such warranty or additional liability. \ No newline at end of file diff --git a/NOTICE b/NOTICE index db91fa6..a8d5588 100644 --- a/NOTICE +++ b/NOTICE @@ -1,2 +1,2 @@ apl-viewhost-web -Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. \ No newline at end of file diff --git a/README.md b/README.md index 6b89a1e..e054829 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # Alexa Presentation Language (APL) Viewhost Web +

+ + + + +

## Introduction diff --git a/THIRD-PARTY.txt b/THIRD-PARTY.txt index 5a8a69d..33b1afe 100644 --- a/THIRD-PARTY.txt +++ b/THIRD-PARTY.txt @@ -139,31 +139,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------------- -Package: image-scale -Version: 2.1.0 -Description: Scale images to fit or fill any target container via two simple properties: scale and align. -License: MIT -The MIT License (MIT) - -Copyright (c) 2013 GestiXi - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---------------- Package: jquery diff --git a/fonts/Amazon-Ember-Bold.ttf b/fonts/Amazon-Ember-Bold.ttf deleted file mode 100644 index f09f63eedbc21e7233393833c6eb85132d3c5183..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103744 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

#L9r@TB??*Skb0jo$G}t^wQnYG+n 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 diff --git a/fonts/Amazon-Ember-Medium.ttf b/fonts/Amazon-Ember-Medium.ttf deleted file mode 100644 index 8c731e964ee1c8322fd20b78ee21d74b1f74dfea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162892 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 diff --git a/fonts/Amazon-Ember-MediumItalic.ttf b/fonts/Amazon-Ember-MediumItalic.ttf deleted file mode 100644 index 76afa50e82041592f913965a70d31a4f6da560f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170292 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 diff --git a/fonts/Amazon-Ember-RegularItalic.ttf b/fonts/Amazon-Ember-RegularItalic.ttf deleted file mode 100644 index 69654810b5e40ed905b88568b4c8e3c4ccf04042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105072 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

s(aJURyp{Gx6=kEe1 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 Hi6s3WC`|qL diff --git a/fonts/Amazon-Ember-ThinItalic.ttf b/fonts/Amazon-Ember-ThinItalic.ttf deleted file mode 100644 index 3e550c06ea4585b1650ab9763e6657921b46e02e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103756 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 diff --git a/fonts/LICENSE.txt b/fonts/LICENSE.txt deleted file mode 100644 index 58bfb00..0000000 --- a/fonts/LICENSE.txt +++ /dev/null @@ -1,3 +0,0 @@ -The fonts included in this project are owned by Amazon.com, or its affiliates. -Subject to your compliance with the terms of the Amazon Developer Services Agreement, available at https://developer.amazon.com/support/legal/da, and the Trademark Guidelines, available at https://developer.amazon.com/support/legal/tuabg#trademark, -you may use the included fonts solely for the purpose expressly authorized in the APL Viewhost Web. \ No newline at end of file diff --git a/js/.gitignore b/js/.gitignore index 67ec20d..9122e5b 100644 --- a/js/.gitignore +++ b/js/.gitignore @@ -1,3 +1,3 @@ -node_modules -yarn-error.log -package-lock.json +/node_modules +.vscode +yarn.lock \ No newline at end of file diff --git a/js/apl-html/lib/dts/Content.d.ts b/js/apl-html/lib/dts/Content.d.ts index b2398f6..ca98b75 100644 --- a/js/apl-html/lib/dts/Content.d.ts +++ b/js/apl-html/lib/dts/Content.d.ts @@ -5,26 +5,28 @@ declare namespace APL { export class ImportRef { - public version() : string; - public name() : string; + public version(): string; + public name(): string; } export class ImportRequest { - public isValid() : boolean; - public reference() : ImportRef; - public source() : string; + public isValid(): boolean; + public reference(): ImportRef; + public source(): string; } export class Content extends Deletable { - public static create(document : string) : Content; - public getRequestedPackages() : Set; - public addPackage(request : ImportRequest, data : string) : void; - public isError() : boolean; - public isReady() : boolean; - public isWaiting() : boolean; - public addData(name : string, data : string) : void; - public getAPLVersion() : string; - public getExtensionRequests() : Set; - public getExtensionSettings(uri:string) : object; + public static create(document: string): Content; + public getRequestedPackages(): Set; + public addPackage(request: ImportRequest, data: string): void; + public isError(): boolean; + public isReady(): boolean; + public isWaiting(): boolean; + public addData(name: string, data: string): void; + public getAPLVersion(): string; + public getExtensionRequests(): Set; + public getExtensionSettings(uri: string): object; + public getParameterAt(index: number): string; + public getParameterCount(): number; } } diff --git a/js/apl-html/lib/dts/Context.d.ts b/js/apl-html/lib/dts/Context.d.ts index 1108bd4..d10e291 100644 --- a/js/apl-html/lib/dts/Context.d.ts +++ b/js/apl-html/lib/dts/Context.d.ts @@ -109,6 +109,8 @@ declare namespace APL { metrics?: APL.Metrics, scalingOptions?: any): void; + public updateDisplayState(displayState: any): void; + public setFocus(direction: number, origin: APL.Rect, targetId: string): void; public getFocusableAreas(): Promise>; @@ -116,5 +118,9 @@ declare namespace APL { public getFocused(): Promise; public reInflate(): void; + + public mediaLoaded(source: string): void; + + public mediaLoadFailed(source: string, errorCode: number, error: string): void; } } diff --git a/js/apl-html/lib/logging/LoggerFactory.d.ts b/js/apl-html/lib/logging/LoggerFactory.d.ts index a404b9c..2867383 100644 --- a/js/apl-html/lib/logging/LoggerFactory.d.ts +++ b/js/apl-html/lib/logging/LoggerFactory.d.ts @@ -1,6 +1,6 @@ import { ILogger } from './ILogger'; -import { LogTransport } from './LogTransport'; import { LogLevel } from './LogLevel'; +import { LogTransport } from './LogTransport'; /** * Simple wrapper to hide loglevel logger oddity and do set-up. Could be changed to be more generic in the future. */ diff --git a/js/apl-html/package.json b/js/apl-html/package.json index 0234d17..9b880a1 100644 --- a/js/apl-html/package.json +++ b/js/apl-html/package.json @@ -29,11 +29,10 @@ "chai": "^4.2.0", "copy-webpack-plugin": "^5.0.2", "cross-env": "^5.2.0", - "electron": "^11.5.0", + "electron": "^4.0.4", "electron-mocha": "^6.0.4", "eventemitter3": "^3.1.0", "hls.js": "^0.13.1", - "image-scale": "^2.1.0", "istanbul": "^0.4.5", "istanbul-instrumenter-loader": "^3.0.1", "istanbul-threshold-checker": "^0.2.1", diff --git a/js/apl-html/src/APLRenderer.ts b/js/apl-html/src/APLRenderer.ts index c6a16f6..a1f4652 100644 --- a/js/apl-html/src/APLRenderer.ts +++ b/js/apl-html/src/APLRenderer.ts @@ -3,26 +3,30 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { commandFactory } from './CommandFactory'; -import { componentFactory } from './ComponentFactory'; -import { Component } from './components/Component'; -import { MeasureMode } from './components/text/MeasureMode'; -import { TextMeasurement } from './components/text/Text'; -import { AnimationQuality } from './enums/AnimationQuality'; -import { IVideoFactory } from './components/video/IVideoFactory'; -import { VideoFactory } from './components/video/VideoFactory'; -import { AudioPlayerWrapper } from './AudioPlayerWrapper'; -import { AudioPlayerFactory } from './media/audio/AudioPlayer'; -import { LoggerFactory } from './logging/LoggerFactory'; -import { ILogger } from './logging/ILogger'; -import { Image } from './components/Image'; -import { PointerEventType } from './enums/PointerEventType'; -import { PointerType } from './enums/PointerType'; -import { ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, ENTER_KEY } from './utils/Constant'; -import { IExtensionManager } from './extensions/IExtensionManager'; -import { FocusDirection } from './enums/FocusDirection'; import throttle = require('lodash.throttle'); -import { ActionableComponent } from './components/ActionableComponent'; +import {AudioPlayerWrapper} from './AudioPlayerWrapper'; +import {commandFactory} from './CommandFactory'; +import {componentFactory} from './ComponentFactory'; +import {ActionableComponent} from './components/ActionableComponent'; +import {Component} from './components/Component'; +import {MeasureMode} from './components/text/MeasureMode'; +import {TextMeasurement} from './components/text/Text'; +import {IVideoFactory} from './components/video/IVideoFactory'; +import {VideoFactory} from './components/video/VideoFactory'; +import {AnimationQuality} from './enums/AnimationQuality'; +import {DisplayState} from './enums/DisplayState'; +import {FocusDirection} from './enums/FocusDirection'; +import {PointerEventType} from './enums/PointerEventType'; +import {PointerType} from './enums/PointerType'; +import {IExtensionManager} from './extensions/IExtensionManager'; +import {ILogger} from './logging/ILogger'; +import {LoggerFactory} from './logging/LoggerFactory'; +import {AudioPlayerFactory} from './media/audio/AudioPlayer'; +import {browserIsEdge} from './utils/BrowserUtils'; +import {ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, ENTER_KEY, HttpStatusCodes} from './utils/Constant'; +import {isDisplayState} from './utils/DisplayStateUtils'; +import {getCssGradient, getCssPureColorGradient} from './utils/ImageUtils'; +import {fetchVectorGraphic} from './utils/VectorGraphicUtils'; const agentName = 'AplWebRenderer'; const agentVersion = '1.0.0'; @@ -47,7 +51,7 @@ export type ViewportShape = 'ROUND' | 'RECTANGLE'; export type ScreenMode = 'normal' | 'high-contrast'; /** - * Physical charcteristics of the viewport + * Physical characteristics of the viewport */ export interface IViewportCharacteristics { /** Width in pixels */ @@ -100,6 +104,10 @@ export interface IConfigurationChangeOptions { screenReader?: boolean; } +export interface IDisplayStateOptions { + displayState: DisplayState; +} + /** * Developer tool options can be used to inject additional data into the DOM * @@ -112,6 +120,8 @@ export interface IDeveloperToolOptions { /** Keys to export as data- attributes in the DOM */ writeKeys: string[]; + + includeComponentId?: boolean; } /** @@ -133,6 +143,12 @@ export interface IDataSourceFetchRequest { payload: any; } +export interface IMediaRequest { + source: string; + errorCode?: number; + error?: string; +} + export interface IExtensionEvent { uri: string; name: string; @@ -160,7 +176,7 @@ export interface IAsyncKeyboardEvent extends KeyboardEvent { * Options when creating a new APLRenderer */ export interface IAPLOptions { - /** Contains all the information on environment suport and options */ + /** Contains all the information on environment support and options */ environment: IEnvironment; /** APL theme. Usually 'light' or 'dark' */ theme: string; @@ -204,9 +220,9 @@ export interface IAPLOptions { onResizingIgnored?: (ignoredWidth: number, ignoredHeight: number) => void; /** - * Callback when a AVG source needs to be retreived by the consumer + * Callback when a AVG source needs to be retrieved by the consumer * If this is not provided, this viewhost will use the fetch API to - * retreive graphic content from sources. + * retrieve graphic content from sources. */ onRequestGraphic?: (source: string) => Promise; /** @@ -286,6 +302,8 @@ export default abstract class APLRenderer { this.handleConfigurationChange(configurationChangeOptions); }, 200); + protected handleUpdateDisplayState: (displayState: DisplayState) => void; + /** * @internal * @ignore @@ -346,7 +364,7 @@ export default abstract class APLRenderer { */ private dropFrameCount: number = 0; - private isEdge: boolean = /msie\s|trident\/|edge\//i.test(window.navigator.userAgent); + private isEdge: boolean = browserIsEdge(window.navigator.userAgent); public get options(): Options { return this.mOptions as any as Options; @@ -423,7 +441,18 @@ export default abstract class APLRenderer { this.onRunTimeError = mOptions.onRunTimeError; } if (mOptions.onRequestGraphic) { - this.onRequestGraphic = mOptions.onRequestGraphic; + this.onRequestGraphic = (source) => { + const vectorGraphicPromise = mOptions.onRequestGraphic(source); + // Enables onLoad/onFail when onRequestGraphic is overridden + vectorGraphicPromise.then((json) => { + if (json) { + this.context.mediaLoaded(source); + } else { + this.context.mediaLoadFailed(source, HttpStatusCodes.BadRequest, `Bad Request on ${source}`); + } + }); + return vectorGraphicPromise; + }; } if (mOptions.onFinish) { this.onFinish = mOptions.onFinish; @@ -452,7 +481,8 @@ export default abstract class APLRenderer { public init(metricRecorder?: (m: APL.DisplayMetric) => void) { const startTime = performance.now(); if (this.mOptions.mode === 'TV') { - window.addEventListener('keydown', this.passWindowEventsToCore); + window.addEventListener('keydown', this.passKeyDownToCore); + window.addEventListener('keyup', this.passKeyUpToCore); } this.renderComponents(); const stopTime = performance.now(); @@ -511,6 +541,21 @@ export default abstract class APLRenderer { this.configChangeThrottle(configurationChangeOptions); } + /** + * Process Display State Change. + * @param displayStateOptions The display state change options to provide to core. + */ + public onDisplayStateChange(displayStateOptions: IDisplayStateOptions): void { + let displayState = displayStateOptions.displayState; + + if (!isDisplayState(displayState)) { + console.error(`Invalid DisplayState. Defaulting DisplayState to "kDisplayStateForeground".`); + displayState = DisplayState.kDisplayStateForeground; + } + + this.handleUpdateDisplayState(displayState); + } + public getComponentCount(): number { return Object.keys(this.componentMap).length; } @@ -525,8 +570,8 @@ export default abstract class APLRenderer { // the default background color of the device will show through this.view.style.backgroundColor = backgroundColors[docTheme]; this.view.style.backgroundImage = background.gradient ? - Image.getCssGradient(background.gradient, this.logger) : - Image.getCssPureColorGradient(background.color); + getCssGradient(background.gradient, this.logger) : + getCssPureColorGradient(background.color); } /** @@ -542,19 +587,16 @@ export default abstract class APLRenderer { * @ignore * @internal */ - public async onRequestGraphic(source: string): Promise { - const res = await fetch(source, { - headers: { - 'Accept': 'application/json', - 'Content-Type': 'application/json' - }, - method: 'get' - }); - if (res.status === 200) { - const text = await res.text(); - return text; - } - return undefined; + public onRequestGraphic(source: string): Promise { + const fetchVectorGraphicArgs = { + renderer: this + }; + return fetchVectorGraphic(source, fetchVectorGraphicArgs).then( + (response) => { + return response; + }).catch(() => { + return undefined; + }); } /** @@ -713,7 +755,8 @@ export default abstract class APLRenderer { } this.view = undefined; } - window.removeEventListener('keydown', this.passWindowEventsToCore); + window.removeEventListener('keydown', this.passKeyDownToCore); + window.removeEventListener('keyup', this.passKeyUpToCore); } /** @@ -1040,12 +1083,20 @@ export default abstract class APLRenderer { } } + private canPassLocalKeyDown = (event: IAsyncKeyboardEvent) => { + return this.mOptions.mode !== 'TV' || !this.isDPadKey(event.code); + } + private handleKeyDown = async (evt: IAsyncKeyboardEvent) => { - await this.passKeyboardEventToCore(evt, KeyHandlerType.KeyDown); + if (this.canPassLocalKeyDown(evt)) { + await this.passKeyboardEventToCore(evt, KeyHandlerType.KeyDown); + } } private handleKeyUp = async (evt: IAsyncKeyboardEvent) => { - await this.passKeyboardEventToCore(evt, KeyHandlerType.KeyUp); + if (this.canPassLocalKeyDown(evt)) { + await this.passKeyboardEventToCore(evt, KeyHandlerType.KeyUp); + } } /** @@ -1133,28 +1184,50 @@ export default abstract class APLRenderer { } } - private recoverFocusOnEnter(id: string, code: string): void { - if (code === ENTER_KEY) { - const component = this.componentMap[id] as ActionableComponent; - if (component['focus']) { - component.focus(); - } - } + private passKeyDownToCore = (event: IAsyncKeyboardEvent) => { + this.passWindowEventsToCore(event, KeyHandlerType.KeyDown); + } + + private passKeyUpToCore = (event: IAsyncKeyboardEvent) => { + this.passWindowEventsToCore(event, KeyHandlerType.KeyUp); } - private passWindowEventsToCore = async (event: IAsyncKeyboardEvent) => { + private passWindowEventsToCore = async (event: IAsyncKeyboardEvent, handler: KeyHandlerType) => { if (!this.context) { return; } - const focused = await this.context.getFocused(); - if (this.isDPadKey(event.code) - && (!document.activeElement || document.activeElement === document.body) - && focused) { - this.recoverFocusOnEnter(focused, event.code); - this.passKeyboardEventToCore(event, KeyHandlerType.KeyDown); - } else if (!focused) { + const focusedComponentId = await this.context.getFocused(); + + if (this.shouldPassWindowEventToCore(event, focusedComponentId)) { + this.ensureComponentIsFocused(focusedComponentId, event.code); + this.passKeyboardEventToCore(event, handler); + } else if (!focusedComponentId) { this.focusTopLeft(); } } + + private shouldPassWindowEventToCore(event: IAsyncKeyboardEvent, focusedComponentId: string) { + const isViewAlreadyFocused = () => { + return this.view.contains(document.activeElement); + }; + + const isFocusLost = () => { + return !this.view.contains(document.activeElement) + && !(document.activeElement instanceof HTMLTextAreaElement); + }; + + return this.isDPadKey(event.code) + && focusedComponentId + && (isFocusLost() || isViewAlreadyFocused()); + } + + private ensureComponentIsFocused(id: string, code: string): void { + if (code === ENTER_KEY) { + const component = this.componentMap[id] as ActionableComponent; + if (component['focus']) { + component.focus(); + } + } + } } diff --git a/js/apl-html/src/AudioPlayerWrapper.ts b/js/apl-html/src/AudioPlayerWrapper.ts index e8312d5..5203363 100644 --- a/js/apl-html/src/AudioPlayerWrapper.ts +++ b/js/apl-html/src/AudioPlayerWrapper.ts @@ -5,12 +5,12 @@ 'use strict'; +import { LoggerFactory } from './logging/LoggerFactory'; import { AudioPlayer, AudioPlayerFactory} from './media/audio/AudioPlayer'; import { DefaultAudioPlayer } from './media/audio/DefaultAudioPlayer'; import { IAudioEventListener } from './media/audio/IAudioEventListener'; import { IBaseMarker } from './media/audio/SpeechMarks'; import { PromiseContainer } from './utils/PromiseUtils'; -import { LoggerFactory } from './logging/LoggerFactory'; /** * @internal diff --git a/js/apl-html/src/CommandFactory.ts b/js/apl-html/src/CommandFactory.ts index cbbccba..49da283 100644 --- a/js/apl-html/src/CommandFactory.ts +++ b/js/apl-html/src/CommandFactory.ts @@ -6,17 +6,18 @@ import APLRenderer from './APLRenderer'; import { EventType } from './enums/EventType'; import { ControlMedia } from './events/ControlMedia'; +import { DataSourceFetchRequest } from './events/DataSourceFetchRequest'; +import { ExtensionEvent } from './events/ExtensionEvent'; +import { Finish } from './events/Finish'; +import { Focus } from './events/Focus'; +import { MediaRequest } from './events/MediaRequest'; import { OpenUrl } from './events/OpenUrl'; import { PlayMedia } from './events/PlayMedia'; -import { SendEvent } from './events/SendEvent'; -import { Speak } from './events/Speak'; -import { Finish } from './events/Finish'; import { Preroll } from './events/Preroll'; import { ReInflate} from './events/ReInflate'; -import { Focus } from './events/Focus'; import { RequestFirstLineBounds } from './events/RequestFirstLineBounds'; -import { DataSourceFetchRequest } from './events/DataSourceFetchRequest'; -import { ExtensionEvent } from './events/ExtensionEvent'; +import { SendEvent } from './events/SendEvent'; +import { Speak } from './events/Speak'; /** * Creates and executes a command @@ -91,5 +92,10 @@ const factoryMap = { const command = new ExtensionEvent(event, renderer); command.execute(); return command; + }, + [EventType.kEventTypeMediaRequest]: (event: APL.Event, renderer: APLRenderer) => { + const command = new MediaRequest(event, renderer); + command.execute(); + return command; } }; diff --git a/js/apl-html/src/ComponentFactory.ts b/js/apl-html/src/ComponentFactory.ts index c7190bd..f77c5fa 100644 --- a/js/apl-html/src/ComponentFactory.ts +++ b/js/apl-html/src/ComponentFactory.ts @@ -5,10 +5,12 @@ import APLRenderer from './APLRenderer'; import { VectorGraphic } from './components/avg/VectorGraphic'; +import { VectorGraphicElementUpdater } from './components/avg/VectorGraphicElementUpdater'; import { Component, IGenericPropType } from './components/Component'; import { Container } from './components/Container'; import { EditText } from './components/EditText'; import { Frame } from './components/Frame'; +import { GridSequence } from './components/GridSequence'; import { Image } from './components/Image'; import { PagerComponent } from './components/pager/PagerComponent'; import { ScrollView } from './components/ScrollView'; @@ -16,8 +18,6 @@ import { Sequence } from './components/Sequence'; import { Text } from './components/text/Text'; import { TouchWrapper } from './components/TouchWrapper'; import { ComponentType } from './enums/ComponentType'; -import { GridSequence } from './components/GridSequence'; -import { VectorGraphicElementUpdater } from './components/avg/VectorGraphicElementUpdater'; export const componentFactory = (renderer: APLRenderer, component: APL.Component, parent?: Component, ensureLayout: boolean = false, diff --git a/js/apl-html/src/Content.ts b/js/apl-html/src/Content.ts index 8feaa9d..87be29d 100644 --- a/js/apl-html/src/Content.ts +++ b/js/apl-html/src/Content.ts @@ -137,4 +137,19 @@ export class Content { public getAPLSettings(key: string): any { return this.settings[key]; } - } + + /** + * get the parameter through index. + * @param index + */ + public getParameterAt(index: number): string { + return this.content.getParameterAt(index); + } + + /** + * get the total customized parameter needed for APL. + */ + public getParameterCount(): number { + return this.content.getParameterCount(); + } +} diff --git a/js/apl-html/src/components/Component.ts b/js/apl-html/src/components/Component.ts index d04652a..df83f29 100644 --- a/js/apl-html/src/components/Component.ts +++ b/js/apl-html/src/components/Component.ts @@ -5,23 +5,23 @@ import EventEmitter = require('eventemitter3'); import * as $ from 'jquery'; -import {fillAndStrokeConverter} from './avg/GraphicsUtils'; -import APLRenderer from '../APLRenderer'; +import APLRenderer, {IAPLOptions} from '../APLRenderer'; +import {ComponentType} from '../enums/ComponentType'; import {Display} from '../enums/Display'; +import {FocusDirection} from '../enums/FocusDirection'; +import {GradientSpreadMethod} from '../enums/GradientSpreadMethod'; +import {GradientUnits} from '../enums/GradientUnits'; +import {LayoutDirection} from '../enums/LayoutDirection'; import {PropertyKey} from '../enums/PropertyKey'; import {UpdateType} from '../enums/UpdateType'; -import {ComponentType} from '../enums/ComponentType'; -import {LoggerFactory} from '../logging/LoggerFactory'; import {ILogger} from '../logging/ILogger'; -import {getScaledTransform} from '../utils/TransformUtils'; -import {GradientSpreadMethod} from '../enums/GradientSpreadMethod'; -import {ChildAction} from '../utils/Constant'; +import {LoggerFactory} from '../logging/LoggerFactory'; +import {getRectDifference} from '../utils/AplRectUtils'; import {numberToColor} from '../utils/ColorUtils'; -import {GradientUnits} from '../enums/GradientUnits'; -import {FocusDirection} from '../enums/FocusDirection'; -import {LayoutDirection} from '../enums/LayoutDirection'; +import {ChildAction} from '../utils/Constant'; +import {getScaledTransform} from '../utils/TransformUtils'; +import {fillAndStrokeConverter} from './avg/GraphicsUtils'; import {createBoundsFitter} from './helpers/BoundsFitter'; -import {getRectDifference} from '../utils/AplRectUtils'; import {applyAplRectToStyle, applyPaddingToStyle} from './helpers/StylesUtil'; /** @@ -153,11 +153,17 @@ export abstract class Component extends EventEmitt }); this.id = component.getUniqueId(); this.$container.attr('id', this.id); + this.assignedId = component.getId(); if (renderer) { renderer.componentMap[this.id] = this; renderer.componentIdMap[this.assignedId] = this; + + const options = renderer.options as IAPLOptions; + if (options && options.developerToolOptions && options.developerToolOptions.includeComponentId) { + this.$container.attr('data-componentid', component.getId()); + } } this.container.classList.add('apl-' + this.constructor.name.toLowerCase()); diff --git a/js/apl-html/src/components/Container.ts b/js/apl-html/src/components/Container.ts index 9ebc9fb..7ad500f 100644 --- a/js/apl-html/src/components/Container.ts +++ b/js/apl-html/src/components/Container.ts @@ -3,8 +3,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { Component, FactoryFunction } from './Component'; import APLRenderer from '../APLRenderer'; +import { Component, FactoryFunction } from './Component'; /** * @ignore diff --git a/js/apl-html/src/components/EditText.ts b/js/apl-html/src/components/EditText.ts index b0652a8..158592f 100644 --- a/js/apl-html/src/components/EditText.ts +++ b/js/apl-html/src/components/EditText.ts @@ -3,17 +3,17 @@ * SPDX-License-Identifier: Apache-2.0 */ +import * as $ from 'jquery'; import APLRenderer, {IAsyncKeyboardEvent} from '../APLRenderer'; -import {ActionableComponent} from './ActionableComponent'; -import {Component, FactoryFunction, IComponentProperties} from './Component'; import {FontStyle} from '../enums/FontStyle'; +import {KeyboardType} from '../enums/KeyboardType'; import {PropertyKey} from '../enums/PropertyKey'; -import * as $ from 'jquery'; -import {applyAplRectToStyle} from './helpers/StylesUtil'; -import {FontUtils} from '../utils/FontUtils'; import {UpdateType} from '../enums/UpdateType'; -import {KeyboardType} from '../enums/KeyboardType'; -import {ARROW_RIGHT, ARROW_LEFT, ARROW_DOWN, ARROW_UP, ENTER_KEY} from '../utils/Constant'; +import {ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, ENTER_KEY} from '../utils/Constant'; +import {FontUtils} from '../utils/FontUtils'; +import {ActionableComponent} from './ActionableComponent'; +import {Component, FactoryFunction, IComponentProperties} from './Component'; +import {applyAplRectToStyle} from './helpers/StylesUtil'; /** * @ignore diff --git a/js/apl-html/src/components/Image.ts b/js/apl-html/src/components/Image.ts index a071897..9a297c9 100644 --- a/js/apl-html/src/components/Image.ts +++ b/js/apl-html/src/components/Image.ts @@ -3,41 +3,34 @@ * SPDX-License-Identifier: Apache-2.0 */ +import APLRenderer from '../APLRenderer'; +import { FilterType } from '../enums/FilterType'; import { ImageAlign } from '../enums/ImageAlign'; import { ImageScale } from '../enums/ImageScale'; import { PropertyKey } from '../enums/PropertyKey'; -import { GradientType } from '../enums/GradientType'; -import { Component, FactoryFunction, IComponentProperties, SVG_NS } from './Component'; - -import * as $ from 'jquery'; - -// This is a temporary shim for jquery so that the image scale -// library works. -(window as any).jQuery = $; -import 'image-scale'; -import APLRenderer from '../APLRenderer'; -import { Noise } from './filters/Noise'; -import { ILogger } from '../logging/ILogger'; -import { Filter, generateSVGDefsAndUseElement } from '../utils/FilterUtils'; -import { isINoise } from './filters/Noise'; -import {createStylesApplier, CssUnitType} from './helpers/StylesApplier'; +import { arrayEquals, last } from '../utils/ArrayUtils'; +import { numberToColor } from '../utils/ColorUtils'; +import { createSVGImageFiltersApplier, Filter } from '../utils/FilterUtils'; +import { + loadAllImagesFromMediaSource +} from '../utils/ImageRetrievalUtils'; +import { + createCanvasScaledImageProcessor, + createScaledImageProcessor, + getCssGradient, + IGradient, + ImageDimensions, ScaledImageSource +} from '../utils/ImageUtils'; +import { isSomething, Maybe, Nothing } from '../utils/Maybe'; +import { Component, FactoryFunction, IComponentProperties, SVG_NS, uuidv4 } from './Component'; import { createAligner } from './helpers/ImageAligner'; - -/** - * @ignore - */ -export interface IGradient { - angle: number; - colorRange: number[]; - inputRange: number[]; - type: GradientType; -} +import { createStylesApplier, CssUnitType, ElementType } from './helpers/StylesApplier'; /** * @ignore */ export interface IImageProperties extends IComponentProperties { - [PropertyKey.kPropertySource]: string; + [PropertyKey.kPropertySource]: string | string []; [PropertyKey.kPropertyAlign]: ImageAlign; [PropertyKey.kPropertyBorderRadius]: number; [PropertyKey.kPropertyBorderWidth]: number; @@ -51,442 +44,458 @@ export interface IImageProperties extends IComponentProperties { /** * @ignore */ -export class Image extends Component { +interface ImageProperties { + borderRadius: number; + borderColor: string; + borderWidth: number; + overlayColor: string; + overlayGradient: string; + imageScale: ImageScale; + imageFilters: Filter[]; + imageAlignment: ImageAlign; +} - private imgPlaceHolder: HTMLDivElement = document.createElement('div'); - private $imgPlaceHolder = $(this.imgPlaceHolder); - private imageOverlay: HTMLDivElement = document.createElement('div'); - private $imageOverlay = $(this.imageOverlay); - // the original image is used to apply customized filter on canvas and scale the svg images. - // it shall be hidden from the final render result. - private originalImageElement: HTMLImageElement = document.createElement('img'); - private $originalImageElement = $(this.originalImageElement); - // canvasElement is used to modify imageData defined in APL-filter/3P filter extension. +/** + * @ignore + */ +export class Image extends Component { + private uuid = uuidv4(); + private imageSourcesArray: Maybe; + private imageProperties: ImageProperties = {} as ImageProperties; private canvasElement: HTMLCanvasElement = document.createElement('canvas'); - // the image element inside svg - private imageElement: SVGElement = document.createElementNS(SVG_NS, 'image'); - private svgDefsElement: SVGDefsElement | undefined = undefined; - private svgUseElement: SVGUseElement | undefined = undefined; - private svg: SVGElement = document.createElementNS(SVG_NS, 'svg') as SVGElement; - private $svg = $(this.svg); - // this flag indicates if the filter needs to be performed using canvas. - private hasFiltersInCanvas: boolean = false; - private setSvgImageHrefTimeout: any; - private isShadowHolderAdded: boolean = false; + private svgElement: SVGElement = document.createElementNS(SVG_NS, 'svg') as SVGElement; + private imageSVGElement: SVGElement = document.createElementNS(SVG_NS, 'image'); + private imageOverlay: HTMLDivElement = document.createElement('div'); + private imageView: HTMLDivElement = document.createElement('div'); + private imageViewProperties = { + position: 'relative', + overflow: 'hidden' + }; + private imageOverlayProperties = { + 'position': 'absolute', + 'z-index': 1, + 'top': '0px', + 'left': '0px' + }; + private svgImageElementProperties = { + position: 'relative' + }; constructor(renderer: APLRenderer, component: APL.Component, factory: FactoryFunction, parent?: Component) { super(renderer, component, factory, parent); - this.initSvgElement(); - this.$originalImageElement.css({ - 'background-clip': 'padding-box', - 'border-style': 'solid', - 'border-width': '0px', - 'display': 'none', - 'overflow': 'hidden', - 'position': 'absolute' - }); - - this.$imgPlaceHolder.css({ - overflow: 'hidden', - position: 'relative', - isolation: 'isolate' - }); - this.$imageOverlay.css('position', 'absolute'); - this.imgPlaceHolder.classList.add('imageHolder'); - this.imageOverlay.classList.add('imageOverlay'); - this.imgPlaceHolder.appendChild(this.svg); - this.imgPlaceHolder.appendChild(this.originalImageElement); - this.imgPlaceHolder.appendChild(this.imageOverlay); - this.container.appendChild(this.imgPlaceHolder); this.propExecutor - (this.setBorderRadius, PropertyKey.kPropertyBorderRadius) - (this.setBorderColor, PropertyKey.kPropertyBorderColor) - (this.setBorderWidth, PropertyKey.kPropertyBorderWidth) - (this.setOverlayColor, PropertyKey.kPropertyOverlayColor) - (this.setOverlayGradient, PropertyKey.kPropertyOverlayGradient) - (this.setSourceAndFilter, PropertyKey.kPropertySource, - PropertyKey.kPropertyScale, PropertyKey.kPropertyFilters); + (this.setBorderRadius, PropertyKey.kPropertyBorderRadius) + (this.setOverlayColor, PropertyKey.kPropertyOverlayColor) + (this.setOverlayGradient, PropertyKey.kPropertyOverlayGradient) + (this.setImageScale, PropertyKey.kPropertyScale) + (this.setImageAlignment, PropertyKey.kPropertyAlign) + (this.setFilters, PropertyKey.kPropertyFilters) + (this.fetchSource, PropertyKey.kPropertySource); + } + + public init() { + super.init(); + this.prepareImageView(); + this.prepareImageOverlay(); + this.draw(); } protected boundsUpdated() { - if (this.hasValidBounds()) { - this.$imgPlaceHolder.css({ - height: this.innerBounds.height, - width: this.innerBounds.width - }); - this.setSourceAndFilter(); + if (!this.hasValidBounds()) { + return; } } - private initSvgElement = () => { - this.$svg.html(''); - this.$svg.css({ - 'background-clip': 'padding-box', - 'border-style': 'solid', - 'border-width': '0px', - 'display': 'none', - 'overflow': 'hidden', - 'position': 'absolute' - }); - this.imageElement.setAttribute('preserveAspectRatio', 'none'); - this.imageElement.setAttribute('x', '0%'); - this.imageElement.setAttribute('y', '0%'); - this.imageElement.setAttribute('width', '100%'); - this.imageElement.setAttribute('height', '100%'); - this.svg.appendChild(this.imageElement); + protected onPropertiesUpdated() { + if (this.hasSourceChanged()) { + this.imageSourcesArray = Nothing; + } + this.draw(); } - private setBorderRadius = () => { - const borderRadius = this.props[PropertyKey.kPropertyBorderRadius]; - this.$imgPlaceHolder.css('border-radius', borderRadius); + protected applyCssShadow = (shadowParams: string) => { + createStylesApplier({ + element: this.imageView, + properties: { + 'box-shadow': shadowParams + }, + elementType: ElementType.HTML + }).applyStyle(); } - protected applyCssShadow = (shadowParams: string) => { - if (ImageScale.kImageScaleNone === this.props[PropertyKey.kPropertyScale]) { - this.$originalImageElement.css('box-shadow', shadowParams); + private hasSourceChanged(): boolean { + const sourceArray = this.getSourceArrayFromProperty(); + if (isSomething(this.imageSourcesArray)) { + return !arrayEquals(sourceArray, this.imageSourcesArray); } + return true; } - private setBorderColor = () => { - const css = Component.numberToColor(this.props[PropertyKey.kPropertyBorderColor]); - this.$originalImageElement.css('border-color', css); - this.$svg.css('border-color', css); + private getSourceArrayFromProperty = (): string[] => { + let sourceArray = this.props[PropertyKey.kPropertySource]; + sourceArray = sourceArray instanceof Array ? sourceArray : [sourceArray]; + return sourceArray; } - private setBorderWidth = () => { - const css = this.props[PropertyKey.kPropertyBorderWidth]; - this.$originalImageElement.css('border-color', css); - this.$svg.css('border-width', css); + private draw = () => { + // Render Pipeline + this.fetchSource() + .then(() => { + // Ensure Dynamic Properties are set + this.setImageAlignment(); + this.setBorderRadius(); + this.setOverlayColor(); + this.setOverlayGradient(); + this.setImageScale(); + // Paint + this.renderImage() + .catch((error) => { + this.logger.error(`Error rendering image: ${error}`); + }); + }); } - private setFilters = (imageArray: string[]) => { - const filters: Filter[] = this.props[PropertyKey.kPropertyFilters]; - this.checkFilters(filters); - if (this.hasFiltersInCanvas) { - // If implementing any filter in canvas, we draw image onto a canvas 2D context and invoke - // getImageData(), if image is from another origin then two requirements need to be met: - // 1. image's crossOrigin attribute is set to 'anonymous' - // 2. server that's configured to host images with the Access-Control-Allow-Origin - // header configured to permit cross-origin access to image files - // reference: https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image - this.originalImageElement.crossOrigin = 'anonymous'; + private fetchSource = async () => { + if (isSomething(this.imageSourcesArray)) { + return; } - this.addSVGFilters(filters, imageArray); + this.imageSourcesArray = this.getSourceArrayFromProperty(); + await loadAllImagesFromMediaSource(this.imageSourcesArray, this.renderer); } - private setOverlayColor = () => { - this.$imageOverlay.css('background-color', - Component.numberToColor(this.props[PropertyKey.kPropertyOverlayColor])); - } + private async renderImage() { + if (!isSomething(this.imageSourcesArray)) { + return; + } - private setOverlayGradient = () => { - this.$imageOverlay.css('background-image', - Image.getCssGradient(this.props[PropertyKey.kPropertyOverlayGradient], this.logger)); - } - - private setSourceAndFilter = () => { - if (this.hasValidBounds()) { - // reset svg - this.initSvgElement(); - // get images from source. - let imageSrcArray: string[] | string = this.props[PropertyKey.kPropertySource]; - imageSrcArray = imageSrcArray instanceof Array ? imageSrcArray : [imageSrcArray]; - // Need make a copy of source image array, otherwise it will be mutated by filter operations - const imageArray: string [] = imageSrcArray.slice(0); - this.setFilters(imageArray); - // the original image is used to apply customized filter and will be hidden from the final render result. - // workaround for firefox to draw on canvas : image's crossOrigin attribute is set to 'anonymous' - if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1 && this.hasFiltersInCanvas) { - this.originalImageElement.crossOrigin = 'anonymous'; - } - this.originalImageElement.src = this.getImageSource(imageSrcArray[imageSrcArray.length - 1], - this.originalImageElement.crossOrigin === 'anonymous'); - $(this.originalImageElement).on('load', () => { - this.setImageScale(); - // hide the original image after everything is loaded. and add svg - this.$originalImageElement.css('display', 'none'); - // onLoad can be triggered 5~6 times due to image resizing and other reasons. - // using debounce can avoid unnecessary calls and improve performance. - clearTimeout(this.setSvgImageHrefTimeout); - this.setSvgImageHrefTimeout = setTimeout(() => { - this.setSvgImageHref(); - $(this.svg).html($(this.svg).html()); - }, 10); - // setup shadow - if (this.originalImageElement.complete - && !this.isShadowHolderAdded - && this.hasShadowPropertyDefined()) { - this.isShadowHolderAdded = true; - this.applyShadowEffectWhenScaled(); + const mainImageSource = last(this.imageSourcesArray); + + if (!isSomething(mainImageSource)) { + this.logger.warn('Attempted to render image without image url.'); + return; + } + + // Set updated bounds + const { + height, + width + } = this.innerBounds; + + const imageDimensions: ImageDimensions = { + width, + height + }; + const useCanvas = this.hasNoiseFilter || this.imageScale === ImageScale.kImageScaleNone; + + const lastIndex = this.imageSourcesArray.length - 1; + // Scale all images + const scaledImageSources: ScaledImageSource[] = await Promise.all( + this.imageSourcesArray.map(async (imageSourceUrl, index) => { + + let imageProcessor; + + // Select the corresponding image processor + if (useCanvas) { + imageProcessor = await createCanvasScaledImageProcessor({ + imageSourceUrl, + canvas: this.canvasElement, + imageDimensions, + renderer: this.renderer, + filters: this.imageFilters, + applyFilterArgs: { + currentImageIndex: index, + isLastIndex: (index === lastIndex) + }, + scalingOption: this.imageScale + }); + } else { + imageProcessor = await createScaledImageProcessor({ + imageSourceUrl, + imageDimensions, + renderer: this.renderer, + scalingOption: this.imageScale + }); } - }); + + return imageProcessor.scaleImage(); + }) + ); + + const { + scaledImageWidth, + scaledImageHeight, + scaledSource + } = last(scaledImageSources) as ScaledImageSource; + + // Apply SVG Filters + createSVGImageFiltersApplier({ + uuid: this.uuid, + svgElement: this.svgElement, + imageElement: this.imageSVGElement, + filters: this.imageFilters, + imageSources: scaledImageSources.map((imageSource) => imageSource.scaledSource) + }).applyFiltersToSVGImage(); + + // Update Image + this.imageSVGElement.setAttribute('href', scaledSource); + + // Sizing + createStylesApplier({ + element: this.svgElement, + properties: { + height: scaledImageHeight, + width: scaledImageWidth + }, + elementType: ElementType.SVG + }).applyStyle(); + + const viewHeight = Math.min(height, scaledImageHeight); + const viewWidth = Math.min(width, scaledImageWidth); + + createStylesApplier({ + element: this.imageOverlay, + properties: { + height: viewHeight, + width: viewWidth + }, + cssUnitType: CssUnitType.Pixels + }).applyStyle(); + + createStylesApplier({ + element: this.imageView, + properties: { + height: viewHeight, + width: viewWidth + }, + cssUnitType: CssUnitType.Pixels + }).applyStyle(); + + // Alignment + const imageViewAlignment = createAligner({ + parentBounds: this.innerBounds, + element: { + width: scaledImageWidth, + height: scaledImageHeight + }, + layoutDirection: this.layoutDirection, + imageAlign: this.imageAlignment + }).getAlignment(); + + createStylesApplier({ + element: this.imageView, + properties: imageViewAlignment, + cssUnitType: CssUnitType.Pixels + }).applyStyle(); + + const imageViewInnerHTMLAlignment = createAligner({ + parentBounds: { + height: viewHeight, + width: viewWidth + }, + element: { + width: scaledImageWidth, + height: scaledImageHeight + }, + boundLimits: { + maxTop: Number.NEGATIVE_INFINITY, + maxLeft: Number.NEGATIVE_INFINITY, + minLeft: Number.POSITIVE_INFINITY + }, + layoutDirection: this.layoutDirection, + imageAlign: this.imageAlignment + }).getAlignment(); + + createStylesApplier({ + element: this.svgElement, + properties: imageViewInnerHTMLAlignment, + cssUnitType: CssUnitType.Pixels + }).applyStyle(); + + // Display Image + this.insertIntoDOM({ + element: this.imageView, + properties: this.imageViewProperties + }); + } + + private insertIntoDOM({element, properties}) { + const isAlreadyInDOM = !!document.getElementById(element.id); + if (!isAlreadyInDOM) { + createStylesApplier({ + element, + properties + }).applyStyle(); + + this.container.appendChild(element); } } - private getImageSource = (source: string, cors: boolean): string => { - if (!cors) { - return source; + private prepareImageView() { + // Prep SVGImage + const svgImageInSVGElement = this.svgElement.getElementsByTagName('image').length > 0; + if (!svgImageInSVGElement) { + createStylesApplier({ + element: this.imageSVGElement, + properties: { + preserveAspectRatio: 'none', + x: '0%', + y: '0%', + width: '100%', + height: '100%' + }, + elementType: ElementType.SVG + }).applyStyle(); + this.imageSVGElement.id = `svg-image-element-${this.uuid}`; + + this.svgElement.appendChild(this.imageSVGElement); + } + + // Prep SVG + const svgInImageView = this.imageView.getElementsByTagName('svg').length > 0; + if (!svgInImageView) { + createStylesApplier({ + element: this.svgElement, + properties: this.svgImageElementProperties + }).applyStyle(); + + this.svgElement.id = `svg-element-${this.uuid}`; + this.imageView.appendChild(this.svgElement); } - // for cors requested image, we do not want to load from cache. - return source.includes('?') ? source + '&_' : source + '?_'; - } - - private setSvgImageHref = () => { - if (this.hasFiltersInCanvas) { - this.applyFiltersToSvgImageHref(); - } else { - // no filter need to perform on canvas, directly set image source. - let imageSrcArray: string[] | string = this.props[PropertyKey.kPropertySource]; - imageSrcArray = imageSrcArray instanceof Array ? imageSrcArray : [imageSrcArray]; - // per specs, the last one from image array should be rendered. - this.imageElement.setAttribute('href', imageSrcArray[imageSrcArray.length - 1]); + + // Prep Overlay + const overlayInView = this.imageView.getElementsByTagName('div').length > 0; + if (!overlayInView) { + createStylesApplier({ + element: this.imageOverlay, + properties: this.imageOverlayProperties + }).applyStyle(); + + this.imageOverlay.id = `image-overlay-${this.uuid}`; + this.imageView.appendChild(this.imageOverlay); } } - private applyShadowEffectWhenScaled = () => { - // shallow copy imgPlaceHolder and the shadow will be applied on the copied div element - const imgShadowHolder = $(this.imgPlaceHolder.cloneNode(false)).attr('class', 'imgShadowHolder'); - // set the css properties of the cloned div and make it cover imgPlaceHolder - imgShadowHolder.css('overflow', 'unset'); - imgShadowHolder.css('margin-top', -this.$imgPlaceHolder.height()); - const DEFAULT_ZINDEX: number = -1; - imgShadowHolder.css('z-index', DEFAULT_ZINDEX); - imgShadowHolder.appendTo(this.$imgPlaceHolder.parent()); - imgShadowHolder.css('box-shadow', this.getCssShadow()); - } - - private hasShadowPropertyDefined = (): boolean => { - return (this.props[PropertyKey.kPropertyShadowHorizontalOffset] !== 0 - || this.props[PropertyKey.kPropertyShadowVerticalOffset] !== 0 - || this.props[PropertyKey.kPropertyShadowRadius] > 0 - || this.props[PropertyKey.kPropertyShadowColor] > 0); - } - - /** - * Check filters. - * If there is any filter to be implemented in canvas, set hasFiltersInCanvas to true. - */ - private checkFilters = (filters: Filter[]) => { - filters.forEach((filter) => { - // Noise filter is performed using canvas. - if (isINoise(filter)) { - this.hasFiltersInCanvas = true; - } - }); + private prepareImageOverlay() { + this.imageOverlay.id = `overlay-${this.uuid}`; } - private addSVGFilters(filters: Filter[], imageSourceArray: string[]): void { - // substring the CORE ID from :1000 -> 1000, otherwise, HTML will not recognize. - // this id will map to filter id in the definition - const filterId = this.component.getUniqueId().substring(1); - const svgDefsAndUseElement = generateSVGDefsAndUseElement(filters, imageSourceArray, filterId); - if (svgDefsAndUseElement) { - this.svgDefsElement = svgDefsAndUseElement.svgDefsElement; - this.svgUseElement = svgDefsAndUseElement.svgUseElement; - if (this.svgUseElement) { - this.svg.appendChild(this.svgUseElement); - } - if (this.svgDefsElement) { - this.svg.appendChild(this.svgDefsElement); - this.imageElement.setAttribute('filter', `url(#${filterId})`); + private setFilters = () => { + this.imageFilters = this.props[PropertyKey.kPropertyFilters]; + } + + private setBorderRadius = () => { + this.borderRadius = this.props[PropertyKey.kPropertyBorderRadius]; + createStylesApplier({ + element: this.imageView, + properties: { + 'border-radius': this.borderRadius + }, + cssUnitType: CssUnitType.Pixels, + elementType: ElementType.HTML + }).applyStyle(); + } + + private setOverlayColor = () => { + this.overlayColor = numberToColor(this.props[PropertyKey.kPropertyOverlayColor]); + createStylesApplier({ + element: this.imageOverlay, + properties: { + 'background-color': this.overlayColor } - } + }).applyStyle(); } - /** - * Apply filters one by one based on their order. - * Skip blur if blur is implemented in CSS. - */ - private applyFiltersToSvgImageHref = () => { - const w = this.canvasElement.width; - const h = this.canvasElement.height; - if (w <= 0 || h <= 0) { return; } - - const ctx = this.canvasElement.getContext('2d'); - const filters: Filter[] = this.props[PropertyKey.kPropertyFilters]; - ctx.drawImage(this.originalImageElement, 0, 0, w, h); - let imageData: ImageData; - try { - imageData = ctx.getImageData(0, 0, w, h); - } catch (e) { - this.logger.error('Failed to apply filters in Canvas, removing canvas element.'); - } - if (!imageData) { return; } - - filters.forEach((filter) => { - // skip other filters because it will leverage SVG filter. - if (isINoise(filter)) { - const noise: Noise = new Noise(filter.useColor, filter.kind, filter.sigma); - noise.addNoise(imageData); - } else { - this.logger.warn('unknown filter for canvas'); + private setOverlayGradient = () => { + this.overlayGradient = getCssGradient(this.props[PropertyKey.kPropertyOverlayGradient], this.logger); + createStylesApplier({ + element: this.imageOverlay, + properties: { + 'background-image': this.overlayGradient } - }); - ctx.putImageData(imageData, 0, 0); - // update the render image element with raw ImageData. - this.imageElement.setAttribute('href', this.canvasElement.toDataURL()); + }).applyStyle(); } - public static getCssGradient(gradient: IGradient, logger: ILogger): string { - if (!gradient) { - return ''; - } + private setImageScale = () => { + this.imageScale = this.props[PropertyKey.kPropertyScale]; + } - let gradientCss = ''; + private setImageAlignment = () => { + this.imageAlignment = this.props[PropertyKey.kPropertyAlign]; + } - // All gradients use color stops, colors are mandatory, stop positions are not - const inputRange = gradient.inputRange || []; - const colorStops = gradient.colorRange.map((color, idx) => { - // if the color already in css rgba format string, do not need convert. - if (typeof color !== 'number') { - if (inputRange.length > idx) { - return `${color} ${inputRange[idx] * 100}%`; - } - return color; - } - // else color is a number, convert to rgba format. - if (inputRange.length > idx) { - return `${this.numberToColor(color)} ${inputRange[idx] * 100}%`; - } - return this.numberToColor(color); - }).join(','); - - switch ( gradient.type ) { - case GradientType.LINEAR: { - const angle = gradient.angle || 0; - gradientCss = `linear-gradient(${angle}deg, ${colorStops})`; - break; - } - case GradientType.RADIAL: { - gradientCss = `radial-gradient(${colorStops})`; - break; - } - default: { - logger.warn('Incorrect gardient type'); - break; - } - } - return gradientCss; + // Setters / Getters + set borderRadius(value: number) { + this.imageProperties.borderRadius = value; } - public static getCssPureColorGradient(color: string) { - return `linear-gradient(${color}, ${color})`; + get borderRadius() { + return this.imageProperties.borderRadius; } - private setImageScale() { - const width: number = this.originalImageElement.naturalWidth as number; - const height: number = this.originalImageElement.naturalHeight as number; - this.$originalImageElement.css('width', width); - this.$originalImageElement.css('height', height); - this.$originalImageElement.css('display', ''); - ($(this.originalImageElement) as any).imageScale({ - scale: this.getImageScale() - }); - const imageEleWidth = $(this.originalImageElement).width(); - const imageEleHeight = $(this.originalImageElement).height(); - this.$svg.css('display', ''); - this.$svg.css({ - top: this.originalImageElement.offsetTop, - left: this.originalImageElement.offsetLeft - }); - this.svg.setAttribute('width', imageEleWidth.toString()); - this.svg.setAttribute('height', imageEleHeight.toString()); - this.$imageOverlay.css('width', Math.min(this.innerBounds.width, imageEleWidth)); - this.$imageOverlay.css('height', Math.min(this.innerBounds.height, imageEleHeight)); - this.$imgPlaceHolder.css('width', Math.min(this.innerBounds.width, imageEleWidth)); - this.$imgPlaceHolder.css('height', Math.min(this.innerBounds.height, imageEleHeight)); - this.setImageHolderAlignment(); - if (this.props[PropertyKey.kPropertyScale] === ImageScale.kImageScaleBestFill) { - this.setImageAndSvgAlignment(); - } + set borderColor(value: string) { + this.imageProperties.borderColor = value; } - private getImageScale(): string { - // tslint:disable-next-line:switch-default - switch (this.props[PropertyKey.kPropertyScale]) { - case ImageScale.kImageScaleBestFill: - return 'best-fill'; - case ImageScale.kImageScaleBestFit: - return 'best-fit'; - case ImageScale.kImageScaleBestFitDown: - return 'best-fit-down'; - case ImageScale.kImageScaleFill: - return 'fill'; - case ImageScale.kImageScaleNone: - return 'none'; - default: - this.logger.error('bad image scale property enum', this.props[PropertyKey.kPropertyScale]); - return 'best-fit'; - } + get borderColor() { + return this.imageProperties.borderColor; } - private setImageHolderAlignment() { - const imageAligner = createAligner({ - parentBounds: this.innerBounds, - element: this.originalImageElement, - layoutDirection: this.layoutDirection, - imageAlign: this.props[PropertyKey.kPropertyAlign] - }); - const alignment = imageAligner.getAlignment(); + set borderWidth(value: number) { + this.imageProperties.borderWidth = value; + } - createStylesApplier({ - element: this.imgPlaceHolder, - properties: alignment, - cssUnitType: CssUnitType.Pixels - }).applyStyle(); + get borderWidth() { + return this.imageProperties.borderWidth; } - private setImageAndSvgAlignment() { - let top = this.originalImageElement.offsetTop; - let left = this.originalImageElement.offsetLeft; - switch (this.props[PropertyKey.kPropertyAlign]) { - case ImageAlign.kImageAlignBottom: { - top *= 2; - break; - } - case ImageAlign.kImageAlignBottomLeft: { - top *= 2; - left = 0; - break; - } - case ImageAlign.kImageAlignBottomRight: { - top *= 2; - left *= 2; - break; - } - case ImageAlign.kImageAlignCenter: { - // Do nothing, current top and left are for center. - break; - } - case ImageAlign.kImageAlignLeft: { - left = 0; - break; - } - case ImageAlign.kImageAlignRight: { - left *= 2; - break; - } - case ImageAlign.kImageAlignTop: { - top = 0; - break; - } - case ImageAlign.kImageAlignTopLeft: { - top = 0; - left = 0; - break; - } - case ImageAlign.kImageAlignTopRight: { - top = 0; - left *= 2; - break; - } - default: { - this.logger.error('Bad image alignment property key', this.props[PropertyKey.kPropertyAlign]); - break; - } - } - this.$originalImageElement.css({top, left}); - this.$svg.css({top, left}); + set overlayColor(value: string) { + this.imageProperties.overlayColor = value; + } + + get overlayColor() { + return this.imageProperties.overlayColor; + } + + set overlayGradient(value: string) { + this.imageProperties.overlayGradient = value; + } + + get overlayGradient() { + return this.imageProperties.overlayGradient; + } + + get hasNoiseFilter(): boolean { + const filtersArray = this.props[PropertyKey.kPropertyFilters]; + const isNoiseFilter = (filter) => filter.type === FilterType.kFilterTypeNoise; + return filtersArray.some(isNoiseFilter); + } + + set imageScale(value: ImageScale) { + this.imageProperties.imageScale = value; + } + + get imageScale() { + return this.imageProperties.imageScale; + } + + set imageAlignment(value: ImageAlign) { + this.imageProperties.imageAlignment = value; + } + + get imageAlignment() { + return this.imageProperties.imageAlignment; + } + + set imageFilters(value: Filter[]) { + this.imageProperties.imageFilters = value; + } + + get imageFilters() { + return this.imageProperties.imageFilters; + } + + get canvasRenderingContext() { + return this.canvasElement.getContext('2d'); } } diff --git a/js/apl-html/src/components/MultiChildScrollable.ts b/js/apl-html/src/components/MultiChildScrollable.ts index ee64a49..7ea2e84 100644 --- a/js/apl-html/src/components/MultiChildScrollable.ts +++ b/js/apl-html/src/components/MultiChildScrollable.ts @@ -6,9 +6,9 @@ import APLRenderer from '../APLRenderer'; import {PropertyKey} from '../enums/PropertyKey'; import {ScrollDirection} from '../enums/ScrollDirection'; +import {processNextTick} from '../utils/EventUtils'; import {Component, FactoryFunction, IComponentProperties} from './Component'; import {Scrollable} from './Scrollable'; -import {processNextTick} from '../utils/EventUtils'; /** * @ignore diff --git a/js/apl-html/src/components/ScrollView.ts b/js/apl-html/src/components/ScrollView.ts index 3a4085f..7619ec5 100644 --- a/js/apl-html/src/components/ScrollView.ts +++ b/js/apl-html/src/components/ScrollView.ts @@ -5,9 +5,9 @@ import * as $ from 'jquery'; import APLRenderer from '../APLRenderer'; +import { PropertyKey } from '../enums/PropertyKey'; import { Component, FactoryFunction, IComponentProperties } from './Component'; import { Scrollable } from './Scrollable'; -import { PropertyKey } from '../enums/PropertyKey'; /** * @ignore diff --git a/js/apl-html/src/components/Scrollable.ts b/js/apl-html/src/components/Scrollable.ts index 2be6a7f..9913034 100644 --- a/js/apl-html/src/components/Scrollable.ts +++ b/js/apl-html/src/components/Scrollable.ts @@ -5,9 +5,9 @@ import APLRenderer from '../APLRenderer'; import { ScrollDirection } from '../enums/ScrollDirection'; -import { Component, FactoryFunction, IComponentProperties } from './Component'; -import { ActionableComponent } from './ActionableComponent'; import { UpdateType } from '../enums/UpdateType'; +import { ActionableComponent } from './ActionableComponent'; +import { Component, FactoryFunction, IComponentProperties } from './Component'; /** * @ignore diff --git a/js/apl-html/src/components/TouchWrapper.ts b/js/apl-html/src/components/TouchWrapper.ts index f970be1..8feef87 100644 --- a/js/apl-html/src/components/TouchWrapper.ts +++ b/js/apl-html/src/components/TouchWrapper.ts @@ -4,10 +4,10 @@ */ import APLRenderer from '../APLRenderer'; -import { Component, FactoryFunction, IComponentProperties } from './Component'; -import { ActionableComponent } from './ActionableComponent'; import { PropertyKey } from '../enums/PropertyKey'; import { ChildAction } from '../utils/Constant'; +import { ActionableComponent } from './ActionableComponent'; +import { Component, FactoryFunction, IComponentProperties } from './Component'; /** * @ignore diff --git a/js/apl-html/src/components/TouchableComponent.ts b/js/apl-html/src/components/TouchableComponent.ts deleted file mode 100644 index 4eb615b..0000000 --- a/js/apl-html/src/components/TouchableComponent.ts +++ /dev/null @@ -1,30 +0,0 @@ -/*! - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - */ - -import { Component, FactoryFunction, IComponentProperties } from './Component'; -import { ActionableComponent } from './ActionableComponent'; -import APLRenderer from '../APLRenderer'; -import { DEFAULT_SECTION, SpatialNavigation } from '../utils/SpatialNavigation'; -import { PropertyKey } from '../enums/PropertyKey'; - -/** - * Touchable components are components that can receive input from touch - * or pointer events invoke handlers to support custom touch interaction behavior. - */ -export abstract class TouchableComponent - extends ActionableComponent { - - constructor(renderer : APLRenderer, component : APL.Component, factory : FactoryFunction, parent? : Component) { - super(renderer, component, factory, parent); - - // Avoid touchswipe lib from taking control. - // Side effect - no way to swipe pager with touch when it's only TW taking whole thing inside. - this.container.classList.add('noSwipe'); - - if (SpatialNavigation.enabled() && this.component.getCalculatedByKey(PropertyKey.kPropertyFocusable)) { - // Will override focus/blur handlers with spatial variants if enabled - SpatialNavigation.makeNavigable(this.container, DEFAULT_SECTION, this.focus, this.blur); - } - } -} diff --git a/js/apl-html/src/components/avg/AVG.ts b/js/apl-html/src/components/avg/AVG.ts index ee5815e..04da578 100644 --- a/js/apl-html/src/components/avg/AVG.ts +++ b/js/apl-html/src/components/avg/AVG.ts @@ -6,9 +6,9 @@ import {GraphicElementType} from '../../enums/GraphicElementType'; import {GraphicPropertyKey} from '../../enums/GraphicPropertyKey'; import {ILogger} from '../../logging/ILogger'; +import {FontUtils} from '../../utils/FontUtils'; import {IValueWithReference, SVG_NS} from '../Component'; import {AVGFilter, createAndGetFilterElement} from './Filter'; -import {FontUtils} from '../../utils/FontUtils'; import {fillAndStrokeConverter} from './GraphicsUtils'; export interface AVGArgs { @@ -77,7 +77,9 @@ export abstract class AVG { protected setAttribute(attributeName: string): (key: GraphicPropertyKey) => void { return (key: GraphicPropertyKey) => { const graphicPropertyValue = this.graphic.getValue(key); - this.element.setAttributeNS('', attributeName, graphicPropertyValue.toString()); + this.element.setAttributeNS('', attributeName, + (graphicPropertyValue) ? graphicPropertyValue.toString() : '' + ); }; } @@ -136,7 +138,9 @@ export abstract class AVG { return (key: GraphicPropertyKey) => { const fontStyle = this.graphic.getValue(key); const convertedValue = FontUtils.getFontStyle(fontStyle); - this.element.setAttributeNS('', attributeName, convertedValue.toString()); + this.element.setAttributeNS('', attributeName, + (convertedValue) ? convertedValue.toString() : '' + ); }; } diff --git a/js/apl-html/src/components/avg/AVGText.ts b/js/apl-html/src/components/avg/AVGText.ts index 8f6da9a..67e3f8f 100644 --- a/js/apl-html/src/components/avg/AVGText.ts +++ b/js/apl-html/src/components/avg/AVGText.ts @@ -3,12 +3,12 @@ * SPDX-License-Identifier: Apache-2.0 */ -import {GraphicTextAnchor} from '../../enums/GraphicTextAnchor'; import {GraphicPropertyKey} from '../../enums/GraphicPropertyKey'; -import {AVG} from './AVG'; +import {GraphicTextAnchor} from '../../enums/GraphicTextAnchor'; import {ILogger} from '../../logging/ILogger'; import {FontUtils} from '../../utils/FontUtils'; import {ElementType} from '../helpers/StylesApplier'; +import {AVG} from './AVG'; export interface AVGTextArgs { graphic: APL.GraphicElement; diff --git a/js/apl-html/src/components/avg/Filter.ts b/js/apl-html/src/components/avg/Filter.ts index 19327c0..cb6aee0 100644 --- a/js/apl-html/src/components/avg/Filter.ts +++ b/js/apl-html/src/components/avg/Filter.ts @@ -4,9 +4,9 @@ */ import * as $ from 'jquery'; +import { GraphicFilterType } from '../../enums/GraphicFilterType'; import { ILogger } from '../../logging/ILogger'; import { Component, SVG_NS, uuidv4 } from '../Component'; -import { GraphicFilterType } from '../../enums/GraphicFilterType'; export interface IAVGFilterElement { filterId: string; diff --git a/js/apl-html/src/components/avg/Gradient.ts b/js/apl-html/src/components/avg/Gradient.ts index d1896fa..cc2b9c1 100644 --- a/js/apl-html/src/components/avg/Gradient.ts +++ b/js/apl-html/src/components/avg/Gradient.ts @@ -3,11 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { ILogger } from '../../logging/ILogger'; -import { Component, IDENTITY_TRANSFORM, IValueWithReference, SVG_NS, uuidv4 } from '../Component'; -import { GradientType } from '../../enums/GradientType'; import { GradientSpreadMethod } from '../../enums/GradientSpreadMethod'; +import { GradientType } from '../../enums/GradientType'; import { GradientUnits } from '../../enums/GradientUnits'; +import { ILogger } from '../../logging/ILogger'; +import { Component, IDENTITY_TRANSFORM, IValueWithReference, SVG_NS, uuidv4 } from '../Component'; /** * @ignore diff --git a/js/apl-html/src/components/avg/GraphicsUtils.ts b/js/apl-html/src/components/avg/GraphicsUtils.ts index fa31c43..f4494ce 100644 --- a/js/apl-html/src/components/avg/GraphicsUtils.ts +++ b/js/apl-html/src/components/avg/GraphicsUtils.ts @@ -4,10 +4,10 @@ */ import {ILogger} from '../../logging/ILogger'; +import {numberToColor} from '../../utils/ColorUtils'; +import {IValueWithReference} from '../Component'; import {createGradientElement, IAVGGradient} from './Gradient'; import {getOrCreatePatternElementWithArgs} from './Patterns'; -import {IValueWithReference} from '../Component'; -import {numberToColor} from '../../utils/ColorUtils'; export interface FillAndStrokeConverterArgs { value: object; diff --git a/js/apl-html/src/components/avg/Group.ts b/js/apl-html/src/components/avg/Group.ts index 75d0cd4..258795f 100644 --- a/js/apl-html/src/components/avg/Group.ts +++ b/js/apl-html/src/components/avg/Group.ts @@ -3,13 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ +import {GraphicElementType} from '../../enums/GraphicElementType'; import {GraphicPropertyKey} from '../../enums/GraphicPropertyKey'; -import {AVG} from './AVG'; -import {Path} from './Path'; -import {AVGText} from './AVGText'; import {ILogger} from '../../logging/ILogger'; import {Component} from '../Component'; -import {GraphicElementType} from '../../enums/GraphicElementType'; +import {AVG} from './AVG'; +import {AVGText} from './AVGText'; +import {Path} from './Path'; export interface GroupArgs { graphic: APL.GraphicElement; diff --git a/js/apl-html/src/components/avg/Path.ts b/js/apl-html/src/components/avg/Path.ts index b77e959..9416074 100644 --- a/js/apl-html/src/components/avg/Path.ts +++ b/js/apl-html/src/components/avg/Path.ts @@ -3,11 +3,11 @@ * SPDX-License-Identifier: Apache-2.0 */ -import {GraphicPropertyKey} from '../../enums/GraphicPropertyKey'; -import {AVG} from './AVG'; -import {ILogger} from '../../logging/ILogger'; import {GraphicLineCap} from '../../enums/GraphicLineCap'; import {GraphicLineJoin} from '../../enums/GraphicLineJoin'; +import {GraphicPropertyKey} from '../../enums/GraphicPropertyKey'; +import {ILogger} from '../../logging/ILogger'; +import {AVG} from './AVG'; const lineCaps = new Map([ [GraphicLineCap.kGraphicLineCapButt, 'butt'], diff --git a/js/apl-html/src/components/avg/Patterns.ts b/js/apl-html/src/components/avg/Patterns.ts index 4f5d701..53e6add 100644 --- a/js/apl-html/src/components/avg/Patterns.ts +++ b/js/apl-html/src/components/avg/Patterns.ts @@ -3,13 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -import {AVG} from './AVG'; -import {Path} from './Path'; -import {Group} from './Group'; -import {AVGText} from './AVGText'; -import {ILogger} from '../../logging/ILogger'; import {GraphicElementType} from '../../enums/GraphicElementType'; +import {ILogger} from '../../logging/ILogger'; import {IDENTITY_TRANSFORM, IValueWithReference, SVG_NS} from '../Component'; +import {AVG} from './AVG'; +import {AVGText} from './AVGText'; +import {Group} from './Group'; +import {Path} from './Path'; export interface PatternElementArgs { graphicPattern: APL.GraphicPattern; diff --git a/js/apl-html/src/components/avg/VectorGraphic.ts b/js/apl-html/src/components/avg/VectorGraphic.ts index 523710f..9be6efa 100644 --- a/js/apl-html/src/components/avg/VectorGraphic.ts +++ b/js/apl-html/src/components/avg/VectorGraphic.ts @@ -5,13 +5,13 @@ import * as $ from 'jquery'; import APLRenderer from '../../APLRenderer'; -import {GraphicPropertyKey} from '../../enums/GraphicPropertyKey'; -import {PropertyKey} from '../../enums/PropertyKey'; -import {VectorGraphicScale} from '../../enums/VectorGraphicScale'; -import {Component, FactoryFunction, IComponentProperties} from '../Component'; -import {ActionableComponent} from '../ActionableComponent'; -import {VectorGraphicElementUpdater} from './VectorGraphicElementUpdater'; -import {GraphicLayoutDirection} from '../../enums/GraphicLayoutDirection'; +import { GraphicLayoutDirection } from '../../enums/GraphicLayoutDirection'; +import { GraphicPropertyKey } from '../../enums/GraphicPropertyKey'; +import { PropertyKey } from '../../enums/PropertyKey'; +import { VectorGraphicScale } from '../../enums/VectorGraphicScale'; +import { ActionableComponent } from '../ActionableComponent'; +import { Component, FactoryFunction, IComponentProperties } from '../Component'; +import { VectorGraphicElementUpdater } from './VectorGraphicElementUpdater'; const SUPPORTED_GRAPHIC_LAYOUT_DIRECTIONS = { [GraphicLayoutDirection.kGraphicLayoutDirectionLTR]: 'ltr', diff --git a/js/apl-html/src/components/avg/VectorGraphicElementUpdater.ts b/js/apl-html/src/components/avg/VectorGraphicElementUpdater.ts index 092bf30..4111a35 100644 --- a/js/apl-html/src/components/avg/VectorGraphicElementUpdater.ts +++ b/js/apl-html/src/components/avg/VectorGraphicElementUpdater.ts @@ -3,12 +3,12 @@ * SPDX-License-Identifier: Apache-2.0 */ +import { ILogger, LoggerFactory } from '../..'; import { GraphicElementType } from '../../enums/GraphicElementType'; import { AVG } from './AVG'; +import { AVGText } from './AVGText'; import { Group } from './Group'; import { Path } from './Path'; -import { AVGText } from './AVGText'; -import { ILogger, LoggerFactory } from '../..'; export { AVG } from './AVG'; export { Group } from './Group'; diff --git a/js/apl-html/src/components/filters/Blend.ts b/js/apl-html/src/components/filters/Blend.ts index cbdf369..1891e08 100644 --- a/js/apl-html/src/components/filters/Blend.ts +++ b/js/apl-html/src/components/filters/Blend.ts @@ -5,10 +5,10 @@ 'use strict'; +import { BlendMode } from '../../enums/BlendMode'; import { Filter, generateSVGFeImage, isIndexOutOfBound } from '../../utils/FilterUtils'; import { SVG_NS, uuidv4 } from '../Component'; -import { BlendMode } from '../../enums/BlendMode'; -import { IBaseFilter, IImageFilterElement, BITMAP_IMAGE_REGEX_CHECK } from './ImageFilter'; +import { BITMAP_IMAGE_REGEX_CHECK, IBaseFilter, IImageFilterElement } from './ImageFilter'; /** * @ignore diff --git a/js/apl-html/src/components/filters/Blur.ts b/js/apl-html/src/components/filters/Blur.ts index 1b65119..b89b837 100644 --- a/js/apl-html/src/components/filters/Blur.ts +++ b/js/apl-html/src/components/filters/Blur.ts @@ -7,7 +7,7 @@ import { Filter, generateSVGFeImage, isIndexOutOfBound } from '../../utils/FilterUtils'; import { SVG_NS, uuidv4 } from '../Component'; -import { IImageFilterElement, IBaseFilter, BITMAP_IMAGE_REGEX_CHECK } from './ImageFilter'; +import { BITMAP_IMAGE_REGEX_CHECK, IBaseFilter, IImageFilterElement } from './ImageFilter'; /** * @ignore diff --git a/js/apl-html/src/components/filters/Color.ts b/js/apl-html/src/components/filters/Color.ts index 6885f9d..14d410b 100644 --- a/js/apl-html/src/components/filters/Color.ts +++ b/js/apl-html/src/components/filters/Color.ts @@ -6,8 +6,8 @@ 'use strict'; import { Filter } from '../../utils/FilterUtils'; -import { SVG_NS, uuidv4, Component } from '../Component'; -import { IImageFilterElement, IBaseFilter } from './ImageFilter'; +import { Component, SVG_NS, uuidv4 } from '../Component'; +import { IBaseFilter, IImageFilterElement } from './ImageFilter'; /** * @ignore diff --git a/js/apl-html/src/components/filters/Gradient.ts b/js/apl-html/src/components/filters/Gradient.ts index 38a58a1..e088a44 100644 --- a/js/apl-html/src/components/filters/Gradient.ts +++ b/js/apl-html/src/components/filters/Gradient.ts @@ -5,11 +5,11 @@ 'use strict'; -import { Filter } from '../../utils/FilterUtils'; -import { IGradient } from '../Image'; -import { SVG_NS, Component, uuidv4 } from '../Component'; -import { GradientType } from '../../enums/GradientType'; -import { IImageFilterElement, IBaseFilter } from './ImageFilter'; +import {GradientType} from '../../enums/GradientType'; +import {Filter} from '../../utils/FilterUtils'; +import {IGradient} from '../../utils/ImageUtils'; +import {Component, SVG_NS, uuidv4} from '../Component'; +import {IBaseFilter, IImageFilterElement} from './ImageFilter'; /** * @ignore @@ -81,17 +81,17 @@ export function getGradientFilter(filter: Filter, fImage.setAttributeNS('', 'href', `#${rectId}`); fImage.setAttributeNS('', 'result', feImageId); filterImageArray.push(fImage); - return { filterId: feImageId, filterElement: fImage, filterImageArray }; + return {filterId: feImageId, filterElement: fImage, filterImageArray}; } export function getAngleCoords(angle: number) { // angle can be 0 to 360 const anglePI = (360 - angle) * (Math.PI / 180); const angleCoords = { - x1 : Math.round(50 + Math.sin(anglePI) * 50) + '%', - y1 : Math.round(50 + Math.cos(anglePI) * 50) + '%', - x2 : Math.round(50 + Math.sin(anglePI + Math.PI) * 50) + '%', - y2 : Math.round(50 + Math.cos(anglePI + Math.PI) * 50) + '%' + x1: Math.round(50 + Math.sin(anglePI) * 50) + '%', + y1: Math.round(50 + Math.cos(anglePI) * 50) + '%', + x2: Math.round(50 + Math.sin(anglePI + Math.PI) * 50) + '%', + y2: Math.round(50 + Math.cos(anglePI + Math.PI) * 50) + '%' }; return angleCoords; } diff --git a/js/apl-html/src/components/filters/Grayscale.ts b/js/apl-html/src/components/filters/Grayscale.ts index 6e1f8fd..346a333 100644 --- a/js/apl-html/src/components/filters/Grayscale.ts +++ b/js/apl-html/src/components/filters/Grayscale.ts @@ -7,7 +7,7 @@ import { Filter, generateSVGFeImage, isIndexOutOfBound } from '../../utils/FilterUtils'; import { SVG_NS, uuidv4 } from '../Component'; -import { IImageFilterElement, IBaseFilter, BITMAP_IMAGE_REGEX_CHECK } from './ImageFilter'; +import { BITMAP_IMAGE_REGEX_CHECK, IBaseFilter, IImageFilterElement } from './ImageFilter'; /** * @ignore diff --git a/js/apl-html/src/components/filters/ImageFilter.ts b/js/apl-html/src/components/filters/ImageFilter.ts index 6a7dd1a..3594cfd 100644 --- a/js/apl-html/src/components/filters/ImageFilter.ts +++ b/js/apl-html/src/components/filters/ImageFilter.ts @@ -5,15 +5,15 @@ 'use strict'; -import { Filter } from '../../utils/FilterUtils'; import { FilterType } from '../../enums/FilterType'; +import { ILogger } from '../../logging/ILogger'; +import { LoggerFactory } from '../../logging/LoggerFactory'; +import { Filter } from '../../utils/FilterUtils'; import { SVG_NS } from '../Component'; +import { getBlendFilter } from './Blend'; import { getBlurFilter } from './Blur'; import { getColorFilter } from './Color'; -import { ILogger } from '../../logging/ILogger'; -import { LoggerFactory } from '../../logging/LoggerFactory'; import { getGradientFilter } from './Gradient'; -import { getBlendFilter } from './Blend'; import { getGrayscaleFilter } from './Grayscale'; import { getSaturateFilter } from './Saturate'; @@ -56,6 +56,8 @@ export class ImageFilter { * ImageFilter Constructor * @param filters filters get from kPropertyFilters * @param imageSrcArray image urls get from kPropertySource + * @param svgDefsElement svg element + * @param svgUseElement svg use element */ constructor(filters: Filter[], imageSrcArray: string[], svgDefsElement: SVGElement, svgUseElement: SVGUseElement) { diff --git a/js/apl-html/src/components/filters/Noise.ts b/js/apl-html/src/components/filters/Noise.ts index 0d55bfa..cc197e9 100644 --- a/js/apl-html/src/components/filters/Noise.ts +++ b/js/apl-html/src/components/filters/Noise.ts @@ -5,10 +5,10 @@ 'use strict'; +import { FilterType } from '../../enums/FilterType'; import { NoiseFilterKind } from '../../enums/NoiseFilterKind'; -import { SoftRandom } from '../../utils/SoftRandom'; import { Filter } from '../../utils/FilterUtils'; -import { FilterType } from '../../enums/FilterType'; +import { SoftRandom } from '../../utils/SoftRandom'; import { IBaseFilter } from './ImageFilter'; /** @@ -18,6 +18,7 @@ export interface INoise extends IBaseFilter { kind?: NoiseFilterKind; useColor?: boolean; sigma?: number; + source: number; } /** diff --git a/js/apl-html/src/components/filters/Saturate.ts b/js/apl-html/src/components/filters/Saturate.ts index 8c94c10..98733f6 100644 --- a/js/apl-html/src/components/filters/Saturate.ts +++ b/js/apl-html/src/components/filters/Saturate.ts @@ -7,7 +7,7 @@ import { Filter, generateSVGFeImage, isIndexOutOfBound } from '../../utils/FilterUtils'; import { SVG_NS, uuidv4 } from '../Component'; -import { IBaseFilter, IImageFilterElement, BITMAP_IMAGE_REGEX_CHECK } from './ImageFilter'; +import { BITMAP_IMAGE_REGEX_CHECK, IBaseFilter, IImageFilterElement } from './ImageFilter'; /** * @ignore diff --git a/js/apl-html/src/components/helpers/ImageAligner.ts b/js/apl-html/src/components/helpers/ImageAligner.ts index 135518e..0b326d2 100644 --- a/js/apl-html/src/components/helpers/ImageAligner.ts +++ b/js/apl-html/src/components/helpers/ImageAligner.ts @@ -3,18 +3,30 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { CssAttributeValues } from './StylesApplier'; -import { ImageAlign } from '../../enums/ImageAlign'; -import { LayoutDirection } from '../../enums/LayoutDirection'; -import { ILogger } from '../../logging/ILogger'; -import { LoggerFactory } from '../../logging/LoggerFactory'; +import {ImageAlign} from '../../enums/ImageAlign'; +import {LayoutDirection} from '../../enums/LayoutDirection'; +import {ILogger} from '../../logging/ILogger'; +import {LoggerFactory} from '../../logging/LoggerFactory'; +import {CssAttributeValues} from './StylesApplier'; + +export interface Dimensions { + width; + height; +} + +export interface Bounds { + maxTop: number; + maxLeft: number; + minLeft: number; +} export interface AlignerArgs { - parentBounds: APL.Rect; - element: HTMLImageElement; + parentBounds: Dimensions; + element: Dimensions; layoutDirection: LayoutDirection; alignerType?: AlignerType; imageAlign: ImageAlign; + boundLimits?: Bounds; } export enum AlignerType { @@ -35,7 +47,12 @@ const alignFunctionMap: AlignerTypePositionerMap = { export function createAligner(args: AlignerArgs): Aligner { const defaultArgs = { - alignerType: AlignerType.Image + alignerType: AlignerType.Image, + boundLimits: { + maxTop: 0, + maxLeft: 0, + minLeft: 0 + } }; const alignerArgs = Object.assign(defaultArgs, args); @@ -44,86 +61,106 @@ export function createAligner(args: AlignerArgs): Aligner { element, layoutDirection, alignerType, - imageAlign + imageAlign, + boundLimits } = alignerArgs; const logger = LoggerFactory.getLogger('ImageAligner'); - function getAlignment() { - const positioner = alignFunctionMap[alignerType]({ - parentBounds, - element, - layoutDirection, - logger - }); + function alignBottom(positioner: Positioner): CssAttributeValues { + return { + left: positioner.setToHorizontalCenter(), + top: positioner.setToBottom() + }; + } - switch (imageAlign) { - case ImageAlign.kImageAlignBottom: { - return { - left: positioner.setToHorizontalCenter(), - top: positioner.setToBottom() - }; - } - case ImageAlign.kImageAlignBottomLeft: { - return { - left: positioner.setToLeft(), - top: positioner.setToBottom() - }; - } - case ImageAlign.kImageAlignBottomRight: { - return { - left: positioner.setToRight(), - top: positioner.setToBottom() - }; - } - case ImageAlign.kImageAlignCenter: { - return { - left: positioner.setToHorizontalCenter(), - top: positioner.setToVerticalCenter() - }; - } - case ImageAlign.kImageAlignLeft: { - return { - left: positioner.setToLeft(), - top: positioner.setToVerticalCenter() - }; - } - case ImageAlign.kImageAlignRight: { - return { - left: positioner.setToRight(), - top: positioner.setToVerticalCenter() - }; - } - case ImageAlign.kImageAlignTop: { - return { - left: positioner.setToHorizontalCenter(), - top: positioner.setToTop() - }; - } - case ImageAlign.kImageAlignTopLeft: { - return { - left: positioner.setToLeft(), - top: positioner.setToTop() - }; - } - case ImageAlign.kImageAlignTopRight: { - return { - left: positioner.setToRight(), - top: positioner.setToTop() - }; - } - default: { + function alignBottomLeft(positioner: Positioner): CssAttributeValues { + return { + left: positioner.setToLeft(), + top: positioner.setToBottom() + }; + } + + function alignBottomRight(positioner: Positioner): CssAttributeValues { + return { + left: positioner.setToRight(), + top: positioner.setToBottom() + }; + } + + function alignCenter(positioner: Positioner): CssAttributeValues { + return { + left: positioner.setToHorizontalCenter(), + top: positioner.setToVerticalCenter() + }; + } + + function alignLeft(positioner: Positioner): CssAttributeValues { + return { + left: positioner.setToLeft(), + top: positioner.setToVerticalCenter() + }; + } + + function alignRight(positioner: Positioner): CssAttributeValues { + return { + left: positioner.setToRight(), + top: positioner.setToVerticalCenter() + }; + } + + function alignTop(positioner: Positioner): CssAttributeValues { + return { + left: positioner.setToHorizontalCenter(), + top: positioner.setToTop() + }; + } + + function alignTopLeft(positioner: Positioner): CssAttributeValues { + return { + left: positioner.setToLeft(), + top: positioner.setToTop() + }; + } + + function alignTopRight(positioner: Positioner): CssAttributeValues { + return { + left: positioner.setToRight(), + top: positioner.setToTop() + }; + } + + const imageAlignmentFunctions = { + [ImageAlign.kImageAlignBottom]: alignBottom, + [ImageAlign.kImageAlignBottomLeft]: alignBottomLeft, + [ImageAlign.kImageAlignBottomRight]: alignBottomRight, + [ImageAlign.kImageAlignCenter]: alignCenter, + [ImageAlign.kImageAlignLeft]: alignLeft, + [ImageAlign.kImageAlignRight]: alignRight, + [ImageAlign.kImageAlignTop]: alignTop, + [ImageAlign.kImageAlignTopLeft]: alignTopLeft, + [ImageAlign.kImageAlignTopRight]: alignTopRight + }; + + return { + getAlignment(): CssAttributeValues { + const positioner = alignFunctionMap[alignerType]({ + parentBounds, + element, + layoutDirection, + logger, + boundLimits + }); + + if (!imageAlignmentFunctions.hasOwnProperty(imageAlign)) { logger.warn(`Bad image alignment property key: ${imageAlign}. Defaulting to center alignment.`); return { left: positioner.setToHorizontalCenter(), top: positioner.setToVerticalCenter() }; } + return imageAlignmentFunctions[imageAlign](positioner); } - } - - return { - getAlignment }; } @@ -132,6 +169,7 @@ interface PositionerArgs { element: Dimensions; layoutDirection: LayoutDirection; logger: ILogger; + boundLimits: Bounds; } export interface Positioner { @@ -166,11 +204,6 @@ export interface Positioner { setToVerticalCenter(): number; } -interface Dimensions { - width; - height; -} - const imagePositioners = { [LayoutDirection.kLayoutDirectionLTR]: createImagePositionerLTR, [LayoutDirection.kLayoutDirectionRTL]: createImagePositionerRTL @@ -184,7 +217,8 @@ function createImagePositioner(args: PositionerArgs): Positioner { const { parentBounds: parentDimensions, element: elementDimensions, - logger + logger, + boundLimits } = args; let { @@ -195,10 +229,14 @@ function createImagePositioner(args: PositionerArgs): Positioner { logger.warn(`LayoutDirection is not supported: ${layoutDirection}. Defaulting to LTR`); layoutDirection = LayoutDirection.kLayoutDirectionLTR; } - return imagePositioners[layoutDirection](parentDimensions, elementDimensions); + return imagePositioners[layoutDirection](parentDimensions, elementDimensions, boundLimits); } -function createImagePositionerLTR(parentDimensions: Dimensions, elementDimensions: Dimensions): Positioner { +function createImagePositionerLTR( + parentDimensions: Dimensions, + elementDimensions: Dimensions, + boundLimits: Bounds +): Positioner { const { width: parentWidth, height: parentHeight @@ -209,8 +247,10 @@ function createImagePositionerLTR(parentDimensions: Dimensions, elementDimension height: imageHeight } = elementDimensions; - const MAX_TOP_BOUND = 0; - const MAX_LEFT_BOUND = 0; + const { + maxLeft: MAX_LEFT_BOUND, + maxTop: MAX_TOP_BOUND + } = boundLimits; return { setToBottom() { @@ -243,7 +283,11 @@ function createImagePositionerLTR(parentDimensions: Dimensions, elementDimension }; } -function createImagePositionerRTL(parentDimensions: Dimensions, elementDimensions: Dimensions): Positioner { +function createImagePositionerRTL( + parentDimensions: Dimensions, + elementDimensions: Dimensions, + boundLimits: Bounds +): Positioner { const { width: parentWidth, height: parentHeight @@ -254,8 +298,10 @@ function createImagePositionerRTL(parentDimensions: Dimensions, elementDimension height: imageHeight } = elementDimensions; - const MAX_TOP_BOUND = 0; - const MIN_LEFT_BOUND = 0; + const { + minLeft: MIN_LEFT_BOUND, + maxTop: MAX_TOP_BOUND + } = boundLimits; return { setToBottom() { diff --git a/js/apl-html/src/components/helpers/StylesApplier.ts b/js/apl-html/src/components/helpers/StylesApplier.ts index c61cb0c..0068247 100644 --- a/js/apl-html/src/components/helpers/StylesApplier.ts +++ b/js/apl-html/src/components/helpers/StylesApplier.ts @@ -6,8 +6,6 @@ import {LoggerFactory} from '../../logging/LoggerFactory'; /** * Adjust exports to only export used interfaces - * when codebase upgrades to TypeScript version that supports - * exported variables with private names */ export interface StylesApplier { applyStyle(): void; diff --git a/js/apl-html/src/components/pager/PagerComponent.ts b/js/apl-html/src/components/pager/PagerComponent.ts index 67b5e88..888649e 100644 --- a/js/apl-html/src/components/pager/PagerComponent.ts +++ b/js/apl-html/src/components/pager/PagerComponent.ts @@ -5,8 +5,8 @@ import APLRenderer from '../../APLRenderer'; import { PropertyKey } from '../../enums/PropertyKey'; -import { Component, FactoryFunction, IComponentProperties } from '../Component'; import { ActionableComponent } from '../ActionableComponent'; +import { Component, FactoryFunction, IComponentProperties } from '../Component'; /** * @ignore diff --git a/js/apl-html/src/components/text/AbstractWordSequencer.ts b/js/apl-html/src/components/text/AbstractWordSequencer.ts index 8734411..43a6aab 100644 --- a/js/apl-html/src/components/text/AbstractWordSequencer.ts +++ b/js/apl-html/src/components/text/AbstractWordSequencer.ts @@ -3,8 +3,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { LoggerFactory } from '../../logging/LoggerFactory'; import { ILogger } from '../../logging/ILogger'; +import { LoggerFactory } from '../../logging/LoggerFactory'; export interface ISpeakableCommand { onSpeechFinished(); diff --git a/js/apl-html/src/components/text/DocumentBuilder.ts b/js/apl-html/src/components/text/DocumentBuilder.ts index 74e7ac0..1ff5fdb 100644 --- a/js/apl-html/src/components/text/DocumentBuilder.ts +++ b/js/apl-html/src/components/text/DocumentBuilder.ts @@ -5,11 +5,11 @@ import { SpanAttributeName } from '../../enums/SpanAttributeName'; import { SpanType } from '../../enums/SpanType'; -import { IRichTextStyles, ISpannedTextNode } from './RichTextParser'; -import { LoggerFactory } from '../../logging/LoggerFactory'; import { ILogger } from '../../logging/ILogger'; +import { LoggerFactory } from '../../logging/LoggerFactory'; import { numberToColor } from '../../utils/ColorUtils'; import {createStylesApplier, CssUnitType, StylesApplierArgs} from '../helpers/StylesApplier'; +import { IRichTextStyles, ISpannedTextNode } from './RichTextParser'; export class DocumentBuilder { private static logger: ILogger = LoggerFactory.getLogger('DocumentBuilder'); diff --git a/js/apl-html/src/components/text/RichTextNode.ts b/js/apl-html/src/components/text/RichTextNode.ts index 83753b3..327f56a 100644 --- a/js/apl-html/src/components/text/RichTextNode.ts +++ b/js/apl-html/src/components/text/RichTextNode.ts @@ -4,10 +4,10 @@ */ import { SpanType } from '../../enums/SpanType'; +import { ILogger } from '../../logging/ILogger'; +import { LoggerFactory } from '../../logging/LoggerFactory'; import { RichTextParser } from './RichTextParser'; import { ILine } from './Text'; -import { LoggerFactory } from '../../logging/LoggerFactory'; -import { ILogger } from '../../logging/ILogger'; /** * @ignore diff --git a/js/apl-html/src/components/text/Text.ts b/js/apl-html/src/components/text/Text.ts index 1c2214d..a12f565 100644 --- a/js/apl-html/src/components/text/Text.ts +++ b/js/apl-html/src/components/text/Text.ts @@ -9,13 +9,13 @@ import {FontStyle} from '../../enums/FontStyle'; import {PropertyKey} from '../../enums/PropertyKey'; import {TextAlign} from '../../enums/TextAlign'; import {TextAlignVertical} from '../../enums/TextAlignVertical'; +import {FontUtils} from '../../utils/FontUtils'; +import {replaceLastWordWithEllipsis, truncateEndWithEllipsis} from '../../utils/TextUtils'; import {IComponentProperties} from '../Component'; import {Component, FactoryFunction} from '../Component'; -import {RichTextParser} from './RichTextParser'; import {Geometry, ILineRange} from './Geometry'; -import {FontUtils} from '../../utils/FontUtils'; import {MeasureMode} from './MeasureMode'; -import {truncateEndWithEllipsis, replaceLastWordWithEllipsis} from '../../utils/TextUtils'; +import {RichTextParser} from './RichTextParser'; export interface ITextProperties extends IComponentProperties { [PropertyKey.kPropertyColor]: number; diff --git a/js/apl-html/src/components/video/Video.ts b/js/apl-html/src/components/video/Video.ts index e2e85a9..9ceebc6 100644 --- a/js/apl-html/src/components/video/Video.ts +++ b/js/apl-html/src/components/video/Video.ts @@ -7,14 +7,14 @@ import APLRenderer from '../../APLRenderer'; import {AudioTrack} from '../../enums/AudioTrack'; import {CommandControlMedia} from '../../enums/CommandControlMedia'; import {VideoScale} from '../../enums/VideoScale'; +import {ILogger} from '../../logging/ILogger'; +import {LoggerFactory} from '../../logging/LoggerFactory'; import {IMediaSource} from '../../media/IMediaSource'; import {PlaybackState} from '../../media/Resource'; import {Component, FactoryFunction} from '../Component'; import {AbstractVideoComponent} from './AbstractVideoComponent'; -import {createVideoEventSequencer, VideoEventSequencer, VideoInterface} from './VideoEventSequencer'; -import {ILogger} from '../../logging/ILogger'; -import {LoggerFactory} from '../../logging/LoggerFactory'; import {createVideoEventProcessor} from './VideoEventProcessor'; +import {createVideoEventSequencer, VideoEventSequencer, VideoInterface} from './VideoEventSequencer'; const logger: ILogger = LoggerFactory.getLogger('Video'); @@ -78,7 +78,7 @@ export class Video extends AbstractVideoComponent { public async seek(offset: number): Promise { this.videoEventSequencer.enqueueForProcessing(VideoInterface.SEEK, { - offset, + seekOffset: offset, fromEvent: this.fromEvent }); } @@ -186,7 +186,7 @@ export class Video extends AbstractVideoComponent { } protected get currentMediaResource() { - return this.videoEventProcessor.currentMediaResource; + return this.videoEventProcessor.playbackManager.getCurrent(); } protected get currentMediaState() { diff --git a/js/apl-html/src/components/video/VideoCallTypes.ts b/js/apl-html/src/components/video/VideoCallTypes.ts index d870c62..b769481 100644 --- a/js/apl-html/src/components/video/VideoCallTypes.ts +++ b/js/apl-html/src/components/video/VideoCallTypes.ts @@ -2,11 +2,11 @@ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. */ -import {PlaybackState} from '../../media/Resource'; -import {IMediaSource} from '../../media/IMediaSource'; import {AudioTrack} from '../../enums/AudioTrack'; import {CommandControlMedia} from '../../enums/CommandControlMedia'; import {VideoScale} from '../../enums/VideoScale'; +import {IMediaSource} from '../../media/IMediaSource'; +import {PlaybackState} from '../../media/Resource'; export type PromiseCallback = (value?: any) => void; export interface OnEventArgs { diff --git a/js/apl-html/src/components/video/VideoEventProcessor.ts b/js/apl-html/src/components/video/VideoEventProcessor.ts index d7573f0..b2c6393 100644 --- a/js/apl-html/src/components/video/VideoEventProcessor.ts +++ b/js/apl-html/src/components/video/VideoEventProcessor.ts @@ -5,16 +5,19 @@ import {AudioTrack} from '../../enums/AudioTrack'; import {CommandControlMedia} from '../../enums/CommandControlMedia'; import {PropertyKey} from '../../enums/PropertyKey'; +import {TrackState} from '../../enums/TrackState'; import {VideoScale} from '../../enums/VideoScale'; +import {ILogger} from '../../logging/ILogger'; +import {LoggerFactory} from '../../logging/LoggerFactory'; +import {IMediaEventListener} from '../../media/IMediaEventListener'; +import {IVideoPlayer} from '../../media/IVideoPlayer'; +import {MediaErrorCode} from '../../media/MediaErrorCode'; +import {MediaState} from '../../media/MediaState'; import {IMediaResource, PlaybackManager} from '../../media/PlaybackManager'; import {PlaybackState} from '../../media/Resource'; -import {IVideoPlayer} from '../../media/IVideoPlayer'; -import {Video} from './Video'; import {VideoPlayer} from '../../media/video'; +import {Video} from './Video'; import {PromiseCallback, SetTrackCurrentTimeArgs} from './VideoCallTypes'; -import {ILogger} from '../../logging/ILogger'; -import {LoggerFactory} from '../../logging/LoggerFactory'; -import {IMediaEventListener} from '../../media/IMediaEventListener'; export interface VideoEventProcessorArgs { videoComponent: Video; @@ -38,32 +41,15 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro // Private Functions async function ensureLoaded(fromEvent: boolean, isSettingSource: boolean = false) { - if (!this.currentMediaResource.loaded) { - await this.player.load(this.currentMediaResource.id, this.currentMediaResource.url); + const currentMediaResource = this.playbackManager.getCurrent(); + if (!currentMediaResource.loaded) { + await this.player.load(currentMediaResource.id, currentMediaResource.url); + currentMediaResource.loaded = true; } else { this.updateMediaState(fromEvent, isSettingSource); } } - /** - * Return if the video should be paused when seeking to an offset. - * The play/pause should depend on kPropertyAutoplay at initial load - offset == 0. - * The play/pause should depend on kPropertyTrackPaused once video has been played - offset > 0. - * - * @param seekOffset - * @private - */ - function shouldPauseAtSeek(seekOffset: number): boolean { - let pauseAtSeek = true; - if (shouldAutoPlay.call(this)) { - pauseAtSeek = false; - } - if (seekOffset > 0) { - pauseAtSeek = this.props[PropertyKey.kPropertyTrackPaused]; - } - return pauseAtSeek; - } - function shouldAutoPlay(): boolean { return this.props[PropertyKey.kPropertyAutoplay]; } @@ -77,8 +63,19 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro // Public Interface const videoEventProcessor = { - onEvent({event, fromEvent, isSettingSource}): void { + onEvent({ + event, + fromEvent, + isSettingSource + }): void { switch (event) { + case PlaybackState.IDLE: + this.currentMediaState.withTrackState(TrackState.kTrackNotReady); + this.currentMediaState.withErrorCode(MediaErrorCode.DEFAULT); + break; + case PlaybackState.LOADED: + this.currentMediaState.withTrackState(TrackState.kTrackReady); + break; case PlaybackState.PLAYING: this.currentMediaState.ended = false; this.currentMediaState.paused = false; @@ -97,6 +94,7 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro }); } else { this.currentMediaState.ended = true; + this.currentMediaState.paused = true; } endEventPromiseListeners.forEach((resolvePromise) => { try { @@ -107,14 +105,13 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro break; case PlaybackState.ERROR: logger.error('Playback error.'); + isSettingSource = false; this.currentMediaState.ended = true; this.currentMediaState.paused = true; - break; - case PlaybackState.LOADED: - this.currentMediaResource.loaded = true; + this.currentMediaState.withTrackState(TrackState.kTrackFailed); + this.currentMediaState.withErrorCode(MediaErrorCode.GENERIC); break; case PlaybackState.BUFFERING: - case PlaybackState.IDLE: default: return; } @@ -128,9 +125,9 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro this.playbackManager.setup(source); this.audioTrack = audioTrack; - this.currentMediaResource = this.playbackManager.getCurrent(); - await this.delegate.seek(this.currentMediaResource.offset); + const currentMediaResource = this.playbackManager.getCurrent(); + await this.delegate.seek(currentMediaResource.offset); await this.delegate.play(); this.fromEvent = false; @@ -147,7 +144,9 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro switch (operation) { case CommandControlMedia.kCommandControlMediaPlay: - await this.delegate.play(); + if (this.player.getMediaState() !== PlaybackState.PLAYING) { + await this.delegate.play(); + } break; case CommandControlMedia.kCommandControlMediaPause: await this.delegate.pause(); @@ -177,8 +176,6 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro // Playback Control Methods // Event-Aware Methods async play({waitForFinish, fromEvent, isSettingSource}): Promise { - this.currentMediaResource = this.playbackManager.getCurrent(); - // Adjust Audio if (this.audioTrack === AudioTrack.kAudioTrackNone) { this.player.mute(); @@ -188,22 +185,21 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro await ensureLoaded.call(this, fromEvent, isSettingSource); - if (this.currentMediaResource.duration > 0) { - const endTime = - toSecondsFromMilliseconds(this.currentMediaResource.offset + this.currentMediaResource.duration); + const currentMediaResource = this.playbackManager.getCurrent(); + + if (currentMediaResource.duration > 0) { + const endTime = toSecondsFromMilliseconds(currentMediaResource.offset + currentMediaResource.duration); this.player.setEndTimeInSeconds(endTime); } - const startingPoint = this.currentMediaState.currentTime + this.currentMediaResource.offset; + const startingPoint = toMillisecondsFromSeconds(this.player.getCurrentPlaybackPositionInSeconds()); await this.player.play( - this.currentMediaResource.id, - this.currentMediaResource.url, + currentMediaResource.id, + currentMediaResource.url, startingPoint ); - this.updateMediaState(fromEvent, isSettingSource); - // This isn't the responsibility of play, it's the responsibility of the callee // We need to pull this out if (waitForFinish) { @@ -215,39 +211,36 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro async pause({fromEvent}): Promise { if (videoState === PlaybackState.PLAYING || videoState === PlaybackState.BUFFERING) { await this.player.pause(); - this.updateMediaState(fromEvent); } }, - async seek({offset, fromEvent}): Promise { - const pauseAtSeek = shouldPauseAtSeek.call(this, offset); - if (pauseAtSeek) { - await this.delegate.pause(); - } - + async seek({seekOffset, fromEvent}): Promise { const mediaResource: IMediaResource = this.playbackManager.getCurrent(); - const startOffset: number = mediaResource.offset; - const desireOffset: number = startOffset + offset; + const mediaOffset = toSecondsFromMilliseconds(mediaResource.offset); + const currentPlaybackPosition: number = this.player.getCurrentPlaybackPositionInSeconds(); + const desiredPlaybackPosition: number = currentPlaybackPosition + toSecondsFromMilliseconds(seekOffset); await ensureLoaded.call(this, fromEvent); - if (this.player.getDurationInSeconds() <= toSecondsFromMilliseconds(desireOffset)) { + if (this.player.getDurationInSeconds() <= toSecondsFromMilliseconds(desiredPlaybackPosition)) { // minus unit time otherwise will rollover to start this.player.setCurrentTimeInSeconds(this.player.getDurationInSeconds() - 0.001); + } else if (desiredPlaybackPosition < mediaOffset) { + this.player.setCurrentTimeInSeconds(mediaOffset); } else { - const updatedOffset = this.player.getCurrentPlaybackPositionInSeconds() - + toSecondsFromMilliseconds(desireOffset); - - this.player.setCurrentTimeInSeconds(updatedOffset); + this.player.setCurrentTimeInSeconds(desiredPlaybackPosition); } this.updateMediaState(fromEvent); }, async rewind(): Promise { - await this.delegate.seek(this.currentMediaResource.offset); + await this.delegate.pause(); + const currentMediaResource = this.playbackManager.getCurrent(); + const currentTime = toMillisecondsFromSeconds(this.player.getCurrentPlaybackPositionInSeconds()); + await this.delegate.seek(-(currentTime - currentMediaResource.offset)); }, async previous({fromEvent}): Promise { - await this.delegate.pause(); - this.currentMediaResource = this.playbackManager.previous(); + await this.delegate.rewind(); + this.playbackManager.previous(); await ensureLoaded.call(this, fromEvent); }, async next({fromEvent}): Promise { @@ -255,16 +248,14 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro if (!this.playbackManager.hasNext()) { this.player.setCurrentTimeInSeconds(this.player.getDurationInSeconds() - 0.001); - this.updateMediaState(fromEvent); } else { - this.currentMediaResource = this.playbackManager.next(); + this.playbackManager.next(); await ensureLoaded.call(this, fromEvent); } }, async setTrack({trackIndex, fromEvent}): Promise { await this.delegate.pause(); this.playbackManager.setCurrent(trackIndex); - this.currentMediaResource = this.playbackManager.getCurrent(); await ensureLoaded.call(this, fromEvent); }, // End Event-Aware Methods @@ -276,7 +267,6 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro // Configure Player and Playback this.playbackManager.setup(source); - this.currentMediaResource = this.playbackManager.getCurrent(); await ensureLoaded.call(this); // Play on set Source @@ -326,15 +316,19 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro if (!isValidPlayer(this.player)) { return; } - // Update Media State - // tslint:disable-next-line:max-line-length - this.currentMediaState.currentTime = toMillisecondsFromSeconds(this.player.getCurrentPlaybackPositionInSeconds()); - this.currentMediaState.duration = toMillisecondsFromSeconds(this.player.getDurationInSeconds()); + const offset = playBackManager.getCurrent().offset; + this.currentMediaState.currentTime = toMillisecondsFromSeconds( + this.player.getCurrentPlaybackPositionInSeconds() + ) - offset; + this.currentMediaState.duration = toMillisecondsFromSeconds( + this.player.getDurationInSeconds() + ) - offset; this.currentMediaState.trackCount = this.playbackManager.getTrackCount(); this.currentMediaState.trackIndex = this.playbackManager.getCurrentIndex(); - if (!isSettingSource && isValidMediaState(this.currentMediaState)) { + ensureValidMediaState(this.currentMediaState); + if (!isSettingSource) { this.component.updateMediaState(this.currentMediaState, fromEvent); this.emit('onUpdateMediaState', this.currentMediaState, fromEvent); } @@ -372,14 +366,7 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro logger }); const playBackManager = new PlaybackManager(); - const currentMediaState: APL.IMediaState = { - currentTime: 0, - duration: 0, - ended: false, - paused: true, - trackCount: 0, - trackIndex: 0 - }; + const currentMediaState = new MediaState(); Object.defineProperties(videoEventProcessor, { player: { @@ -397,11 +384,6 @@ export function createVideoEventProcessor(videoEventProcessorArgs: VideoEventPro writable: true, configurable: false }, - currentMediaResource: { - value: undefined as IMediaResource, - writable: true, - configurable: false - }, currentMediaState: { value: currentMediaState, writable: false, @@ -424,20 +406,17 @@ function isValidPlayer(player: any): player is IVideoPlayer { return player !== undefined; } -function isValidMediaState(mediaState: any): mediaState is APL.IMediaState { - const { - currentTime, - duration, - trackCount, - trackIndex - } = mediaState; - - return isValidValue(currentTime) && - isValidValue(duration) && - isValidValue(trackCount) && - isValidValue(trackIndex); +function ensureValidMediaState(mediaState: any): mediaState is APL.IMediaState { + const keysToClean = ['currentTime', 'currentTime', 'trackCount', 'trackIndex']; + + for (const key of keysToClean) { + if (mediaState.hasOwnProperty(key) && !isValidMediaStateValue(mediaState[key])) { + mediaState[key] = 0; + } + } + return mediaState; } -function isValidValue(n: any): n is number { +function isValidMediaStateValue(n: any): n is number { return !Number.isNaN(n) && n !== undefined; } diff --git a/js/apl-html/src/components/video/VideoEventSequencer.ts b/js/apl-html/src/components/video/VideoEventSequencer.ts index 1e84dbd..df41119 100644 --- a/js/apl-html/src/components/video/VideoEventSequencer.ts +++ b/js/apl-html/src/components/video/VideoEventSequencer.ts @@ -2,9 +2,9 @@ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. */ -import {PromiseCallback} from './VideoCallTypes'; import {ILogger} from '../../logging/ILogger'; import {LoggerFactory} from '../../logging/LoggerFactory'; +import {PromiseCallback} from './VideoCallTypes'; export enum VideoInterface { ON_EVENT = 'onEvent', diff --git a/js/apl-html/src/components/video/VideoHolder.ts b/js/apl-html/src/components/video/VideoHolder.ts index a76b60f..142df4e 100644 --- a/js/apl-html/src/components/video/VideoHolder.ts +++ b/js/apl-html/src/components/video/VideoHolder.ts @@ -5,11 +5,11 @@ import APLRenderer from '../../APLRenderer'; import { AudioTrack } from '../../enums/AudioTrack'; -import { Component, FactoryFunction } from '../Component'; import { CommandControlMedia } from '../../enums/CommandControlMedia'; -import { PlaybackState } from '../../media/Resource'; -import { IMediaSource } from '../../media/IMediaSource'; import { VideoScale } from '../../enums/VideoScale'; +import { IMediaSource } from '../../media/IMediaSource'; +import { PlaybackState } from '../../media/Resource'; +import { Component, FactoryFunction } from '../Component'; import { AbstractVideoComponent } from './AbstractVideoComponent'; /** diff --git a/js/apl-html/src/events/Event.ts b/js/apl-html/src/events/Event.ts index 80e36a9..5dfeb6e 100644 --- a/js/apl-html/src/events/Event.ts +++ b/js/apl-html/src/events/Event.ts @@ -4,10 +4,10 @@ */ import APLRenderer from '../APLRenderer'; -import { PropertyKey } from '../enums/PropertyKey'; import { EventType } from '../enums/EventType'; -import { LoggerFactory } from '../logging/LoggerFactory'; +import { PropertyKey } from '../enums/PropertyKey'; import { ILogger } from '../logging/ILogger'; +import { LoggerFactory } from '../logging/LoggerFactory'; const EVENT_TYPE_MAP = { [EventType.kEventTypeSendEvent]: 'SendEvent', diff --git a/js/apl-html/src/events/ExtensionEvent.ts b/js/apl-html/src/events/ExtensionEvent.ts index 4fac640..25e8ad1 100644 --- a/js/apl-html/src/events/ExtensionEvent.ts +++ b/js/apl-html/src/events/ExtensionEvent.ts @@ -3,8 +3,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { Event } from './Event'; import { EventProperty } from '../enums/EventProperty'; +import { Event } from './Event'; /** * @ignore diff --git a/js/apl-html/src/events/Focus.ts b/js/apl-html/src/events/Focus.ts index 49a501e..c0463ef 100644 --- a/js/apl-html/src/events/Focus.ts +++ b/js/apl-html/src/events/Focus.ts @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -import {Event} from './Event'; -import {ActionableComponent} from '../components/ActionableComponent'; import {EventProperty} from '..'; +import {ActionableComponent} from '../components/ActionableComponent'; +import {Event} from './Event'; /** * @ignore diff --git a/js/apl-html/src/events/HighlightSequencer.ts b/js/apl-html/src/events/HighlightSequencer.ts index f7a2be9..66bd236 100644 --- a/js/apl-html/src/events/HighlightSequencer.ts +++ b/js/apl-html/src/events/HighlightSequencer.ts @@ -5,16 +5,16 @@ 'use strict'; -import { IFragmentMarker, IBaseMarker } from '../media/audio/SpeechMarks'; import { ILineRange } from '../components/text/Geometry'; -import { MarkSequencer } from './MarkSequencer'; import { ComponentType } from '../enums/ComponentType'; +import { IBaseMarker, IFragmentMarker } from '../media/audio/SpeechMarks'; +import { MarkSequencer } from './MarkSequencer'; import { CommandHighlightMode } from '../enums/CommandHighlightMode'; import { CommandScrollAlign } from '../enums/CommandScrollAlign'; -import { Text } from '../components/text/Text'; import APLRenderer from '../APLRenderer'; +import { Text } from '../components/text/Text'; /** * @internal diff --git a/js/apl-html/src/events/MediaRequest.ts b/js/apl-html/src/events/MediaRequest.ts new file mode 100644 index 0000000..337776a --- /dev/null +++ b/js/apl-html/src/events/MediaRequest.ts @@ -0,0 +1,25 @@ +/*! + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +import { EventProperty } from '../enums/EventProperty'; +import { requestMedia } from '../utils/MediaRequestUtils'; +import { Event } from './Event'; + +/** + * @ignore + */ +export class MediaRequest extends Event { + public async execute() { + const mediaType = this.event.getValue(EventProperty.kEventPropertyMediaType); + const source = this.event.getValue(EventProperty.kEventPropertySource); + + const requestMediaArgs = { + renderer: this.renderer + }; + await requestMedia(mediaType, source, requestMediaArgs); + this.resolve(); + this.destroy(); + } +} diff --git a/js/apl-html/src/events/PlayMedia.ts b/js/apl-html/src/events/PlayMedia.ts index d17765d..cb26831 100644 --- a/js/apl-html/src/events/PlayMedia.ts +++ b/js/apl-html/src/events/PlayMedia.ts @@ -3,10 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 */ +import { Video } from '../components/video/Video'; import { AudioTrack } from '../enums/AudioTrack'; import { CommandAudioTrack } from '../enums/CommandAudioTrack'; import { EventProperty } from '../enums/EventProperty'; -import { Video } from '../components/video/Video'; import { IMediaSource } from '../media/IMediaSource'; import { Event } from './Event'; diff --git a/js/apl-html/src/events/RequestFirstLineBounds.ts b/js/apl-html/src/events/RequestFirstLineBounds.ts index 3b34383..194a3d9 100644 --- a/js/apl-html/src/events/RequestFirstLineBounds.ts +++ b/js/apl-html/src/events/RequestFirstLineBounds.ts @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { Event } from './Event'; -import { Text } from '../components/text/Text'; import { Component } from '../components/Component'; +import { Text } from '../components/text/Text'; +import { Event } from './Event'; /** * @ignore diff --git a/js/apl-html/src/events/ScrollTo.ts b/js/apl-html/src/events/ScrollTo.ts deleted file mode 100644 index 11e8096..0000000 --- a/js/apl-html/src/events/ScrollTo.ts +++ /dev/null @@ -1,32 +0,0 @@ -/*! - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - */ - -import { Scrollable } from '../components/Scrollable'; -import { ComponentType } from '../enums/ComponentType'; -import { EventProperty } from '../enums/EventProperty'; -import { Event } from './Event'; - -/** - * @ignore - */ -export class ScrollTo extends Event { - - public async execute() { - const componentId = this.event.getComponent().getUniqueId(); - const position = this.event.getValue(EventProperty.kEventPropertyPosition); - const scrollable = this.renderer.componentMap[componentId] as Scrollable; - - if (scrollable && (scrollable.component.getType() === ComponentType.kComponentTypeSequence || - scrollable.component.getType() === ComponentType.kComponentTypeScrollView)) { - await scrollable.scrollToPosition(position, 2); - } else { - this.logger.error(`Could not Scroll. Cannot find scrollable with id ${componentId}`); - } - - if (!this.isTerminated) { - this.resolve(); - } - this.destroy(); - } -} diff --git a/js/apl-html/src/events/SetPage.ts b/js/apl-html/src/events/SetPage.ts deleted file mode 100644 index bcd0e35..0000000 --- a/js/apl-html/src/events/SetPage.ts +++ /dev/null @@ -1,32 +0,0 @@ -/*! - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - */ - -import { PagerComponent } from '../components/pager/PagerComponent'; -import {CommandPosition} from '../enums/CommandPosition'; -import {EventProperty} from '../enums/EventProperty'; -import { Event } from './Event'; - -/** - * @ignore - */ -export class SetPage extends Event { - - public async execute() { - const componentId = this.event.getComponent().getUniqueId(); - - const position = this.event.getValue(EventProperty.kEventPropertyPosition); - if (!this.renderer.componentMap[componentId]) { - this.logger.error(`Could not SetPage. Cannot find Pager with id ${componentId}`); - this.resolve(); - return; - } - const pager = this.renderer.componentMap[componentId] as PagerComponent; - await pager.setPage(position); - - if (!this.isTerminated) { - this.resolve(); - } - this.destroy(); - } -} diff --git a/js/apl-html/src/events/Speak.ts b/js/apl-html/src/events/Speak.ts index c505287..11a66be 100644 --- a/js/apl-html/src/events/Speak.ts +++ b/js/apl-html/src/events/Speak.ts @@ -3,15 +3,15 @@ * SPDX-License-Identifier: Apache-2.0 */ +import {ComponentType} from '..'; +import {IPlaybackEventListener} from '../AudioPlayerWrapper'; import {Component} from '../components/Component'; import {Text} from '../components/text/Text'; -import {Event} from './Event'; -import {EventProperty} from '../enums/EventProperty'; -import {IPlaybackEventListener} from '../AudioPlayerWrapper'; import {CommandHighlightMode} from '../enums/CommandHighlightMode'; import {CommandScrollAlign} from '../enums/CommandScrollAlign'; +import {EventProperty} from '../enums/EventProperty'; +import {Event} from './Event'; import {HighlightSequencer} from './HighlightSequencer'; -import {ComponentType} from '..'; /** * @internal diff --git a/js/apl-html/src/extensions/IExtension.ts b/js/apl-html/src/extensions/IExtension.ts index 851df0e..0631ab6 100644 --- a/js/apl-html/src/extensions/IExtension.ts +++ b/js/apl-html/src/extensions/IExtension.ts @@ -4,8 +4,8 @@ */ import {IExtensionEventCallbackResult} from './IExtensionEventCallbackResult'; -import {LiveMap} from './LiveMap'; import {LiveArray} from './LiveArray'; +import {LiveMap} from './LiveMap'; export interface ILiveDataDefinition { name: string; diff --git a/js/apl-html/src/extensions/IExtensionManager.ts b/js/apl-html/src/extensions/IExtensionManager.ts index a666edd..261c3bd 100644 --- a/js/apl-html/src/extensions/IExtensionManager.ts +++ b/js/apl-html/src/extensions/IExtensionManager.ts @@ -9,7 +9,8 @@ import { IExtensionEventCallbackResult } from './IExtensionEventCallbackResult'; * A common interface for managing extensions. */ export interface IExtensionManager { - onExtensionEvent(uri: string, event: APL.Event, commandName: string, source: object, params: object, resultCallback: IExtensionEventCallbackResult); + onExtensionEvent(uri: string, event: APL.Event, commandName: string, source: object, + params: object, resultCallback: IExtensionEventCallbackResult); onDocumentRender(rootContext: APL.Context, content: APL.Content); configureExtensions(extensionConfiguration: any); onMessageReceived(uri: string, payload: string); diff --git a/js/apl-html/src/index.ts b/js/apl-html/src/index.ts index 6d4be6e..71d4d30 100644 --- a/js/apl-html/src/index.ts +++ b/js/apl-html/src/index.ts @@ -5,10 +5,10 @@ /// -import './assets/css/fonts.css'; import APLRenderer from './APLRenderer'; +import './assets/css/fonts.css'; export default APLRenderer; -export {IAPLOptions, IViewportCharacteristics, IEnvironment, IConfigurationChangeOptions, +export {IAPLOptions, IViewportCharacteristics, IEnvironment, IConfigurationChangeOptions, IDisplayStateOptions, ISendEvent, IDataSourceFetchRequest, DeviceMode, ViewportShape, ScreenMode} from './APLRenderer'; export {Content} from './Content'; export {commandFactory} from './CommandFactory'; @@ -55,6 +55,8 @@ export * from './enums/CommandScrollAlign'; export * from './enums/CommandType'; export * from './enums/ComponentType'; export * from './enums/ContainerDirection'; +export * from './enums/DisplayState'; +export * from './enums/DocumentPropertyKey'; export * from './enums/EventProperty'; export * from './enums/EventType'; export * from './enums/FilterType'; diff --git a/js/apl-html/src/logging/LoggerFactory.ts b/js/apl-html/src/logging/LoggerFactory.ts index 14e931a..37690be 100644 --- a/js/apl-html/src/logging/LoggerFactory.ts +++ b/js/apl-html/src/logging/LoggerFactory.ts @@ -8,8 +8,8 @@ import * as loglevel from 'loglevel'; import { LogLevelNumbers, MethodFactory } from 'loglevel'; import { ILogger } from './ILogger'; -import { LogTransport } from './LogTransport'; import { LogLevel } from './LogLevel'; +import { LogTransport } from './LogTransport'; /** * Simple wrapper to hide loglevel logger oddity and do set-up. Could be changed to be more generic in the future. diff --git a/js/apl-html/src/media/MediaErrorCode.ts b/js/apl-html/src/media/MediaErrorCode.ts new file mode 100644 index 0000000..71e74db --- /dev/null +++ b/js/apl-html/src/media/MediaErrorCode.ts @@ -0,0 +1,9 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +export enum MediaErrorCode { + DEFAULT = -1, + GENERIC = 0 +} diff --git a/js/apl-html/src/media/MediaState.ts b/js/apl-html/src/media/MediaState.ts new file mode 100644 index 0000000..50c817e --- /dev/null +++ b/js/apl-html/src/media/MediaState.ts @@ -0,0 +1,53 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +import { TrackState } from '../enums/TrackState'; +import { ILogger } from '../logging/ILogger'; +import { LoggerFactory } from '../logging/LoggerFactory'; +import { isTrackState } from '../utils/MediaStateUtils'; +import { MediaErrorCode } from './MediaErrorCode'; + +const logger: ILogger = LoggerFactory.getLogger('MediaState'); + +export class MediaState implements APL.IMediaState { + public currentTime: number; + public duration: number; + public ended: boolean; + public paused: boolean; + public trackCount: number; + public trackIndex: number; + private errorCode: number; + private trackState: TrackState; + + constructor() { + this.currentTime = 0; + this.duration = 0; + this.ended = false; + this.paused = true; + this.trackCount = 0; + this.trackIndex = 0; + this.errorCode = MediaErrorCode.DEFAULT; + this.trackState = TrackState.kTrackNotReady; + } + + public getErrorCode() { + return this.errorCode; + } + + public getTrackState() { + return this.trackState; + } + + public withTrackState(trackState: TrackState) { + if (isTrackState(trackState)) { + this.trackState = trackState; + return; + } + logger.error('Invalid track state.'); + } + + public withErrorCode(errorCode: number) { + this.errorCode = errorCode; + } +} diff --git a/js/apl-html/src/media/audio/AudioPlayer.ts b/js/apl-html/src/media/audio/AudioPlayer.ts index edfe63b..22fcc65 100644 --- a/js/apl-html/src/media/audio/AudioPlayer.ts +++ b/js/apl-html/src/media/audio/AudioPlayer.ts @@ -5,15 +5,15 @@ 'use strict'; -import { LoggerFactory } from '../../logging/LoggerFactory'; import { ILogger } from '../../logging/ILogger'; +import { LoggerFactory } from '../../logging/LoggerFactory'; const uuidv4 = require('uuid/v4'); +import { CancelablePromise } from '../../utils/PromiseUtils'; import { Resource } from '../Resource'; +import { Demuxer } from './Demux'; import { IAudioEventListener } from './IAudioEventListener'; import { extractTextFrames } from './Id3Parser'; -import { Demuxer } from './Demux'; -import { CancelablePromise } from '../../utils/PromiseUtils'; export type AudioPlayerFactory = (eventListener: IAudioEventListener) => AudioPlayer; @@ -116,15 +116,15 @@ export abstract class AudioPlayer { } const onDecode = (audioBuffer: AudioBuffer) => { - const audioNode = this.getAudioNode(audioContext); + const audioNode = this.getConnectedAudioNode(audioContext); this.currentSource = audioContext.createBufferSource(); this.currentSource.buffer = audioBuffer; - audioNode.connect(audioContext.destination); this.currentSource.connect(audioNode); this.currentSource.onended = (event: Event) => { this.currentSource.disconnect(); audioNode.disconnect(); + this._audioNode = null; this.currentSource = null; this.onPlaybackFinished(id); this.resourceMap.delete(id); @@ -145,14 +145,18 @@ export abstract class AudioPlayer { onDecodeError); } - // The gainNode passed in should be connected to the audiocontext destination + // The AudioNode passed in should be connected to the AudioContext destination protected setCurrentAudioNode(node: IAudioNode): void { this.disconnectCurrentAudioNode(); this._audioNode = node; } - private getAudioNode(context: AudioContext): IAudioNode { - this._audioNode = this._audioNode || context.createGain(); + // Gets an AudioNode connected to the AudioContext destination + private getConnectedAudioNode(context: AudioContext): IAudioNode { + if (!this._audioNode) { + this._audioNode = context.createGain(); + this._audioNode.connect(context.destination); + } return this._audioNode; } diff --git a/js/apl-html/src/media/audio/DefaultAudioPlayer.ts b/js/apl-html/src/media/audio/DefaultAudioPlayer.ts index 0c4d49d..8d5acd9 100644 --- a/js/apl-html/src/media/audio/DefaultAudioPlayer.ts +++ b/js/apl-html/src/media/audio/DefaultAudioPlayer.ts @@ -5,9 +5,9 @@ 'use strict'; +import { DefaultAudioContextProvider, IAudioContextProvider } from './AudioContextProvider'; import { AudioPlayer } from './AudioPlayer'; import { IAudioEventListener } from './IAudioEventListener'; -import { DefaultAudioContextProvider, IAudioContextProvider } from './AudioContextProvider'; export class DefaultAudioPlayer extends AudioPlayer { protected contextProvider: IAudioContextProvider = new DefaultAudioContextProvider(); diff --git a/js/apl-html/src/media/video/HLSVideoPlayer.ts b/js/apl-html/src/media/video/HLSVideoPlayer.ts index 2081b75..55b4853 100644 --- a/js/apl-html/src/media/video/HLSVideoPlayer.ts +++ b/js/apl-html/src/media/video/HLSVideoPlayer.ts @@ -3,15 +3,16 @@ * SPDX-License-Identifier: Apache-2.0 */ -import {IVideoPlayer} from '../IVideoPlayer'; +import { IVideoPlayer } from '../IVideoPlayer'; const hls = require('hls.js/dist/hls.light.min.js'); const path = require('path'); -import {createVideoPlayer} from './VideoPlayer'; -import {PlaybackState} from '../Resource'; -import {ILogger} from '../../logging/ILogger'; -import {LoggerFactory} from '../../logging/LoggerFactory'; -import {IMediaEventListener} from '../IMediaEventListener'; +import { ILogger } from '../../logging/ILogger'; +import { LoggerFactory } from '../../logging/LoggerFactory'; +import { IMediaEventListener } from '../IMediaEventListener'; +import { PlaybackState } from '../Resource'; +import { createPlayerNetworkRetryManager, PlayerNetworkRetryManager } from './PlayerNetworkRetryManager'; +import { createVideoPlayer } from './VideoPlayer'; const HLSPlaybackErrors = { NOT_SUPPORTED: 'The provided media format is not supported.', @@ -150,9 +151,9 @@ export function createHLSVideoPlayer(hlsVideoPlayerArgs: HLSVideoPlayerArgs): IV try { const player = getHLSPlayer.call(this); if (isNativePlayer(player)) { - configureNativePlayer.call(this, {player, url, resolve, reject}); + configureNativePlayer.call(this, { player, url, resolve, reject }); } else { - configureHLSPlayer.call(this, {player, url, resolve, reject}); + configureHLSPlayer.call(this, { player, url, resolve, reject }); } } catch (e) { reject(e); @@ -173,7 +174,7 @@ export function createHLSVideoPlayer(hlsVideoPlayerArgs: HLSVideoPlayerArgs): IV } = args; player.src = url; player.load(); - this.playbackStateHandler.transitionToState(PlaybackState.LOADED); + resolve(); } @@ -189,21 +190,22 @@ export function createHLSVideoPlayer(hlsVideoPlayerArgs: HLSVideoPlayerArgs): IV resetPlayerState.call(this); - // Prepare for Video Playback - player.on(hls.Events.MEDIA_ATTACHED, () => { - player.loadSource(url); - player.on(hls.Events.MANIFEST_PARSED, () => { - videoPlayerState = VideoPlayerState.READY; - this.playbackStateHandler.transitionToState(PlaybackState.LOADED); - resolve(); - }); + const playerNetworkRetryManager: PlayerNetworkRetryManager = createPlayerNetworkRetryManager({ + player, + errorCallback: handlePlaybackError.bind(this, HLSPlaybackErrors.FATAL_ERROR) }); player.on(hls.Events.ERROR, (event, data) => { if (data.fatal) { + if (!playerNetworkRetryManager.shouldRetry()) { + videoPlayerState = VideoPlayerState.ERROR; + playerNetworkRetryManager.fail(); + reject(); + return; + } switch (data.type) { case hls.ErrorTypes.NETWORK_ERROR: - player.startLoad(); + playerNetworkRetryManager.retry(url, data.details); break; case hls.ErrorTypes.MEDIA_ERROR: player.recoverMediaError(); @@ -218,6 +220,16 @@ export function createHLSVideoPlayer(hlsVideoPlayerArgs: HLSVideoPlayerArgs): IV } }); + // Prepare for Video Playback + player.on(hls.Events.MEDIA_ATTACHED, () => { + player.on(hls.Events.MANIFEST_PARSED, () => { + videoPlayerState = VideoPlayerState.READY; + this.playbackStateHandler.transitionToState(PlaybackState.LOADED); + resolve(); + }); + player.loadSource(url); + }); + player.attachMedia(this.player); } diff --git a/js/apl-html/src/media/video/PlaybackStateHandler.ts b/js/apl-html/src/media/video/PlaybackStateHandler.ts index 1ac62a4..f762529 100644 --- a/js/apl-html/src/media/video/PlaybackStateHandler.ts +++ b/js/apl-html/src/media/video/PlaybackStateHandler.ts @@ -2,8 +2,8 @@ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. */ -import {PlaybackState} from '../Resource'; import {IMediaEventListener} from '../IMediaEventListener'; +import {PlaybackState} from '../Resource'; export enum EmitBehavior { Dedup = 'DEDUP', diff --git a/js/apl-html/src/media/video/PlayerNetworkRetryManager.ts b/js/apl-html/src/media/video/PlayerNetworkRetryManager.ts new file mode 100644 index 0000000..03a73cd --- /dev/null +++ b/js/apl-html/src/media/video/PlayerNetworkRetryManager.ts @@ -0,0 +1,55 @@ +/*! + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +const hls = require('hls.js/dist/hls.light.min.js'); + +export interface PlayerNetworkRetryManagerArgs { + player: HTMLVideoElement | any; + numberOfRetries?: number; + errorCallback?: () => void; +} + +export interface PlayerNetworkRetryManager { + fail: () => void; + shouldRetry: () => boolean; + retry: (url: string, errorDetails: string) => void; +} + +export function createPlayerNetworkRetryManager(args: PlayerNetworkRetryManagerArgs): PlayerNetworkRetryManager { + const defaultArgs = { + numberOfRetries: 3, + errorCallback: () => {} + }; + + args = Object.assign(defaultArgs, args); + + const { + player, + errorCallback + } = args; + + let remainingTries = args.numberOfRetries; + + return { + fail(): void { + errorCallback(); + player.destroy(); + }, + retry(url, errorDetails): void { + remainingTries -= 1; + + if (errorDetails === hls.ErrorDetails.MANIFEST_LOAD_ERROR || + errorDetails === hls.ErrorDetails.MANIFEST_LOAD_TIMEOUT || + errorDetails === hls.ErrorDetails.MANIFEST_PARSING_ERROR) { + player.loadSource(url); + } else { + player.startLoad(); + } + }, + shouldRetry(): boolean { + return remainingTries > 0; + } + }; +} diff --git a/js/apl-html/src/media/video/VideoPlayer.ts b/js/apl-html/src/media/video/VideoPlayer.ts index 7426a08..65dc054 100644 --- a/js/apl-html/src/media/video/VideoPlayer.ts +++ b/js/apl-html/src/media/video/VideoPlayer.ts @@ -3,10 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 */ +import {IMediaEventListener} from '../IMediaEventListener'; +import {IVideoPlayer} from '../IVideoPlayer'; import {PlaybackState} from '../Resource'; import {EmitBehavior, IPlaybackStateHandler, PlaybackStateHandler} from './PlaybackStateHandler'; -import {IVideoPlayer} from '../IVideoPlayer'; -import {IMediaEventListener} from '../IMediaEventListener'; export interface PlayerInitializationArgs { player: HTMLVideoElement; @@ -94,16 +94,15 @@ export function createVideoPlayer(eventListener: IMediaEventListener): IVideoPla function onErrorCallback() { this.playbackStateHandler.transitionToState(PlaybackState.ERROR); } - this.player.onerror = onErrorCallback.bind(this); } - function attachOnLoadedMetadataCallback() { - function onLoadedMetadataCallback() { + function attachOnLoadedDataCallback() { + function onLoadedDataCallback() { this.playbackStateHandler.transitionToState(PlaybackState.LOADED); } - this.player.onloadedmetadata = onLoadedMetadataCallback.bind(this); + this.player.onloadeddata = onLoadedDataCallback.bind(this); } function attachOnTimeUpdateCallback() { @@ -132,7 +131,7 @@ export function createVideoPlayer(eventListener: IMediaEventListener): IVideoPla attachOnEndedCallback.call(this); attachOnPauseCallback.call(this); attachOnErrorCallback.call(this); - attachOnLoadedMetadataCallback.call(this); + attachOnLoadedDataCallback.call(this); attachOnTimeUpdateCallback.call(this); }, applyCssShadow(shadowParams: string): void { @@ -164,7 +163,6 @@ export function createVideoPlayer(eventListener: IMediaEventListener): IVideoPla this.player.src = url; this.player.load(); } - this.playbackStateHandler.transitionToState(PlaybackState.LOADED); return Promise.resolve(undefined); }, play(id: string, url: string, offset: number): Promise { diff --git a/js/apl-html/src/utils/ArrayUtils.ts b/js/apl-html/src/utils/ArrayUtils.ts new file mode 100644 index 0000000..91b26fd --- /dev/null +++ b/js/apl-html/src/utils/ArrayUtils.ts @@ -0,0 +1,24 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +import {Maybe} from './Maybe'; + +/** + * Compare two arrays + * @param array1 + * @param array2 + * @return boolean true if arrays are equal + */ +export const arrayEquals = (array1: any[], array2: any[]): boolean => { + return JSON.stringify(array1) === JSON.stringify(array2); +}; + +export function last(array: T[]): Maybe { + return array[array.length - 1]; +} + +export function isEmptyArray(array: any[]): boolean { + return array === undefined || array.length === 0; +} diff --git a/js/apl-html/src/utils/BrowserUtils.ts b/js/apl-html/src/utils/BrowserUtils.ts new file mode 100644 index 0000000..0cd5087 --- /dev/null +++ b/js/apl-html/src/utils/BrowserUtils.ts @@ -0,0 +1,22 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * Determine if user agent contains FireFox (ignoring case) + * @param userAgent + * @return true if user agent does + */ +export function browserIsFirefox(userAgent: string): boolean { + return userAgent.toLowerCase().indexOf('firefox') !== -1; +} + +/** + * Determine if user agent contains msie, trident/, or edge/ (ignoring case) + * @param userAgent + * @return true if user agent does + */ +export function browserIsEdge(userAgent: string): boolean { + return /msie\s|trident\/|edge\//i.test(userAgent); +} diff --git a/js/apl-html/src/utils/Constant.ts b/js/apl-html/src/utils/Constant.ts index 856ba63..d33639b 100644 --- a/js/apl-html/src/utils/Constant.ts +++ b/js/apl-html/src/utils/Constant.ts @@ -16,3 +16,8 @@ export const ARROW_LEFT = 'ArrowLeft'; export const ARROW_UP = 'ArrowUp'; export const ARROW_RIGHT = 'ArrowRight'; export const ARROW_DOWN = 'ArrowDown'; + +export const HttpStatusCodes = { + Ok: 200, + BadRequest: 400 +}; diff --git a/js/apl-html/src/utils/DisplayStateUtils.ts b/js/apl-html/src/utils/DisplayStateUtils.ts new file mode 100644 index 0000000..e073b9e --- /dev/null +++ b/js/apl-html/src/utils/DisplayStateUtils.ts @@ -0,0 +1,15 @@ +/*! + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +import { DisplayState } from '../enums/DisplayState'; + +/** + * Validate displayState parameter. Passed in from WASM/WS. + * @param displayState the displayState parameter. + * @returns displayState the matching DisplayState. + */ +export function isDisplayState(displayState: any): displayState is DisplayState { + return displayState in DisplayState; +} diff --git a/js/apl-html/src/utils/FilterUtils.ts b/js/apl-html/src/utils/FilterUtils.ts index 78d0d7e..059673b 100644 --- a/js/apl-html/src/utils/FilterUtils.ts +++ b/js/apl-html/src/utils/FilterUtils.ts @@ -3,22 +3,25 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { FilterType } from '../enums/FilterType'; -import { IColor } from '../components/filters/Color'; -import { IBlur } from '../components/filters/Blur'; -import { INoise } from '../components/filters/Noise'; -import { IGradientFilter } from '../components/filters/Gradient'; -import { IBlend } from '../components/filters/Blend'; -import { IGrayscale } from '../components/filters/Grayscale'; -import { ISaturate } from '../components/filters/Saturate'; -import { ImageFilter } from '../components/filters/ImageFilter'; -import { SVG_NS, uuidv4 } from '..'; +import {SVG_NS, uuidv4} from '../components/Component'; +import {IBlend} from '../components/filters/Blend'; +import {IBlur} from '../components/filters/Blur'; +import {IColor} from '../components/filters/Color'; +import {IGradientFilter} from '../components/filters/Gradient'; +import {IGrayscale} from '../components/filters/Grayscale'; +import {ImageFilter} from '../components/filters/ImageFilter'; +import {INoise} from '../components/filters/Noise'; +import {ISaturate} from '../components/filters/Saturate'; +import {FilterType} from '../enums/FilterType'; +import {ILogger} from '../logging/ILogger'; +import {LoggerFactory} from '../logging/LoggerFactory'; +import {isSomething} from './Maybe'; /** * @ignore */ export type Filter = IBlur | INoise | IColor | IGradientFilter | - IBlend | IGrayscale | ISaturate ; + IBlend | IGrayscale | ISaturate; /** * The APL filters needs to be handled by SVG filter. @@ -58,7 +61,7 @@ export const generateSVGDefsAndUseElement = (filters: Filter[], svgFilterElement.id = filterId; svgDefs.appendChild(svgFilterElement); - return { svgDefsElement : svgDefs, svgUseElement : svgUse }; + return {svgDefsElement: svgDefs, svgUseElement: svgUse}; }; /** @@ -71,23 +74,23 @@ export const generateSVGDefsAndUseElement = (filters: Filter[], export const generateSVGFeImage = (sourceImageId: string, filterElement: SVGElement, isDestinationIn?: boolean): SVGFEImageElement[] => { - const fImage = document.createElementNS(SVG_NS, 'feImage'); - const filterImageArray: SVGFEImageElement[] = []; - const feImageId: string = uuidv4().toString(); - fImage.setAttributeNS('', 'href', sourceImageId); - fImage.setAttributeNS('', 'result', feImageId); - fImage.setAttributeNS('', 'x', '0'); - fImage.setAttributeNS('', 'y', '0'); - fImage.setAttributeNS('', 'height', '100%'); - fImage.setAttributeNS('', 'width', '100%'); - fImage.setAttributeNS('', 'preserveAspectRatio', 'none'); - filterImageArray.push(fImage); - if (isDestinationIn) { - filterElement.setAttributeNS('', 'in2', feImageId); - } else { - filterElement.setAttributeNS('', 'in', feImageId); - } - return filterImageArray; + const fImage = document.createElementNS(SVG_NS, 'feImage'); + const filterImageArray: SVGFEImageElement[] = []; + const feImageId: string = uuidv4().toString(); + fImage.setAttributeNS('', 'href', sourceImageId); + fImage.setAttributeNS('', 'result', feImageId); + fImage.setAttributeNS('', 'x', '0'); + fImage.setAttributeNS('', 'y', '0'); + fImage.setAttributeNS('', 'height', '100%'); + fImage.setAttributeNS('', 'width', '100%'); + fImage.setAttributeNS('', 'preserveAspectRatio', 'none'); + filterImageArray.push(fImage); + if (isDestinationIn) { + filterElement.setAttributeNS('', 'in2', feImageId); + } else { + filterElement.setAttributeNS('', 'in', feImageId); + } + return filterImageArray; }; /** @@ -105,3 +108,65 @@ export const isIndexOutOfBound = (index: number, imageArrayLength: number): bool } return false; }; + +export interface SVGImageFiltersApplierArgs { + uuid: string; + svgElement: SVGElement; + imageElement: SVGElement; + filters: Filter[]; + imageSources: string[]; + logger?: ILogger; +} + +export interface SVGImageFiltersApplier { + applyFiltersToSVGImage: () => void; +} + +export function createSVGImageFiltersApplier(args: SVGImageFiltersApplierArgs): SVGImageFiltersApplier { + const defaultArgs = { + logger: LoggerFactory.getLogger('SVGImageFiltersApplier') + }; + args = Object.assign(defaultArgs, args); + + const { + uuid, + svgElement, + imageElement, + filters, + imageSources + } = args; + + return { + applyFiltersToSVGImage(): void { + const filterId = `filter-${uuid}`; + const svgFilters = generateSVGDefsAndUseElement(filters, imageSources, filterId); + if (!isSomething(svgFilters)) { + return; + } + const { + svgDefsElement: svgFilterDefinitions, + svgUseElement: svgFilterUses + } = svgFilters; + + const existingSVGFilterDefinitions = svgElement.getElementsByTagName('defs'); + // Note: HTMLCollectionOf type has limited support for/of; use basic for loop for now + // tslint:disable-next-line:prefer-for-of + for (let i = 0; i < existingSVGFilterDefinitions.length; i++) { + const svgFilterDefinition = existingSVGFilterDefinitions[i]; + svgElement.removeChild(svgFilterDefinition); + } + + const existingSVGFilterUses = svgElement.getElementsByTagName('use'); + // Note: HTMLCollectionOf type has limited support for/of; use basic for loop for now + // tslint:disable-next-line:prefer-for-of + for (let i = 0; i < existingSVGFilterUses.length; i++) { + const svgFilterUse = existingSVGFilterUses[i]; + svgElement.removeChild(svgFilterUse); + } + + svgElement.appendChild(svgFilterUses); + svgElement.appendChild(svgFilterDefinitions); + imageElement.setAttribute('filter', `url('#${filterId}')`); + } + }; +} diff --git a/js/apl-html/src/utils/FontUtils.ts b/js/apl-html/src/utils/FontUtils.ts index f9f3b2f..592a131 100644 --- a/js/apl-html/src/utils/FontUtils.ts +++ b/js/apl-html/src/utils/FontUtils.ts @@ -5,16 +5,14 @@ 'use strict'; -import {LoggerFactory} from '../logging/LoggerFactory'; -import {ILogger} from '../logging/ILogger'; -import {FontStyle} from '../enums/FontStyle'; import * as WebFont from 'webfontloader'; import {createStylesApplier, ElementType, ElementTypes} from '../components/helpers/StylesApplier'; +import {FontStyle} from '../enums/FontStyle'; +import {ILogger} from '../logging/ILogger'; +import {LoggerFactory} from '../logging/LoggerFactory'; /** * Adjust exports to only export used interfaces - * when codebase upgrades to TypeScript version that supports - * exported variables with private names */ export interface SetArgs { element: Element; diff --git a/js/apl-html/src/utils/ImageRetrievalUtils.ts b/js/apl-html/src/utils/ImageRetrievalUtils.ts new file mode 100644 index 0000000..d33ab82 --- /dev/null +++ b/js/apl-html/src/utils/ImageRetrievalUtils.ts @@ -0,0 +1,135 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +import APLRenderer from '../APLRenderer'; +import { ILogger } from '../logging/ILogger'; +import { LoggerFactory } from '../logging/LoggerFactory'; +import { HttpStatusCodes } from './Constant'; + +const imageElementMap = new Map>(); + +const loadImageFromMediaSource = async (sourceUrl: string, + imageElement: HTMLImageElement, + renderer: APLRenderer): Promise => { + return new Promise((resolve, reject) => { + imageElement.onload = () => { + if (renderer && renderer.context) { + renderer.context.mediaLoaded(sourceUrl); + } + resolve(imageElement); + }; + imageElement.onerror = reject; + imageElement.src = sourceUrl; + }).catch(() => { + if (renderer && renderer.context) { + renderer.context.mediaLoadFailed(sourceUrl, HttpStatusCodes.BadRequest, `Bad request on ${sourceUrl}`); + } + return createUnattachedImageElement(); + }); +}; + +/** + * Create and load images in html elements. These elements are saved and can be used later for image processing + * @param sourceUrls array of string URLs + * @param renderer APLRenderer + */ +export const loadAllImagesFromMediaSource = async (sourceUrls: string[], + renderer: APLRenderer): Promise => { + return await Promise.all( + sourceUrls + .map(async (sourceUrl) => { + const isImageRequested = imageElementMap.has(sourceUrl); + if (isImageRequested) { + // use pre-fetched element to trigger media loaded events + const imageElementPromise = imageElementMap.get(sourceUrl); + const imageElement = await imageElementPromise; + + // Call onMedia events for cached sources + if (imageElement.src && renderer && renderer.context) { + renderer.context.mediaLoaded(sourceUrl); + } else { + renderer.context.mediaLoadFailed(sourceUrl, HttpStatusCodes.BadRequest, `Bad request on ${sourceUrl}`); + } + } else { + createImageAndInsertIntoMap(sourceUrl, renderer); + } + }) + ); +}; + +const getImageElementFromUtilMap = async (sourceUrl: string, + renderer: APLRenderer): Promise => { + if (!imageElementMap.has(sourceUrl)) { + createImageAndInsertIntoMap(sourceUrl, renderer); + } + return imageElementMap.get(sourceUrl); +}; + +const getCorsImageElement = async (sourceUrl: string, renderer: APLRenderer): Promise => { + const imageElement: HTMLImageElement = createUnattachedImageElement(); + imageElement.crossOrigin = 'anonymous'; + return loadImageFromMediaSource(sourceUrl, imageElement, renderer); +}; + +const createImageAndInsertIntoMap = (sourceUrl: string, renderer: APLRenderer) => { + const imageElement = createUnattachedImageElement(); + const imageElementPromise = loadImageFromMediaSource(sourceUrl, imageElement, renderer); + imageElementMap.set(sourceUrl, imageElementPromise); +}; + +const createUnattachedImageElement = (): HTMLImageElement => { + return document.createElement('img'); +}; + +export type ImageRetrievalTypes = 'HTML' | 'HTML_CORS'; + +export interface SupportedRetrievalTypes { + [key: string]: ImageRetrievalTypes; +} +export const ImageRetrievalType: SupportedRetrievalTypes = { + HTML: 'HTML', + HTML_CORS: 'HTML_CORS' +}; + +type RetrievalFunction = (sourceUrl: string, renderer: APLRenderer) => Promise; + +interface RetrievalFunctionMap { + [key: string]: RetrievalFunction; +} + +const retrievalFunctionMap: RetrievalFunctionMap = { + [ImageRetrievalType.HTML]: getImageElementFromUtilMap, + [ImageRetrievalType.CORS]: getCorsImageElement +}; + +export interface ImageRetrievalUtilsArgs { + type: ImageRetrievalTypes; + renderer: APLRenderer; + logger?: ILogger; +} + +export function getImageRetrievalUtils(args: ImageRetrievalUtilsArgs) { + const defaultArgs = { + type: ImageRetrievalType.HTML, + logger: LoggerFactory.getLogger('ImageRetrievalUtils') + }; + + const { + type, + renderer, + logger + } = Object.assign(defaultArgs, args); + + return { + async getImageElement(sourceUrl: string): Promise { + if (!retrievalFunctionMap.hasOwnProperty(type)) { + logger.warn(`Type of image retrieval is invalid: ${type}`); + return retrievalFunctionMap[ImageRetrievalType.HTML](sourceUrl, renderer); + } + + return retrievalFunctionMap[type](sourceUrl, renderer); + } + }; +} diff --git a/js/apl-html/src/utils/ImageUtils.ts b/js/apl-html/src/utils/ImageUtils.ts new file mode 100644 index 0000000..81da9de --- /dev/null +++ b/js/apl-html/src/utils/ImageUtils.ts @@ -0,0 +1,532 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +import APLRenderer from '../APLRenderer'; +import { INoise, Noise } from '../components/filters/Noise'; +import { FilterType } from '../enums/FilterType'; +import { GradientType } from '../enums/GradientType'; +import { ImageScale } from '../enums/ImageScale'; +import { ILogger } from '../logging/ILogger'; +import { LoggerFactory } from '../logging/LoggerFactory'; +import { browserIsFirefox } from './BrowserUtils'; +import { numberToColor } from './ColorUtils'; +import { Filter } from './FilterUtils'; +import { getImageRetrievalUtils, ImageRetrievalType } from './ImageRetrievalUtils'; + +export interface IGradient { + angle: number; + colorRange: number[]; + inputRange: number[]; + type: GradientType; +} + +export function getCssGradient(gradient: IGradient, logger: ILogger): string { + if (!gradient) { + return ''; + } + + let gradientCss = ''; + + // All gradients use color stops, colors are mandatory, stop positions are not + const inputRange = gradient.inputRange || []; + const colorStops = gradient.colorRange.map((color, idx) => { + // if the color already in css rgba format string, do not need convert. + if (typeof color !== 'number') { + if (inputRange.length > idx) { + return `${color} ${inputRange[idx] * 100}%`; + } + return color; + } + // else color is a number, convert to rgba format. + if (inputRange.length > idx) { + return `${numberToColor(color)} ${inputRange[idx] * 100}%`; + } + return numberToColor(color); + }).join(','); + + switch (gradient.type) { + case GradientType.LINEAR: { + const angle = gradient.angle || 0; + gradientCss = `linear-gradient(${angle}deg, ${colorStops})`; + break; + } + case GradientType.RADIAL: { + gradientCss = `radial-gradient(${colorStops})`; + break; + } + default: { + logger.warn('Incorrect gradient type'); + break; + } + } + return gradientCss; +} + +export function getCssPureColorGradient(color: string) { + return `linear-gradient(${color}, ${color})`; +} + +export interface ImageDimensions { + width: number; + height: number; +} + +export interface ImageScalerArgs { + imageSourceUrl: string; + renderer: APLRenderer; + scalingOption?: ImageScale; + imageDimensions: ImageDimensions; + logger?: ILogger; +} + +export interface CanvasImageScalerArgs extends ImageScalerArgs { + canvas: HTMLCanvasElement; + filters: Filter[]; + applyFilterArgs: ApplyFiltersToImageArguments; +} + +export interface ImageScaler { + scaleImage: () => ScaledImageSource; +} + +export interface ScaledImageSource { + scaledImageWidth; + scaledImageHeight; + scaledSource; +} + +export async function createScaledImageProcessor(args: ImageScalerArgs): Promise { + const defaultArgs = { + scalingOption: ImageScale.kImageScaleBestFit, + logger: LoggerFactory.getLogger('ScaledImageRenderer') + }; + args = Object.assign(defaultArgs, args); + + const { + imageDimensions, + renderer, + logger, + imageSourceUrl + } = args; + + let { + scalingOption + } = args; + + const imageElement: HTMLImageElement = + await getImageRetrievalUtils({ + type: ImageRetrievalType.HTML, + renderer, + logger + }).getImageElement(imageSourceUrl); + + const { + height: sourceHeight, + width: sourceWidth + } = imageElement; + + const { + height: destinationHeight, + width: destinationWidth + } = imageDimensions; + + const scaledImageDimension: ImageDimensions = { + height: destinationHeight, + width: destinationWidth + }; + + const xScale = destinationWidth / sourceWidth; + const yScale = destinationHeight / sourceHeight; + + function renderScaleNone(): void { + adjustImageDimensions({ + width: sourceWidth, + height: sourceHeight + }); + } + + function renderScaleToFill(): void { + adjustImageDimensions({ + width: destinationWidth, + height: destinationHeight + }); + } + + function renderScaleToBestFill(): void { + const scale = xScale > yScale ? xScale : yScale; + renderScaled(scale); + } + + function renderScaleToBestFit(): void { + const scale = xScale < yScale ? xScale : yScale; + renderScaled(scale); + } + + function renderScaleToBestFitDown(): void { + let scale = 1.0; + if ((sourceWidth > destinationWidth) || (sourceHeight > destinationHeight)) { + scale = xScale < yScale ? xScale : yScale; + } + renderScaled(scale); + } + + function renderScaled(scale): void { + const { + height, + width + } = scaleDimensions(scale); + + adjustImageDimensions({ + width, + height + }); + } + + function adjustImageDimensions({width, height}) { + scaledImageDimension.height = height; + scaledImageDimension.width = width; + } + + function scaleDimensions(scale): ImageDimensions { + return { + height: Math.round(sourceHeight * scale), + width: Math.round(sourceWidth * scale) + }; + } + + const scalingFunctions = { + [ImageScale.kImageScaleNone]: renderScaleNone, + [ImageScale.kImageScaleFill]: renderScaleToFill, + [ImageScale.kImageScaleBestFill]: renderScaleToBestFill, + [ImageScale.kImageScaleBestFit]: renderScaleToBestFit, + [ImageScale.kImageScaleBestFitDown]: renderScaleToBestFitDown + }; + + return { + scaleImage(): ScaledImageSource { + if (!scalingFunctions.hasOwnProperty(scalingOption)) { + logger.warn(`unrecognized scaling option ${scalingOption} defaulting to 'best-fit'`); + scalingOption = ImageScale.kImageScaleBestFit; + } + scalingFunctions[scalingOption](); + + return { + scaledImageHeight: scaledImageDimension.height, + scaledImageWidth: scaledImageDimension.width, + scaledSource: imageSourceUrl + }; + } + }; +} + +export async function createCanvasScaledImageProcessor(args: CanvasImageScalerArgs): Promise { + const defaultArgs = { + scalingOption: ImageScale.kImageScaleBestFit, + logger: LoggerFactory.getLogger('ScaledImageRenderer') + }; + args = Object.assign(defaultArgs, args); + + const { + logger, + canvas, + filters, + renderer, + imageDimensions, + imageSourceUrl, + applyFilterArgs + } = args; + + let { + scalingOption + } = args; + + const prefetchedImageElement: HTMLImageElement = + await getImageRetrievalUtils({ + type: ImageRetrievalType.HTML, + renderer, + logger + }).getImageElement(imageSourceUrl); + + const { + height: sourceHeight, + width: sourceWidth + } = prefetchedImageElement; + + const { + height: destinationHeight, + width: destinationWidth + } = imageDimensions; + + // if source fits inside destination + if (sourceWidth <= destinationWidth && sourceHeight <= destinationHeight) { + return createScaledImageProcessor({ + logger, + imageDimensions, + renderer, + imageSourceUrl, + scalingOption + }); + } + + const imageElement: HTMLImageElement = + await getImageRetrievalUtils({ + type: ImageRetrievalType.CORS, + renderer, + logger + }).getImageElement(imageSourceUrl); + + const xScale = destinationWidth / sourceWidth; + const yScale = destinationHeight / sourceHeight; + + // Clear canvas + const canvasRenderingContext = canvas.getContext('2d'); + canvasRenderingContext.clearRect(0, 0, destinationWidth, destinationHeight); + + function renderScaleNone(): void { + const targetWidth = (sourceWidth > destinationWidth) ? destinationWidth : sourceWidth; + const targetHeight = (sourceHeight > destinationHeight) ? destinationHeight : sourceHeight; + + adjustCanvasDimensions({ + width: targetWidth, + height: targetHeight + }); + + const { + xCoordinate, + yCoordinate + } = calculateOffset({ + width: sourceWidth, + height: sourceHeight + }); + + const destinationX = 0; + const destinationY = 0; + + const leftOffset = Math.abs(xCoordinate); + const topOffset = Math.abs(yCoordinate); + + const sourceClippingWidth = (sourceWidth > destinationWidth) ? destinationWidth : sourceWidth - leftOffset; + const sourceClippingHeight = (sourceHeight > destinationHeight) ? destinationHeight : sourceHeight - topOffset; + + canvasRenderingContext.drawImage( + imageElement, + leftOffset, + topOffset, + sourceClippingWidth, + sourceClippingHeight, + destinationX, + destinationY, + targetWidth, + targetHeight + ); + } + + function renderScaleToFill(): void { + const newWidth = destinationWidth; + const newHeight = destinationHeight; + + adjustCanvasDimensions({ + width: newWidth, + height: newHeight + }); + + const { + xCoordinate, + yCoordinate + } = calculateOffset({ + width: newWidth, + height: newHeight + }); + + canvasRenderingContext.drawImage(imageElement, xCoordinate, yCoordinate, newWidth, newHeight); + } + + function renderScaleToBestFill(): void { + const scale = xScale > yScale ? xScale : yScale; + renderScaled(scale); + } + + function renderScaleToBestFit(): void { + const scale = xScale < yScale ? xScale : yScale; + renderScaled(scale); + } + + function renderScaleToBestFitDown(): void { + let scale = 1.0; + if ((sourceWidth > destinationWidth) || (sourceHeight > destinationHeight)) { + scale = xScale < yScale ? xScale : yScale; + } + renderScaled(scale); + } + + function renderScaled(scale): void { + const { + height, + width + } = scaleDimensions(scale); + + adjustCanvasDimensions({ + width, + height + }); + + const sourceX = 0; + const sourceY = 0; + + const destinationX = 0; + const destinationY = 0; + + canvasRenderingContext.drawImage( + imageElement, + sourceX, + sourceY, + sourceWidth, + sourceHeight, + destinationX, + destinationY, + width, + height + ); + } + + function setCanvasImageSmoothingQualityToHigh() { + if (!browserIsFirefox(window.navigator.userAgent)) { + (canvasRenderingContext as any).imageSmoothingQuality = 'high'; + } + } + + function adjustCanvasDimensions({width, height}) { + canvas.height = height; + canvas.width = width; + + setCanvasImageSmoothingQualityToHigh(); + } + + function calculateOffset({width, height}) { + const xOffset = (destinationWidth - width) / 2; + const yOffset = (destinationHeight - height) / 2; + + return { + xCoordinate: Math.min(xOffset, 0), + yCoordinate: Math.min(yOffset, 0) + }; + } + + function scaleDimensions(scale) { + return { + height: Math.round(sourceHeight * scale), + width: Math.round(sourceWidth * scale) + }; + } + + const scalingFunctions = { + [ImageScale.kImageScaleNone]: renderScaleNone, + [ImageScale.kImageScaleFill]: renderScaleToFill, + [ImageScale.kImageScaleBestFill]: renderScaleToBestFill, + [ImageScale.kImageScaleBestFit]: renderScaleToBestFit, + [ImageScale.kImageScaleBestFitDown]: renderScaleToBestFitDown + }; + + return { + scaleImage(): ScaledImageSource { + if (!scalingFunctions.hasOwnProperty(scalingOption)) { + logger.warn(`unrecognized scaling option ${scalingOption} defaulting to 'best-fit'`); + scalingOption = ImageScale.kImageScaleBestFit; + } + scalingFunctions[scalingOption](); + + // Apply filters + createCanvasImageFiltersApplier({ + canvas, + canvasRenderingContext, + filters + }).applyFiltersToImage(applyFilterArgs); + + return { + scaledSource: canvas.toDataURL('image/png', 1.0), + scaledImageWidth: canvas.width, + scaledImageHeight: canvas.height + }; + } + }; +} + +export interface CanvasImageFiltersApplierArgs { + canvas: HTMLCanvasElement; + canvasRenderingContext: CanvasRenderingContext2D; + filters: Filter[]; + logger?: ILogger; +} + +export interface ApplyFiltersToImageArguments { + currentImageIndex: number; + isLastIndex: boolean; +} + +export interface CanvasImageFiltersApplier { + applyFiltersToImage: (args: ApplyFiltersToImageArguments) => void; +} + +function createCanvasImageFiltersApplier(args: CanvasImageFiltersApplierArgs): CanvasImageFiltersApplier { + const defaultArgs = { + logger: LoggerFactory.getLogger('CanvasImageFiltersApplier') + }; + args = Object.assign(defaultArgs, args); + + const { + filters, + canvas, + canvasRenderingContext, + logger + } = args; + + function applyNoise(filter: INoise) { + const { + width, + height + } = canvas; + const xCoordinate = 0; + const yCoordinate = 0; + + const imageData = canvasRenderingContext.getImageData(xCoordinate, yCoordinate, width, height); + if (!imageData) { + logger.warn(`No image data to apply filter to, skipping noise filter.`); + return; + } + const noise = new Noise(filter.useColor, filter.kind, filter.sigma); + noise.addNoise(imageData); + canvasRenderingContext.putImageData(imageData, xCoordinate, yCoordinate); + } + + const canvasSupportedFilter = { + [FilterType.kFilterTypeNoise]: applyNoise + }; + + return { + applyFiltersToImage(applyFilterArgs: ApplyFiltersToImageArguments): void { + const defaultApplyFilterArgs = { + currentImageIndex: Infinity, + isLastIndex: false + }; + applyFilterArgs = Object.assign(defaultApplyFilterArgs, applyFilterArgs); + + const { + currentImageIndex, + isLastIndex + } = applyFilterArgs; + + const canvasFilters = filters.filter((filter) => { + return canvasSupportedFilter.hasOwnProperty(filter.type); + }); + + canvasFilters.forEach((filter) => { + const sourceIndex = (filter as INoise).source; + if (sourceIndex === currentImageIndex || (isLastIndex && sourceIndex === -1)) { + canvasSupportedFilter[filter.type](filter); + } + }); + } + }; +} diff --git a/js/apl-html/src/utils/Maybe.ts b/js/apl-html/src/utils/Maybe.ts new file mode 100644 index 0000000..d72c7cf --- /dev/null +++ b/js/apl-html/src/utils/Maybe.ts @@ -0,0 +1,12 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +export const Nothing = Symbol('Nothing'); +export type Nothing = typeof Nothing; +export type Maybe = T | Nothing | undefined; + +export function isSomething(value: Maybe): value is T { + return value !== undefined && value !== Nothing; +} diff --git a/js/apl-html/src/utils/MediaRequestUtils.ts b/js/apl-html/src/utils/MediaRequestUtils.ts new file mode 100644 index 0000000..4a95eb4 --- /dev/null +++ b/js/apl-html/src/utils/MediaRequestUtils.ts @@ -0,0 +1,51 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +import APLRenderer from '../APLRenderer'; +import { EventMediaType } from '../enums/EventMediaType'; +import { ILogger } from '../logging/ILogger'; +import { LoggerFactory } from '../logging/LoggerFactory'; +import { loadAllImagesFromMediaSource } from './ImageRetrievalUtils'; + +export interface MediaRequestArgs { + renderer: APLRenderer; + logger?: ILogger; +} + +export const requestMedia = async ( + mediaEvent: number, + source: string[], + args: MediaRequestArgs) => { + args = ensureDefaultMediaRequestArgs(args); + + const { + logger + } = args; + + if (mediaRequestMap[mediaEvent]) { + return await mediaRequestMap[mediaEvent](source, args); + } + logger.error(`Cannot make a media request with type ${mediaEvent}`); +}; + +const mediaRequestMap = { + [EventMediaType.kEventMediaTypeImage]: async (imageSource, args) => { + const { renderer } = args; + return await loadAllImagesFromMediaSource(imageSource, renderer); + }, + [EventMediaType.kEventMediaTypeVectorGraphic]: async (vectorGraphicSource, args) => { + const { renderer } = args; + return await renderer.onRequestGraphic(vectorGraphicSource[vectorGraphicSource.length - 1]); + }, + [EventMediaType.kEventMediaTypeVideo]: () => { + } +}; + +function ensureDefaultMediaRequestArgs(args: MediaRequestArgs) { + const defaultArgs = { + logger: LoggerFactory.getLogger('MediaRequestUtils') + }; + + return Object.assign(defaultArgs, args); +} diff --git a/js/apl-html/src/utils/MediaStateUtils.ts b/js/apl-html/src/utils/MediaStateUtils.ts new file mode 100644 index 0000000..0714ddf --- /dev/null +++ b/js/apl-html/src/utils/MediaStateUtils.ts @@ -0,0 +1,15 @@ +/*! + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +import { TrackState } from '../enums/TrackState'; + +/** + * Validate trackState parameter. Passed in from WASM/WS. + * @param trackState the trackState parameter. + * @returns trackState the matching TrackState. + */ +export function isTrackState(trackState: any): trackState is TrackState { + return trackState in TrackState; +} diff --git a/js/apl-html/src/utils/SpatialNavigation.ts b/js/apl-html/src/utils/SpatialNavigation.ts deleted file mode 100644 index fec840f..0000000 --- a/js/apl-html/src/utils/SpatialNavigation.ts +++ /dev/null @@ -1,203 +0,0 @@ -/** - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -const SpatialNavigationJS = require('spatial-navigation-js'); - -export const FOCUSABLE_ELEMENT = 'focusable-element'; -export const DEFAULT_SECTION = 'section-default'; -export const SCROLL_INTO_VIEW = 'scrollIntoView'; - -export type MoveAllowedFuction = ((parent : any, id : string) => boolean); - -export enum SectionType { - NONE = 'none', - SELF_FIRST = 'self-first', - SELF_ONLY = 'self-only' -} - -export type Direction = 'left' | 'right' | 'up' | 'down'; - -export class SpatialNavigation { - private static navigationEnabled = false; - - public static init() { - if (!this.navigationEnabled) { - SpatialNavigationJS.init(); - this.navigationEnabled = true; - } - } - - public static uninit() { - if (this.navigationEnabled) { - SpatialNavigationJS.clear(); - SpatialNavigationJS.uninit(); - this.navigationEnabled = false; - } - } - - public static enabled() : boolean { - return this.navigationEnabled; - } - - public static getSectionName(id : string, subid : string = 'x') : string { - return `section-${id.replace(/\W/g, '')}-${subid.replace(/\W/g, '')}`; - } - - public static addSection(sectionId : string, type : SectionType = SectionType.NONE, straight : boolean = false) { - if (!this.navigationEnabled) { - return; - } - - const selector = `.${FOCUSABLE_ELEMENT}.${sectionId}`; - SpatialNavigationJS.add(sectionId, { - selector, - restrict: type, - straightOnly: straight - }); - SpatialNavigationJS.makeFocusable(sectionId); - } - - public static removeSection(sectionId : string) { - SpatialNavigationJS.remove(sectionId); - } - - public static makeNavigable(element : HTMLElement, sectionId : string = DEFAULT_SECTION, - focusFunction = (() => {}), blurFunction = (() => {}), - allowedFunction : MoveAllowedFuction = (() => true), - parent : any = undefined) { - if (!this.navigationEnabled) { - return; - } - - element.classList.add(FOCUSABLE_ELEMENT); - element.classList.add(sectionId); - - element.addEventListener('sn:willfocus', (event : CustomEvent) => { - if (parent && !allowedFunction(parent, element.id)) { - event.preventDefault(); - return; - } - const sivEvent = new CustomEvent(SCROLL_INTO_VIEW, { bubbles: true, detail: {id: element.id} }); - element.dispatchEvent(sivEvent); - }); - - element.addEventListener('sn:focused', (event : CustomEvent) => { - event.stopPropagation(); - if (focusFunction) { - focusFunction(); - } - }); - - // For now just propagate blur - element.addEventListener('sn:unfocused', (event : CustomEvent) => { - event.stopPropagation(); - if (blurFunction) { - blurFunction(); - } - }); - - // Ensure elements added after initialization is focusable after click. - element.tabIndex = -1; - } - - /** - * Add touchWrapper and scrollView as focusable elements and focus the first navigable element - */ - public static setFocusableComponents() { - if (!this.navigationEnabled) { - return; - } - - // Define navigable elements (elements with "focusable-element" class). - SpatialNavigation.addSection(DEFAULT_SECTION); - SpatialNavigationJS.setDefaultSection(DEFAULT_SECTION); - - // Make the *currently existing* navigable elements focusable. - SpatialNavigationJS.makeFocusable(); - } - - /** - * Set/update config for specified section with the given sectionId - * @param sectionId - * @param config - */ - public static set(sectionId : string, config : any) { - if (!this.navigationEnabled) { - return; - } - - SpatialNavigationJS.set(sectionId, config); - } - - /** - * Enable navigation for the specified section with the given sectionId - * @param {string} sectionId - */ - public static enable(sectionId) { - if (!this.navigationEnabled) { - return; - } - - SpatialNavigationJS.enable(sectionId); - } - - /** - * Disable navigation for the specified section with the given sectionId - * @param {string} sectionId - */ - public static disable(sectionId) { - if (!this.navigationEnabled) { - return; - } - - SpatialNavigationJS.disable(sectionId); - } - - /** - * Pause SpatialNavigation and stop reacting to key events - */ - public static pause() { - if (!this.navigationEnabled) { - return; - } - - SpatialNavigationJS.pause(); - } - - /** - * Resume SpatialNavigation and start reacting to key events - */ - public static resume() { - if (!this.navigationEnabled) { - return; - } - - SpatialNavigationJS.resume(); - } - - /** - * Resume SpatialNavigation and start reacting to key events - */ - public static focus(sectionId : string = DEFAULT_SECTION) { - if (!this.navigationEnabled) { - return; - } - - SpatialNavigationJS.focus(sectionId); - } - - /** - * Moves the focus to the specified direction, based on current - * SpatialNavigation rules - * @param direction - */ - public static move(direction : Direction) { - if (!this.navigationEnabled) { - return; - } - - SpatialNavigationJS.move(direction); - } -} diff --git a/js/apl-html/src/utils/VectorGraphicUtils.ts b/js/apl-html/src/utils/VectorGraphicUtils.ts new file mode 100644 index 0000000..3d02bd9 --- /dev/null +++ b/js/apl-html/src/utils/VectorGraphicUtils.ts @@ -0,0 +1,76 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +import { HttpStatusCodes } from './Constant'; +import { MediaRequestArgs } from './MediaRequestUtils'; + +const promiseMap = new Map(); + +/** + * Get a vector graphic via fetch API. + * @param source Url which contains the source url + * @param args APLContext methods that notifies core that media has loaded or failed to load + * @return Promise that returns a Promise with either a string or undefined. + */ +export function fetchVectorGraphic(source: string, args: MediaRequestArgs): Promise { + let result: Promise; + + if (promiseMap.has(source)) { + // Wait for pending promise instead of fetching again. + checkMediaLoadedOnCachedVectorGraphicSource(source, args); + result = promiseMap.get(source); + } else { + const requestPromise = vectorGraphicRequest(source, args); + promiseMap.set(source, requestPromise); + result = requestPromise; + } + return result; +} + +function checkMediaLoadedOnCachedVectorGraphicSource(mediaSource: string, args?: MediaRequestArgs) { + const { + renderer + } = args; + + const requestPromise: Promise = promiseMap.get(mediaSource); + requestPromise.then((promise) => { + if (renderer && renderer.context) { + if (promise) { + renderer.context.mediaLoaded(mediaSource); + } else { + renderer.context.mediaLoadFailed(mediaSource, HttpStatusCodes.BadRequest, `Bad request on ${mediaSource}`); + } + } + }); +} + +function vectorGraphicRequest(source: string, args: MediaRequestArgs): Promise { + const { + renderer + } = args; + + return fetch(source, { + headers: { + 'Accept': 'application/json', + 'Content-Type': 'application/json' + } + }).then((response) => { + if (response.status === HttpStatusCodes.Ok) { + if (renderer && renderer.context) { + renderer.context.mediaLoaded(source); + } + return response.text(); + } + if (renderer && renderer.context) { + renderer.context.mediaLoadFailed(source, response.status, response.statusText); + } + return undefined; + }).catch((error) => { + if (renderer && renderer.context) { + renderer.context.mediaLoadFailed(source, HttpStatusCodes.BadRequest, `Bad request: ${error.message} ${source}`); + } + return undefined; + }); +} diff --git a/js/apl-html/tslint.json b/js/apl-html/tslint.json index afa9a2e..c6e8db4 100644 --- a/js/apl-html/tslint.json +++ b/js/apl-html/tslint.json @@ -88,7 +88,7 @@ "ignore-for-loop" ], "only-arrow-functions": [true, "allow-declarations"], - "ordered-imports": [false, { + "ordered-imports": [true, { "import-sources-order": "case-insensitive", "named-imports-order": "case-insensitive" }], @@ -134,4 +134,4 @@ ] }, "rulesDirectory": [] -} \ No newline at end of file +} diff --git a/js/apl-wasm/package.json b/js/apl-wasm/package.json index ce7abe1..c7f0093 100644 --- a/js/apl-wasm/package.json +++ b/js/apl-wasm/package.json @@ -36,8 +36,10 @@ "chai": "^4.2.0", "chai-exclude": "^2.0.3", "cross-env": "^5.2.0", + "cypress-watch-and-reload": "^1.3.4", + "cypress": "5.6.0", "dts-packer": "link:../dts-packer", - "electron": "^11.5.0", + "electron": "^4.0.4", "electron-mocha": "^6.0.4", "istanbul": "^0.4.5", "istanbul-instrumenter-loader": "^3.0.1", diff --git a/js/apl-wasm/src/APLWASMRenderer.ts b/js/apl-wasm/src/APLWASMRenderer.ts index 6ed5fd7..04fd4de 100644 --- a/js/apl-wasm/src/APLWASMRenderer.ts +++ b/js/apl-wasm/src/APLWASMRenderer.ts @@ -3,16 +3,16 @@ * SPDX-License-Identifier: Apache-2.0 */ -import APLRenderer, -{ - Content, DeviceMode, FontUtils, IAPLOptions, ILogger, JSLogLevel, LoggerFactory, LogLevel, LogTransport, - ViewportShape, commandFactory, LocaleMethods, LiveArray, LiveMap +import APLRenderer, { + commandFactory, Content, DeviceMode, DisplayState, FontUtils, + IAPLOptions, IConfigurationChangeOptions, ILogger, JSLogLevel, LiveArray, + LiveMap, LocaleMethods, LoggerFactory, LogLevel, LogTransport, + ViewportShape } from 'apl-html'; import {ConfigurationChange} from './ConfigurationChange'; -import {PackageLoader} from './PackageLoader'; import {ExtensionManager} from './extensions/ExtensionManager'; import {IDocumentState} from './extensions/IDocumentState'; -import {IConfigurationChangeOptions} from 'apl-html'; +import {PackageLoader} from './PackageLoader'; /** * This matches the schema sent from the server @@ -111,6 +111,15 @@ export class APLWASMRenderer extends APLRenderer { } } }; + + this.handleUpdateDisplayState = (displayState: DisplayState) => { + if (this.context) { + this.context.updateDisplayState(displayState); + this.destroyRenderingComponents(); + this.reRenderComponents(); + } + }; + } /** diff --git a/js/apl-wasm/src/LiveArray.ts b/js/apl-wasm/src/LiveArray.ts deleted file mode 100644 index e3ce5ed..0000000 --- a/js/apl-wasm/src/LiveArray.ts +++ /dev/null @@ -1,156 +0,0 @@ -/** - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -/** - * A LiveArray is a public class that holds an array of Objects that changes - * over time. LiveArrays are created and modified by ViewHosts. - * - * Inside of the APL document the LiveArray may be used normally in the - * data-binding context. If used as the "data" target for a multi-child component, - * a LayoutRebuilder will be assigned to add and remove components from the component - * as the LiveArray changes. - * - * For example: - * - * { - * "type": "Sequence", - * "data": "${MyLiveArray}", - * "item": { - * "type": "Text", - * "text": "${index+1}. ${data}" - * } - * } - * - * As per the above example, when this sequence is first inflated there - * will be three text components: "1. Object A", "2. Object B", "3. Object C". - * After the push_back and remove commands, the text components will now - * be "1. Object B", "2. Object C", "3. Object D". - * - * The same LiveArray may be used by multiple RootContext objects. This allows - * an application to create a single LiveArray to track a source of changing data - * and display it in multiple view hosts simultaneously. - * - * Please note that changing LiveArray values has a limited effect on the - * component hierarchy. A component with children bound to a live array will - * have new children inserted and removed, but changing the value stored in - * an existing LiveArray index will not cause that child to be re-inflated. - */ -export class LiveArray { - - /** - * Create a LiveArray with an initial Object vector - * @param array The vector of objects. Values should be stringified. - * @return The LiveArray - */ - public static create(array? : any[]) : LiveArray { - return new LiveArray(array); - } - public liveArray : APL.LiveArray; - - private constructor(array? : any[]) { - this.liveArray = Module.LiveArray.create(array); - } - - /** - * Check to see if there are no elements in the map - * @return True if the array is empty - */ - public empty() : boolean { - return this.liveArray.empty(); - } - - /** - * Clear all elements from the array - */ - public clear() : void { - this.liveArray.clear(); - } - - /** - * @return The number of elements in the array. - */ - public size() : number { - return this.liveArray.size(); - } - - /** - * Retrieve an object in the array. If position is out of bounds, a NULL object - * will be returned. - * @param position The index of the object to return. - * @return The object or a null object. - */ - public at(position : number) : any { - return this.liveArray.at(position); - } - - /** - * Insert a new object into the array. The position must fall within the range [0,size] - * @param position The position at which to insert the object. - * @param value The object to insert. - * @return True if position was valid and the object was inserted. - */ - public insert(position : number, value : any) : boolean { - return this.liveArray.insert(position, value); - } - - /** - * Insert a range of objects into the array. The position must fall within the range [0,size] - * @param position The position at which to insert the objects. - * @param array array to insert. - * @return True if the position was valid and at least one object was inserted. - */ - public insertRange(position : number, array : any[]) : boolean { - return this.liveArray.insertRange(position, array); - } - - /** - * Remove an object from the array. The position must fall within the range [0,size) - * @param position The position at which the object will be removed. - * @param count Number of items to remove. - * @return True if the position was valid and the object was removed. - */ - public remove(position : number, count : number = 1) : boolean { - return this.liveArray.remove(position, count); - } - - /** - * Change the value of an object at a position - * @param position The position where the object will be changed - * @param value The value it will be changed to. - * @return True if the position was valid and the object was changed - */ - public update(position : number, value : any) : boolean { - return this.liveArray.update(position, value); - } - - /** - * Update a range of objects in the array. The starting position must fall within the range - * [0,size - count], where count is the number of objects being modified. - * @tparam InputIt The source iterator type - * @param position The starting position where objects should be updated - * @param array array to use in update. - * @return True if the position was valid and at least one object was updated. - */ - public updateRange(position : number, array : any[]) : boolean { - return this.liveArray.updateRange(position, array); - } - - /** - * Push an object onto the back of the array. - * @param value The object to push. - */ - public push_back(value : any) : void { - this.liveArray.push_back(value); - } - - /** - * Push a range of objects onto the array. - * @param array array to push. - * @return True if at least one object was pushed onto the array. - */ - public push_backRange(array : any[]) : boolean { - return this.liveArray.push_backRange(array); - } -} diff --git a/js/apl-wasm/src/LiveMap.ts b/js/apl-wasm/src/LiveMap.ts deleted file mode 100644 index eb3ba3d..0000000 --- a/js/apl-wasm/src/LiveMap.ts +++ /dev/null @@ -1,108 +0,0 @@ -/** - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - - /** - * A Live object is a single APL Object that changes over time. LiveMaps are - * created and modified by ViewHosts. - * - * Inside of the APL document the LiveMap may be used normally in data-binding - * contexts. For example: - * - * { - * "type": "Text", - * "text": "The live object is currently '${MyLiveMap}'" - * } - * - * The same LiveMap may be used by multiple Context objects. This allows - * an application to create a single LiveMap to track a source of changing - * data and display it in multiple view hosts simultaneously. - * - * Changing the key-value pairs in a live map will update all data-bound - * values currently in the component hierarchy that depend on those values. - */ -export class LiveMap { - - /** - * Create a LiveMap with an initial Object - * @param map The initial Map. - * @return The LiveMap - */ - public static create(map? : any) : LiveMap { - return new LiveMap(map); - } - public liveMap : APL.LiveMap; - - private constructor(map? : any) { - this.liveMap = Module.LiveMap.create(map); - } - - /** - * Check to see if there are no elements in the map - * @return True if the map is empty - */ - public empty() : boolean { - return this.liveMap.empty(); - } - - /** - * Clear all elements from the map - */ - public clear() : void { - this.liveMap.clear(); - } - - /** - * Retrieve a value from the map. If the key does not exist, a NULL object - * will be returned. - * @param key The key of the object to return. - * @return The internal object. - */ - public get(key : string) : any { - return this.liveMap.get(key); - } - - /** - * Check to see if a key exists in the map. - * @param key The key to search for. - * @return True if the key exists. - */ - public has(key : string) : boolean { - return this.liveMap.has(key); - } - - /** - * Set a key-value pair in the map. - * @param key The key to insert - * @param value The value to store. - */ - public set(key : string, value : string) : void { - this.liveMap.set(key, value); - } - - /** - * Set a collection of values from a different map - * @map The object map to copy values from. - */ - public update(map : any) : void { - this.liveMap.update(map); - } - - /** - * Replace the LiveMap with a new map. - * @param map The new map to set. - */ - public replace(map : any) : void { - this.liveMap.replace(map); - } - - /** - * Remove a key from the map - * @param key The key to remove - * @return True if the key was found and removed. - */ - public remove(key : string) : boolean { - return this.liveMap.remove(key); - } -} diff --git a/js/apl-wasm/src/extensions/Extension.ts b/js/apl-wasm/src/extensions/Extension.ts deleted file mode 100644 index 65af733..0000000 --- a/js/apl-wasm/src/extensions/Extension.ts +++ /dev/null @@ -1,195 +0,0 @@ -/*! - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -/** - * Configuration settings used when creating a ExtensionCommandDefinition. - * - * This is normally used as: - * ''' - * ExtensionCommandDefinition commandDefinition = new ExtensionCommandDefinition("apl:myext:10","SomeCommand") - * .allowFastMode(true) - * .requireResolution(false); - * ''' - */ -export class ExtensionCommandDefinition { - - /** - * @internal - * @ignore - */ - public commandDefinition : APL.ExtensionCommandDefinition; - - /** - * Standard constructor - * @param uri The URI of the extension - * @param name The name of the command. - */ - public constructor( uri : string, name : string) { - this.commandDefinition = Module.ExtensionCommandDefinition.create(uri, name); - return this; - } - - /** - * Configure if this command can run in fast mode. When the command runs in fast mode the - * "requireResolution" property is ignored (fast mode commands do not support action resolution). - * @param allowFastMode If true, this command can run in fast mode. - * @return This object for chaining - */ - public allowFastMode(allowFastMode : boolean) : ExtensionCommandDefinition { - this.commandDefinition.allowFastMode(allowFastMode); - return this; - } - - /** - * Configure if this command (in normal mode) will return an action pointer - * that must be resolved by the view host before the next command in the sequence is executed. - * @param requireResolution If true, this command will provide an action pointer (in normal mode). - * @return This object for chaining. - */ - public requireResolution(requireResolution : boolean) : ExtensionCommandDefinition { - this.commandDefinition.requireResolution(requireResolution); - return this; - } - - /** - * Add a named property. The property names "when" and "type" are reserved. - * @param property The property to add - * @param defValue The default value to use for this property when it is not provided. - * @param required If true and the property is not provided, the command will not execute. - * @return This object for chaining. - */ - public property(property : string, defValue : any, required : boolean) : ExtensionCommandDefinition { - this.commandDefinition.property(property, defValue, required); - return this; - } - - /** - * Add a named array-ified property. The property will be converted into an array of values. The names "when" - * and "type" are reserved. - * @param property The property to add - * @param defvalue The default value to use for this property when it is not provided. - * @param required If true and the property is not provided, the command will not execute. - * @return This object for chaining. - */ - public arrayProperty(property : string, required : boolean ) : ExtensionCommandDefinition { - this.commandDefinition.arrayProperty(property, required); - return this; - } - - /** - * @return The URI of the extension - */ - public getURI() : string { - return this.commandDefinition.getURI(); - } - - /** - * @return The name of the command - */ - public getName() : string { - return this.commandDefinition.getName(); - } - - /** - * @return True if this command can execute in fast mode - */ - public getAllowFastMode() : boolean { - return this.commandDefinition.getAllowFastMode(); - } - - /** - * @return True if this command will return an action pointer that must be - * resolved. Please note that a command running in fast mode will - * never wait to be resolved. - */ - public getRequireResolution() : boolean { - return this.commandDefinition.getRequireResolution(); - } -} - -export class ExtensionEventHandler { - - /** - * @internal - * @ignore - */ - public eventHandler : APL.ExtensionEventHandler; - - /** - * Standard constructor - * @param uri The URI of the extension - * @param name The name of the handler. - */ - public constructor( uri : string, name : string) { - this.eventHandler = Module.ExtensionEventHandler.create(uri, name); - return this; - } - - /** - * @return The extension URI associated with this event handler - */ - public getURI() : string { - return this.eventHandler.getURI(); - } - - /** - * @return The name of this event handler - */ - public getName() : string { - return this.eventHandler.getName(); - } -} - -export class ExtensionFilterDefinition { - - /** - * @internal - * @ignore - */ - public filterExtensionDef : APL.ExtensionFilterDefinition; - - /** - * Standard constructor - * @param uri The URI of the extension - * @param name The name of the filter extension. - * @param imageCount The number of images referenced by this filter. - */ - public constructor( uri : string, name : string, imageCount : number) { - this.filterExtensionDef = Module.ExtensionFilterDefinition.create(uri, name, imageCount); - return this; - } - - /** - * Add a named property. The property names "when" and "type" are reserved. - * @param property The property to add - * @param defValue The default value to use for this property when it is not provided. - * @return This object for chaining. - */ - public property(property : string, defValue : any) : ExtensionFilterDefinition { - this.filterExtensionDef.property(property, defValue); - return this; - } - - /** - * @return The extension URI associated with this filter extension - */ - public getURI() : string { - return this.filterExtensionDef.getURI(); - } - - /** - * @return The name of this filter extension - */ - public getName() : string { - return this.filterExtensionDef.getName(); - } - - /** - * @return The number of images referenced by this filter (0, 1, or 2); - */ - public getImageCount() : number { - return this.filterExtensionDef.getImageCount(); - } -} diff --git a/js/apl-wasm/src/extensions/ExtensionConnection.ts b/js/apl-wasm/src/extensions/ExtensionConnection.ts index a02daf2..7944fb7 100644 --- a/js/apl-wasm/src/extensions/ExtensionConnection.ts +++ b/js/apl-wasm/src/extensions/ExtensionConnection.ts @@ -3,8 +3,8 @@ * SPDX-License-Identifier: Apache-2.0 */ +import { IExtensionConnection, IExtensionConnectionMessage, IExtensionService, ILogger, LoggerFactory } from 'apl-html'; import { ExtensionManager } from './ExtensionManager'; -import { IExtensionConnection, IExtensionService, IExtensionConnectionMessage, ILogger, LoggerFactory } from 'apl-html'; /** * The connection to local service. diff --git a/js/apl-wasm/src/extensions/ExtensionManager.ts b/js/apl-wasm/src/extensions/ExtensionManager.ts index 8a2b08f..07b4fc9 100644 --- a/js/apl-wasm/src/extensions/ExtensionManager.ts +++ b/js/apl-wasm/src/extensions/ExtensionManager.ts @@ -2,8 +2,8 @@ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ -import { Content, ILogger, LoggerFactory, IExtensionManager, IExtensionEventCallbackResult, LiveArray, LiveMap, - IExtension, IExtensionConnection, IExtensionService} from 'apl-html'; +import { Content, IExtension, IExtensionConnection, IExtensionEventCallbackResult, IExtensionManager, + IExtensionService, ILogger, LiveArray, LiveMap, LoggerFactory} from 'apl-html'; import { ExtensionConfiguration } from './ExtensionConfiguration'; import { ExtensionLocalConnection } from './ExtensionConnection'; import { ExtensionClient, IExtensionClient } from './ExtentionClient'; diff --git a/js/apl-wasm/src/extensions/IExtension.ts b/js/apl-wasm/src/extensions/IExtension.ts deleted file mode 100644 index d784414..0000000 --- a/js/apl-wasm/src/extensions/IExtension.ts +++ /dev/null @@ -1,117 +0,0 @@ -/*! - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -import { IExtensionEventCallbackResult } from 'apl-html'; -import { ExtensionCommandDefinition, ExtensionEventHandler } from './Extension'; -import { LiveMap } from '../LiveMap'; -import { LiveArray } from '../LiveArray'; - -export interface ILiveDataDefinition { - name : string; - data : LiveMap | LiveArray; -} - -/** - * The common interface for all extensions. - */ -export interface IExtension { - getUri() : string; - getEnvironment() : any; - getExtensionCommands() : ExtensionCommandDefinition[]; - getExtensionEventHandlers() : ExtensionEventHandler[]; - getLiveData() : ILiveDataDefinition[]; - setContext(context : APL.Context) : void; - onExtensionEvent(uri : string, commandName : string, source : object, - params : object, resultCallback : IExtensionEventCallbackResult); - applySettings(settings : object); -} - -/** - * The connection between extensionManager/extensionClient and server/service. - * This is for local connection only, for services through http/ws, it is not in scope. - */ -export interface IExtensionConnection { - /** - * Create a connection between extension and service. - * @return boolean indicates connection establish success or not. - */ - connect(settings : string) : boolean; - - /** - * Destroy a connection between extension and service. - * @return boolean indicates disconnect success or not. - */ - disconnect() : boolean; - - /** - * Send message from extension to service. - * @param message to send. - */ - sendMessage(message : IExtensionConnectionMessage) : void; - - /** - * When message received from service. - * @param message received. - */ - onMessage(message : IExtensionConnectionMessage) : void; - - /** - * When connection is closed. - * @param event. - */ - onClose(event : any) : void; - - /** - * When connection is open. - * @param event. - */ - onOpen(event : any) : void; - - /** - * When connection has error. - * @param event. - */ - onError(event : any) : void; -} - -export interface IExtensionConnectionMessage { - uri : string; - payload : any; -} - -/** - * The extension service provider connected through function calls instead of hosted service. - */ -export interface IExtensionService { - /** - * configuration and connection only required for local function call service (no IPC). - * @param settings - * @param connection - */ - onConnect(settings? : string, connection? : IExtensionConnection) : void; - - /** - * when disconnected. - */ - onDisconnect() : void; - - /** - * onMessage received. - * @param message - */ - onMessage(message : IExtensionConnectionMessage) : void; - - /** - * send message. - * @param message - */ - sendMessage(message : IExtensionConnectionMessage) : void; - - /** - * apply settings of the extension. - * @param settings - */ - applySettings(settings : object) : void; -} diff --git a/js/apl-wasm/src/extensions/audioplayer/AudioPlayerEnvironment.ts b/js/apl-wasm/src/extensions/audioplayer/AudioPlayerEnvironment.ts deleted file mode 100644 index cef6da7..0000000 --- a/js/apl-wasm/src/extensions/audioplayer/AudioPlayerEnvironment.ts +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ - -/** - * These properties are added to the environment under the common name of the audioplayer extension. - * Currently audioplayer extension doesn't add any further environment - */ -export interface AudioPlayerEnvironment { -} diff --git a/js/apl-wasm/src/extensions/audioplayer/AudioPlayerExtension.ts b/js/apl-wasm/src/extensions/audioplayer/AudioPlayerExtension.ts index e64e56e..525c5ba 100644 --- a/js/apl-wasm/src/extensions/audioplayer/AudioPlayerExtension.ts +++ b/js/apl-wasm/src/extensions/audioplayer/AudioPlayerExtension.ts @@ -4,11 +4,10 @@ */ import {IExtensionEventCallbackResult} from 'apl-html'; -import {IExtension, ILiveDataDefinition, ExtensionCommandDefinition, ExtensionEventHandler, LiveMap} from 'apl-html'; -import {AudioPlayerEnvironment} from './AudioPlayerEnvironment'; +import {ExtensionCommandDefinition, ExtensionEventHandler, IExtension, ILiveDataDefinition, LiveMap} from 'apl-html'; import {ILogger, LoggerFactory} from '../..'; -import {AudioPlayerExtensionObserverInterface, Lyric} from './AudioPlayerExtensionObserverInterface'; import {createAplExtensionCommandDefinition, createAplExtensionEventHandler} from '../ExtensionCreationUtils'; +import {AudioPlayerExtensionObserverInterface, Lyric} from './AudioPlayerExtensionObserverInterface'; /** * An APL Extension designed for bi-directional communication between an AudioPlayer and APL document @@ -62,7 +61,7 @@ export class AudioPlayerExtension implements IExtension { * The audioplayer extension doesn't add any environment properties to * the assigned namespace of the entension at APL1.4: */ - public getEnvironment(): AudioPlayerEnvironment { + public getEnvironment() { return {}; } diff --git a/js/apl-wasm/src/extensions/audioplayer/AudioPlayerExtensionObserverInterface.ts b/js/apl-wasm/src/extensions/audioplayer/AudioPlayerExtensionObserverInterface.ts index 00d4b71..bdbff98 100644 --- a/js/apl-wasm/src/extensions/audioplayer/AudioPlayerExtensionObserverInterface.ts +++ b/js/apl-wasm/src/extensions/audioplayer/AudioPlayerExtensionObserverInterface.ts @@ -75,7 +75,8 @@ export interface AudioPlayerExtensionObserverInterface { /** * Used to notify the observer when the extension has issued a AddLyricsDurationInMilliseconds event. * The observer should store the provided Lyrics usgae data. - * @param durationInMilliseconds A long number representing how long the document displayed lyrics in milliseconds for a given track + * @param durationInMilliseconds A long number representing how long the document + * displayed lyrics in milliseconds for a given track * @param token The instance of the song in which lyrics are being viewed */ onFlushLyricData(); diff --git a/js/apl-wasm/src/extensions/backstack/BackstackExtension.ts b/js/apl-wasm/src/extensions/backstack/BackstackExtension.ts index 8f609c3..687df2b 100644 --- a/js/apl-wasm/src/extensions/backstack/BackstackExtension.ts +++ b/js/apl-wasm/src/extensions/backstack/BackstackExtension.ts @@ -4,21 +4,21 @@ */ import { - IExtensionEventCallbackResult, - IExtension, - ILiveDataDefinition, ExtensionCommandDefinition, - ExtensionEventHandler + ExtensionEventHandler, + IExtension, + IExtensionEventCallbackResult, + ILiveDataDefinition } from 'apl-html'; -import {GoBackCommand} from './GoBackCommand'; -import {Stack} from './Stack'; -import {BackstackEnvironment} from './BackstackEnvironment'; -import {ClearCommand} from './ClearCommand'; import {ILogger, LoggerFactory} from '../..'; -import {BackstackExtensionObserverInterface} from './BackstackExtensionObserverInterface'; +import {createAplExtensionCommandDefinition} from '../ExtensionCreationUtils'; import {IDocumentState} from '../IDocumentState'; +import {BackstackEnvironment} from './BackstackEnvironment'; +import {BackstackExtensionObserverInterface} from './BackstackExtensionObserverInterface'; +import {ClearCommand} from './ClearCommand'; +import {GoBackCommand} from './GoBackCommand'; import {GoBackListener} from './GoBackListener'; -import {createAplExtensionCommandDefinition} from '../ExtensionCreationUtils'; +import {Stack} from './Stack'; /** * Similar to the HTML_History object, the backstack extension allows for implicit sequential back navigation to diff --git a/js/apl-wasm/src/extensions/backstack/GoBackCommand.ts b/js/apl-wasm/src/extensions/backstack/GoBackCommand.ts index 6d234d6..ef9eaa5 100644 --- a/js/apl-wasm/src/extensions/backstack/GoBackCommand.ts +++ b/js/apl-wasm/src/extensions/backstack/GoBackCommand.ts @@ -3,10 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { Stack } from './Stack'; -import { LoggerFactory, ILogger } from '../..'; -import { GoBackListener } from './GoBackListener'; +import { ILogger, LoggerFactory } from '../..'; import { IDocumentState } from '../IDocumentState'; +import { GoBackListener } from './GoBackListener'; +import { Stack } from './Stack'; /** * The GoBack command is used to return to a previous document in the backstack. diff --git a/js/apl-wasm/src/extensions/backstack/Stack.ts b/js/apl-wasm/src/extensions/backstack/Stack.ts index 8f3c77e..583a07a 100644 --- a/js/apl-wasm/src/extensions/backstack/Stack.ts +++ b/js/apl-wasm/src/extensions/backstack/Stack.ts @@ -3,8 +3,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { IDocumentState } from '../IDocumentState'; import { LiveArray } from 'apl-html'; +import { IDocumentState } from '../IDocumentState'; /** * A stack which keeps track of the ids of all constituent items. diff --git a/js/apl-wasm/tslint.json b/js/apl-wasm/tslint.json index afa9a2e..69e34cd 100644 --- a/js/apl-wasm/tslint.json +++ b/js/apl-wasm/tslint.json @@ -88,7 +88,7 @@ "ignore-for-loop" ], "only-arrow-functions": [true, "allow-declarations"], - "ordered-imports": [false, { + "ordered-imports": [true, { "import-sources-order": "case-insensitive", "named-imports-order": "case-insensitive" }], diff --git a/js/dts-packer/src/index.ts b/js/dts-packer/src/index.ts index 0d8d76c..431d6cf 100644 --- a/js/dts-packer/src/index.ts +++ b/js/dts-packer/src/index.ts @@ -53,7 +53,6 @@ class NodeModule { const program = ts.createProgram([this.typesPath], {}); const sources = program.getSourceFiles(); - debugger; for(const source of sources) { const nmp = path.join(this.path, 'node_modules'); if(!this.sources.has(source.fileName) && //we haven't traversed to this file diff --git a/js/package.json b/js/package.json index 39803bd..dc14f43 100644 --- a/js/package.json +++ b/js/package.json @@ -23,6 +23,7 @@ "clean:html": "cd apl-html && yarn clean", "clean:wasm": "cd apl-wasm && yarn clean", "clean:dts-packer": "cd dts-packer && yarn clean", - "clean": "rimraf node_modules && yarn clean:client && yarn clean:html && yarn clean:wasm && yarn clean:dts-packer" + "clean": "rimraf node_modules && yarn clean:client && yarn clean:html && yarn clean:wasm && yarn clean:dts-packer", + "lint": "yarn workspaces run lint" } } diff --git a/js/yarn.lock b/js/yarn.lock index 4d2d715..3f74336 100644 --- a/js/yarn.lock +++ b/js/yarn.lock @@ -31,35 +31,65 @@ core-js "^2.6.5" regenerator-runtime "^0.13.4" +"@cypress/listr-verbose-renderer@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#a77492f4b11dcc7c446a34b3e28721afd33c642a" + integrity sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo= + dependencies: + chalk "^1.1.3" + cli-cursor "^1.0.2" + date-fns "^1.27.2" + figures "^1.7.0" + +"@cypress/request@^2.88.5": + version "2.88.5" + resolved "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.5.tgz#8d7ecd17b53a849cfd5ab06d5abe7d84976375d7" + integrity sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + "@cypress/webpack-preprocessor@^5.5.0": - version "5.9.1" - resolved "https://registry.yarnpkg.com/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.9.1.tgz#2694aa832baf3984d90bcb899e1ecff377560904" - integrity sha512-cg1ikftIo7NdlRA8ocNSxWjHJlh1JlTkN9ZfXUuKWWcJgrEdYLjXk0UzY6gYbLLaFka4oIhN6SvL5Y/7iELvgg== + version "5.6.0" + resolved "https://registry.yarnpkg.com/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.6.0.tgz#9648ae22d2e52f17a604e2a493af27a9c96568bd" + integrity sha512-kSelTDe6gs3Skp4vPP2vfTvAl+Ua+9rR/AMTir7bgJihDvzFESqnjWtF6N1TrPo+vCFVGx0VUA6JUvDkhvpwhA== dependencies: bluebird "^3.7.1" debug "4.3.2" lodash "^4.17.20" -"@electron/get@^1.0.1": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz#95c6bcaff4f9a505ea46792424f451efea89228c" - integrity sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ== +"@cypress/xvfb@^1.2.4": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" + integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - progress "^2.0.3" - semver "^6.2.0" - sumchecker "^3.0.1" - optionalDependencies: - global-agent "^2.0.2" - global-tunnel-ng "^2.7.1" + debug "^3.1.0" + lodash.once "^4.1.1" -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@samverschueren/stream-to-observable@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" + integrity sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ== + dependencies: + any-observable "^0.3.0" "@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0", "@sinonjs/commons@^1.7.0": version "1.8.0" @@ -90,13 +120,6 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - "@types/chai@~4.1.7": version "4.1.7" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a" @@ -148,12 +171,22 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== -"@types/node@^12.0.12", "@types/node@^12.0.2": - version "12.20.29" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.29.tgz#f80f1e2156a376a23838d90905f68b816d486733" - integrity sha512-dU2ypz+gO5va1OBvs0iT3BNHG5SgTqRvq8r+kU3e/LAseKapUJ8zTUE9Ve9fTpi27tN/7ahOAhCJwQWsffvsyw== +"@types/node@^10.12.18": + version "10.17.26" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.26.tgz#a8a119960bff16b823be4c617da028570779bcfd" + integrity sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw== + +"@types/node@^12.0.2": + version "12.12.47" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.47.tgz#5007b8866a2f9150de82335ca7e24dd1d59bdfb5" + integrity sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A== + +"@types/sinonjs__fake-timers@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz#3a84cf5ec3249439015e14049bd3161419bf9eae" + integrity sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg== -"@types/sizzle@*": +"@types/sizzle@*", "@types/sizzle@^2.3.2": version "2.3.2" resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz#a811b8c18e2babab7d542b3365887ae2e4d9de47" integrity sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg== @@ -381,7 +414,7 @@ ajv@^5.0.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2: +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: version "6.12.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== @@ -401,16 +434,31 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== +ansi-escapes@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -423,6 +471,18 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +any-observable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" + integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -447,6 +507,11 @@ aproba@^1.1.1: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== +arch@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -474,6 +539,11 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -510,6 +580,18 @@ asn1.js@^4.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + assert@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" @@ -538,6 +620,11 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async-wait-until@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/async-wait-until/-/async-wait-until-1.2.6.tgz#b6d8ada89913028af1928ee078925af75862b108" + integrity sha512-7I1zd0bnMEo7WfLfDoLZp+iPYKv/dl7kcW8wphazZn+BAElTGvtkDuQuonr480JzkS7f42VcGyP90mk3+3IfWA== + async@1.x: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -550,11 +637,36 @@ async@^2.5.0: dependencies: lodash "^4.17.14" +async@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" + integrity sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA== + babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -664,6 +776,13 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + bfj@^6.1.1: version "6.1.2" resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" @@ -696,15 +815,20 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bluebird@^3.5.5, bluebird@^3.7.1: +blob-util@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== + +bluebird@^3.5.5, bluebird@^3.7.1, bluebird@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== bn.js@^5.1.1: version "5.1.2" @@ -727,11 +851,6 @@ body-parser@1.19.0: raw-body "2.4.0" type-is "~1.6.17" -boolean@^3.0.1: - version "3.1.4" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.4.tgz#f51a2fb5838a99e06f9b6ec1edb674de67026435" - integrity sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -763,7 +882,7 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -909,24 +1028,34 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== +cachedir@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz#0c75892a052198f0b21c7c1804d8331edfcae0e8" + integrity sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + chai-exclude@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/chai-exclude/-/chai-exclude-2.0.3.tgz#38c159a5e098971b795cafd492d48ae58d651a23" @@ -946,7 +1075,7 @@ chai@^4.2.0: pathval "^1.1.0" type-detect "^4.0.5" -chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= @@ -966,16 +1095,44 @@ chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= +check-more-types@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA= + check-types@^8.0.3: version "8.0.3" resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + chokidar@^2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" @@ -1022,6 +1179,11 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1040,6 +1202,38 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" +cli-cursor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc= + dependencies: + restore-cursor "^1.0.1" + +cli-cursor@^2.0.0, cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-table3@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" + integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== + dependencies: + object-assign "^4.1.0" + string-width "^4.2.0" + optionalDependencies: + colors "^1.1.2" + +cli-truncate@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" + integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ= + dependencies: + slice-ansi "0.0.4" + string-width "^1.0.1" + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -1049,18 +1243,16 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -1076,11 +1268,35 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + commander@2.15.1: version "2.15.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" @@ -1091,6 +1307,16 @@ commander@^2.12.1, commander@^2.15.1, commander@^2.18.0, commander@^2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" + integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1116,14 +1342,6 @@ concat-stream@^1.5.0, concat-stream@^1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -config-chain@^1.1.11: - version "1.1.13" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" - integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - console-browserify@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" @@ -1208,12 +1426,7 @@ core-js@^2.4.0, core-js@^2.6.5: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== -core-js@^3.6.5: - version "3.18.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.3.tgz#86a0bba2d8ec3df860fefcc07a8d119779f01509" - integrity sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw== - -core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= @@ -1267,6 +1480,15 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.0: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -1308,12 +1530,84 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: +cypress-watch-and-reload@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/cypress-watch-and-reload/-/cypress-watch-and-reload-1.3.5.tgz#59abcb3734762b56a64ad0df6167b4ed845071d8" + integrity sha512-82EULej7/MEI7dwWnle+gQRL7lSYJuf7dx/lNszm/KgDWZ8avkKiKa3UtTBbfeZSGUJ78EypVF1vcrcmpmgEug== + dependencies: + async-wait-until "1.2.6" + chokidar "3.5.1" + ws "7.4.3" + +cypress@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-5.6.0.tgz#6781755c3ddfd644ce3179fcd7389176c0c82280" + integrity sha512-cs5vG3E2JLldAc16+5yQxaVRLLqMVya5RlrfPWkC72S5xrlHFdw7ovxPb61s4wYweROKTyH01WQc2PFzwwVvyQ== + dependencies: + "@cypress/listr-verbose-renderer" "^0.4.1" + "@cypress/request" "^2.88.5" + "@cypress/xvfb" "^1.2.4" + "@types/sinonjs__fake-timers" "^6.0.1" + "@types/sizzle" "^2.3.2" + arch "^2.1.2" + blob-util "2.0.2" + bluebird "^3.7.2" + cachedir "^2.3.0" + chalk "^4.1.0" + check-more-types "^2.24.0" + cli-table3 "~0.6.0" + commander "^5.1.0" + common-tags "^1.8.0" + debug "^4.1.1" + eventemitter2 "^6.4.2" + execa "^4.0.2" + executable "^4.1.1" + extract-zip "^1.7.0" + fs-extra "^9.0.1" + getos "^3.2.1" + is-ci "^2.0.0" + is-installed-globally "^0.3.2" + lazy-ass "^1.6.0" + listr "^0.14.3" + lodash "^4.17.19" + log-symbols "^4.0.0" + minimist "^1.2.5" + moment "^2.27.0" + ospath "^1.2.2" + pretty-bytes "^5.4.1" + ramda "~0.26.1" + request-progress "^3.0.0" + supports-color "^7.2.0" + tmp "~0.2.1" + untildify "^4.0.0" + url "^0.11.0" + yauzl "^2.10.0" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +date-fns@^1.27.2: + version "1.30.1" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" + integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== + +debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== @@ -1327,14 +1621,35 @@ debug@3.1.0: dependencies: ms "2.0.0" -debug@4.3.2, debug@^4.1.0, debug@^4.1.1: +debug@4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" -decamelize@^1.2.0: +debug@^3.0.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^3.1.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -1344,13 +1659,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - deep-eql@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" @@ -1358,23 +1666,16 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -1397,6 +1698,11 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -1427,11 +1733,6 @@ detect-indent@^4.0.0: dependencies: repeating "^2.0.0" -detect-node@^2.0.4: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" - integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== - diff@3.5.0, diff@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" @@ -1466,11 +1767,6 @@ domain-browser@^1.1.1: "dts-packer@link:dts-packer": version "1.0.0" -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - duplexer@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" @@ -1486,6 +1782,14 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -1496,6 +1800,21 @@ ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== +electron-download@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-4.1.1.tgz#02e69556705cc456e520f9e035556ed5a015ebe8" + integrity sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg== + dependencies: + debug "^3.0.0" + env-paths "^1.0.0" + fs-extra "^4.0.1" + minimist "^1.2.0" + nugget "^2.0.1" + path-exists "^3.0.0" + rc "^1.2.1" + semver "^5.4.1" + sumchecker "^2.0.2" + electron-mocha@^6.0.4: version "6.0.4" resolved "https://registry.yarnpkg.com/electron-mocha/-/electron-mocha-6.0.4.tgz#5130ff3ed1ffc2971de26881cd7d18c0c0179baf" @@ -1514,39 +1833,49 @@ electron-window@^0.8.0: dependencies: is-electron-renderer "^2.0.0" -electron@^11.5.0: - version "11.5.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-11.5.0.tgz#f1650543b9d8f2047d3807755bdb120153ed210f" - integrity sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg== +electron@^4.0.4: + version "4.2.12" + resolved "https://registry.yarnpkg.com/electron/-/electron-4.2.12.tgz#8e8926a6a6654cde5eb0612952fed98a56941875" + integrity sha512-EES8eMztoW8gEP5E4GQLP8slrfS2jqTYtHbu36mlu3k1xYAaNPyQQr6mCILkYxqj4l3la4CT2Vcs89CUG62vcQ== dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^12.0.12" + "@types/node" "^10.12.18" + electron-download "^4.1.0" extract-zip "^1.0.3" +elegant-spinner@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" + integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= + elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" + bn.js "^4.4.0" + brorand "^1.0.1" hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -encodeurl@^1.0.2, encodeurl@~1.0.2: +encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= @@ -1567,10 +1896,10 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1: memory-fs "^0.5.0" tapable "^1.0.0" -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== +env-paths@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0" + integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA= errno@^0.1.3, errno@~0.1.7: version "0.1.7" @@ -1579,10 +1908,12 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" escape-html@~1.0.3: version "1.0.3" @@ -1594,11 +1925,6 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escodegen@1.8.x: version "1.8.1" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" @@ -1656,6 +1982,11 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +eventemitter2@^6.4.2: + version "6.4.3" + resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.3.tgz#35c563619b13f3681e7eb05cbdaf50f56ba58820" + integrity sha512-t0A2msp6BzOf+QAcI6z9XMktLj52OjGQg+8SJH6v5+3uxNpWYRR3wQmfA+6xtMU9kOC59qk9licus5dYcrYkMQ== + eventemitter3@3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" @@ -1679,6 +2010,33 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +execa@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +executable@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g= + expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -1750,6 +2108,11 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -1764,7 +2127,7 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.0.3: +extract-zip@^1.0.3, extract-zip@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== @@ -1774,6 +2137,16 @@ extract-zip@^1.0.3: mkdirp "^0.5.4" yauzl "^2.10.0" +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" @@ -1811,6 +2184,21 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== +figures@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -1860,6 +2248,14 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -1890,6 +2286,20 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" @@ -1915,6 +2325,15 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-extra@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-extra@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" @@ -1933,6 +2352,16 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -1961,6 +2390,11 @@ fsevents@~2.1.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -1971,14 +2405,12 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= -get-stream@^5.1.0: +get-stream@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== @@ -1990,6 +2422,20 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= +getos@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" + integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== + dependencies: + async "^3.2.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -2040,18 +2486,12 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -global-agent@^2.0.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc" - integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg== +global-dirs@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" + integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== dependencies: - boolean "^3.0.1" - core-js "^3.6.5" - es6-error "^4.1.1" - matcher "^3.0.0" - roarr "^2.15.3" - semver "^7.3.2" - serialize-error "^7.0.1" + ini "1.3.7" global-modules@^1.0.0: version "1.0.0" @@ -2089,28 +2529,11 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== -globalthis@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" - integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== - dependencies: - define-properties "^1.1.3" - globby@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" @@ -2123,23 +2546,6 @@ globby@^7.1.1: pify "^3.0.0" slash "^1.0.0" -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" @@ -2159,9 +2565,9 @@ gzip-size@^5.0.0: pify "^4.0.1" handlebars@^4.0.1, handlebars@^4.7.0: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== dependencies: minimist "^1.2.5" neo-async "^2.6.0" @@ -2170,6 +2576,19 @@ handlebars@^4.0.1, handlebars@^4.7.0: optionalDependencies: uglify-js "^3.1.4" +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -2187,6 +2606,11 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has-value@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" @@ -2253,7 +2677,7 @@ hls.js@^0.13.1: eventemitter3 "3.1.0" url-toolkit "^2.1.6" -hmac-drbg@^1.0.1: +hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -2274,10 +2698,10 @@ hoopy@^0.1.4: resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== http-errors@1.7.2: version "1.7.2" @@ -2301,11 +2725,25 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -2335,11 +2773,6 @@ ignore@^3.3.5: resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== -image-scale@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/image-scale/-/image-scale-2.1.0.tgz#6105bfbf2e5b0292011500156a5a33234ce592f4" - integrity sha1-YQW/vy5bApIBFQAValozI0zlkvQ= - import-local@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -2353,6 +2786,18 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= + dependencies: + repeating "^2.0.0" + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -2386,7 +2831,12 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5: +ini@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== @@ -2422,6 +2872,11 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -2441,6 +2896,13 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -2500,11 +2962,23 @@ is-finite@^1.0.0: resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -2519,6 +2993,14 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-installed-globally@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" + integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -2531,6 +3013,18 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-observable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" + integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA== + dependencies: + symbol-observable "^1.1.0" + +is-path-inside@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" + integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -2538,6 +3032,31 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -2575,6 +3094,11 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + istanbul-instrumenter-loader@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-3.0.1.tgz#9957bd59252b373fae5c52b7b5188e6fde2a0949" @@ -2659,16 +3183,16 @@ js-yaml@3.x, js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -2684,7 +3208,12 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-stringify-safe@^5.0.1: +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= @@ -2703,18 +3232,30 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + just-extend@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.0.tgz#7278a4027d889601640ee0ce0e5a00b992467da4" integrity sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA== -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -2739,6 +3280,11 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +lazy-ass@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + integrity sha1-eZllXoZGwX8In90YfRUNMyTVRRM= + levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -2747,6 +3293,61 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +listr-silent-renderer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" + integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4= + +listr-update-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2" + integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA== + dependencies: + chalk "^1.1.3" + cli-truncate "^0.2.1" + elegant-spinner "^1.0.1" + figures "^1.7.0" + indent-string "^3.0.0" + log-symbols "^1.0.2" + log-update "^2.3.0" + strip-ansi "^3.0.1" + +listr-verbose-renderer@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db" + integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw== + dependencies: + chalk "^2.4.1" + cli-cursor "^2.1.0" + date-fns "^1.27.2" + figures "^2.0.0" + +listr@^0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586" + integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA== + dependencies: + "@samverschueren/stream-to-observable" "^0.3.0" + is-observable "^1.1.0" + is-promise "^2.1.0" + is-stream "^1.1.0" + listr-silent-renderer "^1.1.1" + listr-update-renderer "^0.5.0" + listr-verbose-renderer "^0.5.0" + p-map "^2.0.0" + rxjs "^6.3.3" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + loader-runner@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -2769,15 +3370,48 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" +lodash.once@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= -lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.4, lodash@~4.17.2: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@~4.17.2: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +lodash@^4.17.19, lodash@^4.17.20: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg= + dependencies: + chalk "^1.0.0" + +log-symbols@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log-update@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708" + integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg= + dependencies: + ansi-escapes "^3.0.0" + cli-cursor "^2.0.0" + wrap-ansi "^3.0.1" loglevel@*, loglevel@^1.6.3: version "1.6.8" @@ -2803,15 +3437,13 @@ loose-envify@^1.0.0: dependencies: js-tokens "^3.0.0 || ^4.0.0" -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" lru-cache@^5.1.1: version "5.1.1" @@ -2820,13 +3452,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - lunr@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.8.tgz#a8b89c31f30b5a044b97d2d28e2da191b6ba2072" @@ -2850,6 +3475,11 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -2862,13 +3492,6 @@ marked@^0.8.0: resolved "https://registry.yarnpkg.com/marked/-/marked-0.8.2.tgz#4faad28d26ede351a7a1aaa5fec67915c869e355" integrity sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw== -matcher@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" - integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== - dependencies: - escape-string-regexp "^4.0.0" - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -2899,11 +3522,32 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" +meow@^3.1.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -2929,12 +3573,12 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: to-regex "^3.0.2" micromatch@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== dependencies: braces "^3.0.1" - picomatch "^2.2.3" + picomatch "^2.0.5" miller-rabin@^4.0.0: version "4.0.1" @@ -2949,7 +3593,7 @@ mime-db@1.44.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== -mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== @@ -2961,17 +3605,22 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= @@ -2988,7 +3637,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.2.0, minimist@^1.2.5: +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== @@ -3048,6 +3697,11 @@ mocha@^5.2.0: mkdirp "0.5.1" supports-color "5.4.0" +moment@^2.27.0: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -3075,7 +3729,7 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@2.1.2: +ms@2.1.2, ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -3108,9 +3762,9 @@ negotiator@0.6.2: integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== nice-try@^1.0.4: version "1.0.5" @@ -3164,6 +3818,16 @@ nopt@3.x: dependencies: abbrev "1" +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -3176,20 +3840,37 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^4.1.0: - version "4.5.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" - integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: - config-chain "^1.1.11" - pify "^3.0.0" + path-key "^3.0.0" -object-assign@^4.1.1: +nugget@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" + integrity sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA= + dependencies: + debug "^2.1.3" + minimist "^1.1.0" + pretty-bytes "^1.0.2" + progress-stream "^1.1.0" + request "^2.45.0" + single-line-log "^1.1.2" + throttleit "0.0.2" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -3203,10 +3884,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + integrity sha1-KKaq50KN0sOpLz2V8hM13SBOAzY= object-visit@^1.0.0: version "1.0.1" @@ -3236,6 +3917,25 @@ once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k= + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + opener@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" @@ -3258,10 +3958,10 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +ospath@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" + integrity sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs= p-limit@^2.0.0, p-limit@^2.2.1: version "2.3.0" @@ -3277,6 +3977,11 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -3308,6 +4013,13 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -3333,6 +4045,13 @@ path-dirname@^1.0.0: resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -3348,6 +4067,11 @@ path-key@^2.0.1: resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -3365,6 +4089,15 @@ path-to-regexp@^1.7.0: dependencies: isarray "0.0.1" +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -3398,15 +4131,20 @@ perfect-scrollbar@^1.4.0: resolved "https://registry.yarnpkg.com/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz#821d224ed8ff61990c23f26db63048cdc75b6b83" integrity sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA== -picomatch@^2.0.4, picomatch@^2.2.1: +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== -picomatch@^2.2.3: +pify@^2.0.0, pify@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^3.0.0: version "3.0.0" @@ -3418,6 +4156,18 @@ pify@^4.0.1: resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -3478,9 +4228,9 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.36" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" - integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== + version "7.0.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -3491,10 +4241,18 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +pretty-bytes@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" + integrity sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ= + dependencies: + get-stdin "^4.0.1" + meow "^3.1.0" + +pretty-bytes@^5.4.1: + version "5.5.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e" + integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA== process-nextick-args@~2.0.0: version "2.0.1" @@ -3506,6 +4264,14 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +progress-stream@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" + integrity sha1-LNPP6jO6OonJwSHsM0er6asSX3c= + dependencies: + speedometer "~0.1.2" + through2 "~0.2.3" + progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -3516,11 +4282,6 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - proxy-addr@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" @@ -3534,6 +4295,11 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" @@ -3581,7 +4347,7 @@ punycode@^1.2.4: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -3591,6 +4357,11 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -3601,6 +4372,11 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +ramda@~0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" + integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -3631,6 +4407,33 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" +rc@^1.2.1: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -3653,6 +4456,16 @@ readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -3669,6 +4482,13 @@ readdirp@~3.4.0: dependencies: picomatch "^2.2.1" +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -3676,6 +4496,14 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" @@ -3716,6 +4544,39 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" +request-progress@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" + integrity sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4= + dependencies: + throttleit "^1.0.0" + +request@^2.45.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -3756,19 +4617,28 @@ resolve@1.1.x: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.6, resolve@^1.3.2: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2: version "1.17.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE= dependencies: - lowercase-keys "^1.0.0" + exit-hook "^1.0.0" + onetime "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" ret@~0.1.10: version "0.1.15" @@ -3782,6 +4652,13 @@ rimraf@^2.4.4, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: dependencies: glob "^7.1.3" +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -3790,18 +4667,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -roarr@^2.15.3: - version "2.15.4" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" - integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== - dependencies: - boolean "^3.0.1" - detect-node "^2.0.4" - globalthis "^1.0.1" - json-stringify-safe "^5.0.1" - semver-compare "^1.0.0" - sprintf-js "^1.1.2" - run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" @@ -3809,6 +4674,13 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" +rxjs@^6.3.3: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -3826,7 +4698,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -3856,28 +4728,16 @@ schema-utils@^2.7.0: ajv "^6.12.2" ajv-keywords "^3.4.1" -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver@^5.0.1, semver@^5.3.0, semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.2: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -3897,13 +4757,6 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-error@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" - integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== - dependencies: - type-fest "^0.13.1" - serialize-javascript@^1.7.0: version "1.9.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" @@ -3971,11 +4824,23 @@ shebang-command@^1.2.0: dependencies: shebang-regex "^1.0.0" +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + shelljs@^0.8.3: version "0.8.4" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" @@ -3985,6 +4850,18 @@ shelljs@^0.8.3: interpret "^1.0.0" rechoir "^0.6.2" +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +single-line-log@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" + integrity sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q= + dependencies: + string-width "^1.0.1" + sinon@^7.5.0: version "7.5.0" resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.5.0.tgz#e9488ea466070ea908fd44a3d6478fd4923c67ec" @@ -4003,6 +4880,11 @@ slash@^1.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -4092,6 +4974,37 @@ spatial-navigation-js@1.0.x: resolved "https://registry.yarnpkg.com/spatial-navigation-js/-/spatial-navigation-js-1.0.0.tgz#d499149ff44ddae200c02c7ae7952ce8b4d17cf5" integrity sha512-RZ0/q7LCL/x4Hz8oUEwkkBIOx4YZt6Nn6o1YhXm6bVDjxZykJQ2tDeVZrYCbq+jDaneszRctl55WedO+l1LePg== +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +speedometer@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" + integrity sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0= + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -4099,20 +5012,30 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: figgy-pudding "^3.5.1" @@ -4161,6 +5084,23 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -4170,6 +5110,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -4177,6 +5126,11 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -4184,13 +5138,20 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0: +strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -4198,6 +5159,37 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + style-loader@^0.23.1: version "0.23.1" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" @@ -4206,12 +5198,12 @@ style-loader@^0.23.1: loader-utils "^1.1.0" schema-utils "^1.0.0" -sumchecker@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" - integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== +sumchecker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-2.0.2.tgz#0f42c10e5d05da5d42eea3e56c3399a37d6c5b3e" + integrity sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4= dependencies: - debug "^4.1.0" + debug "^2.2.0" supports-color@5.4.0: version "5.4.0" @@ -4246,6 +5238,18 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0, supports-color@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +symbol-observable@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -4275,6 +5279,16 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" +throttleit@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" + integrity sha1-z+34jmDADdlpe2H90qg0OptoDq8= + +throttleit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz#9e785836daf46743145a5984b6268d828528ac6c" + integrity sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw= + through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -4283,6 +5297,14 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" +through2@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" + integrity sha1-6zKE2k6jEbbMis42U3SKUqvyWj8= + dependencies: + readable-stream "~1.1.9" + xtend "~2.1.1" + timers-browserify@^2.0.4: version "2.0.11" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" @@ -4290,6 +5312,13 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +tmp@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -4307,11 +5336,6 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -4342,6 +5366,19 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -4432,10 +5469,17 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" @@ -4449,11 +5493,6 @@ type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -4509,12 +5548,7 @@ typescript@3.7.x: resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae" integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw== -uglify-js@^3.1.4: - version "3.13.5" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.5.tgz#5d71d6dbba64cf441f32929b1efce7365bb4f113" - integrity sha512-xtB8yEqIkn7zmOyS2zUNBsYCBRhDkvlNxMMY2smuJ/qA8NCHeQvKCF3i9Z4k8FJH4+PJvZRtMrPynfZ75+CSZw== - -uglify-js@^3.6.0: +uglify-js@^3.1.4, uglify-js@^3.6.0: version "3.10.0" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.0.tgz#397a7e6e31ce820bfd1cb55b804ee140c587a9e7" integrity sha512-Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA== @@ -4535,9 +5569,9 @@ uglifyjs-webpack-plugin@^2.1.2: worker-farm "^1.7.0" underscore@>=1.8.3, underscore@^1.9.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" - integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== + version "1.10.2" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.10.2.tgz#73d6aa3668f3188e4adb0f1943bd12cfd7efaaaf" + integrity sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg== union-value@^1.0.0: version "1.0.1" @@ -4573,6 +5607,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -4586,6 +5625,11 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -4603,13 +5647,6 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - url-toolkit@^2.1.6: version "2.2.0" resolved "https://registry.yarnpkg.com/url-toolkit/-/url-toolkit-2.2.0.tgz#9a57b89f315d4b7dc340e150bcfa548ddf5f5ce9" @@ -4667,11 +5704,28 @@ v8-compile-cache@^2.1.1: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" @@ -4719,7 +5773,7 @@ webpack-bundle-analyzer@^3.1.0: opener "^1.5.1" ws "^6.0.0" -webpack-cli@^3.1.2, webpack-cli@^3.3.12, webpack-cli@^3.3.2: +webpack-cli@^3.1.2, webpack-cli@^3.3.0, webpack-cli@^3.3.12, webpack-cli@^3.3.2: version "3.3.12" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== @@ -4800,6 +5854,13 @@ which@^1.1.1, which@^1.2.14, which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -4817,6 +5878,14 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" +wrap-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" + integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo= + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -4831,10 +5900,15 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +ws@7.4.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" + integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== + ws@^6.0.0: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: async-limiter "~1.0.0" @@ -4850,21 +5924,23 @@ xtend@^4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + integrity sha1-bv7MKk2tjmlixJAbM3znuoe10os= + dependencies: + object-keys "~0.4.0" + y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" diff --git a/package.json b/package.json index e55057b..94bbba1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "apl-viewhost-web", - "version": "1.7.0", + "version": "1.8.0", "description": "This is a Web-assembly version (WASM) of apl viewhost web.", "license": "Apache 2.0", "repository": { diff --git a/scripts/fetch.js b/scripts/fetch.js index 6fe4075..d93d056 100644 --- a/scripts/fetch.js +++ b/scripts/fetch.js @@ -3,7 +3,7 @@ const https = require('https'); const fs = require('fs'); -const artifactUrl = 'https://d1gkjrhppbyzyh.cloudfront.net/apl-viewhost-web/fc1aa3e9-d453-46c4-919f-82b4274a2c68/index.js'; +const artifactUrl = 'https://d1gkjrhppbyzyh.cloudfront.net/apl-viewhost-web/82A2A9C5-2EDD-46C4-B491-142CC59E3044/index.js'; const outputFilePath = 'index.js'; const outputFile = fs.createWriteStream(outputFilePath); diff --git a/wasm/CMakeLists.txt b/wasm/CMakeLists.txt index 2a92753..46aeea7 100644 --- a/wasm/CMakeLists.txt +++ b/wasm/CMakeLists.txt @@ -50,10 +50,6 @@ if(WASM_ASMJS) DESTINATION ${WEB_PUBLIC_DIR}) endif(WASM_ASMJS) -install(DIRECTORY - ${CMAKE_SOURCE_DIR}/fonts - DESTINATION ${WEB_PUBLIC_DIR}) - add_custom_target(generate-wasm-enums ALL COMMAND cd ${APL_PROJECT_DIR} && ${ENUMGEN_BIN} -f "AnimationQuality" @@ -70,7 +66,10 @@ add_custom_target(generate-wasm-enums ALL -f "ContainerDirection" -f "DimensionType" -f "Display" + -f "DisplayState" + -f "DocumentPropertyKey" -f "EventType" + -f "EventMediaType" -f "EventProperty" -f "FilterProperty" -f "FilterType" @@ -110,6 +109,7 @@ add_custom_target(generate-wasm-enums ALL -f "SubmitKeyType" -f "TextAlign" -f "TextAlignVertical" + -f "TrackState" -f "UpdateType" -f "VectorGraphicScale" -f "VideoScale" diff --git a/wasm/include/wasm/content.h b/wasm/include/wasm/content.h index 45350ae..d5c091a 100644 --- a/wasm/include/wasm/content.h +++ b/wasm/include/wasm/content.h @@ -26,6 +26,8 @@ struct ContentMethods { static std::string getAPLVersion(const apl::ContentPtr& content); static std::set getExtensionRequests(const apl::ContentPtr& content); static emscripten::val getExtensionSettings(const apl::ContentPtr& content, const std::string& extensionName); + static std::string getParameterAt(const apl::ContentPtr& content, size_t index); + static size_t getParameterCount(const apl::ContentPtr& content); }; } // namespace internal diff --git a/wasm/include/wasm/context.h b/wasm/include/wasm/context.h index 68963d6..941600d 100644 --- a/wasm/include/wasm/context.h +++ b/wasm/include/wasm/context.h @@ -56,10 +56,13 @@ struct ContextMethods { static bool processDataSourceUpdate(const apl::RootContextPtr& context, const std::string& payload, const std::string& type); static void handleDisplayMetrics(const apl::RootContextPtr& context, emscripten::val metrics); static void configurationChange(const apl::RootContextPtr& context, emscripten::val configurationChange, emscripten::val metrics, emscripten::val scalingOptions); + static void updateDisplayState(const apl::RootContextPtr& context, int displayState); static void reInflate(const apl::RootContextPtr& context); static void setFocus(const apl::RootContextPtr& context, int direction, const apl::Rect& origin, const std::string& targetId); static std::string getFocused(const apl::RootContextPtr& context); static emscripten::val getFocusableAreas(const apl::RootContextPtr& context); + static void mediaLoaded(const apl::RootContextPtr& context, const std::string& source); + static void mediaLoadFailed(const apl::RootContextPtr& context, const std::string& source, int errorCode, const std::string& error); private: static void applyScalingOptions(emscripten::val& scalingOptions, diff --git a/wasm/src/component.cpp b/wasm/src/component.cpp index 9c21088..a9c9aa0 100644 --- a/wasm/src/component.cpp +++ b/wasm/src/component.cpp @@ -90,14 +90,19 @@ void ComponentMethods::updateMediaState(apl::ComponentPtr& component, const emscripten::val& state, bool fromEvent) { if (!state.hasOwnProperty("trackIndex") || !state.hasOwnProperty("trackCount") || !state.hasOwnProperty("currentTime") || !state.hasOwnProperty("duration") || - !state.hasOwnProperty("paused") || !state.hasOwnProperty("ended")) { + !state.hasOwnProperty("paused") || !state.hasOwnProperty("ended") || + !state.hasOwnProperty("errorCode") || !state.hasOwnProperty("trackState")) + { LOG(LogLevel::ERROR) << "Can't update media state. MediaStatus structure is wrong."; return; } - const MediaState mediaState(state["trackIndex"].as(), state["trackCount"].as(), + MediaState mediaState(state["trackIndex"].as(), state["trackCount"].as(), state["currentTime"].as(), state["duration"].as(), state["paused"].as(), state["ended"].as()); + mediaState.withTrackState(static_cast(state["trackState"].as())); + mediaState.withErrorCode(state["errorCode"].as()); + component->updateMediaState(mediaState, fromEvent); } @@ -253,4 +258,4 @@ EMSCRIPTEN_BINDINGS(apl_wasm_component) { } } // namespace wasm -} // namespace apl \ No newline at end of file +} // namespace apl diff --git a/wasm/src/content.cpp b/wasm/src/content.cpp index 1805483..058fd3c 100644 --- a/wasm/src/content.cpp +++ b/wasm/src/content.cpp @@ -70,6 +70,16 @@ ContentMethods::getExtensionSettings(const apl::ContentPtr& content, const std:: return emscripten::getValFromObject(content->getExtensionSettings(uri), nullptr); } +std::string +ContentMethods::getParameterAt(const apl::ContentPtr& content, size_t index) { + return content->getParameterAt(index); +} + +size_t +ContentMethods::getParameterCount(const apl::ContentPtr& content) { + return content->getParameterCount(); +} + } // namespace internal EMSCRIPTEN_BINDINGS(apl_wasm_content) { @@ -88,7 +98,9 @@ EMSCRIPTEN_BINDINGS(apl_wasm_content) { .function("addPackage", &internal::ContentMethods::addPackage) .function("getAPLVersion", &internal::ContentMethods::getAPLVersion) .function("getExtensionRequests", &internal::ContentMethods::getExtensionRequests) - .function("getExtensionSettings", &internal::ContentMethods::getExtensionSettings); + .function("getExtensionSettings", &internal::ContentMethods::getExtensionSettings) + .function("getParameterAt", &internal::ContentMethods::getParameterAt) + .function("getParameterCount", &internal::ContentMethods::getParameterCount); } } // namespace wasm diff --git a/wasm/src/context.cpp b/wasm/src/context.cpp index 540e47f..88cc5d3 100644 --- a/wasm/src/context.cpp +++ b/wasm/src/context.cpp @@ -2,7 +2,6 @@ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ - #include "wasm/context.h" #include "wasm/wasmmetrics.h" #include "apl/apl.h" @@ -456,6 +455,11 @@ ContextMethods::configurationChange(const apl::RootContextPtr& context, emscript } } +void +ContextMethods::updateDisplayState(const apl::RootContextPtr& context, int displayState) { + context->updateDisplayState(static_cast(displayState)); +} + void ContextMethods::reInflate(const apl::RootContextPtr& context) { context->reinflate(); @@ -482,6 +486,17 @@ ContextMethods::getFocusableAreas(const apl::RootContextPtr& context) { } return propObject; } + +void +ContextMethods::mediaLoaded(const apl::RootContextPtr& context, const std::string& source) { + context->mediaLoaded(source); +} + +void +ContextMethods::mediaLoadFailed(const apl::RootContextPtr& context, const std::string& source, int errorCode = -1, const std::string& error = std::string()){ + context->mediaLoadFailed(source, errorCode, error); +} + } // namespace internal EMSCRIPTEN_BINDINGS(apl_wasm_context) { @@ -519,10 +534,13 @@ EMSCRIPTEN_BINDINGS(apl_wasm_context) { .function("processDataSourceUpdate", &internal::ContextMethods::processDataSourceUpdate) .function("handleDisplayMetrics", &internal::ContextMethods::handleDisplayMetrics) .function("configurationChange", &internal::ContextMethods::configurationChange) + .function("updateDisplayState", &internal::ContextMethods::updateDisplayState) .function("reInflate", &internal::ContextMethods::reInflate) .function("setFocus", &internal::ContextMethods::setFocus) .function("getFocused", &internal::ContextMethods::getFocused) .function("getFocusableAreas", &internal::ContextMethods::getFocusableAreas) + .function("mediaLoaded", &internal::ContextMethods::mediaLoaded) + .function("mediaLoadFailed", &internal::ContextMethods::mediaLoadFailed) .class_function("create", &internal::ContextMethods::create); } diff --git a/wasm/src/embindutils.cpp b/wasm/src/embindutils.cpp index 49dfb66..177417f 100644 --- a/wasm/src/embindutils.cpp +++ b/wasm/src/embindutils.cpp @@ -200,6 +200,8 @@ getValFromObject(const apl::Filter& filter, WASMMetrics* m) { filter.getValue(apl::kFilterPropertyUseColor), m))); propObject.set("kind", emscripten::val(getValFromObject( filter.getValue(apl::kFilterPropertyKind), m))); + propObject.set("source", emscripten::val(getValFromObject( + filter.getValue(apl::kFilterPropertySource), m))); break; case apl::kFilterTypeBlend: propObject.set("mode", emscripten::val(getValFromObject( @@ -335,4 +337,4 @@ getObjectMapFromVal(emscripten::val val) { return nullptr; } -} // namespace emscripten \ No newline at end of file +} // namespace emscripten diff --git a/wasm/src/rootconfig.cpp b/wasm/src/rootconfig.cpp index e64e46d..98d80e4 100644 --- a/wasm/src/rootconfig.cpp +++ b/wasm/src/rootconfig.cpp @@ -26,8 +26,8 @@ RootConfigMethods::create(emscripten::val environment) { .allowOpenUrl(allowOpenUrl) .disallowVideo(disallowVideo) .animationQuality(animationQuality) - .enforceAPLVersion(apl::APLVersion::kAPLVersionIgnore); - + .enforceAPLVersion(apl::APLVersion::kAPLVersionIgnore) + .enableExperimentalFeature(apl::RootConfig::ExperimentalFeature::kExperimentalFeatureManageMediaRequests); return config; }