From 5cca1b5f3e991b8ef6fa6c1ffc2bf17cf3d63e7e Mon Sep 17 00:00:00 2001 From: edsilv Date: Sun, 30 Dec 2018 21:53:49 +0000 Subject: [PATCH 01/37] use manifesto-webpack --- package-lock.json | 35 +++++----- package.json | 3 +- src/AVComponent.ts | 162 +++++++++++++++++++++++---------------------- tsconfig.json | 1 - 4 files changed, 101 insertions(+), 100 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43e1670..170d458 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,14 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@edsilv/http-status-codes": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@edsilv/http-status-codes/-/http-status-codes-0.0.12.tgz", + "integrity": "sha512-4tJPCB9qYnJWy/8119Sm9U4I7htWM2VUuOgH1RqFRICl0MMGm/DPnQbCNEKHiUrfFBD+2UEWFIy75urdhyjmPA==", + "requires": { + "@types/node": "^7.0.5" + } + }, "@iiif/base-component": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@iiif/base-component/-/base-component-1.1.3.tgz", @@ -41,6 +49,11 @@ } } }, + "@iiif/vocabulary": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@iiif/vocabulary/-/vocabulary-1.0.5.tgz", + "integrity": "sha512-ufnxmbzN5q8UwtwJKNnAlqInvKI9YwwG/XCA5xDJPi1EctbeGBVl98xJP6d6M8sI3gHRJ+h1xV+Gmn+vkURd9A==" + }, "@types/jquery": { "version": "2.0.34", "resolved": "http://registry.npmjs.org/@types/jquery/-/jquery-2.0.34.tgz", @@ -376,10 +389,6 @@ "strip-eof": "^1.0.0" } }, - "exjs": { - "version": "github:BSick7/exjs#87f638b98635fe8ddee36ce964e64bcce6e2bb6d", - "from": "github:BSick7/exjs#0.5.1" - }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -628,21 +637,13 @@ } }, "manifesto.js": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/manifesto.js/-/manifesto.js-3.0.9.tgz", - "integrity": "sha512-sblQSbDmPszfwqdcSVOZp0eXIFMg7vUYJKIVTGRoO65HBppjS9ipRZ+jReV3dt5WQhI5J58KXJL97z5mcKL/pA==", + "version": "3.0.9-webpack", + "resolved": "https://registry.npmjs.org/manifesto.js/-/manifesto.js-3.0.9-webpack.tgz", + "integrity": "sha512-JZhczWxkuzvGGcXOIzhZtlIkRB8a9tgE9EFKqIYHKX0sXMaxa0LvWZfK/IPNXAM251yNtKgHUcZ1R3bPyyrpWQ==", "requires": { + "@edsilv/http-status-codes": "0.0.12", + "@iiif/vocabulary": "1.0.5", "request": "^2.83.0" - }, - "dependencies": { - "exjs": { - "version": "github:BSick7/exjs#98195810790c0e61cb5beb510da4b756528f92f2", - "from": "github:BSick7/exjs#98195810790c0e61cb5beb510da4b756528f92f2" - }, - "http-status-codes": { - "version": "github:edsilv/http-status-codes#af3a8ab9970b1f291a79b03c7382dc16aebee749", - "from": "github:edsilv/http-status-codes#af3a8ab9970b1f291a79b03c7382dc16aebee749" - } } }, "mime": { diff --git a/package.json b/package.json index fa3f53d..d379c24 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ "@iiif/manifold": "1.2.36", "@types/jquery": "2.0.34", "@types/jqueryui": "^1.11.36", - "exjs": "BSick7/exjs#0.5.1", - "manifesto.js": "3.0.9" + "manifesto.js": "3.0.9-webpack" } } diff --git a/src/AVComponent.ts b/src/AVComponent.ts index a17cf10..3f8953b 100644 --- a/src/AVComponent.ts +++ b/src/AVComponent.ts @@ -1,8 +1,10 @@ +import { Canvas, Range, Duration, ExternalResourceType, Behavior, MediaType, Annotation, AnnotationBody, Utils } from "manifesto.js"; + namespace IIIFComponents { export interface IAVCanvasInstanceData extends IAVComponentData { - canvas?: Manifesto.ICanvas | VirtualCanvas; - range?: Manifesto.IRange; + canvas?: Canvas | VirtualCanvas; + range?: Range; visible?: boolean; volume?: number; } @@ -217,7 +219,7 @@ namespace IIIFComponents { private _waveformCanvas: HTMLCanvasElement | null; private _waveformCtx: CanvasRenderingContext2D | null; //private _waveformNeedsRedraw: boolean = true; - public ranges: Manifesto.IRange[] = []; + public ranges: Range[] = []; public waveforms: string[] = []; public $playerElement: JQuery; @@ -290,18 +292,18 @@ namespace IIIFComponents { if (this._data && this._data.helper && this._data.canvas) { - let ranges: Manifesto.IRange[] = []; + let ranges: Range[] = []; // if the canvas is virtual, get the ranges for all sub canvases if (this.isVirtual()) { - (this._data.canvas).canvases.forEach((canvas: Manifesto.ICanvas) => { + (this._data.canvas).canvases.forEach((canvas: Canvas) => { if (this._data && this._data.helper) { - let r: Manifesto.IRange[] = this._data.helper.getCanvasRanges(canvas); + let r: Range[] = this._data.helper.getCanvasRanges(canvas); - let clonedRanges: Manifesto.IRange[] = []; + let clonedRanges: Range[] = []; // shift the range targets forward by the duration of their previous canvases - r.forEach((range: Manifesto.IRange) => { + r.forEach((range: Range) => { const clonedRange = jQuery.extend(true, {}, range); clonedRanges.push(clonedRange); @@ -319,10 +321,10 @@ namespace IIIFComponents { } }); } else { - ranges = ranges.concat(this._data.helper.getCanvasRanges(this._data.canvas as Manifesto.ICanvas)); + ranges = ranges.concat(this._data.helper.getCanvasRanges(this._data.canvas as Canvas)); } - ranges.forEach((range: Manifesto.IRange) => { + ranges.forEach((range: Range) => { this.ranges.push(range); }); } @@ -423,7 +425,7 @@ namespace IIIFComponents { this._$rangeTimelineContainer.on("mousemove", (e) => { if (this._data.range) { - const duration: Manifesto.Duration | undefined = this._data.range.getDuration(); + const duration: Duration | undefined = this._data.range.getDuration(); this._updateHoverPreview(e, this._$rangeTimelineContainer, duration ? duration.getLength() : 0); } }); @@ -432,7 +434,7 @@ namespace IIIFComponents { this._contentAnnotations = []; - const items: Manifesto.IAnnotation[] = this._data.canvas.getContent();// (this._data.canvas).__jsonld.content[0].items; + const items: Annotation[] = this._data.canvas.getContent();// (this._data.canvas).__jsonld.content[0].items; // always hide timelineItemContainer for now //if (items.length === 1) { @@ -441,7 +443,7 @@ namespace IIIFComponents { for (let i = 0; i < items.length; i++) { - const item: Manifesto.IAnnotation = items[i]; + const item: Annotation = items[i]; /* if (item.motivation != 'painting') { @@ -450,14 +452,14 @@ namespace IIIFComponents { */ let mediaSource: any; - const bodies: Manifesto.IAnnotationBody[] = item.getBody(); + const bodies: AnnotationBody[] = item.getBody(); if (!bodies.length) { console.warn('item has no body'); return; } - const body: Manifesto.IAnnotationBody | null = this._getBody(bodies); + const body: AnnotationBody | null = this._getBody(bodies); if (!body) { // if no suitable format was found for the current browser, skip this item. @@ -465,8 +467,8 @@ namespace IIIFComponents { continue; } - const type: Manifesto.ResourceType | null = body.getType(); - const format: Manifesto.MediaType | null = body.getFormat(); + const type: ExternalResourceType | null = body.getType(); + const format: MediaType | null = body.getFormat(); // if (type && type.toString() === 'choice') { // // Choose first "Choice" item as body @@ -503,7 +505,7 @@ namespace IIIFComponents { } let xywh: number[] | null = AVComponentUtils.getSpatialComponent(target); - let t: number[] | null = Manifesto.Utils.getTemporalComponent(target); + let t: number[] | null = Utils.getTemporalComponent(target); if (!xywh) { xywh = [0, 0, this._canvasWidth, this._canvasHeight]; @@ -571,12 +573,12 @@ namespace IIIFComponents { this._renderWaveform(); } - private _getBody(bodies: Manifesto.IAnnotationBody[]): Manifesto.IAnnotationBody | null { + private _getBody(bodies: AnnotationBody[]): AnnotationBody | null { // if there's an HLS format and HLS is supported in this browser for (let i = 0; i < bodies.length; i++) { - const body: Manifesto.IAnnotationBody = bodies[i]; - const format: Manifesto.MediaType | null = body.getFormat(); + const body: AnnotationBody = bodies[i]; + const format: MediaType | null = body.getFormat(); if (format) { if (AVComponentUtils.isHLSFormat(format) && AVComponentUtils.canPlayHls()) { @@ -587,8 +589,8 @@ namespace IIIFComponents { // if there's a Dash format and the browser isn't Safari for (let i = 0; i < bodies.length; i++) { - const body: Manifesto.IAnnotationBody = bodies[i]; - const format: Manifesto.MediaType | null = body.getFormat(); + const body: AnnotationBody = bodies[i]; + const format: MediaType | null = body.getFormat(); if (format) { if (AVComponentUtils.isMpegDashFormat(format) && !AVComponentUtils.isSafari()) { @@ -599,8 +601,8 @@ namespace IIIFComponents { // otherwise, return the first format that isn't HLS or Dash for (let i = 0; i < bodies.length; i++) { - const body: Manifesto.IAnnotationBody = bodies[i]; - const format: Manifesto.MediaType | null = body.getFormat(); + const body: AnnotationBody = bodies[i]; + const format: MediaType | null = body.getFormat(); if (format) { if (!AVComponentUtils.isHLSFormat(format) && !AVComponentUtils.isMpegDashFormat(format)) { @@ -641,8 +643,8 @@ namespace IIIFComponents { public includesVirtualSubCanvas(canvasId: string): boolean { if (this.isVirtual() && this._data.canvas && (this._data.canvas).canvases) { for (let i = 0; i < (this._data.canvas).canvases.length; i++) { - const canvas: Manifesto.ICanvas = (this._data.canvas).canvases[i]; - if (Manifesto.Utils.normaliseUrl(canvas.id) === canvasId) { + const canvas: Canvas = (this._data.canvas).canvases[i]; + if (Utils.normaliseUrl(canvas.id) === canvasId) { return true; } } @@ -682,7 +684,7 @@ namespace IIIFComponents { this.fire(AVComponent.Events.RANGE_CHANGED, null); } else { - const duration: Manifesto.Duration | undefined = this._data.range.getDuration(); + const duration: Duration | undefined = this._data.range.getDuration(); if (duration) { @@ -724,7 +726,7 @@ namespace IIIFComponents { private _hasRangeChanged(): void { - const range: Manifesto.IRange | undefined = this._getRangeForCurrentTime(); + const range: Range | undefined = this._getRangeForCurrentTime(); if (range && !this._data.limitToRange && (!this._data.range || (this._data.range && range.id !== this._data.range.id))) { @@ -735,9 +737,9 @@ namespace IIIFComponents { } } - private _getRangeForCurrentTime(parentRange?: Manifesto.IRange): Manifesto.IRange | undefined { + private _getRangeForCurrentTime(parentRange?: Range): Range | undefined { - let ranges: Manifesto.IRange[]; + let ranges: Range[]; if (!parentRange) { ranges = this.ranges; @@ -747,7 +749,7 @@ namespace IIIFComponents { for (let i = 0; i < ranges.length; i++) { - const range: Manifesto.IRange = ranges[i]; + const range: Range = ranges[i]; // if the range spans the current time, and is navigable, return it. // otherwise, try to find a navigable child range. @@ -757,11 +759,11 @@ namespace IIIFComponents { return range; } - const childRanges: Manifesto.IRange[] = range.getRanges(); + const childRanges: Range[] = range.getRanges(); // if a child range spans the current time, recurse into it for (let i = 0; i < childRanges.length; i++) { - const childRange: Manifesto.IRange = childRanges[i]; + const childRange: Range = childRanges[i]; if (this._rangeSpansCurrentTime(childRange)) { return this._getRangeForCurrentTime(childRange); @@ -778,7 +780,7 @@ namespace IIIFComponents { return undefined; } - private _rangeSpansCurrentTime(range: Manifesto.IRange): boolean { + private _rangeSpansCurrentTime(range: Range): boolean { if (range.spansTime(Math.ceil(this._canvasClockTime) + this._rangeSpanPadding)) { return true; @@ -787,11 +789,11 @@ namespace IIIFComponents { return false; } - private _rangeNavigable(range: Manifesto.IRange): boolean { + private _rangeNavigable(range: Range): boolean { - const behavior: Manifesto.Behavior | null = range.getBehavior(); + const behavior: Behavior | null = range.getBehavior(); - if (behavior && behavior.toString() === manifesto.Behavior.nonav().toString()) { + if (behavior && behavior.toString() === Behavior.NO_NAV) { return false; } @@ -802,7 +804,7 @@ namespace IIIFComponents { if (this._data.range) { - const duration: Manifesto.Duration | undefined = this._data.range.getDuration(); + const duration: Duration | undefined = this._data.range.getDuration(); if (duration) { @@ -1210,7 +1212,7 @@ namespace IIIFComponents { //if (!this._waveformCtx || !this._waveformNeedsRedraw) return; if (!this._waveformCtx) return; - let duration: Manifesto.Duration | undefined; + let duration: Duration | undefined; let start: number = 0; let end: number = this._compositeWaveform.duration; @@ -1272,7 +1274,7 @@ namespace IIIFComponents { private _updateCurrentTimeDisplay(): void { - let duration: Manifesto.Duration | undefined; + let duration: Duration | undefined; if (this._data.range) { duration = this._data.range.getDuration(); @@ -1288,7 +1290,7 @@ namespace IIIFComponents { private _updateDurationDisplay(): void { - let duration: Manifesto.Duration | undefined; + let duration: Duration | undefined; if (this._data.range) { duration = this._data.range.getDuration(); @@ -1356,7 +1358,7 @@ namespace IIIFComponents { this.pause(); - let duration: Manifesto.Duration | undefined; + let duration: Duration | undefined; if (this._data.range) { duration = this._data.range.getDuration(); @@ -1379,7 +1381,7 @@ namespace IIIFComponents { private _fastforward(): void { - let duration: Manifesto.Duration | undefined; + let duration: Duration | undefined; if (this._data.range) { duration = this._data.range.getDuration(); @@ -1402,7 +1404,7 @@ namespace IIIFComponents { if (this._isPlaying) return; - let duration: Manifesto.Duration | undefined; + let duration: Duration | undefined; if (this._data.range) { duration = this._data.range.getDuration(); @@ -1475,7 +1477,7 @@ namespace IIIFComponents { private _canvasClockUpdater(): void { this._canvasClockTime = (Date.now() - this._canvasClockStartDate) / 1000; - let duration: Manifesto.Duration | undefined; + let duration: Duration | undefined; if (this._data.range) { duration = this._data.range.getDuration(); @@ -1810,7 +1812,7 @@ namespace IIIFComponents { return xywh; } - public static getFirstTargetedCanvasId(range: Manifesto.IRange): string | undefined { + public static getFirstTargetedCanvasId(range: Range): string | undefined { let canvasId: string | undefined; @@ -1818,7 +1820,7 @@ namespace IIIFComponents { canvasId = range.canvases[0]; } else { - const childRanges: Manifesto.IRange[] = range.getRanges(); + const childRanges: Range[] = range.getRanges(); if (childRanges.length) { return AVComponentUtils.getFirstTargetedCanvasId(childRanges[0]); @@ -1827,7 +1829,7 @@ namespace IIIFComponents { } if (canvasId !== undefined) { - return Manifesto.Utils.normaliseUrl(canvasId); + return Utils.normaliseUrl(canvasId); } return undefined; @@ -1837,9 +1839,9 @@ namespace IIIFComponents { return String(new Date().valueOf()); } - public static retargetTemporalComponent(canvases: Manifesto.ICanvas[], target: string): string | undefined { + public static retargetTemporalComponent(canvases: Canvas[], target: string): string | undefined { - let t: number[] | null = Manifesto.Utils.getTemporalComponent(target); + let t: number[] | null = Utils.getTemporalComponent(target); if (t) { @@ -1848,7 +1850,7 @@ namespace IIIFComponents { // loop through canvases adding up their durations until we reach the targeted canvas for (let i = 0; i < canvases.length; i++) { - const canvas: Manifesto.ICanvas = canvases[i]; + const canvas: Canvas = canvases[i]; if (!canvas.id.includes(targetWithoutTemporal)) { const duration: number | null = canvas.getDuration(); if (duration) { @@ -1983,11 +1985,11 @@ namespace IIIFComponents { return (num - min) / (max - min); } - public static isHLSFormat(format: Manifesto.MediaType) { + public static isHLSFormat(format: MediaType) { return this.hlsMimeTypes.includes(format.toString()); } - public static isMpegDashFormat(format: Manifesto.MediaType) { + public static isMpegDashFormat(format: MediaType) { return format.toString() === 'application/dash+xml'; } @@ -2005,7 +2007,7 @@ namespace IIIFComponents { export class VirtualCanvas { - public canvases: Manifesto.ICanvas[] = []; + public canvases: Canvas[] = []; public id: string; constructor() { @@ -2013,25 +2015,25 @@ namespace IIIFComponents { this.id = AVComponentUtils.getTimestamp(); } - public addCanvas(canvas: Manifesto.ICanvas): void { + public addCanvas(canvas: Canvas): void { // canvases need to be deep copied including functions this.canvases.push(jQuery.extend(true, {}, canvas)); } - public getContent(): Manifesto.IAnnotation[] { + public getContent(): Annotation[] { - const annotations: Manifesto.IAnnotation[] = []; + const annotations: Annotation[] = []; - this.canvases.forEach((canvas: Manifesto.ICanvas) => { - const items: Manifesto.IAnnotation[] = canvas.getContent(); + this.canvases.forEach((canvas: Canvas) => { + const items: Annotation[] = canvas.getContent(); // if the annotations have no temporal target, add one so that // they specifically target the duration of their canvas - items.forEach((item: Manifesto.IAnnotation) => { + items.forEach((item: Annotation) => { const target: string | null = item.getTarget(); if (target) { - let t: number[] | null = Manifesto.Utils.getTemporalComponent(target); + let t: number[] | null = Utils.getTemporalComponent(target); if (!t) { item.__jsonld.target += '#t=0,' + canvas.getDuration(); } @@ -2039,7 +2041,7 @@ namespace IIIFComponents { }); - items.forEach((item: Manifesto.IAnnotation) => { + items.forEach((item: Annotation) => { const target: string | null = item.getTarget(); if (target) { @@ -2057,7 +2059,7 @@ namespace IIIFComponents { let duration: number = 0; - this.canvases.forEach((canvas: Manifesto.ICanvas) => { + this.canvases.forEach((canvas: Canvas) => { const d: number | null = canvas.getDuration(); if (d) { duration += d; @@ -2249,7 +2251,7 @@ namespace IIIFComponents { if (diff.includes('range') && this._data.range) { - let range: Manifesto.IRange | null = this._data.helper.getRangeById(this._data.range.id); + let range: Range | null = this._data.helper.getRangeById(this._data.range.id); if (!range) { console.warn('range not found'); @@ -2270,7 +2272,7 @@ namespace IIIFComponents { // use the retargeted range for (let i = 0; i < canvasInstance.ranges.length; i++) { - const r: Manifesto.IRange = canvasInstance.ranges[i]; + const r: Range = canvasInstance.ranges[i]; if (r.id === range.id) { range = r; @@ -2282,7 +2284,7 @@ namespace IIIFComponents { // if not using the correct canvasinstance, switch to it if (this._data.canvasId && - ((this._data.canvasId.includes('://')) ? Manifesto.Utils.normaliseUrl(this._data.canvasId) : this._data.canvasId) !== canvasId) { + ((this._data.canvasId.includes('://')) ? Utils.normaliseUrl(this._data.canvasId) : this._data.canvasId) !== canvasId) { this.set({ canvasId: canvasId, @@ -2336,14 +2338,14 @@ namespace IIIFComponents { if (this._data && this._data.helper) { // if the manifest has an auto-advance behavior, join the canvases into a single "virtual" canvas - const behavior: Manifesto.Behavior | null = this._data.helper.manifest.getBehavior(); - const canvases: Manifesto.ICanvas[] = this._getCanvases(); + const behavior: Behavior | null = this._data.helper.manifest.getBehavior(); + const canvases: Canvas[] = this._getCanvases(); - if (behavior && behavior.toString() === manifesto.Behavior.autoadvance().toString()) { + if (behavior && behavior.toString() === Behavior.autoadvance().toString()) { const virtualCanvas: VirtualCanvas = new VirtualCanvas(); - canvases.forEach((canvas: Manifesto.ICanvas) => { + canvases.forEach((canvas: Canvas) => { virtualCanvas.addCanvas(canvas); }); @@ -2352,7 +2354,7 @@ namespace IIIFComponents { } // all canvases need to be individually navigable - canvases.forEach((canvas: Manifesto.ICanvas) => { + canvases.forEach((canvas: Canvas) => { this._initCanvas(canvas); }); @@ -2398,7 +2400,7 @@ namespace IIIFComponents { }); // poster canvas - const posterCanvas: Manifesto.ICanvas | null = this._data.helper.getPosterCanvas(); + const posterCanvas: Canvas | null = this._data.helper.getPosterCanvas(); if (posterCanvas) { @@ -2450,7 +2452,7 @@ namespace IIIFComponents { }); } - private _getCanvases(): Manifesto.ICanvas[] { + private _getCanvases(): Canvas[] { if (this._data.helper) { return this._data.helper.getCanvases(); } @@ -2458,7 +2460,7 @@ namespace IIIFComponents { return []; } - private _initCanvas(canvas: Manifesto.ICanvas | VirtualCanvas): void { + private _initCanvas(canvas: Canvas | VirtualCanvas): void { const canvasInstance: CanvasInstance = new CanvasInstance({ target: document.createElement('div'), @@ -2507,7 +2509,7 @@ namespace IIIFComponents { return; } - const prevRange: Manifesto.IRange | null = this._data.helper.getPreviousRange(); + const prevRange: Range | null = this._data.helper.getPreviousRange(); if (prevRange) { this.playRange(prevRange.id); @@ -2522,7 +2524,7 @@ namespace IIIFComponents { return; } - const nextRange: Manifesto.IRange | null = this._data.helper.getNextRange(); + const nextRange: Range | null = this._data.helper.getNextRange(); if (nextRange) { this.playRange(nextRange.id); @@ -2539,7 +2541,7 @@ namespace IIIFComponents { } private _getNormaliseCanvasId(canvasId: string): string { - return (canvasId.includes('://')) ? Manifesto.Utils.normaliseUrl(canvasId) : canvasId; + return (canvasId.includes('://')) ? Utils.normaliseUrl(canvasId) : canvasId; } private _getCanvasInstanceById(canvasId: string): CanvasInstance | undefined { @@ -2576,7 +2578,7 @@ namespace IIIFComponents { const id: string | undefined = canvasInstance.getCanvasId(); if (id) { - const canvasInstanceId: string = Manifesto.Utils.normaliseUrl(id); + const canvasInstanceId: string = Utils.normaliseUrl(id); if (canvasInstanceId === canvasId) { return canvasInstance; @@ -2633,7 +2635,7 @@ namespace IIIFComponents { return; } - const range: Manifesto.IRange | null = this._data.helper.getRangeById(rangeId); + const range: Range | null = this._data.helper.getRangeById(rangeId); if (range) { this.set({ diff --git a/tsconfig.json b/tsconfig.json index 7f832c9..3e88e4e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -15,7 +15,6 @@ "manifesto.js", "@iiif/manifold", "@iiif/base-component", - "exjs", "jquery", "jqueryui" ], From 466fdedc26d88eefabfa468820b27c22b8cdb6ad Mon Sep 17 00:00:00 2001 From: edsilv Date: Sun, 20 Jan 2019 14:38:17 +0000 Subject: [PATCH 02/37] updated to manifold 2.0.0-pre.4 & manifesto 4.0.0-pre.5 --- examples/index.html | 10 +- package-lock.json | 1162 ------------------------------------------- package.json | 14 +- src/AVComponent.ts | 37 +- 4 files changed, 32 insertions(+), 1191 deletions(-) delete mode 100644 package-lock.json diff --git a/examples/index.html b/examples/index.html index b3c6a84..a044392 100644 --- a/examples/index.html +++ b/examples/index.html @@ -17,10 +17,10 @@ - + - - + + diff --git a/src/AVComponent.ts b/src/AVComponent.ts index 9ce7c54..9b7c514 100644 --- a/src/AVComponent.ts +++ b/src/AVComponent.ts @@ -1140,7 +1140,10 @@ namespace IIIFComponents { if (this._readyMediaCount === this._contentAnnotations.length) { if (this._data.autoPlay) { + console.log('autoplay'); this.play(); + } else { + this.pause(); } this._updateDurationDisplay(); From 5d8d9ab432380c903b76b2cfcd0542076cc8f421 Mon Sep 17 00:00:00 2001 From: edsilv Date: Fri, 8 Mar 2019 10:35:13 +0000 Subject: [PATCH 10/37] added beethoven sonata test --- examples/index.html | 1 + package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/index.html b/examples/index.html index bee6a5e..697cfde 100644 --- a/examples/index.html +++ b/examples/index.html @@ -69,6 +69,7 @@ + diff --git a/package-lock.json b/package-lock.json index 43e1670..d8475a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@iiif/iiif-av-component", - "version": "0.0.87", + "version": "0.0.88", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fa3f53d..566ef62 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iiif/iiif-av-component", - "version": "0.0.87", + "version": "0.0.88", "description": "", "main": "./dist/AVComponent.js", "types": "./dist/AVComponent.d.ts", From 1c8774d0e70daa2d0efea0324d7027fbcbd8faf5 Mon Sep 17 00:00:00 2001 From: edsilv Date: Fri, 8 Mar 2019 10:51:08 +0000 Subject: [PATCH 11/37] bumped version --- package-lock.json | 1161 --------------------------------------------- package.json | 2 +- 2 files changed, 1 insertion(+), 1162 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index d8475a1..0000000 --- a/package-lock.json +++ /dev/null @@ -1,1161 +0,0 @@ -{ - "name": "@iiif/iiif-av-component", - "version": "0.0.88", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@iiif/base-component": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@iiif/base-component/-/base-component-1.1.3.tgz", - "integrity": "sha512-N9w7XfRnlV+13niU0ug7KoNRO55pBRowCF2sS60Bob4Fv98uqYh4LyL/R0z7y1yMFo5dJ6jp19p34KvwnhbUeg==", - "requires": { - "@types/jquery": "^2.0.49", - "@types/node": "^7.0.65", - "typescript": "^2.8.3" - }, - "dependencies": { - "@types/jquery": { - "version": "2.0.51", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.51.tgz", - "integrity": "sha512-+vtCjz+pzr5KkaX/GMnVF0YtQqkm+oVcdBH0Q7zCxdwk42c71xJ9hT1b6Mbn4Kf7CAxSHvkWF1LRdpYwUM+pcg==" - }, - "typescript": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", - "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==" - } - } - }, - "@iiif/manifold": { - "version": "1.2.36", - "resolved": "https://registry.npmjs.org/@iiif/manifold/-/manifold-1.2.36.tgz", - "integrity": "sha512-0WrvgyMhQs8Hz8USjOjAIdY1HN8RtZU5vUWen3YPlQJDoFqt6O0+lm+aWLDB9PITgLLVaTwhbyiDmL9nIxG7Gg==", - "requires": { - "@types/jquery": "^2.0.40" - }, - "dependencies": { - "@types/jquery": { - "version": "2.0.51", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.51.tgz", - "integrity": "sha512-+vtCjz+pzr5KkaX/GMnVF0YtQqkm+oVcdBH0Q7zCxdwk42c71xJ9hT1b6Mbn4Kf7CAxSHvkWF1LRdpYwUM+pcg==" - } - } - }, - "@types/jquery": { - "version": "2.0.34", - "resolved": "http://registry.npmjs.org/@types/jquery/-/jquery-2.0.34.tgz", - "integrity": "sha1-J2FbNp8w5XIzYSZRTnRnLdpuPQQ=" - }, - "@types/jqueryui": { - "version": "1.12.5", - "resolved": "https://registry.npmjs.org/@types/jqueryui/-/jqueryui-1.12.5.tgz", - "integrity": "sha512-+D14ghoklVjI95eooo9ljSFwCWqIBWIssIkIUeTZSy3E6At+AmKQ9x4sxblf1QHp5v1f6lI5Jp3asQU/MP32fQ==", - "requires": { - "@types/jquery": "*" - } - }, - "@types/node": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.0.tgz", - "integrity": "sha512-yF75IZxur7xs90zpmoE+ktRJGJIauORo4qblVFvfKTYSSBFRRWlrl2dO/tE4vetSS4KAvFumS+1thTf3mMZhaA==" - }, - "@zeit/schemas": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", - "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", - "dev": true - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "dev": true, - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "arch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", - "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", - "dev": true - }, - "arg": { - "version": "2.0.0", - "resolved": "http://registry.npmjs.org/arg/-/arg-2.0.0.tgz", - "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true, - "optional": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "dev": true, - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", - "dev": true - }, - "clipboardy": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.3.tgz", - "integrity": "sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==", - "dev": true, - "requires": { - "arch": "^2.1.0", - "execa": "^0.8.0" - }, - "dependencies": { - "execa": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", - "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "optional": true, - "requires": { - "prr": "~1.0.1" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exjs": { - "version": "github:BSick7/exjs#87f638b98635fe8ddee36ce964e64bcce6e2bb6d", - "from": "github:BSick7/exjs#0.5.1" - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "dev": true, - "requires": { - "punycode": "^1.3.2" - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "~1.0.0" - } - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glob-slash/-/glob-slash-1.0.0.tgz", - "integrity": "sha1-/lLvpDMjP3Si/mTHq7m8hIICq5U=", - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true, - "optional": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "less": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", - "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", - "dev": true, - "requires": { - "clone": "^2.1.2", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "^2.83.0", - "source-map": "~0.6.0" - } - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "manifesto.js": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/manifesto.js/-/manifesto.js-3.0.9.tgz", - "integrity": "sha512-sblQSbDmPszfwqdcSVOZp0eXIFMg7vUYJKIVTGRoO65HBppjS9ipRZ+jReV3dt5WQhI5J58KXJL97z5mcKL/pA==", - "requires": { - "request": "^2.83.0" - }, - "dependencies": { - "exjs": { - "version": "github:BSick7/exjs#98195810790c0e61cb5beb510da4b756528f92f2", - "from": "github:BSick7/exjs#98195810790c0e61cb5beb510da4b756528f92f2" - }, - "http-status-codes": { - "version": "github:edsilv/http-status-codes#af3a8ab9970b1f291a79b03c7382dc16aebee749", - "from": "github:edsilv/http-status-codes#af3a8ab9970b1f291a79b03c7382dc16aebee749" - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true - }, - "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" - }, - "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", - "requires": { - "mime-db": "~1.36.0" - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "optional": true, - "requires": { - "asap": "~2.0.3" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true, - "optional": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "dev": true, - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "dev": true, - "requires": { - "rc": "^1.0.1" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "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.0", - "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.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "serve": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/serve/-/serve-10.0.2.tgz", - "integrity": "sha512-9BDXCSpCUDjoPhb37JJGqgnMSfO0HjU5I6g8KxwBA40TvMk9pDxTuDWNKzBJEGXhH5h55Qe8fqSqwpeyQmnhJQ==", - "dev": true, - "requires": { - "@zeit/schemas": "2.6.0", - "ajv": "6.5.3", - "arg": "2.0.0", - "boxen": "1.3.0", - "chalk": "2.4.1", - "clipboardy": "1.2.3", - "serve-handler": "5.0.3", - "update-check": "1.5.2" - }, - "dependencies": { - "ajv": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", - "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "serve-handler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-5.0.3.tgz", - "integrity": "sha512-qtIOHXC+pgEQO+bMwtcQBP3IjuKH5vXwnTb0J9SzTORDqGHvQmPXO3v/DEIEHI1oENWLmbDRBezRnJiw3t/2nA==", - "dev": true, - "requires": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "glob-slash": "1.0.0", - "mime-types": "2.1.18", - "minimatch": "3.0.4", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - }, - "dependencies": { - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "dev": true - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dev": true, - "requires": { - "mime-db": "~1.33.0" - } - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "requires": { - "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" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - } - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "typescript": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.2.tgz", - "integrity": "sha512-gOoGJWbNnFAfP9FlrSV63LYD5DJqYJHG5ky1kOXSl3pCImn4rqWy/flyq1BRd4iChQsoCqjbQaqtmXO4yCVPCA==", - "dev": true - }, - "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", - "dev": true, - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" - } - }, - "update-check": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", - "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", - "dev": true, - "requires": { - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - } - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "dev": true, - "requires": { - "string-width": "^2.1.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } -} diff --git a/package.json b/package.json index 566ef62..f81c8ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iiif/iiif-av-component", - "version": "0.0.88", + "version": "0.0.91", "description": "", "main": "./dist/AVComponent.js", "types": "./dist/AVComponent.d.ts", From 55907afb028e2b36788976ca303137ace0b94303 Mon Sep 17 00:00:00 2001 From: edsilv Date: Fri, 8 Mar 2019 14:59:20 +0000 Subject: [PATCH 12/37] use addEventListener --- examples/index.html | 769 +++++++++++++++++++++++++++----------------- package.json | 2 +- src/AVComponent.ts | 8 +- 3 files changed, 471 insertions(+), 308 deletions(-) diff --git a/examples/index.html b/examples/index.html index 697cfde..e1154be 100644 --- a/examples/index.html +++ b/examples/index.html @@ -1,10 +1,18 @@ - + iiif-av-component: test - - - + + + @@ -16,7 +24,7 @@ - + @@ -32,51 +40,180 @@ - - - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +
- - + + -
+

