From bb4a33376f88508763de84546dc952e16d0a1084 Mon Sep 17 00:00:00 2001 From: senshu Date: Mon, 17 Aug 2020 17:09:41 +0200 Subject: [PATCH] Fixed API documentation rendering --- README.jsdoc.md | 2 + js/Controller.js | 173 ++++---- js/Storage.js | 5 +- js/backend/AbstractBackend.js | 31 +- js/backend/Electron.js | 5 +- js/backend/FileReader.js | 5 +- js/backend/GoogleDrive.js | 5 +- js/i18n.js | 2 + js/model/CameraState.js | 3 +- js/model/Preferences.js | 4 +- js/model/Presentation.js | 6 +- js/model/Selection.js | 30 +- js/player/Animator.js | 3 +- js/player/Camera.js | 5 +- js/player/FrameList.js | 4 +- js/player/FrameNumber.js | 2 + js/player/FrameURL.js | 2 + js/player/Media.js | 2 + js/player/Player.js | 3 +- js/player/Timing.js | 2 + js/player/Viewport.js | 3 +- js/svg/AiHandler.js | 5 +- js/svg/InkscapeHandler.js | 5 +- js/svg/SVGDocumentWrapper.js | 4 +- js/upgrade.js | 2 + js/view/Preview.js | 5 +- js/view/Properties.js | 5 +- js/view/Timeline.js | 5 +- js/view/Toolbar.js | 5 +- js/view/VirtualDOMView.js | 8 +- jsdoc.json | 8 +- package-lock.json | 725 +--------------------------------- package.json | 1 - 33 files changed, 189 insertions(+), 886 deletions(-) diff --git a/README.jsdoc.md b/README.jsdoc.md index 6d9d6d61..0f574513 100644 --- a/README.jsdoc.md +++ b/README.jsdoc.md @@ -1,4 +1,6 @@ +![Sozi logo](sozi-logo-bg.png) + This is the JavaScript API documentation for Sozi. Additional information about the Sozi project can be found at: diff --git a/js/Controller.js b/js/Controller.js index 6c9120b0..d1e855b8 100644 --- a/js/Controller.js +++ b/js/Controller.js @@ -2,56 +2,63 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {Frame, LayerProperties} from "./model/Presentation"; import {CameraState} from "./model/CameraState"; import {EventEmitter} from "events"; const UNDO_STACK_LIMIT = 100; +/** Signals that the presentation data has changed. + * @event module:Controller#presentationChange */ + +/** Signals that the editor state data has changed. + * @event module:Controller#editorStateChange */ + /** Sozi editor UI controller. * * A Controller instance manages the user interface of the editor and updates * the presentation data in reaction to user actions. * - * @category editor * @extends EventEmitter */ export class Controller extends EventEmitter { /** Construct a new Sozi editor UI controller. * - * @param {Preferences} preferences - The object that holds the user settings of the editor. - * @param {Presentation} presentation - The Sozi presentation opened in the editor. - * @param {Selection} selection - The object that represents the selection in the timeline. - * @param {Viewport} viewport - The object that displays a preview of the presentation. - * @param {Player} player - The object that animates the presentation. + * @param {module:model/Preferences.Preferences} preferences - The object that holds the user settings of the editor. + * @param {module:model/Presentation.Presentation} presentation - The Sozi presentation opened in the editor. + * @param {module:model/Selection.Selection} selection - The object that represents the selection in the timeline. + * @param {module:player/Viewport.Viewport} viewport - The object that displays a preview of the presentation. + * @param {module:player/Player.Player} player - The object that animates the presentation. * @param {Jed} locale - The object that manages the translations. */ constructor(preferences, presentation, selection, viewport, player, locale) { super(); /** The object that manages the file I/O, set in {@linkcode Controller#onLoad|onLoad}. - * @type {Storage} */ + * @type {module:Storage.Storage} */ this.storage = null; /** The object that holds the user settings of the editor. - * @type {Preferences} */ + * @type {module:model/Preferences.Preferences} */ this.preferences = preferences; /** The Sozi presentation opened in the editor. - * @type {Presentation} */ + * @type {module:model/Presentation.Presentation} */ this.presentation = presentation; /** The object that represents the selection in the timeline. - * @type {Selection} */ + * @type {module:model/Selection.Selection} */ this.selection = selection; /** The object that displays a preview of the presentation. - * @type {Viewport} */ + * @type {module:player/Viewport.Viewport} */ this.viewport = viewport; /** The object that animates the presentation. - * @type {Player} */ + * @type {module:player/Player.Player} */ this.player = player; /** The function that returns translated text in the current language. @@ -62,11 +69,11 @@ export class Controller extends EventEmitter { this.gettext = s => locale.gettext(s); /** The layers that have been added to the timeline. - * @type {Layer[]} */ + * @type {module:model/Presentation.Layer[]} */ this.editableLayers = []; /** The layers that fall in the "default" row of the timeline. - * @type {Layer[]} */ + * @type {module:model/Presentation.Layer[]} */ this.defaultLayers = []; /** The stack of operations that can be undone. @@ -210,7 +217,7 @@ export class Controller extends EventEmitter { * * @param {Storage} storage - A storage management object. * - * @fires Controller#ready + * @fires module:Controller#ready */ onLoad(storage) { this.storage = storage; @@ -246,7 +253,7 @@ export class Controller extends EventEmitter { } /** Signals that the editor is ready. - * @event Controller#ready */ + * @event module:Controller#ready */ this.emit("ready"); // Apply the preferences (will trigger a repaint of the editor views). @@ -258,13 +265,13 @@ export class Controller extends EventEmitter { * This method delegates the operation to its {@linkcode Storage} instance and triggers * a repaint so that the UI shows the correct "saved" status. * - * @fires Controller#repaint + * @fires module:Controller#repaint */ save() { this.storage.save(); /** Signals that the editor UI needs to be repainted. - * @event Controller#repaint */ + * @event module:Controller#repaint */ this.emit("repaint"); } @@ -316,9 +323,9 @@ export class Controller extends EventEmitter { * * This operation can be undone. * - * @fires Controller#presentationChange - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ addFrame() { let frame, frameIndex; @@ -362,9 +369,9 @@ export class Controller extends EventEmitter { * * This operation can be undone. * - * @fires Controller#presentationChange - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ deleteFrames() { // Sort the selected frames by presentation order. @@ -399,9 +406,9 @@ export class Controller extends EventEmitter { * * @param {number} toFrameIndex - The new index of the first frame in the selection. * - * @fires Controller#presentationChange - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ moveFrames(toFrameIndex) { // Sort the selected frames by presentation order. @@ -473,8 +480,8 @@ export class Controller extends EventEmitter { * * @param {number} layerIndex - The index of the layer to add. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ addLayer(layerIndex) { const layer = this.presentation.layers[layerIndex]; @@ -503,8 +510,8 @@ export class Controller extends EventEmitter { * This operation modifies the editor state and does not affect the actual presentation. * It does not provide an "Undo" action. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ addAllLayers() { for (let layer of this.defaultLayers.slice()) { @@ -536,8 +543,8 @@ export class Controller extends EventEmitter { * * @param {number} layerIndex - The index of the layer to remove. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ removeLayer(layerIndex) { const layer = this.presentation.layers[layerIndex]; @@ -569,7 +576,7 @@ export class Controller extends EventEmitter { * or the layers in the "default" set. * * @param {number} layerIndex - The index of the layer to get, or a negative number for the "default" layers. - * @return {Layer[]} The layer(s) at the given index. + * @return {module:model/Presentation.Layer[]} The layer(s) at the given index. */ getLayersAtIndex(layerIndex) { return layerIndex >= 0 ? @@ -599,10 +606,10 @@ export class Controller extends EventEmitter { * This methods adds the given layers to the selection and removes * the other previously selected layers. * - * @param {Layer[]} layers - The layers to select. + * @param {module:model/Presentation.Layer[]} layers - The layers to select. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ selectLayers(layers) { this.selection.selectedLayers = layers.slice(); @@ -616,10 +623,10 @@ export class Controller extends EventEmitter { * This method adds the given layer to the selection if it is not * already present. * - * @param {Layer} layer - The layer to select. + * @param {module:model/Presentation.Layer} layer - The layer to select. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ addLayerToSelection(layer) { if (!this.selection.hasLayers([layer])) { @@ -634,10 +641,10 @@ export class Controller extends EventEmitter { * * This method removes the given layer to the selection if it is present. * - * @param {Layer} layer - The layer to deselect. + * @param {module:model/Presentation.Layer} layer - The layer to deselect. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ removeLayerFromSelection(layer) { if (this.selection.hasLayers([layer])) { @@ -655,8 +662,8 @@ export class Controller extends EventEmitter { * * @param {number} index - The index of the frame to select. A negative number counts backwards from the end. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ selectFrame(index) { if (index < 0) { @@ -669,8 +676,8 @@ export class Controller extends EventEmitter { * * This methods adds all the frames of the presentation to the selection. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ selectAllFrames() { this.selection.selectedFrames = this.presentation.frames.slice(); @@ -686,8 +693,8 @@ export class Controller extends EventEmitter { * * @param {number} relativeIndex - The relative location of the frame to select with respect to the current frame. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ selectRelativeFrame(relativeIndex) { if (this.selection.currentFrame) { @@ -708,8 +715,8 @@ export class Controller extends EventEmitter { * @param {boolean} sequence - If true, add or remove consecutive frames, starting from the {@link Selection#currentFrame|current frame} up/down to the given index. * @param {number} frameIndex - The index of a frame in the presentation. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ updateFrameSelection(single, sequence, frameIndex) { const frame = this.presentation.frames[frameIndex]; @@ -748,10 +755,10 @@ export class Controller extends EventEmitter { * @param {boolean} single - If true, add or remove the given layers to/from the selection. * @param {boolean} sequence - If true, add or remove consecutive layers, starting from the current layer up/down to the given layers. - * @param {Layer[]} layers - The layers to select or deselect. + * @param {module:model/Presentation.Layer[]} layers - The layers to select or deselect. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ updateLayerSelection(single, sequence, layers) { if (single) { @@ -783,11 +790,11 @@ export class Controller extends EventEmitter { * * @param {boolean} single - If true, add or remove the given layers and frame to/from the selection. * @param {boolean} sequence - If true, add or remove consevutive frames and layers starting from the {@link Selection#currentFrame|current frame} and layer. - * @param {Layer[]} layers - The layers to select or deselect. + * @param {module:model/Presentation.Layer[]} layers - The layers to select or deselect. * @param {number} frameIndex - The index of the frame in the presentation * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ updateLayerAndFrameSelection(single, sequence, layers, frameIndex) { const frame = this.presentation.frames[frameIndex]; @@ -834,10 +841,10 @@ export class Controller extends EventEmitter { * If the layers becomes visible, they are added to the selection, * otherwise, they are removed from the selection. * - * @param {Layer[]} layers - The layers to show or hide. + * @param {module:model/Presentation.Layer[]} layers - The layers to show or hide. * - * @fires Controller#editorStateChange - * @fires Controller#repaint + * @fires module:Controller#editorStateChange + * @fires module:Controller#repaint */ updateLayerVisibility(layers) { for (let layer of layers) { @@ -863,8 +870,8 @@ export class Controller extends EventEmitter { * * This operation can be undone. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ resetLayer() { const selectedFrames = this.selection.selectedFrames.slice(); @@ -920,8 +927,8 @@ export class Controller extends EventEmitter { * * @param {number} groupId - The ID of the SVG group for the layer to copy. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ copyLayer(groupId) { const selectedFrames = this.selection.selectedFrames.slice(); @@ -1045,8 +1052,8 @@ export class Controller extends EventEmitter { * @param {string} property - The name of the property to set. * @param propertyValue - The new value of the property. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ setPresentationProperty(property, propertyValue) { const pres = this.presentation; @@ -1095,8 +1102,8 @@ export class Controller extends EventEmitter { * @param {string} property - The name of the property to set. * @param propertyValue - The new value of the property. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ setFrameProperty(property, propertyValue) { const savedValues = this.selection.selectedFrames.map(frame => [frame, frame[property]]); @@ -1150,8 +1157,8 @@ export class Controller extends EventEmitter { * @param {string} property - The name of the property to set. * @param propertyValue - The new value of the property. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ setLayerProperty(property, propertyValue) { if (property === "outlineElementId") { @@ -1238,8 +1245,8 @@ export class Controller extends EventEmitter { * @param {string} property - The name of the property to set. * @param propertyValue - The new value of the property. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ setCameraProperty(property, propertyValue) { const selectedFrames = this.selection.selectedFrames.slice(); @@ -1288,8 +1295,8 @@ export class Controller extends EventEmitter { * * This operation can be undone. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ updateCameraStates() { const currentFrame = this.selection.currentFrame; @@ -1340,8 +1347,8 @@ export class Controller extends EventEmitter { * * @param {SVGElement} outlineElement - The element to use as an outline of the selected layers. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ setOutlineElement(outlineElement) { const currentFrame = this.selection.currentFrame; @@ -1382,8 +1389,8 @@ export class Controller extends EventEmitter { * * @param {number} width - The desired width. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ setAspectWidth(width) { const widthPrev = this.presentation.aspectWidth; @@ -1405,8 +1412,8 @@ export class Controller extends EventEmitter { * * @param {number} height - The desired height. * - * @fires Controller#presentationChange - * @fires Controller#repaint + * @fires module:Controller#presentationChange + * @fires module:Controller#repaint */ setAspectHeight(height) { const heightPrev = this.presentation.aspectHeight; @@ -1428,7 +1435,7 @@ export class Controller extends EventEmitter { * * @param {string} dragMode - The new drag mode. * - * @fires Controller#repaint + * @fires module:Controller#repaint */ setDragMode(dragMode) { this.viewport.dragMode = dragMode; @@ -1457,7 +1464,7 @@ export class Controller extends EventEmitter { * @param {string} property - The name of the property to set. * @param propertyValue - The new value of the property. * - * @fires Controller#repaint + * @fires module:Controller#repaint */ setPreference(key, value) { this.preferences[key] = value; @@ -1516,7 +1523,7 @@ export class Controller extends EventEmitter { /** Update the user interface after modifying the preferences. * - * @fires Controller#repaint + * @fires module:Controller#repaint */ applyPreferences() { if (this.preferences.fontSize > 0) { diff --git a/js/Storage.js b/js/Storage.js index 38e0ff29..7fe2003d 100644 --- a/js/Storage.js +++ b/js/Storage.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {SVGDocumentWrapper} from "./svg/SVGDocumentWrapper"; import {backendList} from "./backend/AbstractBackend"; import {EventEmitter} from "events"; @@ -12,7 +14,6 @@ import path from "path"; /** File read/write manager. * - * @category editor * @extends EventEmitter * @todo Add documentation. */ @@ -327,7 +328,7 @@ export class Storage extends EventEmitter { const contents = paths.map(relPath => { const absPath = path.join(svgLoc, relPath); return this.backend.loadSync(absPath); - }) + }); return contents.join("\n"); } } diff --git a/js/backend/AbstractBackend.js b/js/backend/AbstractBackend.js index 810dc1e0..d802bfae 100644 --- a/js/backend/AbstractBackend.js +++ b/js/backend/AbstractBackend.js @@ -2,21 +2,19 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {EventEmitter} from "events"; /** The list of backends supported by the current editor. * - * @category backend - * - * @type {AbstractBackend[]} + * @type {module:backend/AbstractBackend.AbstractBackend[]} */ export const backendList = []; /** Add a backend to {@link backendList|the list of supported backends}. * - * @category backend - * - * @param {AbstractBackend} backend - The backend to add. + * @param {module:backend/AbstractBackend.AbstractBackend} backend - The backend to add. */ export function addBackend(backend) { backendList.push(backend); @@ -24,13 +22,12 @@ export function addBackend(backend) { /** Abstraction for the execution platform. * - * @category backend * @extends EventEmitter */ export class AbstractBackend extends EventEmitter { /** Common constructor for backends. * - * @param {Controller} controller - A controller instance. + * @param {module:Controller.Controller} controller - A controller instance. * @param {HTMLElement} container - The element that will contain the menu for choosing a backend. * @param {string} buttonId - The ID of the button to generate in the menu. * @param {string} buttonLabel - The text of the button to generate in the menu (already translated). @@ -39,7 +36,7 @@ export class AbstractBackend extends EventEmitter { super(); /** The controller for this backend. - * @type {Controller} */ + * @type {module:Controller.Controller} */ this.controller = controller; /** A list of files to save automatically. @@ -59,14 +56,14 @@ export class AbstractBackend extends EventEmitter { window.addEventListener("focus", () => { this.hasFocus = true; /** Signals that the current editor window has received the focus. - * @event AbstractBackend#focus */ + * @event module:backend/AbstractBackend#focus */ this.emit("focus"); }); window.addEventListener("blur", () => { this.hasFocus = false; /** Signals that the current editor window has lost the focus. - * @event AbstractBackend#blur */ + * @event module:backend/AbstractBackend#blur */ this.emit("blur"); }); } @@ -125,13 +122,13 @@ export class AbstractBackend extends EventEmitter { * * @param fileDescriptor - A file to load (backend-dependent). * - * @fires AbstractBackend#load - * @fires AbstractBackend#change + * @fires module:backend/AbstractBackend#load + * @fires module:backend/AbstractBackend#change */ load(fileDescriptor) { // Not implemented /** Signals that a file has been loaded. - * @event AbstractBackend#load */ + * @event module:backend/AbstractBackend#load */ this.emit("load", fileDescriptor, "", "Not implemented"); } @@ -140,7 +137,7 @@ export class AbstractBackend extends EventEmitter { } /** Signals that a file has changed. - * @event AbstractBackend#change + * @event module:backend/AbstractBackend#change */ /** Create a new file. @@ -163,14 +160,14 @@ export class AbstractBackend extends EventEmitter { * @param fileDescriptor - The file to save (backend-dependent). * @param {string} data - The new content of the file. * - * @fires AbstractBackend#save + * @fires module:backend/AbstractBackend#save * * @todo Use a callback instead of an event */ save(fileDescriptor, data) { // Not implemented /** Signals that a file has been saved. - * @event AbstractBackend#save */ + * @event module:backend/AbstractBackend#save */ this.emit("save", fileDescriptor, "Not implemented"); } diff --git a/js/backend/Electron.js b/js/backend/Electron.js index 32a01e7e..b0c9d13d 100644 --- a/js/backend/Electron.js +++ b/js/backend/Electron.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {AbstractBackend, addBackend} from "./AbstractBackend"; import fs from "fs"; import path from "path"; @@ -21,8 +23,7 @@ console.log("Current working dir: " + cwd); /** Electron backend. * - * @category backend - * @extends AbstractBackend + * @extends module:backend/AbstractBackend.AbstractBackend * @todo Add documentation. */ export class Electron extends AbstractBackend { diff --git a/js/backend/FileReader.js b/js/backend/FileReader.js index 69b653ff..8e86438f 100644 --- a/js/backend/FileReader.js +++ b/js/backend/FileReader.js @@ -2,12 +2,13 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {AbstractBackend, addBackend} from "./AbstractBackend"; /** Browser FileReader backend. * - * @category backend - * @extends AbstractBackend + * @extends module:backend/AbstractBackend.AbstractBackend * @todo Add documentation. */ export class FileReaderBackend extends AbstractBackend { diff --git a/js/backend/GoogleDrive.js b/js/backend/GoogleDrive.js index d88e8ace..c9eaaa9d 100644 --- a/js/backend/GoogleDrive.js +++ b/js/backend/GoogleDrive.js @@ -2,12 +2,13 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {AbstractBackend, addBackend} from "./AbstractBackend"; /** Google Drive backend. * - * @category backend - * @extends AbstractBackend + * @extends module:backend/AbstractBackend.AbstractBackend * @todo Add documentation. */ export class GoogleDrive extends AbstractBackend { diff --git a/js/i18n.js b/js/i18n.js index f98c17bb..648382d0 100644 --- a/js/i18n.js +++ b/js/i18n.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import Jed from "jed"; import locales from "./locales"; diff --git a/js/model/CameraState.js b/js/model/CameraState.js index 3d26dcf5..1cc023a6 100644 --- a/js/model/CameraState.js +++ b/js/model/CameraState.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + function copyIfSet(dest, src, prop) { if (src.hasOwnProperty(prop)) { dest[prop] = src[prop]; @@ -10,7 +12,6 @@ function copyIfSet(dest, src, prop) { /** Camera state. * - * @category model * @todo Add documentation. */ export class CameraState { diff --git a/js/model/Preferences.js b/js/model/Preferences.js index 75e131e0..2e6386fd 100644 --- a/js/model/Preferences.js +++ b/js/model/Preferences.js @@ -3,9 +3,9 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + /** Sozi editor preferences. - * - * @category model * * @todo Add documentation. */ diff --git a/js/model/Presentation.js b/js/model/Presentation.js index 11c4664b..7631e2cd 100644 --- a/js/model/Presentation.js +++ b/js/model/Presentation.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {EventEmitter} from "events"; import {CameraState} from "./CameraState"; import {hasReliableBoundaries} from "../player/Camera"; @@ -14,7 +16,6 @@ function copyIfSet(dest, src, prop) { /** Layer properties for a frame in a Sozi presentation. * - * @category model * @todo Add documentation. */ export class LayerProperties { @@ -139,7 +140,6 @@ export class LayerProperties { /** A frame in a Sozi presentation. * - * @category model * @todo Add documentation. */ export class Frame { @@ -316,7 +316,6 @@ export class Frame { /** Layer in an SVG document. * - * @category model * @todo Add documentation. */ export class Layer { @@ -356,7 +355,6 @@ const SVG_NS = "http://www.w3.org/2000/svg"; /** Sozi presentation. * - * @category model * @extends EventEmitter * @todo Add documentation. */ diff --git a/js/model/Selection.js b/js/model/Selection.js index 527d7618..6221e3a6 100644 --- a/js/model/Selection.js +++ b/js/model/Selection.js @@ -2,30 +2,30 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + /** Selection in the timeline of the Sozi editor. * * A Selection instance holds the currently selected * frames and layers of the presentation. - * - * @category model */ export class Selection { /** Create an empty selection for a given presentation. * - * @param {Presentation} presentation - A Sozi presentation object + * @param {module:model/Presentation.Presentation} presentation - A Sozi presentation object */ constructor(presentation) { /** The presentation where selections happen. - * @type {Presentation} */ + * @type {module:model/Presentation.Presentation} */ this.presentation = presentation; /** The list of selected frames. - * @type {Frame[]} */ + * @type {module:model/Presentation.Frame[]} */ this.selectedFrames = []; /** The list of selected layers. - * @type {Layer[]} */ + * @type {module:model/Presentation.Layer[]} */ this.selectedLayers = []; } @@ -68,7 +68,7 @@ export class Selection { /** The frame that was selected last, `null` if no frame is selected. * - * @type {Frame} + * @type {module:model/Presentation.Frame} */ get currentFrame() { return this.selectedFrames.length ? @@ -78,7 +78,7 @@ export class Selection { /** Check whether this selection contains the given frames. * - * @param {Frame[]} frames - The frames to check. + * @param {module:model/Presentation.Frame[]} frames - The frames to check. * @return `true` if all the given frames are selected. */ hasFrames(frames) { @@ -87,7 +87,7 @@ export class Selection { /** Add a frame to this selection. * - * @param {Frame} frame - The frame to add. + * @param {module:model/Presentation.Frame} frame - The frame to add. */ addFrame(frame) { if (this.selectedFrames.indexOf(frame) < 0) { @@ -97,7 +97,7 @@ export class Selection { /** Remove a frame from this selection. * - * @param {Frame} frame - The frame to remove. + * @param {module:model/Presentation.Frame} frame - The frame to remove. */ removeFrame(frame) { const index = this.selectedFrames.indexOf(frame); @@ -111,7 +111,7 @@ export class Selection { * If the frame is not selected, add it to the selection, * otherwise, remove it. * - * @param {Frame} frame - The frame to add or remove. + * @param {module:model/Presentation.Frame} frame - The frame to add or remove. */ toggleFrameSelection(frame) { const index = this.selectedFrames.indexOf(frame); @@ -125,7 +125,7 @@ export class Selection { /** Check whether this selection contains the given layers. * - * @param {Layer[]} layers - The layers to check. + * @param {module:model/Presentation.Layer[]} layers - The layers to check. * @return `true` if all the given layers are selected. */ hasLayers(layers) { @@ -134,7 +134,7 @@ export class Selection { /** Add a layer to this selection. * - * @param {Layer} layer - The layer to add. + * @param {module:model/Presentation.Layer} layer - The layer to add. */ addLayer(layer) { if (this.selectedLayers.indexOf(layer) < 0) { @@ -144,7 +144,7 @@ export class Selection { /** Remove a layer from this selection. * - * @param {Layer} layer - The layer to remove. + * @param {module:model/Presentation.Layer} layer - The layer to remove. */ removeLayer(layer) { const index = this.selectedLayers.indexOf(layer); @@ -158,7 +158,7 @@ export class Selection { * If the layer is not selected, add it to the selection, * otherwise, remove it. * - * @param {Layer} layer - The layer to add or remove. + * @param {module:model/Presentation.Layer} layer - The layer to add or remove. */ toggleLayerSelection(layer) { const index = this.selectedLayers.indexOf(layer); diff --git a/js/player/Animator.js b/js/player/Animator.js index 59673b53..6b522026 100644 --- a/js/player/Animator.js +++ b/js/player/Animator.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {EventEmitter} from "events"; /* @@ -94,7 +96,6 @@ function start() { * The main purpose of an animator is to schedule the update * operations in the animated objects. * - * @category player * @extends EventEmitter * @todo Add documentation */ diff --git a/js/player/Camera.js b/js/player/Camera.js index 7742bfb1..3900a102 100644 --- a/js/player/Camera.js +++ b/js/player/Camera.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {CameraState} from "../model/CameraState"; // Constant: the Sozi namespace @@ -13,8 +15,7 @@ export function hasReliableBoundaries(elt) { /** Camera. * - * @category player - * @extends CameraState + * @extends module:model/CameraState.CameraState * @todo Add documentation. */ export class Camera extends CameraState { diff --git a/js/player/FrameList.js b/js/player/FrameList.js index b5fedb6f..da19e897 100644 --- a/js/player/FrameList.js +++ b/js/player/FrameList.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {Animator} from "./Animator"; import * as Timing from "./Timing"; @@ -21,7 +23,7 @@ export function init(aPlayer) { frameList = document.querySelector(".sozi-frame-list"); links = frameList.querySelectorAll("li a"); - + for (let link of links) { link.addEventListener("click", evt => { if (evt.button === 0) { diff --git a/js/player/FrameNumber.js b/js/player/FrameNumber.js index 6c78e989..d161963b 100644 --- a/js/player/FrameNumber.js +++ b/js/player/FrameNumber.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import * as FrameList from "./FrameList"; export function init(player) { diff --git a/js/player/FrameURL.js b/js/player/FrameURL.js index bc68eaf1..8cb2d64d 100644 --- a/js/player/FrameURL.js +++ b/js/player/FrameURL.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + let player; export function init(aPlayer) { diff --git a/js/player/Media.js b/js/player/Media.js index 9f0fc5b4..e6b1ab07 100644 --- a/js/player/Media.js +++ b/js/player/Media.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + const svgNs = "http://www.w3.org/2000/svg"; const soziNs = "http://sozi.baierouge.fr"; const xhtmlNs = "http://www.w3.org/1999/xhtml"; diff --git a/js/player/Player.js b/js/player/Player.js index 6ecc7682..ec1d0d0b 100644 --- a/js/player/Player.js +++ b/js/player/Player.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {Animator} from "./Animator"; import * as Timing from "./Timing"; import {CameraState} from "../model/CameraState"; @@ -23,7 +25,6 @@ const ROTATE_STEP = 5; /** Sozi presentation player. * - * @category player * @extends EventEmitter * @todo Add documentation. */ diff --git a/js/player/Timing.js b/js/player/Timing.js index c75a29a0..0eb47e8b 100644 --- a/js/player/Timing.js +++ b/js/player/Timing.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + /* * From Gaƫtan Renaudeau, released under MIT license. * http://greweb.me/2012/02/bezier-curve-based-easing-functions-from-concept-to-implementation/ diff --git a/js/player/Viewport.js b/js/player/Viewport.js index 739459c0..4e7dcbd4 100644 --- a/js/player/Viewport.js +++ b/js/player/Viewport.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {Camera} from "./Camera"; import {EventEmitter} from "events"; @@ -25,7 +27,6 @@ const CLIP_BORDER = 3; /** Viewing area for Sozi presentation. * - * @category player * @extends EventEmitter * @todo Add documentation. */ diff --git a/js/svg/AiHandler.js b/js/svg/AiHandler.js index fa900257..e16b4dd7 100644 --- a/js/svg/AiHandler.js +++ b/js/svg/AiHandler.js @@ -2,12 +2,13 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {addSVGHandler, DefaultSVGHandler} from "./SVGDocumentWrapper"; /** Adobe Illustrator SVG handler. * - * @category svg - * @extends DefaultSVGHandler + * @extends module:svg/DefaultSVGHandler.DefaultSVGHandler * @todo Add documentation. */ export class AiHandler extends DefaultSVGHandler { diff --git a/js/svg/InkscapeHandler.js b/js/svg/InkscapeHandler.js index 113390f6..3c5a7e6e 100644 --- a/js/svg/InkscapeHandler.js +++ b/js/svg/InkscapeHandler.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {addSVGHandler, DefaultSVGHandler} from "./SVGDocumentWrapper"; // Constant: the Inkscape namespace @@ -10,8 +12,7 @@ const SODIPODI_NS = "http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"; /** Inkscape SVG handler. * - * @category svg - * @extends DefaultSVGHandler + * @extends module:svg/DefaultSVGHandler.DefaultSVGHandler * @todo Add documentation. */ export class InkscapeHandler extends DefaultSVGHandler { diff --git a/js/svg/SVGDocumentWrapper.js b/js/svg/SVGDocumentWrapper.js index 757c6870..315c8bdc 100644 --- a/js/svg/SVGDocumentWrapper.js +++ b/js/svg/SVGDocumentWrapper.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + // Constant: the SVG namespace const SVG_NS = "http://www.w3.org/2000/svg"; @@ -17,7 +19,6 @@ export function addSVGHandler(name, handler) { /** Base class for SVG handlers. * - * @category svg * @todo Add documentation. */ export class DefaultSVGHandler { @@ -39,7 +40,6 @@ export class DefaultSVGHandler { /** SVG document wrapper. * - * @category svg * @todo Add documentation. */ export class SVGDocumentWrapper { diff --git a/js/upgrade.js b/js/upgrade.js index b3975a97..1a1f38e6 100644 --- a/js/upgrade.js +++ b/js/upgrade.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {Frame} from "./model/Presentation"; const SOZI_NS = "http://sozi.baierouge.fr"; diff --git a/js/view/Preview.js b/js/view/Preview.js index 87a31396..ad9de4d1 100644 --- a/js/view/Preview.js +++ b/js/view/Preview.js @@ -2,11 +2,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + const PREVIEW_MARGIN = 15; /** Preview area in the presentation editor. * - * @category view * @todo Add documentation. */ export class Preview { @@ -38,7 +39,7 @@ export class Preview { this.viewport.onLoad(); this.presentation.setInitialCameraState(); - + this.container.addEventListener("mouseenter", () => this.onMouseEnter(), false); this.container.addEventListener("mouseleave", () => this.onMouseLeave(), false); } diff --git a/js/view/Properties.js b/js/view/Properties.js index 4550a7e2..bfddd40c 100644 --- a/js/view/Properties.js +++ b/js/view/Properties.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {h} from "inferno-hyperscript"; import {VirtualDOMView} from "./VirtualDOMView"; @@ -11,8 +13,7 @@ function asArray(v) { /** Properties pane of the presentation editor. * - * @category view - * @extends VirtualDOMView + * @extends module:view/VirtualDOMView.VirtualDOMView * @todo Add documentation. */ export class Properties extends VirtualDOMView { diff --git a/js/view/Timeline.js b/js/view/Timeline.js index 7ba05487..3bc078bc 100644 --- a/js/view/Timeline.js +++ b/js/view/Timeline.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {h} from "inferno-hyperscript"; import {VirtualDOMView} from "./VirtualDOMView"; import Jed from "jed"; @@ -19,8 +21,7 @@ import Jed from "jed"; * - create/delete/reorder frames * - add/remove layers and frames to/from the selection * - * @category view - * @extends VirtualDOMView + * @extends module:view/VirtualDOMView.VirtualDOMView * @todo Add documentation */ export class Timeline extends VirtualDOMView { diff --git a/js/view/Toolbar.js b/js/view/Toolbar.js index 9a4da531..2419632d 100644 --- a/js/view/Toolbar.js +++ b/js/view/Toolbar.js @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {h} from "inferno-hyperscript"; import {VirtualDOMView} from "./VirtualDOMView"; import screenfull from "screenfull"; @@ -9,8 +11,7 @@ import pkg from "../../package.json"; /** Toolbar in the presentation editor. * - * @category view - * @extends VirtualDOMView + * @extends module:view/VirtualDOMView.VirtualDOMView * @todo Add documentation. */ export class Toolbar extends VirtualDOMView { diff --git a/js/view/VirtualDOMView.js b/js/view/VirtualDOMView.js index 10e55961..ea85dd8e 100644 --- a/js/view/VirtualDOMView.js +++ b/js/view/VirtualDOMView.js @@ -2,19 +2,19 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/** @module */ + import {render} from "inferno"; import {h} from "inferno-hyperscript"; /** Base class for editor views using the virtual DOM. - * - * @category view */ export class VirtualDOMView { /** Create a new virtual DOM view. * * @param {HTMLElement} container - The parent HTML element that will contain this view. - * @param {Controller} controller - The controller that will manage the user actions from this view. + * @param {module:Controller.Controller} controller - The controller that will manage the user actions from this view. */ constructor(container, controller) { /** The parent HTML element that will contain this view. @@ -22,7 +22,7 @@ export class VirtualDOMView { this.container = container; /** The controller that will manage the user actions from this view. - * @type {Controller} */ + * @type {module:Controller.Controller} */ this.controller = controller; /** Form field values that need to be set after rendering. diff --git a/jsdoc.json b/jsdoc.json index d5fbbb34..b0d99844 100644 --- a/jsdoc.json +++ b/jsdoc.json @@ -1,9 +1,5 @@ { "templates": { - "better-docs": { - "name": "Sozi API documentation", - "logo": "sozi-logo-bg.png" - }, "cleverLinks": false, "navigation": [ { @@ -27,11 +23,9 @@ "allowUnknownTags": ["category"] }, "plugins": [ - "plugins/markdown", - "node_modules/better-docs/category" + "plugins/markdown" ], "opts": { - "template": "node_modules/better-docs", "readme": "./README.jsdoc.md" } } diff --git a/package-lock.json b/package-lock.json index c3b074da..ff668c10 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "sozi", - "version": "20.05.09", + "version": "20.08.17", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -941,24 +941,6 @@ "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/polyfill": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.4.tgz", - "integrity": "sha512-8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg==", - "dev": true, - "requires": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - } - } - }, "@babel/preset-env": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz", @@ -1167,21 +1149,6 @@ "defer-to-connect": "^1.0.1" } }, - "@types/babel-types": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.8.tgz", - "integrity": "sha512-jvu8g4LR7+p6ao30RhTREnEhHxmP4/R9D9/rOR/Kq14FztORty9SKgtOZUNZNMB9CXLxZ54EWu4dArUE8WdTsw==", - "dev": true - }, - "@types/babylon": { - "version": "6.16.5", - "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", - "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", - "dev": true, - "requires": { - "@types/babel-types": "*" - } - }, "@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", @@ -1227,29 +1194,6 @@ "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", "dev": true }, - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", - "dev": true - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", - "dev": true, - "requires": { - "acorn": "^4.0.4" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, "acorn-node": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", @@ -1281,28 +1225,6 @@ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -1504,12 +1426,6 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, - "ast-types": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.3.tgz", - "integrity": "sha512-XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==", - "dev": true - }, "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", @@ -1543,56 +1459,6 @@ "object.assign": "^4.1.0" } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -1665,22 +1531,6 @@ "integrity": "sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM=", "dev": true }, - "better-docs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/better-docs/-/better-docs-2.3.0.tgz", - "integrity": "sha512-s+lvppWKGs9CU3r9bxnKAGbsW/rzSEeaEtVZE9qc+14098MiWy4pAAsXtTifkzgUnvDfWhnmPXZEc+fCAA0cBA==", - "dev": true, - "requires": { - "brace": "^0.11.1", - "react-ace": "^6.5.0", - "react-docgen": "^5.3.0", - "react-frame-component": "^4.1.1", - "typescript": "^3.7.5", - "underscore": "^1.9.1", - "vue-docgen-api": "^3.22.0", - "vue2-ace-editor": "^0.0.13" - } - }, "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", @@ -1706,12 +1556,6 @@ "dev": true, "optional": true }, - "brace": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/brace/-/brace-0.11.1.tgz", - "integrity": "sha1-SJb8ydVE7vRfS7dmDbMg07N5/lg=", - "dev": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2127,12 +1971,6 @@ "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", "dev": true }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, "caniuse-lite": { "version": "1.0.30001114", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001114.tgz", @@ -2148,16 +1986,6 @@ "lodash": "^4.17.14" } }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -2171,15 +1999,6 @@ "supports-color": "^2.0.0" } }, - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "dev": true, - "requires": { - "is-regex": "^1.0.3" - } - }, "chokidar": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", @@ -2325,23 +2144,6 @@ } } }, - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "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 - } - } - }, "cli": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", @@ -2368,17 +2170,6 @@ } } }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, "clone": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", @@ -2501,18 +2292,6 @@ "date-now": "^0.1.4" } }, - "constantinople": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", - "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", - "dev": true, - "requires": { - "@types/babel-types": "^7.0.0", - "@types/babylon": "^6.16.2", - "babel-types": "^6.26.0", - "babylon": "^6.18.0" - } - }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -2700,12 +2479,6 @@ "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2852,12 +2625,6 @@ } } }, - "diff-match-patch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", - "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", - "dev": true - }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -2877,21 +2644,6 @@ } } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", - "dev": true - }, "dom-serializer": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz", @@ -4925,12 +4677,6 @@ } } }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, "hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -4941,12 +4687,6 @@ "minimalistic-assert": "^1.0.1" } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -5241,24 +4981,6 @@ } } }, - "is-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", - "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", - "dev": true, - "requires": { - "acorn": "~4.0.2", - "object-assign": "^4.0.1" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -5325,21 +5047,6 @@ "isobject": "^3.0.1" } }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, "is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", @@ -5396,12 +5103,6 @@ "resolved": "https://registry.npmjs.org/jed/-/jed-1.1.1.tgz", "integrity": "sha1-elSbvZ/+FYWwzQoZHiAwVb7ldLQ=" }, - "js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -5588,16 +5289,6 @@ } } }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", - "dev": true, - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, "junk": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", @@ -5638,12 +5329,6 @@ "stream-splicer": "^2.0.0" } }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -5761,24 +5446,12 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, "lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", "dev": true }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -5794,16 +5467,6 @@ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "make-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", @@ -5954,12 +5617,6 @@ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -6108,15 +5765,6 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "node-dir": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", - "dev": true, - "requires": { - "minimatch": "^3.0.2" - } - }, "node-releases": { "version": "1.1.60", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", @@ -6732,12 +6380,6 @@ "number-is-nan": "^1.0.0" } }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -6756,26 +6398,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, "proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -6783,12 +6405,6 @@ "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 - }, "public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -6811,132 +6427,6 @@ } } }, - "pug": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz", - "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==", - "dev": true, - "requires": { - "pug-code-gen": "^2.0.2", - "pug-filters": "^3.1.1", - "pug-lexer": "^4.1.0", - "pug-linker": "^3.0.6", - "pug-load": "^2.0.12", - "pug-parser": "^5.0.1", - "pug-runtime": "^2.0.5", - "pug-strip-comments": "^1.0.4" - } - }, - "pug-attrs": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", - "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", - "dev": true, - "requires": { - "constantinople": "^3.0.1", - "js-stringify": "^1.0.1", - "pug-runtime": "^2.0.5" - } - }, - "pug-code-gen": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz", - "integrity": "sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==", - "dev": true, - "requires": { - "constantinople": "^3.1.2", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.1", - "pug-attrs": "^2.0.4", - "pug-error": "^1.3.3", - "pug-runtime": "^2.0.5", - "void-elements": "^2.0.1", - "with": "^5.0.0" - } - }, - "pug-error": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", - "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==", - "dev": true - }, - "pug-filters": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz", - "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==", - "dev": true, - "requires": { - "clean-css": "^4.1.11", - "constantinople": "^3.0.1", - "jstransformer": "1.0.0", - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8", - "resolve": "^1.1.6", - "uglify-js": "^2.6.1" - } - }, - "pug-lexer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", - "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", - "dev": true, - "requires": { - "character-parser": "^2.1.1", - "is-expression": "^3.0.0", - "pug-error": "^1.3.3" - } - }, - "pug-linker": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz", - "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==", - "dev": true, - "requires": { - "pug-error": "^1.3.3", - "pug-walk": "^1.1.8" - } - }, - "pug-load": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz", - "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "pug-walk": "^1.1.8" - } - }, - "pug-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz", - "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==", - "dev": true, - "requires": { - "pug-error": "^1.3.3", - "token-stream": "0.0.1" - } - }, - "pug-runtime": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", - "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==", - "dev": true - }, - "pug-strip-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz", - "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==", - "dev": true, - "requires": { - "pug-error": "^1.3.3" - } - }, - "pug-walk": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz", - "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==", - "dev": true - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -6990,48 +6480,6 @@ "integrity": "sha512-dhFtYmQS+V8qQIANyX6zDK+sO50ayDePKApi46ZPK8I6QeyyTDD6LManMa7a3p3c9mLM4zi9QBP41pfhQ9p7Sg==", "dev": true }, - "react-ace": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/react-ace/-/react-ace-6.6.0.tgz", - "integrity": "sha512-Jehhp8bxa8kqiXk07Jzy+uD5qZMBwo43O+raniGHjdX7Qk93xFkKaAz8LxtUVZPJGlRnV5ODMNj0qHwDSN+PBw==", - "dev": true, - "requires": { - "@babel/polyfill": "^7.4.4", - "brace": "^0.11.1", - "diff-match-patch": "^1.0.4", - "lodash.get": "^4.4.2", - "lodash.isequal": "^4.5.0", - "prop-types": "^15.7.2" - } - }, - "react-docgen": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.3.0.tgz", - "integrity": "sha512-hUrv69k6nxazOuOmdGeOpC/ldiKy7Qj/UFpxaQi0eDMrUFUTIPGtY5HJu7BggSmiyAMfREaESbtBL9UzdQ+hyg==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@babel/runtime": "^7.7.6", - "ast-types": "^0.13.2", - "commander": "^2.19.0", - "doctrine": "^3.0.0", - "neo-async": "^2.6.1", - "node-dir": "^0.1.10", - "strip-indent": "^3.0.0" - } - }, - "react-frame-component": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/react-frame-component/-/react-frame-component-4.1.3.tgz", - "integrity": "sha512-4PurhctiqnmC1F5prPZ+LdsalH7pZ3SFA5xoc0HBe8mSHctdLLt4Cr2WXfXOoajHBYq/yiipp9zOgx+vy8GiEA==", - "dev": true - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, "read-only-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", @@ -7086,32 +6534,6 @@ "picomatch": "^2.2.1" } }, - "recast": { - "version": "0.17.6", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.17.6.tgz", - "integrity": "sha512-yoQRMRrK1lszNtbkGyM4kN45AwylV5hMiuEveUBlxytUViWevjvX6w+tzJt1LH4cfUhWt4NZvy3ThIhu6+m5wQ==", - "dev": true, - "requires": { - "ast-types": "0.12.4", - "esprima": "~4.0.0", - "private": "^0.1.8", - "source-map": "~0.6.1" - }, - "dependencies": { - "ast-types": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.4.tgz", - "integrity": "sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw==", - "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 - } - } - }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -7277,15 +6699,6 @@ "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", "dev": true }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "^0.1.1" - } - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -7782,15 +7195,6 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -7984,12 +7388,6 @@ "repeat-string": "^1.6.1" } }, - "token-stream": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", - "integrity": "sha1-zu78cXp2xDFvEm0LnbqlXX598Bo=", - "dev": true - }, "truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -7999,12 +7397,6 @@ "utf8-byte-length": "^1.0.1" } }, - "ts-map": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-map/-/ts-map-1.0.3.tgz", - "integrity": "sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==", - "dev": true - }, "tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", @@ -8031,36 +7423,12 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", - "dev": true - }, "uc.micro": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, "umd": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", @@ -8282,57 +7650,6 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "vue-docgen-api": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-3.26.0.tgz", - "integrity": "sha512-ujdg4i5ZI/wE46RZQMFzKnDGyhEuPCu+fMA86CAd9EIek/6+OqraSVBm5ZkLrbEd5f8xxdnqMU4yiSGHHeao/Q==", - "dev": true, - "requires": { - "@babel/parser": "^7.2.3", - "@babel/types": "^7.0.0", - "ast-types": "^0.12.2", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.5", - "pug": "^2.0.3", - "recast": "^0.17.3", - "ts-map": "^1.0.3", - "typescript": "^3.2.2", - "vue-template-compiler": "^2.0.0" - }, - "dependencies": { - "ast-types": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.12.4.tgz", - "integrity": "sha512-ky/YVYCbtVAS8TdMIaTiPFHwEpRB5z1hctepJplTr3UW5q8TDrpIMCILyk8pmLxGtn2KCtC/lSn7zOsaI7nzDw==", - "dev": true - } - } - }, - "vue-template-compiler": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz", - "integrity": "sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA==", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.1.0" - } - }, - "vue2-ace-editor": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/vue2-ace-editor/-/vue2-ace-editor-0.0.13.tgz", - "integrity": "sha512-uQICyvJzYNix16xeYjNAINuNUQhPbqMR7UQsJeI+ycpEd2otsiNNU73jcZqHkpjuz0uaHDHnrpzQuI/RApsKXA==", - "dev": true, - "requires": { - "brace": "^0.11.0" - } - }, "watchify": { "version": "3.11.1", "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.11.1.tgz", @@ -8402,28 +7719,6 @@ "isexe": "^2.0.0" } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, - "with": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", - "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", - "dev": true, - "requires": { - "acorn": "^3.1.0", - "acorn-globals": "^3.0.0" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -8454,24 +7749,6 @@ "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", "dev": true }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - }, "yargs-parser": { "version": "16.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", diff --git a/package.json b/package.json index 52ca60d6..fe9ec764 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,6 @@ "devDependencies": { "@babel/core": "^7.11.1", "@babel/preset-env": "^7.11.0", - "better-docs": "^2.3.0", "envify": "^4.1.0", "grunt": "^1.2.1", "grunt-babel": "^8.0.0",