@@ -84,322 +221,346 @@

- loading... + loading...
- - - - - - - + + + + + +
- - + +
- + diff --git a/package.json b/package.json index f81c8ae..ba794bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iiif/iiif-av-component", - "version": "0.0.91", + "version": "0.0.92", "description": "", "main": "./dist/AVComponent.js", "types": "./dist/AVComponent.d.ts", diff --git a/src/AVComponent.ts b/src/AVComponent.ts index 9b7c514..a17868c 100644 --- a/src/AVComponent.ts +++ b/src/AVComponent.ts @@ -385,16 +385,18 @@ namespace IIIFComponents { } }); - this._$playButton.on('touchstart click', (e) => { + this._$playButton[0].addEventListener('click', (e) => { e.preventDefault(); if (this._isPlaying) { this.pause(); - } else { + } + else { this.play(); } - }); + + }, false); this._$nextButton.on('touchstart click', (e) => { From af6c7c7da782795e0cf79272717cc92bee7e852d Mon Sep 17 00:00:00 2001 From: edsilv Date: Fri, 8 Mar 2019 15:04:12 +0000 Subject: [PATCH 13/37] use addEventListener --- examples/index.html | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/examples/index.html b/examples/index.html index e1154be..bc40f01 100644 --- a/examples/index.html +++ b/examples/index.html @@ -24,7 +24,7 @@ - + @@ -303,11 +303,6 @@

}) .then(function(h) { helper = h; - - var s = document.createElement("script"); - s.type = "text/javascript"; - s.src = "../dist/AVComponent.js"; - $("body").append(s); createComponents(); From 33fce688f0367f14efbca0eea840068e909d144e Mon Sep 17 00:00:00 2001 From: edsilv Date: Mon, 11 Mar 2019 11:31:51 +0000 Subject: [PATCH 14/37] added contributors --- examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json b/examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json index b142dde..f9205e7 100644 --- a/examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json +++ b/examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json @@ -43,6 +43,10 @@ { "label":{"en":["Link to catalogue"]}, "value":{"en":["View the catalogue record"]} + }, + { + "label":{"en":["Contributors"]}, + "value":{"en":["Marky, Ricky, Danny, Terry, Mikey, Davey, Timmy, Tommy, Joey, Robby, Johnny, Brian"]} } ], "requiredStatement": { From 7d3d38ccbc60b74cae4213d3cd0529efe249fe56 Mon Sep 17 00:00:00 2001 From: edsilv Date: Mon, 11 Mar 2019 11:42:13 +0000 Subject: [PATCH 15/37] added contributors fixture --- examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json | 6 +----- examples/index.html | 6 ++++++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json b/examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json index f9205e7..85ed1d5 100644 --- a/examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json +++ b/examples/data/bl/sounds-tests/loose-ends/C1685_98_P3.json @@ -43,11 +43,7 @@ { "label":{"en":["Link to catalogue"]}, "value":{"en":["View the catalogue record"]} - }, - { - "label":{"en":["Contributors"]}, - "value":{"en":["Marky, Ricky, Danny, Terry, Mikey, Davey, Timmy, Tommy, Joey, Robby, Johnny, Brian"]} - } + } ], "requiredStatement": { "label": { "en": [ "Important information" ] }, diff --git a/examples/index.html b/examples/index.html index bc40f01..0106052 100644 --- a/examples/index.html +++ b/examples/index.html @@ -207,6 +207,12 @@ > Beethoven Sonatas + From 38c9bf86d136cb8036de121f530cef27ae3ac465 Mon Sep 17 00:00:00 2001 From: Pieter van Leeuwen Date: Mon, 27 May 2019 12:28:09 +0200 Subject: [PATCH 16/37] Update AVComponent.ts Fix for handling both temporal and spatial parameters from the url. We had an issue with a parameter (ticket-=) being detected as a temporal fragment resulting in unexpected temporal behaviour of the player. --- src/AVComponent.ts | 136 ++++++++++++++++++++++----------------------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/src/AVComponent.ts b/src/AVComponent.ts index a17868c..f10febb 100644 --- a/src/AVComponent.ts +++ b/src/AVComponent.ts @@ -19,7 +19,7 @@ namespace IIIFComponents { previous: string; unmute: string; } - + export interface IAVComponentData { [key: string]: any; adaptiveAuthEnabled?: boolean; @@ -36,7 +36,7 @@ namespace IIIFComponents { posterImageRatio?: number; rangeId?: string; virtualCanvasEnabled?: boolean; - waveformBarSpacing?: number; + waveformBarSpacing?: number; waveformBarWidth?: number; waveformColor?: string; } @@ -51,7 +51,7 @@ namespace IIIFComponents { } export class AVVolumeControl extends _Components.BaseComponent { - + private _$volumeSlider: JQuery; private _$volumeMute: JQuery; @@ -113,20 +113,20 @@ namespace IIIFComponents { max: 1, animate: false, create: function (evt: any, ui: any) { - + }, slide: function (evt: any, ui: any) { // start reducer that._data.volume = ui.value; - + if (that._data.volume === 0) { that._lastVolume = 0; } // end reducer - + that.fire(VolumeEvents.VOLUME_CHANGED, that._data.volume); - + }, stop: function (evt: any, ui: any) { @@ -149,17 +149,17 @@ namespace IIIFComponents { this._$volumeSlider.slider({ value: this._data.volume }); - + if (this._data.volume === 0) { const label: string = this.options.data.content.unmute; this._$volumeMute.prop('title', label); - this._$volumeMute.find('i').switchClass('on', 'off'); + this._$volumeMute.find('i').switchClass('on', 'off'); } else { const label: string = this.options.data.content.mute; this._$volumeMute.prop('title', label); this._$volumeMute.find('i').switchClass('off', 'on'); } - } + } } protected _resize(): void { @@ -489,7 +489,7 @@ namespace IIIFComponents { // const tmpItem = item; // item.body = tmpItem.body[0].items[0]; // mediaSource = item.body.id.split('#')[0]; - // } else + // } else if (type && type.toString() === 'textualbody') { //mediaSource = (body).value; @@ -541,7 +541,7 @@ namespace IIIFComponents { percentageWidth = this._convertToPercentage(mediaWidth, this._canvasWidth), percentageHeight = this._convertToPercentage(mediaHeight, this._canvasHeight); - const temporalOffsets: RegExpExecArray | null = /t=([^&]+)/g.exec(body.id); + const temporalOffsets: RegExpExecArray | null = /[\?|&]t=([^&]+)/g.exec(body.id); let ot; @@ -962,7 +962,7 @@ namespace IIIFComponents { this._rewind(); } } else { - // not limited to range. + // not limited to range. // if there is a currentDuration, single click goes to previous range, double click clears current duration and rewinds. // if there is no currentDuration, single and double click rewinds. if (this._data.range) { @@ -1055,7 +1055,7 @@ namespace IIIFComponents { } if (this._data.adaptiveAuthEnabled) { - + } hls.loadSource(data.source); @@ -1907,13 +1907,13 @@ namespace IIIFComponents { }); return changed; } - + public static diff(a: any, b: any) { return Array.from(new Set(AVComponentUtils._compare(a, b).concat(AVComponentUtils._compare(b, a)))); } public static getSpatialComponent(target: string): number[] | null { - const spatial: RegExpExecArray | null = /xywh=([^&]+)/g.exec(target); + const spatial: RegExpExecArray | null = /[\?|&]xywh=([^&]+)/g.exec(target); let xywh: number[] | null = null; if (spatial && spatial[1]) { @@ -1924,7 +1924,7 @@ namespace IIIFComponents { } public static getFirstTargetedCanvasId(range: Manifesto.IRange): string | undefined { - + let canvasId: string | undefined; if (range.canvases && range.canvases.length) { @@ -1951,7 +1951,7 @@ namespace IIIFComponents { } public static retargetTemporalComponent(canvases: Manifesto.ICanvas[], target: string): string | undefined { - + let t: number[] | null = Manifesto.Utils.getTemporalComponent(target); if (t) { @@ -2010,13 +2010,13 @@ namespace IIIFComponents { // IE 10 // ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)'; - + // IE 11 // ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko'; - + // Edge 12 (Spartan) // ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0'; - + // Edge 13 // ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586'; @@ -2095,11 +2095,11 @@ namespace IIIFComponents { public static normalise(num: number, min: number, max: number): number { return (num - min) / (max - min); } - + public static isHLSFormat(format: Manifesto.MediaType) { return this.hlsMimeTypes.includes(format.toString()); } - + public static isMpegDashFormat(format: Manifesto.MediaType) { return format.toString() === 'application/dash+xml'; } @@ -2117,7 +2117,7 @@ namespace IIIFComponents { } export class VirtualCanvas { - + public canvases: Manifesto.ICanvas[] = []; public id: string; @@ -2149,14 +2149,14 @@ namespace IIIFComponents { item.__jsonld.target += '#t=0,' + canvas.getDuration(); } } - + }); items.forEach((item: Manifesto.IAnnotation) => { const target: string | null = item.getTarget(); if (target) { - item.__jsonld.target = AVComponentUtils.retargetTemporalComponent(this.canvases, target); + item.__jsonld.target = AVComponentUtils.retargetTemporalComponent(this.canvases, target); } }); @@ -2176,7 +2176,7 @@ namespace IIIFComponents { duration += d; } }); - + return duration; } @@ -2293,7 +2293,7 @@ namespace IIIFComponents { if (diff.includes('limitToRange') && this._data.canvasId) { this.canvasInstances.forEach((canvasInstance: CanvasInstance, index: number) => { - canvasInstance.set({ + canvasInstance.set({ limitToRange: this._data.limitToRange }); }); @@ -2302,7 +2302,7 @@ namespace IIIFComponents { if (diff.includes('constrainNavigationToRange') && this._data.canvasId) { this.canvasInstances.forEach((canvasInstance: CanvasInstance, index: number) => { - canvasInstance.set({ + canvasInstance.set({ constrainNavigationToRange: this._data.constrainNavigationToRange }); }); @@ -2311,7 +2311,7 @@ namespace IIIFComponents { if (diff.includes('autoSelectRange') && this._data.canvasId) { this.canvasInstances.forEach((canvasInstance: CanvasInstance, index: number) => { - canvasInstance.set({ + canvasInstance.set({ autoSelectRange: this._data.autoSelectRange }); }); @@ -2322,31 +2322,31 @@ namespace IIIFComponents { const nextCanvasInstance: CanvasInstance | undefined = this._getCanvasInstanceById(this._data.canvasId); if (nextCanvasInstance) { - + this.canvasInstances.forEach((canvasInstance: CanvasInstance) => { - // hide canvases that don't have the same id + // hide canvases that don't have the same id if (canvasInstance.getCanvasId() !== nextCanvasInstance.getCanvasId()) { - canvasInstance.set({ + canvasInstance.set({ visible: false }); } else { if (diff.includes('range')) { - canvasInstance.set({ + canvasInstance.set({ visible: true, range: this._data.range ? jQuery.extend(true, {}, this._data.range) : undefined }); } else { - canvasInstance.set({ + canvasInstance.set({ visible: true }); } - + } }); } - + } if (diff.includes('virtualCanvasEnabled')) { @@ -2359,7 +2359,7 @@ namespace IIIFComponents { // but when toggling off, you must call showCanvas to show the next canvas if (this._data.virtualCanvasEnabled) { - this.canvasInstances.forEach((canvasInstance: CanvasInstance) => { + this.canvasInstances.forEach((canvasInstance: CanvasInstance) => { if (canvasInstance.isVirtual()) { this.set({ canvasId: canvasInstance.getCanvasId(), @@ -2368,10 +2368,10 @@ namespace IIIFComponents { } }); - } + } } - + if (diff.includes('range') && this._data.range) { let range: Manifesto.IRange | null = this._data.helper.getRangeById(this._data.range.id); @@ -2386,10 +2386,10 @@ namespace IIIFComponents { // get canvas by normalised id (without temporal part) const canvasInstance: CanvasInstance | undefined = this._getCanvasInstanceById(canvasId); - + if (canvasInstance) { - - if (canvasInstance.isVirtual() && this._data.virtualCanvasEnabled) { + + if (canvasInstance.isVirtual() && this._data.virtualCanvasEnabled) { if (canvasInstance.includesVirtualSubCanvas(canvasId)) { canvasId = canvasInstance.getCanvasId(); @@ -2405,8 +2405,8 @@ namespace IIIFComponents { } } - // if not using the correct canvasinstance, switch to it - if (this._data.canvasId && + // if not using the correct canvasinstance, switch to it + if (this._data.canvasId && ((this._data.canvasId.includes('://')) ? Manifesto.Utils.normaliseUrl(this._data.canvasId) : this._data.canvasId) !== canvasId) { this.set({ @@ -2419,21 +2419,21 @@ namespace IIIFComponents { canvasInstance.set({ range: jQuery.extend(true, {}, range) }); - + } - + } } } - } - + } + this._render(); this._resize(); } private _render(): void { - + } public reset(): void { @@ -2474,12 +2474,12 @@ namespace IIIFComponents { this._initCanvas(virtualCanvas); - } + } // all canvases need to be individually navigable canvases.forEach((canvas: Manifesto.ICanvas) => { this._initCanvas(canvas); - }); + }); if (this.canvasInstances.length > 0) { this._data.canvasId = this.canvasInstances[0].getCanvasId() @@ -2499,10 +2499,10 @@ namespace IIIFComponents { `); this._$posterImage.append(this._$posterExpandButton); - this._$posterImage.on('touchstart click', (e) => { - + this._$posterImage.on('touchstart click', (e) => { + e.preventDefault(); - + const target: any = this._getPosterImageCss(!this._posterImageExpanded); //this._$posterImage.animate(target,"fast", "easein"); this._$posterImage.animate(target); @@ -2519,7 +2519,7 @@ namespace IIIFComponents { this._$posterExpandButton.find('i').switchClass('collapse', 'expand'); } } - + }); // poster canvas @@ -2600,7 +2600,7 @@ namespace IIIFComponents { if (this._data.helper) { return this._data.helper.getCanvases(); } - + return []; } @@ -2700,7 +2700,7 @@ namespace IIIFComponents { const nextRange: Manifesto.IRange | null = this._data.helper.getNextRange(); if (nextRange) { - this.playRange(nextRange.id); + this.playRange(nextRange.id); } } @@ -2718,23 +2718,23 @@ namespace IIIFComponents { } private _getCanvasInstanceById(canvasId: string): CanvasInstance | undefined { - + canvasId = this._getNormaliseCanvasId(canvasId); - + // if virtual canvas is enabled, check for that first if (this._data.virtualCanvasEnabled) { for (let i = 0; i < this.canvasInstances.length; i++) { - + const canvasInstance: IIIFComponents.CanvasInstance = this.canvasInstances[i]; - + let currentCanvasId: string | undefined = canvasInstance.getCanvasId(); if (currentCanvasId) { currentCanvasId = this._getNormaliseCanvasId(currentCanvasId); - if ((canvasInstance.isVirtual() || this.canvasInstances.length === 1) && currentCanvasId === canvasId || + if ((canvasInstance.isVirtual() || this.canvasInstances.length === 1) && currentCanvasId === canvasId || canvasInstance.includesVirtualSubCanvas(canvasId)) { return canvasInstance; } @@ -2770,19 +2770,19 @@ namespace IIIFComponents { return undefined; } - + private _rewind(): void { if (this._data.limitToRange) { return; } - + const canvasInstance: CanvasInstance | undefined = this._getCurrentCanvas(); if (canvasInstance) { canvasInstance.set({ range: undefined - }); + }); } } @@ -2818,7 +2818,7 @@ namespace IIIFComponents { } public showCanvas(canvasId: string): void { - + // if the passed canvas id is already the current canvas id, but the canvas isn't visible // (switching from virtual canvas) @@ -2841,7 +2841,7 @@ namespace IIIFComponents { } private _getPosterImageCss(expanded: boolean): any { - + const currentCanvas: CanvasInstance | undefined = this._getCurrentCanvas(); if (currentCanvas) { From 8cf9682142901305d303d61ab4f418dfdc52f6d5 Mon Sep 17 00:00:00 2001 From: GriffinJ Date: Wed, 12 Jun 2019 14:31:56 -0400 Subject: [PATCH 17/37] Adds posterImageExpanded as a property for AVComponent; Enables AVComponent Objects to be constructed with the posterCanvas image expanded by default --- src/AVComponent.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/AVComponent.ts b/src/AVComponent.ts index f10febb..5d19e6f 100644 --- a/src/AVComponent.ts +++ b/src/AVComponent.ts @@ -2201,10 +2201,14 @@ namespace IIIFComponents { public waveform: any; } + export interface IAVComponentOptions extends _Components.IBaseComponentOptions { + posterImageExpanded: boolean; + } + export class AVComponent extends _Components.BaseComponent { private _data: IAVComponentData = this.data(); - public options: _Components.IBaseComponentOptions; + public options: IAVComponentOptions; public canvasInstances: CanvasInstance[] = []; private _checkAllMediaReadyInterval: any; private _checkAllWaveformsReadyInterval: any; @@ -2219,8 +2223,9 @@ namespace IIIFComponents { private _posterImageExpanded: boolean = false; - constructor(options: _Components.IBaseComponentOptions) { + constructor(options: IAVComponentOptions) { super(options); + this._posterImageExpanded = options.posterImageExpanded || false; console.log('av component from local'); @@ -2497,6 +2502,11 @@ namespace IIIFComponents { ${this._data && this._data.content ? this._data.content.expand : ''} `); + + if (this._posterImageExpanded) { + this._$posterExpandButton.find('i').switchClass('expand', 'collapse'); + } + this._$posterImage.append(this._$posterExpandButton); this._$posterImage.on('touchstart click', (e) => { From 3d5b6335efa6573ff4652e53dda6ecd6884d9e1c Mon Sep 17 00:00:00 2001 From: Edward Silverton Date: Mon, 1 Jul 2019 16:51:33 +0100 Subject: [PATCH 18/37] updated manifesto --- package-lock.json | 1156 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 4 +- 2 files changed, 1158 insertions(+), 2 deletions(-) create mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..89ed2aa --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1156 @@ +{ + "name": "@iiif/iiif-av-component", + "version": "0.0.93", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@iiif/base-component": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@iiif/base-component/-/base-component-1.1.3.tgz", + "integrity": "sha512-N9w7XfRnlV+13niU0ug7KoNRO55pBRowCF2sS60Bob4Fv98uqYh4LyL/R0z7y1yMFo5dJ6jp19p34KvwnhbUeg==", + "requires": { + "@types/jquery": "^2.0.49", + "@types/node": "^7.0.65", + "typescript": "^2.8.3" + }, + "dependencies": { + "@types/jquery": { + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.51.tgz", + "integrity": "sha512-+vtCjz+pzr5KkaX/GMnVF0YtQqkm+oVcdBH0Q7zCxdwk42c71xJ9hT1b6Mbn4Kf7CAxSHvkWF1LRdpYwUM+pcg==" + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==" + } + } + }, + "@iiif/manifold": { + "version": "1.2.36", + "resolved": "https://registry.npmjs.org/@iiif/manifold/-/manifold-1.2.36.tgz", + "integrity": "sha512-0WrvgyMhQs8Hz8USjOjAIdY1HN8RtZU5vUWen3YPlQJDoFqt6O0+lm+aWLDB9PITgLLVaTwhbyiDmL9nIxG7Gg==", + "requires": { + "@types/jquery": "^2.0.40" + }, + "dependencies": { + "@types/jquery": { + "version": "2.0.51", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-2.0.51.tgz", + "integrity": "sha512-+vtCjz+pzr5KkaX/GMnVF0YtQqkm+oVcdBH0Q7zCxdwk42c71xJ9hT1b6Mbn4Kf7CAxSHvkWF1LRdpYwUM+pcg==" + } + } + }, + "@types/jquery": { + "version": "2.0.34", + "resolved": "http://registry.npmjs.org/@types/jquery/-/jquery-2.0.34.tgz", + "integrity": "sha1-J2FbNp8w5XIzYSZRTnRnLdpuPQQ=" + }, + "@types/jqueryui": { + "version": "1.12.5", + "resolved": "https://registry.npmjs.org/@types/jqueryui/-/jqueryui-1.12.5.tgz", + "integrity": "sha512-+D14ghoklVjI95eooo9ljSFwCWqIBWIssIkIUeTZSy3E6At+AmKQ9x4sxblf1QHp5v1f6lI5Jp3asQU/MP32fQ==", + "requires": { + "@types/jquery": "*" + } + }, + "@types/node": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.0.tgz", + "integrity": "sha512-yF75IZxur7xs90zpmoE+ktRJGJIauORo4qblVFvfKTYSSBFRRWlrl2dO/tE4vetSS4KAvFumS+1thTf3mMZhaA==" + }, + "@zeit/schemas": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@zeit/schemas/-/schemas-2.6.0.tgz", + "integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==", + "dev": true + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "arch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", + "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "dev": true + }, + "arg": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/arg/-/arg-2.0.0.tgz", + "integrity": "sha512-XxNTUzKnz1ctK3ZIcI2XUPlD96wbHP2nGqkPKpvk/HNRlPveYrXIVSTk9m3LcqOgDPg3B1nMvdV/K8wZd7PG4w==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "clipboardy": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.3.tgz", + "integrity": "sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==", + "dev": true, + "requires": { + "arch": "^2.1.0", + "execa": "^0.8.0" + }, + "dependencies": { + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exjs": { + "version": "github:BSick7/exjs#87f638b98635fe8ddee36ce964e64bcce6e2bb6d", + "from": "github:BSick7/exjs#0.5.1" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "dev": true, + "requires": { + "punycode": "^1.3.2" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "~1.0.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glob-slash/-/glob-slash-1.0.0.tgz", + "integrity": "sha1-/lLvpDMjP3Si/mTHq7m8hIICq5U=", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true, + "optional": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "http-status-codes": { + "version": "github:edsilv/http-status-codes#af3a8ab9970b1f291a79b03c7382dc16aebee749", + "from": "github:edsilv/http-status-codes#v0.0.7" + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "less": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", + "integrity": "sha512-8HFGuWmL3FhQR0aH89escFNBQH/nEiYPP2ltDFdQw2chE28Yx2E3lhAIq9Y2saYwLSwa699s4dBVEfCY8Drf7Q==", + "dev": true, + "requires": { + "clone": "^2.1.2", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "manifesto.js": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/manifesto.js/-/manifesto.js-3.0.11.tgz", + "integrity": "sha512-7lPTVBX6meQccm6rZdYBWCJtK8EfBI7bScFI2bsbRe+6IH75C2Q4mtgVuk/pThN1EpdpTsSY8l5pVbAIMGMQzA==", + "requires": { + "http-status-codes": "github:edsilv/http-status-codes#v0.0.7", + "request": "^2.83.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "~1.36.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true, + "optional": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "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.0", + "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.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "serve": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/serve/-/serve-10.0.2.tgz", + "integrity": "sha512-9BDXCSpCUDjoPhb37JJGqgnMSfO0HjU5I6g8KxwBA40TvMk9pDxTuDWNKzBJEGXhH5h55Qe8fqSqwpeyQmnhJQ==", + "dev": true, + "requires": { + "@zeit/schemas": "2.6.0", + "ajv": "6.5.3", + "arg": "2.0.0", + "boxen": "1.3.0", + "chalk": "2.4.1", + "clipboardy": "1.2.3", + "serve-handler": "5.0.3", + "update-check": "1.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", + "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, + "serve-handler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-5.0.3.tgz", + "integrity": "sha512-qtIOHXC+pgEQO+bMwtcQBP3IjuKH5vXwnTb0J9SzTORDqGHvQmPXO3v/DEIEHI1oENWLmbDRBezRnJiw3t/2nA==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "glob-slash": "1.0.0", + "mime-types": "2.1.18", + "minimatch": "3.0.4", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + }, + "dependencies": { + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dev": true, + "requires": { + "mime-db": "~1.33.0" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "requires": { + "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" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "typescript": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.2.tgz", + "integrity": "sha512-gOoGJWbNnFAfP9FlrSV63LYD5DJqYJHG5ky1kOXSl3pCImn4rqWy/flyq1BRd4iChQsoCqjbQaqtmXO4yCVPCA==", + "dev": true + }, + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" + } + }, + "update-check": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/update-check/-/update-check-1.5.2.tgz", + "integrity": "sha512-1TrmYLuLj/5ZovwUS7fFd1jMH3NnFDN1y1A8dboedIDt7zs/zJMo6TwwlhYKkSeEwzleeiSBV5/3c9ufAQWDaQ==", + "dev": true, + "requires": { + "registry-auth-token": "3.3.2", + "registry-url": "3.1.0" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } +} diff --git a/package.json b/package.json index ba794bf..2d868b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iiif/iiif-av-component", - "version": "0.0.92", + "version": "0.0.93", "description": "", "main": "./dist/AVComponent.js", "types": "./dist/AVComponent.d.ts", @@ -35,6 +35,6 @@ "@types/jquery": "2.0.34", "@types/jqueryui": "^1.11.36", "exjs": "BSick7/exjs#0.5.1", - "manifesto.js": "3.0.9" + "manifesto.js": "3.0.11" } } From 6bc4877c6515efe279ad0022c0b21235f74fd8ee Mon Sep 17 00:00:00 2001 From: Pieter van Leeuwen Date: Wed, 21 Aug 2019 16:30:48 +0200 Subject: [PATCH 19/37] Added MediaError handling Not all media is always available or playable by a browser, in this case the MediaError event is being thrown on the avcomponent so that it can be handled. For an example see examples/index.html For more details about MediaErrror see https://developer.mozilla.org/en-US/docs/Web/API/MediaError --- examples/index.html | 24 ++++++++++++++++++++++++ examples/styles.css | 8 ++++++++ src/AVComponent.ts | 10 ++++++++++ 3 files changed, 42 insertions(+) diff --git a/examples/index.html b/examples/index.html index 0106052..02b9693 100644 --- a/examples/index.html +++ b/examples/index.html @@ -427,6 +427,30 @@

$ppc.removeAttr("disabled"); }); + avcomponent.on("mediaerror", function(error) { + $(".player").removeClass("player--loading"); + var errormessage = "Error: "; + switch (error.code) { + case 1: + errormessage += "loading aborted"; + break; + case 2: + errormessage += "network error"; + break; + case 3: + errormessage += "decoding of media failed"; + break; + case 4: + errormessage += "media format not suppported by this browser"; + break; + default: + errormessage += "unknown"; + break; + } + + $(".canvas-container").append("
"+errormessage+"
") + }); + $ppc.on("click", function(e) { e.preventDefault(); if (avcomponent._isPlaying) { diff --git a/examples/styles.css b/examples/styles.css index ef5516e..2d17ae6 100644 --- a/examples/styles.css +++ b/examples/styles.css @@ -162,4 +162,12 @@ overflow: hidden; .iiif-tree-component ul li a.selected { color: green !important; } + +.errormessage { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + } \ No newline at end of file diff --git a/src/AVComponent.ts b/src/AVComponent.ts index 5d19e6f..bb1e061 100644 --- a/src/AVComponent.ts +++ b/src/AVComponent.ts @@ -1028,6 +1028,10 @@ namespace IIIFComponents { const media: HTMLMediaElement = $mediaElement[0] as HTMLMediaElement; + media.onerror = () => { + this.fire(AVComponent.Events.MEDIA_ERROR, media.error); + } + if (data.format && data.format.toString() === 'application/dash+xml') { // dash $mediaElement.attr('data-dashjs-player', ''); @@ -2667,6 +2671,11 @@ namespace IIIFComponents { this._setCanvasInstanceVolumes(volume); this.fire(VolumeEvents.VOLUME_CHANGED, volume); }, false); + + canvasInstance.on(AVComponent.Events.MEDIA_ERROR, (error : MediaError) => { + clearInterval(this._checkAllMediaReadyInterval); + this.fire(AVComponent.Events.MEDIA_ERROR, error); + }, false); } public getCurrentRange(): Manifesto.IRange | null { @@ -2927,6 +2936,7 @@ namespace IIIFComponents.AVComponent { static PLAY: string = 'play'; static PAUSE: string = 'pause'; static MEDIA_READY: string = 'mediaready'; + static MEDIA_ERROR: string = 'mediaerror'; static LOG: string = 'log'; static RANGE_CHANGED: string = 'rangechanged'; static WAVEFORM_READY: string = 'waveformready'; From 6604a489b5be4219345decbca2f54d5ab4f36f6f Mon Sep 17 00:00:00 2001 From: Edward Silverton Date: Mon, 30 Sep 2019 12:56:28 +0100 Subject: [PATCH 20/37] bumped version --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 11db8b0..e401f03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@iiif/iiif-av-component", - "version": "0.0.90", + "version": "1.0.0-pre.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c00f9c3..7150e9b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iiif/iiif-av-component", - "version": "0.0.90", + "version": "1.0.0-pre.1", "description": "", "main": "./dist/AVComponent.js", "types": "./dist/AVComponent.d.ts", From d7fd766ac4dc71995f898877518996d84440eba3 Mon Sep 17 00:00:00 2001 From: Edward Silverton Date: Tue, 29 Oct 2019 14:39:58 +0000 Subject: [PATCH 21/37] added webpack.config.js --- .gitignore | 14 +- .vscode/tasks.json | 15 + examples/index.html | 15 +- package-lock.json | 4626 ++++++++++++++++++++++++++++++++++++-- package.json | 39 +- src/AVComponent.ts | 2754 ----------------------- src/CanvasInstance.ts | 1687 ++++++++++++++ src/CompositeWaveform.ts | 52 + src/Utils.ts | 227 ++ src/VirtualCanvas.ts | 81 + src/VolumeControl.ts | 117 + src/Waveform.ts | 5 + src/globals.d.ts | 3 - src/index.ts | 724 ++++++ tsconfig.json | 29 +- webpack.config.js | 52 + 16 files changed, 7463 insertions(+), 2977 deletions(-) create mode 100644 .vscode/tasks.json delete mode 100644 src/AVComponent.ts create mode 100644 src/CanvasInstance.ts create mode 100644 src/CompositeWaveform.ts create mode 100644 src/Utils.ts create mode 100644 src/VirtualCanvas.ts create mode 100644 src/VolumeControl.ts create mode 100644 src/Waveform.ts create mode 100644 src/index.ts create mode 100644 webpack.config.js diff --git a/.gitignore b/.gitignore index 051c594..79018b8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ -.idea -.vscode -node_modules +dist-commonjs +dist-css +dist-esmodule +dist-umd +dist-var +coverage npm-debug.log -Thumbs.db +node_modules debug.log -typings -dist \ No newline at end of file +types \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..8dca938 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,15 @@ +{ + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "build", + "group": { + "kind": "build", + "isDefault": true + } + } + ] +} \ No newline at end of file diff --git a/examples/index.html b/examples/index.html index 8d2598d..3032cb7 100644 --- a/examples/index.html +++ b/examples/index.html @@ -5,7 +5,7 @@ - + @@ -15,12 +15,11 @@ - - - + + - - + +