From da8364f1e7ffad52f722747ea95ba11bb1c26c94 Mon Sep 17 00:00:00 2001 From: JezerM Date: Mon, 28 Jun 2021 14:21:05 -0600 Subject: [PATCH] Added better documentation --- docs/.gitignore | 1 + docs/docs/Battery.md | 23 + docs/docs/Greeter.md | 348 ++++ docs/docs/GreeterConfig.md | 55 + docs/docs/Language.md | 24 + docs/docs/Layout.md | 24 + docs/docs/Session.md | 24 + docs/docs/ThemeUtils.md | 47 + docs/docs/User.md | 54 + docs/index.js | 37 + docs/jsdoc.json | 17 + docs/{ => manual}/Battery.md | 0 docs/{ => manual}/Greeter.md | 117 +- docs/{ => manual}/GreeterConfig.md | 0 docs/{ => manual}/Language.md | 0 docs/{ => manual}/Layout.md | 0 docs/{ => manual}/Session.md | 0 docs/{ => manual}/ThemeUtils.md | 0 docs/{ => manual}/User.md | 0 docs/package-lock.json | 1817 +++++++++++++++++ docs/package.json | 19 + docs/src/Greeter.js | 441 ++++ docs/src/GreeterConfig.js | 86 + docs/src/LightDMObjects.js | 293 +++ docs/src/ThemeUtils.js | 157 ++ docs/templates/partials/all-docs/all-docs.hbs | 3 + .../partials/all-docs/docs/body/access.hbs | 2 + .../partials/all-docs/docs/body/augments.hbs | 2 + .../partials/all-docs/docs/body/authors.hbs | 2 + .../partials/all-docs/docs/body/body.hbs | 29 + .../partials/all-docs/docs/body/category.hbs | 2 + .../partials/all-docs/docs/body/chainable.hbs | 2 + .../partials/all-docs/docs/body/copyright.hbs | 2 + .../all-docs/docs/body/customTags.hbs | 3 + .../partials/all-docs/docs/body/default.hbs | 2 + .../all-docs/docs/body/deprecated.hbs | 3 + .../all-docs/docs/body/description.hbs | 3 + .../partials/all-docs/docs/body/examples.hbs | 4 + .../partials/all-docs/docs/body/fires.hbs | 3 + .../all-docs/docs/body/implements.hbs | 2 + .../partials/all-docs/docs/body/license.hbs | 2 + .../partials/all-docs/docs/body/mixes.hbs | 3 + .../partials/all-docs/docs/body/overrides.hbs | 2 + .../docs/body/params/param-table-name.hbs | 4 + .../all-docs/docs/body/params/params-list.hbs | 9 + .../docs/body/params/params-table-html.hbs | 20 + .../docs/body/params/params-table.hbs | 12 + .../all-docs/docs/body/params/params.hbs | 4 + .../docs/body/properties/properties-list.hbs | 7 + .../body/properties/properties-table-html.hbs | 21 + .../docs/body/properties/properties-table.hbs | 12 + .../docs/body/properties/properties.hbs | 4 + .../partials/all-docs/docs/body/readOnly.hbs | 2 + .../partials/all-docs/docs/body/requires.hbs | 3 + .../partials/all-docs/docs/body/returns.hbs | 12 + .../partials/all-docs/docs/body/scope.hbs | 10 + .../partials/all-docs/docs/body/see.hbs | 12 + .../partials/all-docs/docs/body/since.hbs | 2 + .../partials/all-docs/docs/body/summary.hbs | 2 + .../partials/all-docs/docs/body/this.hbs | 2 + .../partials/all-docs/docs/body/throws.hbs | 8 + .../partials/all-docs/docs/body/todo.hbs | 22 + .../partials/all-docs/docs/body/version.hbs | 2 + .../templates/partials/all-docs/docs/docs.hbs | 5 + .../partials/all-docs/docs/header.hbs | 3 + .../member-index/member-index-grouped.hbs | 4 + .../docs/member-index/member-index-list.hbs | 4 + .../docs/member-index/member-index.hbs | 26 + .../partials/all-docs/docs/members.hbs | 3 + .../global-index/global-index-dl.hbs | 11 + .../global-index/global-index-grouped.hbs | 9 + .../global-index/global-index-kinds.hbs | 11 + .../global-index/global-index-table.hbs | 22 + .../main-index/global-index/global-index.hbs | 10 + .../partials/main-index/main-index.hbs | 6 + .../module-index/module-index-dl.hbs | 11 + .../module-index/module-index-grouped.hbs | 7 + .../module-index/module-index-table.hbs | 22 + .../main-index/module-index/module-index.hbs | 5 + docs/templates/partials/main.hbs | 2 + .../partials/shared/heading-indent.hbs | 1 + .../partials/shared/index-indent.hbs | 1 + docs/templates/partials/shared/separator.hbs | 5 + .../shared/signature/sig-link-html.hbs | 14 + .../shared/signature/sig-link-parent.hbs | 13 + .../partials/shared/signature/sig-link.hbs | 14 + .../partials/shared/signature/sig-name.hbs | 15 + .../partials/shared/value/defaultvalue.hbs | 1 + docs/templates/partials/shared/value/link.hbs | 25 + .../shared/value/linked-type-list.hbs | 4 + 90 files changed, 4058 insertions(+), 21 deletions(-) create mode 100644 docs/.gitignore create mode 100644 docs/docs/Battery.md create mode 100644 docs/docs/Greeter.md create mode 100644 docs/docs/GreeterConfig.md create mode 100644 docs/docs/Language.md create mode 100644 docs/docs/Layout.md create mode 100644 docs/docs/Session.md create mode 100644 docs/docs/ThemeUtils.md create mode 100644 docs/docs/User.md create mode 100644 docs/index.js create mode 100644 docs/jsdoc.json rename docs/{ => manual}/Battery.md (100%) rename docs/{ => manual}/Greeter.md (69%) rename docs/{ => manual}/GreeterConfig.md (100%) rename docs/{ => manual}/Language.md (100%) rename docs/{ => manual}/Layout.md (100%) rename docs/{ => manual}/Session.md (100%) rename docs/{ => manual}/ThemeUtils.md (100%) rename docs/{ => manual}/User.md (100%) create mode 100644 docs/package-lock.json create mode 100644 docs/package.json create mode 100644 docs/src/Greeter.js create mode 100644 docs/src/GreeterConfig.js create mode 100644 docs/src/LightDMObjects.js create mode 100644 docs/src/ThemeUtils.js create mode 100644 docs/templates/partials/all-docs/all-docs.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/access.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/augments.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/authors.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/body.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/category.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/chainable.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/copyright.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/customTags.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/default.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/deprecated.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/description.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/examples.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/fires.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/implements.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/license.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/mixes.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/overrides.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/params/param-table-name.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/params/params-list.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/params/params-table-html.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/params/params-table.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/params/params.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/properties/properties-list.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/properties/properties-table-html.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/properties/properties-table.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/properties/properties.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/readOnly.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/requires.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/returns.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/scope.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/see.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/since.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/summary.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/this.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/throws.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/todo.hbs create mode 100644 docs/templates/partials/all-docs/docs/body/version.hbs create mode 100644 docs/templates/partials/all-docs/docs/docs.hbs create mode 100644 docs/templates/partials/all-docs/docs/header.hbs create mode 100644 docs/templates/partials/all-docs/docs/member-index/member-index-grouped.hbs create mode 100644 docs/templates/partials/all-docs/docs/member-index/member-index-list.hbs create mode 100644 docs/templates/partials/all-docs/docs/member-index/member-index.hbs create mode 100644 docs/templates/partials/all-docs/docs/members.hbs create mode 100644 docs/templates/partials/main-index/global-index/global-index-dl.hbs create mode 100644 docs/templates/partials/main-index/global-index/global-index-grouped.hbs create mode 100644 docs/templates/partials/main-index/global-index/global-index-kinds.hbs create mode 100644 docs/templates/partials/main-index/global-index/global-index-table.hbs create mode 100644 docs/templates/partials/main-index/global-index/global-index.hbs create mode 100644 docs/templates/partials/main-index/main-index.hbs create mode 100644 docs/templates/partials/main-index/module-index/module-index-dl.hbs create mode 100644 docs/templates/partials/main-index/module-index/module-index-grouped.hbs create mode 100644 docs/templates/partials/main-index/module-index/module-index-table.hbs create mode 100644 docs/templates/partials/main-index/module-index/module-index.hbs create mode 100644 docs/templates/partials/main.hbs create mode 100644 docs/templates/partials/shared/heading-indent.hbs create mode 100644 docs/templates/partials/shared/index-indent.hbs create mode 100644 docs/templates/partials/shared/separator.hbs create mode 100644 docs/templates/partials/shared/signature/sig-link-html.hbs create mode 100644 docs/templates/partials/shared/signature/sig-link-parent.hbs create mode 100644 docs/templates/partials/shared/signature/sig-link.hbs create mode 100644 docs/templates/partials/shared/signature/sig-name.hbs create mode 100644 docs/templates/partials/shared/value/defaultvalue.hbs create mode 100644 docs/templates/partials/shared/value/link.hbs create mode 100644 docs/templates/partials/shared/value/linked-type-list.hbs diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/docs/docs/Battery.md b/docs/docs/Battery.md new file mode 100644 index 0000000..27a31a4 --- /dev/null +++ b/docs/docs/Battery.md @@ -0,0 +1,23 @@ + + +## LightDM.Battery +Interface for object that holds info about the battery on the system. This object is not created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + + + +### battery.level : String \| Null +The battery level. + +**Read only**: true + + +### battery.name : String \| Null +The battery's name. + +**Read only**: true + + +### battery.state : String \| Null +The state for the battery + +**Read only**: true diff --git a/docs/docs/Greeter.md b/docs/docs/Greeter.md new file mode 100644 index 0000000..523e1fe --- /dev/null +++ b/docs/docs/Greeter.md @@ -0,0 +1,348 @@ + + +## LightDM.Greeter +Base class for the greeter's Theme JavaScript API. Greeter themes will interact +directly with an object derived from this class to facilitate the user log-in process. +The greeter will automatically create an instance when it starts. +The instance can be accessed using the global variable: [`lightdm`](#dl-window-lightdm). + + + +### greeter.authentication\_user : String \| Null +The username of the user being authenticated or [null](null) +if no authentication is in progress + +**Read only**: true + + +### greeter.autologin\_guest : Boolean +Whether or not the guest account should be automatically logged +into when the timer expires. + +**Read only**: true + + +### greeter.autologin\_timeout : Number +The number of seconds to wait before automatically logging in. + +**Read only**: true + + +### greeter.autologin\_user : String +The username with which to automattically log in when the timer expires. + +**Read only**: true + + +### greeter.batteryData : Battery +The battery data + +**Read only**: true + + +### greeter.brightness : Number +Gets the brightness + + + +### greeter.brightness +Sets the brightness + + +| Param | Type | Description | +| --- | --- | --- | +| quantity | Number | The quantity to set | + + + +### greeter.can\_access\_battery : boolean +Whether or not the greeter can access to battery data. + +**Read only**: true + + +### greeter.can\_access\_brightness : boolean +Whether or not the greeter can control display brightness. + +**Read only**: true + + +### greeter.can\_hibernate : Boolean +Whether or not the greeter can make the system hibernate. + +**Read only**: true + + +### greeter.can\_restart : Boolean +Whether or not the greeter can make the system restart. + +**Read only**: true + + +### greeter.can\_shutdown : Boolean +Whether or not the greeter can make the system shutdown. + +**Read only**: true + + +### greeter.can\_suspend : Boolean +Whether or not the greeter can make the system suspend/sleep. + +**Read only**: true + + +### greeter.default\_session : String +The name of the default session. + +**Read only**: true + + +### greeter.has\_guest\_account : Boolean +Whether or not guest sessions are supported. + +**Read only**: true + + +### greeter.hide\_users\_hint : boolean +Whether or not user accounts should be hidden. + +**Read only**: true + + +### greeter.hostname : String +The system's hostname. + +**Read only**: true + + +### greeter.in\_authentication : Boolean +Whether or not the greeter is in the process of authenticating. + +**Read only**: true + + +### greeter.is\_authenticated : Boolean +Whether or not the greeter has successfully authenticated. + +**Read only**: true + + +### greeter.language : Language \| null +The current language or [null](null) if no language. + +**Read only**: true + + +### greeter.languages : Array.<Language> +A list of languages to present to the user. + +**Read only**: true + + +### greeter.layout : Layout +The currently active layout for the selected user. + + + +### greeter.layouts : Array.<Layout> +A list of keyboard layouts to present to the user. + +**Read only**: true + + +### greeter.lock\_hint : Boolean +Whether or not the greeter was started as a lock screen. + +**Read only**: true + + +### greeter.select\_guest\_hint : Boolean +Whether or not the guest account should be selected by default. + +**Read only**: true + + +### greeter.select\_user\_hint : String +The username to select by default. + +**Read only**: true + + +### greeter.sessions : Array.<Session> +List of available sessions. + +**Read only**: true + + +### greeter.show\_manual\_login\_hint : Boolean +Check if a manual login option should be shown. If [true](true), the theme should +provide a way for a username to be entered manually. Otherwise, themes that show +a user list may limit logins to only those users. + +**Read only**: true + + +### greeter.show\_remote\_login\_hint : Boolean +Check if a remote login option should be shown. If [true](true), the theme should provide +a way for a user to log into a remote desktop server. + +**Read only**: true +**Internal**: + + +### greeter.users : Array.<User> +List of available users. + +**Read only**: true + + +### greeter.authentication\_complete : Signal +Gets emitted when the greeter has completed authentication. + + + +### greeter.autologin\_timer\_expired : Signal +Gets emitted when the automatic login timer has expired. + + + +### greeter.brightness\_update : Signal +Gets emitted when brightness is updated + + + +### greeter.idle : Signal +Gets emitted when the user has logged in and the greeter is no longer needed. + + + +### greeter.reset : Signal +Gets emitted when the user is returning to a greeter that +was previously marked idle. + + + +### greeter.show\_message : Signal +Gets emitted when the greeter should show a message to the user. + + + +### greeter.show\_prompt : Signal +Gets emitted when the greeter should show a prompt to the user. + + + +### greeter.authenticate(username) +Starts the authentication procedure for a user. + + +| Param | Type | Description | +| --- | --- | --- | +| username | String \| null | A username or [null](null) to prompt for a username. | + + + +### greeter.authenticate\_as\_guest() +Starts the authentication procedure for the guest user. + + + +### greeter.batteryUpdate() +Updates the battery data + + + +### greeter.brightnessSet(quantity) +Set the brightness to quantity + + +| Param | Type | Description | +| --- | --- | --- | +| quantity | Number | The quantity to set | + + + +### greeter.brightnessIncrease(quantity) +Increase the brightness by quantity + + +| Param | Type | Description | +| --- | --- | --- | +| quantity | Number | The quantity to increase | + + + +### greeter.brightnessDecrease(quantity) +Decrease the brightness by quantity + + +| Param | Type | Description | +| --- | --- | --- | +| quantity | Number | The quantity to decrease | + + + +### greeter.cancel\_authentication() +Cancel user authentication that is currently in progress. + + + +### greeter.cancel\_autologin() +Cancel the automatic login. + + + +### greeter.hibernate() ⇒ Boolean +Triggers the system to hibernate. + +**Returns**: Boolean - [true](true) if hibernation initiated, otherwise [false](false) + + +### greeter.respond(response) +Provide a response to a prompt. + + +| Param | Type | +| --- | --- | +| response | \* | + + + +### greeter.restart() ⇒ Boolean +Triggers the system to restart. + +**Returns**: Boolean - [true](true) if restart initiated, otherwise [false](false) + + +### greeter.set\_language(language) ⇒ Boolean +Set the language for the currently authenticated user. + +**Returns**: Boolean - [true](true) if successful, otherwise [false](false) + +| Param | Type | Description | +| --- | --- | --- | +| language | String | The language in the form of a locale specification (e.g. 'de_DE.UTF-8') | + + + +### greeter.shutdown() ⇒ Boolean +Triggers the system to shutdown. + +**Returns**: Boolean - [true](true) if shutdown initiated, otherwise [false](false) + + +### greeter.start\_session(session) ⇒ Boolean +Start a session for the authenticated user. + +**Returns**: Boolean - [true](true) if successful, otherwise [false](false) + +| Param | Type | Description | +| --- | --- | --- | +| session | String \| null | The session to log into or [null](null) to use the default. | + + + +### greeter.suspend() ⇒ Boolean +Triggers the system to suspend/sleep. + +**Returns**: Boolean - [true](true) if suspend/sleep initiated, otherwise [false](false) diff --git a/docs/docs/GreeterConfig.md b/docs/docs/GreeterConfig.md new file mode 100644 index 0000000..fa23f0a --- /dev/null +++ b/docs/docs/GreeterConfig.md @@ -0,0 +1,55 @@ + + +## LightDM.GreeterConfig +Provides greeter themes with a way to access values from the greeter's config +file located at `/etc/lightdm/web-greeter.yml`. The greeter will +create an instance of this class when it starts. The instance can be accessed +with the global variable: [`greeter_config`](#dl-window-greeter_config). + + + +### greeterConfig.branding : object +Holds keys/values from the `branding` section of the config file. + +**Read only**: true +**Properties** + +| Name | Type | Description | +| --- | --- | --- | +| background_images_dir | string | Path to directory that contains background images for use in greeter themes. | +| logo | string | Path to distro logo image for use in greeter themes. | +| user_image | string | Default user image/avatar. This is used by greeter themes for users that have not configured a `.face` image. | + + + +### greeterConfig.greeter : object +Holds keys/values from the `greeter` section of the config file. + +**Read only**: true +**Properties** + +| Name | Type | Description | +| --- | --- | --- | +| debug_mode | boolean | Greeter theme debug mode. | +| detect_theme_errors | boolean | Provide an option to load a fallback theme when theme errors are detected. | +| screensaver_timeout | number | Blank the screen after this many seconds of inactivity. | +| secure_mode | boolean | Don't allow themes to make remote http requests. | +| time_format | string | A moment.js format string to be used by the greeter to generate localized time for display. | +| time_language | string | Language to use when displaying the time or `auto` to use the system's language. | +| theme | string | The name of the theme to be used by the greeter. | + + + +### greeterConfig.features : Object +Holds keys/values from the `features` section of the config file. + +**Properties** + +| Name | Type | Description | +| --- | --- | --- | +| battery | Boolean | Enable greeter and themes to ger battery status. | +| backlight | Object | | +| enabled | Boolean | Enable greeter and themes to control display backlight. | +| value | Number | The amount to increase/decrease brightness by greeter. | +| steps | Number | How many steps are needed to do the change. | + diff --git a/docs/docs/Language.md b/docs/docs/Language.md new file mode 100644 index 0000000..f6d7a2f --- /dev/null +++ b/docs/docs/Language.md @@ -0,0 +1,24 @@ + + +## LightDM.Language +Interface for object that holds info about a language on the system. Language objects are not +created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + + + +### language.code : String +The code for the language. + +**Read only**: true + + +### language.name : String +The name for the layout. + +**Read only**: true + + +### language.territory : String +The territory for the language. + +**Read only**: true diff --git a/docs/docs/Layout.md b/docs/docs/Layout.md new file mode 100644 index 0000000..6513a43 --- /dev/null +++ b/docs/docs/Layout.md @@ -0,0 +1,24 @@ + + +## LightDM.Layout +Interface for object that holds info about a keyboard layout on the system. Language +objects are not created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + + + +### layout.description : String +The description for the layout. + +**Read only**: true + + +### layout.name : String +The name for the layout. + +**Read only**: true + + +### layout.short\_description : String +The territory for the layout. + +**Read only**: true diff --git a/docs/docs/Session.md b/docs/docs/Session.md new file mode 100644 index 0000000..df68421 --- /dev/null +++ b/docs/docs/Session.md @@ -0,0 +1,24 @@ + + +## LightDM.Session +Interface for object that holds info about a session. Session objects are not +created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + + + +### session.name : String +The name for the session. + +**Read only**: true + + +### session.key : String +The key for the session. + +**Read only**: true + + +### session.comment : String +The comment for the session. + +**Read only**: true diff --git a/docs/docs/ThemeUtils.md b/docs/docs/ThemeUtils.md new file mode 100644 index 0000000..10ff894 --- /dev/null +++ b/docs/docs/ThemeUtils.md @@ -0,0 +1,47 @@ + + +## LightDM.ThemeUtils +Provides various utility methods for use in greeter themes. The greeter will automatically +create an instance of this class when it starts. The instance can be accessed +with the global variable: [`theme_utils`](#dl-window-theme_utils). + + + +### themeUtils.bind\_this(context) ⇒ Object +Binds `this` to class, `context`, for all of the class's methods. + +**Returns**: Object - `context` with `this` bound to it for all of its methods. + +| Param | Type | Description | +| --- | --- | --- | +| context | Object | An ES6 class instance with at least one method. | + + + +### themeUtils.dirlist(path, only_images, callback) +Returns the contents of directory found at `path` provided that the (normalized) `path` +meets at least one of the following conditions: + * Is located within the greeter themes' root directory. + * Has been explicitly allowed in the greeter's config file. + * Is located within the greeter's shared data directory (`/var/lib/lightdm-data`). + * Is located in `/tmp`. + + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| path | String | | The abs path to desired directory. | +| only_images | Boolean | true | Include only images in the results. Default `true`. | +| callback | function | | Callback function to be called with the result. | + + + +### themeUtils.get\_current\_localized\_time() ⇒ String +Get the current time in a localized format. Time format and language are auto-detected +by default, but can be set manually in the greeter config file. + * `language` defaults to the system's language, but can be set manually in the config file. + * When `time_format` config file option has a valid value, time will be formatted + according to that value. + * When `time_format` does not have a valid value, the time format will be `LT` + which is `1:00 PM` or `13:00` depending on the system's locale. + +**Returns**: String - The current localized time. diff --git a/docs/docs/User.md b/docs/docs/User.md new file mode 100644 index 0000000..a0a787d --- /dev/null +++ b/docs/docs/User.md @@ -0,0 +1,54 @@ + + +## LightDM.User +Interface for object that holds info about a user account on the system. User +objects are not created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + + + +### user.display\_name : String +The display name for the user. + +**Read only**: true + + +### user.language : String +The language for the user. + +**Read only**: true + + +### user.layout : String +The keyboard layout for the user. + +**Read only**: true + + +### user.image : String +The image for the user. + +**Read only**: true + + +### user.home\_directory : String +The home_directory for the user. + +**Read only**: true + + +### user.username : String +The username for the user. + +**Read only**: true + + +### user.logged\_in : Boolean +Whether or not the user is currently logged in. + +**Read only**: true + + +### user.session : String \| Null +The last session that the user logged into. + +**Read only**: true diff --git a/docs/index.js b/docs/index.js new file mode 100644 index 0000000..5f43583 --- /dev/null +++ b/docs/index.js @@ -0,0 +1,37 @@ +'use strict' +const jsdoc2md = require("jsdoc-to-markdown") +const fs = require('fs') +const path = require('path') + +const outputDir = "./docs/" + +function generateFiles(file) { + const templateData = jsdoc2md.getTemplateDataSync({ + files: file, + //configure: "./jsdoc.json" + }) + + let classNames = templateData.reduce( (classNames, identifier) => { + if (identifier.kind == 'class') { + classNames.push(identifier.name) + } + return classNames + }, []) + + for (const className of classNames) { + const template = `{{#class name="${className}"}}{{>docs}}{{/class}}` + console.log(`rendering ${className}, template: ${template}`) + + const output = jsdoc2md.renderSync({ + data: templateData, + template: template, + partial: ["templates/partials/**/*.hbs"], + "global-index-format": "none", + "module-index-format": "none" + }) + + fs.writeFileSync(path.resolve(outputDir, `${className}.md`), output) + } +} + +generateFiles(["src/*.js"]) diff --git a/docs/jsdoc.json b/docs/jsdoc.json new file mode 100644 index 0000000..b821875 --- /dev/null +++ b/docs/jsdoc.json @@ -0,0 +1,17 @@ +{ + "plugins": [], + "recurseDepth": 10, + "source": { + "include": ["test"], + "includePattern": ".+\\.js(doc|x)?$", + "excludePattern": "(node_modules)" + }, + "templates": { + "cleverLinks": false, + "monospaceLinks": false + }, + "opts": { + "recurse": "true", + "destination": "./docs/" + } +} diff --git a/docs/Battery.md b/docs/manual/Battery.md similarity index 100% rename from docs/Battery.md rename to docs/manual/Battery.md diff --git a/docs/Greeter.md b/docs/manual/Greeter.md similarity index 69% rename from docs/Greeter.md rename to docs/manual/Greeter.md index c887fdf..09b5a02 100644 --- a/docs/Greeter.md +++ b/docs/manual/Greeter.md @@ -28,15 +28,6 @@ Cancel the user authentication that is currently in progress. ## cancel_autologin() Cancels the automatic login. -## get_hint(name) -Get the value of a hint. - -**Arguments**: -- `name` [String] - -**Returns**: -- [String | Boolean | Number | Null] - ## hibernate() Triggers the system to hibernate. @@ -44,12 +35,6 @@ Triggers the system to hibernate. - [Boolean] `true` if hibernation initiated, otherwise `false` -## layout(value) -Set the active layout for the selected user. - -**Arguments**: -- `value` [LightDM.layout] - ## respond(response) Provide a response to a greeter @@ -103,120 +88,210 @@ Triggers the system to suspend/sleep. ## authentication_user **Type**: [String | Null] +**Readonly** The username of the user being authenticated or null if there is no authentication in progress. ## autologin_guest **Type**: [Boolean] +**Readonly** Whether or not the guest account should be automatically logged into when the timer expires. ## autologin_timeout **Type**: [Number] +**Readonly** The number of seconds to wait before automatically loggin in. ## autologin_user **Type**: [Boolean] +**Readonly** The username with which to automatically log in when the timer expires. +## batteryData +**Type**: [LightDM.Battery] +**Readonly** + +The battery data. + +## brightness +**Type**: [Number] + +The display brightness. + +## can_access_battery +**Type**: [Boolean] +**Readonly** + +Wheter or not the greeter can access to battery data. + +## can_access_brightness +**Type**: [Boolean] +**Readonly** + +Whether or not the greeter can control display brightness. + ## can_hibernate **Type**: [Boolean] +**Readonly** Whether or not the greeter can make the system hibernate. ## can_restart **Type**: [Boolean] +**Readonly** Whether or not the greeter can make the system restart. ## can_shutdown **Type**: [Boolean] +**Readonly** Whether or not the greeter can make the system shutdown. ## can_suspend **Type**: [Boolean] +**Readonly** Whether or not the greeter can make the system suspend/sleep. ## default_session **Type**: [String] +**Readonly** The name of the default session ## has_guest_account **Type**: [Boolean] +**Readonly** Whether or not guest sessions are supported -## hide_users +## hide_users_hint **Type**: [Boolean] +**Readonly** Whether or not user accounts should be hidden ## hostname **Type**: [String] +**Readonly** The system's hostname ## in_authentication **Type**: [Boolean] +**Readonly** Whether or not the greeter is in the process of authenticating. ## is_authenticated **Type**: [Boolean] +**Readonly** Whether or not the greeter has succesfully authenticated. ## language **Type**: [LightDM.Language | Null] +**Readonly** The current language or `null` if no language. ## languages **Type**: [Array<LightDM.Language>] +**Readonly** A list of languages to present to the user. ## layout **Type**: [LightDM.Layout] +**Readonly** The currently active layout for the selected user. ## layouts **Type**: [Array<LightDM.Layout>] +**Readonly** A list of keyboard layouts to present to the user. ## lock_hint **Type**: [Boolean] +**Readonly** Whether or not the greeter was started as a lock screen. -## num_users -**Type**: [Number] - -The number of users able to log in - ## select_guest_hint **Type**: [Boolean] +**Readonly** Whether or not the guest account should be selected by default ## select_user_hint **Type**: [String] +**Readonly** The username to select by default. ## sessions **Type**: [String] +**Readonly** List of available sessions. +## show_manual_login_hint +**Type**: [Boolean] +**Readonly** + +Check if manual login should be shown. If `true`, the theme should provide a way for username to be entered manually. Otherwise, themes that show a user list may limit logins to only those users. + +## show_remote_login_hint +**Type**: [Boolean] +**Readonly** + +Check if a remote login option should be shown. If `true`, the theme should provide a way for a user to log into a remote desktop server. + ## users **Type**: [Array<LightDM.User>] +**Readonly** List of available users. + +# Signals + +## authentication_complete +**Type**: [Signal] + +Gets emitted when the greeter has completed authentication. + +## autologin_timer_expired +**Type**: [Signal] + +Gets emitted when the automatic login timer has expired. + +## brightness_update +**Type**: [Signal] + +Gets emitted when brightness is updated. + +## idle +**Type**: [Signal] + +Gets emitted when the user has logged in and the greeter is no longer needed. + +## reset +**Type**: [Signal] + +Gets emitted when the user is returning to a greeter that was previously marked idle. + +## show_message +**Type**: [Signal] + +Get emitted when the greeter should show a message to the user. + +## show_prompt +**Type**: [Signal] + +Gets emitted when the greeter should show a prompt to the user. diff --git a/docs/GreeterConfig.md b/docs/manual/GreeterConfig.md similarity index 100% rename from docs/GreeterConfig.md rename to docs/manual/GreeterConfig.md diff --git a/docs/Language.md b/docs/manual/Language.md similarity index 100% rename from docs/Language.md rename to docs/manual/Language.md diff --git a/docs/Layout.md b/docs/manual/Layout.md similarity index 100% rename from docs/Layout.md rename to docs/manual/Layout.md diff --git a/docs/Session.md b/docs/manual/Session.md similarity index 100% rename from docs/Session.md rename to docs/manual/Session.md diff --git a/docs/ThemeUtils.md b/docs/manual/ThemeUtils.md similarity index 100% rename from docs/ThemeUtils.md rename to docs/manual/ThemeUtils.md diff --git a/docs/User.md b/docs/manual/User.md similarity index 100% rename from docs/User.md rename to docs/manual/User.md diff --git a/docs/package-lock.json b/docs/package-lock.json new file mode 100644 index 0000000..2df8ddd --- /dev/null +++ b/docs/package-lock.json @@ -0,0 +1,1817 @@ +{ + "name": "docs", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "jsdoc-to-markdown": "^7.0.1" + } + }, + "node_modules/@babel/parser": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/ansi-escape-sequences/node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/cache-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", + "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", + "dev": true, + "dependencies": { + "array-back": "^4.0.1", + "fs-then-native": "^2.0.0", + "mkdirp2": "^1.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-point/node_modules/array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/collect-all": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", + "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", + "dev": true, + "dependencies": { + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/command-line-args": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", + "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-args/node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/command-line-args/node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/command-line-tool": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", + "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "dev": true, + "dependencies": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-tool/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "dependencies": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/common-sequence": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", + "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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 + }, + "node_modules/config-master": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", + "dev": true, + "dependencies": { + "walk-back": "^2.0.1" + } + }, + "node_modules/config-master/node_modules/walk-back": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/dmd": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.0.0.tgz", + "integrity": "sha512-PwWZlqZnJPETwqZZ70haRa+UDZcD5jeBD3ywW1Kf+jYYv0MHu/S7Ri9jsSoeTMwkcMVW9hXOMA1IZUMEufBhOg==", + "dev": true, + "dependencies": { + "array-back": "^5.0.0", + "cache-point": "^2.0.0", + "common-sequence": "^2.0.0", + "file-set": "^4.0.1", + "handlebars": "^4.7.7", + "marked": "^2.0.0", + "object-get": "^2.1.1", + "reduce-flatten": "^3.0.0", + "reduce-unique": "^2.0.1", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/file-set": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", + "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "dev": true, + "dependencies": { + "array-back": "^5.0.0", + "glob": "^7.1.6" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-replace/node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fs-then-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/js2xmlparser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", + "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", + "dev": true, + "dependencies": { + "xmlcreate": "^2.0.3" + } + }, + "node_modules/jsdoc": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz", + "integrity": "sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.9.4", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.1", + "klaw": "^3.0.0", + "markdown-it": "^10.0.0", + "markdown-it-anchor": "^5.2.7", + "marked": "^2.0.3", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.13.1" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=8.15.0" + } + }, + "node_modules/jsdoc-api": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-7.0.1.tgz", + "integrity": "sha512-SttT7mAvl/L9liIoOoa647ksFlD+fyNP2Vy80MBRi6akOmJQ4ryQjMBOPfg1veKfwVp/8f3My8Bb2JnVGL9wVg==", + "dev": true, + "dependencies": { + "array-back": "^5.0.0", + "cache-point": "^2.0.0", + "collect-all": "^1.0.4", + "file-set": "^4.0.2", + "fs-then-native": "^2.0.0", + "jsdoc": "^3.6.6", + "object-to-spawn-args": "^2.0.1", + "temp-path": "^1.0.0", + "walk-back": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/jsdoc-parse": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.0.0.tgz", + "integrity": "sha512-35DhfCHL1bq5r0TvolhyyGhhoem700IfEvviL8I1t99Qxa3aSmWbBEpnvvouA7TyXlwxcQfSg75ryXW8Ppq7FA==", + "dev": true, + "dependencies": { + "array-back": "^5.0.0", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "reduce-extract": "^1.0.0", + "sort-array": "^4.1.3", + "test-value": "^3.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/jsdoc-to-markdown": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-7.0.1.tgz", + "integrity": "sha512-wN6WAHAPiCyAU7m/+F3FbEEV40CGVWMae49SBPIvfy7kDq/2fBrOw86vdbnLdmjt6u/tHnoxHNrHWYbYFN+4UA==", + "dev": true, + "dependencies": { + "array-back": "^5.0.0", + "command-line-tool": "^0.8.0", + "config-master": "^3.1.0", + "dmd": "^6.0.0", + "jsdoc-api": "^7.0.0", + "jsdoc-parse": "^6.0.0", + "walk-back": "^5.0.0" + }, + "bin": { + "jsdoc2md": "bin/cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", + "dev": true + }, + "node_modules/lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, + "node_modules/markdown-it": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "entities": "~2.0.0", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-anchor": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", + "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "dev": true, + "peerDependencies": { + "markdown-it": "*" + } + }, + "node_modules/marked": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", + "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp2": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.4.tgz", + "integrity": "sha512-Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/object-get": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", + "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", + "dev": true + }, + "node_modules/object-to-spawn-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", + "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-extract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", + "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", + "dev": true, + "dependencies": { + "test-value": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-extract/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/reduce-extract/node_modules/test-value": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", + "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", + "dev": true, + "dependencies": { + "array-back": "^1.0.2", + "typical": "^2.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-flatten": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", + "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/reduce-unique": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", + "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/reduce-without": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", + "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", + "dev": true, + "dependencies": { + "test-value": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-without/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/reduce-without/node_modules/test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "dev": true, + "dependencies": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/sort-array": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.4.tgz", + "integrity": "sha512-GVFN6Y1sHKrWaSYOJTk9093ZnrBMc9sP3nuhANU44S4xg3rE6W5Z5WyamuT8VpMBbssnetx5faKCua0LEmUnSw==", + "dev": true, + "dependencies": { + "array-back": "^5.0.0", + "typical": "^6.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sort-array/node_modules/typical": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", + "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/stream-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", + "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", + "dev": true, + "dependencies": { + "array-back": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-connect/node_modules/array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "dependencies": { + "typical": "^2.6.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/stream-via": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", + "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/table-layout": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", + "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "dev": true, + "dependencies": { + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "node_modules/temp-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", + "integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=", + "dev": true + }, + "node_modules/test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "dependencies": { + "array-back": "^2.0.0", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/test-value/node_modules/array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "dependencies": { + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, + "node_modules/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 + }, + "node_modules/uglify-js": { + "version": "3.13.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.10.tgz", + "integrity": "sha512-57H3ACYFXeo1IaZ1w02sfA71wI60MGco/IQFjOqK+WtKoprh7Go2/yvd2HPtoJILO2Or84ncLccI4xoHMTSbGg==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/underscore": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", + "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", + "dev": true + }, + "node_modules/walk-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.0.0.tgz", + "integrity": "sha512-ASerU3aOj9ok+uMNiW0A6/SEwNOxhPmiprbHmPFw1faz7Qmoy9wD3sbmL5HYG+IBxT5c/4cX9O2kSpNv8OAM9A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "node_modules/wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "dependencies": { + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/wordwrapjs/node_modules/reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/xmlcreate": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", + "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", + "dev": true + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", + "dev": true + }, + "ansi-escape-sequences": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz", + "integrity": "sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + } + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-5.0.0.tgz", + "integrity": "sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "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" + } + }, + "cache-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz", + "integrity": "sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==", + "dev": true, + "requires": { + "array-back": "^4.0.1", + "fs-then-native": "^2.0.0", + "mkdirp2": "^1.0.4" + }, + "dependencies": { + "array-back": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz", + "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==", + "dev": true + } + } + }, + "catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "collect-all": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collect-all/-/collect-all-1.0.4.tgz", + "integrity": "sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==", + "dev": true, + "requires": { + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" + } + }, + "command-line-args": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz", + "integrity": "sha512-hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==", + "dev": true, + "requires": { + "array-back": "^3.0.1", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + }, + "typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "dev": true + } + } + }, + "command-line-tool": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz", + "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "common-sequence": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.2.tgz", + "integrity": "sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==", + "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 + }, + "config-master": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", + "dev": true, + "requires": { + "walk-back": "^2.0.1" + }, + "dependencies": { + "walk-back": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=", + "dev": true + } + } + }, + "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 + }, + "dmd": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/dmd/-/dmd-6.0.0.tgz", + "integrity": "sha512-PwWZlqZnJPETwqZZ70haRa+UDZcD5jeBD3ywW1Kf+jYYv0MHu/S7Ri9jsSoeTMwkcMVW9hXOMA1IZUMEufBhOg==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "cache-point": "^2.0.0", + "common-sequence": "^2.0.0", + "file-set": "^4.0.1", + "handlebars": "^4.7.7", + "marked": "^2.0.0", + "object-get": "^2.1.1", + "reduce-flatten": "^3.0.0", + "reduce-unique": "^2.0.1", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^5.0.0" + } + }, + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "file-set": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/file-set/-/file-set-4.0.2.tgz", + "integrity": "sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "glob": "^7.1.6" + } + }, + "find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "dev": true, + "requires": { + "array-back": "^3.0.1" + }, + "dependencies": { + "array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "dev": true + } + } + }, + "fs-then-native": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "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" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "js2xmlparser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz", + "integrity": "sha512-KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==", + "dev": true, + "requires": { + "xmlcreate": "^2.0.3" + } + }, + "jsdoc": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.7.tgz", + "integrity": "sha512-sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==", + "dev": true, + "requires": { + "@babel/parser": "^7.9.4", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.1", + "klaw": "^3.0.0", + "markdown-it": "^10.0.0", + "markdown-it-anchor": "^5.2.7", + "marked": "^2.0.3", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.13.1" + } + }, + "jsdoc-api": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-7.0.1.tgz", + "integrity": "sha512-SttT7mAvl/L9liIoOoa647ksFlD+fyNP2Vy80MBRi6akOmJQ4ryQjMBOPfg1veKfwVp/8f3My8Bb2JnVGL9wVg==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "cache-point": "^2.0.0", + "collect-all": "^1.0.4", + "file-set": "^4.0.2", + "fs-then-native": "^2.0.0", + "jsdoc": "^3.6.6", + "object-to-spawn-args": "^2.0.1", + "temp-path": "^1.0.0", + "walk-back": "^5.0.0" + } + }, + "jsdoc-parse": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-6.0.0.tgz", + "integrity": "sha512-35DhfCHL1bq5r0TvolhyyGhhoem700IfEvviL8I1t99Qxa3aSmWbBEpnvvouA7TyXlwxcQfSg75ryXW8Ppq7FA==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "reduce-extract": "^1.0.0", + "sort-array": "^4.1.3", + "test-value": "^3.0.0" + } + }, + "jsdoc-to-markdown": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-7.0.1.tgz", + "integrity": "sha512-wN6WAHAPiCyAU7m/+F3FbEEV40CGVWMae49SBPIvfy7kDq/2fBrOw86vdbnLdmjt6u/tHnoxHNrHWYbYFN+4UA==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "command-line-tool": "^0.8.0", + "config-master": "^3.1.0", + "dmd": "^6.0.0", + "jsdoc-api": "^7.0.0", + "jsdoc-parse": "^6.0.0", + "walk-back": "^5.0.0" + } + }, + "klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, + "markdown-it": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "entities": "~2.0.0", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "markdown-it-anchor": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz", + "integrity": "sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==", + "dev": true, + "requires": {} + }, + "marked": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-2.1.3.tgz", + "integrity": "sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA==", + "dev": true + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "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": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "mkdirp2": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.4.tgz", + "integrity": "sha512-Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "object-get": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz", + "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==", + "dev": true + }, + "object-to-spawn-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.1.tgz", + "integrity": "sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "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 + }, + "reduce-extract": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz", + "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", + "dev": true, + "requires": { + "test-value": "^1.0.1" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz", + "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", + "dev": true, + "requires": { + "array-back": "^1.0.2", + "typical": "^2.4.2" + } + } + } + }, + "reduce-flatten": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.1.tgz", + "integrity": "sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==", + "dev": true + }, + "reduce-unique": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz", + "integrity": "sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==", + "dev": true + }, + "reduce-without": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz", + "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", + "dev": true, + "requires": { + "test-value": "^2.0.0" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "dev": true, + "requires": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + } + } + } + }, + "requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "sort-array": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/sort-array/-/sort-array-4.1.4.tgz", + "integrity": "sha512-GVFN6Y1sHKrWaSYOJTk9093ZnrBMc9sP3nuhANU44S4xg3rE6W5Z5WyamuT8VpMBbssnetx5faKCua0LEmUnSw==", + "dev": true, + "requires": { + "array-back": "^5.0.0", + "typical": "^6.0.1" + }, + "dependencies": { + "typical": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz", + "integrity": "sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==", + "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 + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "stream-connect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", + "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", + "dev": true, + "requires": { + "array-back": "^1.0.2" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + } + } + }, + "stream-via": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz", + "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "table-layout": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz", + "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "temp-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz", + "integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=", + "dev": true + }, + "test-value": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "typical": "^2.6.1" + }, + "dependencies": { + "array-back": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + } + } + }, + "typical": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "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": "3.13.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.10.tgz", + "integrity": "sha512-57H3ACYFXeo1IaZ1w02sfA71wI60MGco/IQFjOqK+WtKoprh7Go2/yvd2HPtoJILO2Or84ncLccI4xoHMTSbGg==", + "dev": true, + "optional": true + }, + "underscore": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", + "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", + "dev": true + }, + "walk-back": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.0.0.tgz", + "integrity": "sha512-ASerU3aOj9ok+uMNiW0A6/SEwNOxhPmiprbHmPFw1faz7Qmoy9wD3sbmL5HYG+IBxT5c/4cX9O2kSpNv8OAM9A==", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" + }, + "dependencies": { + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xmlcreate": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz", + "integrity": "sha512-HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==", + "dev": true + } + } +} diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 0000000..5617705 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,19 @@ +{ + "name": "docs", + "version": "1.0.0", + "description": "", + "main": "index.js", + "directories": { + "src": "src" + }, + "scripts": { + "build": "node index.js", + "clean": "rm docs/* -f" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "jsdoc-to-markdown": "^7.0.1" + } +} diff --git a/docs/src/Greeter.js b/docs/src/Greeter.js new file mode 100644 index 0000000..416bdcd --- /dev/null +++ b/docs/src/Greeter.js @@ -0,0 +1,441 @@ +/* + * LightDMGreeter.js + * + * Copyright © 2017 Antergos Developers + * + * This file is part of Web Greeter. + * + * Web Greeter is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Web Greeter is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * The following additional terms are in effect as per Section 7 of the license: + * + * The preservation of all legal notices and author attributions in + * the material or in the Appropriate Legal Notices displayed + * by works containing it is required. + * + * You should have received a copy of the GNU General Public License + * along with web-greeter; If not, see . + */ + + +/** + * Base class for the greeter's Theme JavaScript API. Greeter themes will interact + * directly with an object derived from this class to facilitate the user log-in process. + * The greeter will automatically create an instance when it starts. + * The instance can be accessed using the global variable: [`lightdm`](#dl-window-lightdm). + * + * @memberOf LightDM + */ +class Greeter { + + constructor() { + if ( 'lightdm' in window ) { + return window.lightdm; + } + + window.lightdm = ThemeUtils.bind_this( this ); + + return window.lightdm; + } + + /** + * The username of the user being authenticated or {@link null} + * if no authentication is in progress + * @type {String|Null} + * @readonly + */ + get authentication_user() {} + + /** + * Whether or not the guest account should be automatically logged + * into when the timer expires. + * @type {Boolean} + * @readonly + */ + get autologin_guest() {} + + /** + * The number of seconds to wait before automatically logging in. + * @type {Number} + * @readonly + */ + get autologin_timeout() {} + + /** + * The username with which to automattically log in when the timer expires. + * @type {String} + * @readonly + */ + get autologin_user() {} + + /** + * The battery data + * @type {Battery} + * @readonly + */ + get batteryData() {} + + /** + * Gets the brightness + * @type {Number} + */ + get brightness() {} + /** + * Sets the brightness + * @param {Number} quantity The quantity to set + */ + set brightness( quantity ) {} + + /** + * Whether or not the greeter can access to battery data. + * @type {boolean} + * @readonly + */ + get can_access_battery() {} + + /** + * Whether or not the greeter can control display brightness. + * @type {boolean} + * @readonly + */ + get can_access_brightness() {} + + /** + * Whether or not the greeter can make the system hibernate. + * @type {Boolean} + * @readonly + */ + get can_hibernate() {} + + /** + * Whether or not the greeter can make the system restart. + * @type {Boolean} + * @readonly + */ + get can_restart() {} + + /** + * Whether or not the greeter can make the system shutdown. + * @type {Boolean} + * @readonly + */ + get can_shutdown() {} + + /** + * Whether or not the greeter can make the system suspend/sleep. + * @type {Boolean} + * @readonly + */ + get can_suspend() {} + + /** + * The name of the default session. + * @type {String} + * @readonly + */ + get default_session() {} + + /** + * Whether or not guest sessions are supported. + * @type {Boolean} + * @readonly + */ + get has_guest_account() {} + + /** + * Whether or not user accounts should be hidden. + * @type {boolean} + * @readonly + */ + get hide_users_hint() {} + + /** + * The system's hostname. + * @type {String} + * @readonly + */ + get hostname() {} + + /** + * Whether or not the greeter is in the process of authenticating. + * @type {Boolean} + * @readonly + */ + get in_authentication() {} + + /** + * Whether or not the greeter has successfully authenticated. + * @type {Boolean} + * @readonly + */ + get is_authenticated() {} + + /** + * The current language or {@link null} if no language. + * @type {Language|null} + * @readonly + */ + get language() {} + + /** + * A list of languages to present to the user. + * @type {Language[]} + * @readonly + */ + get languages() {} + + /** + * The currently active layout for the selected user. + * @type {Layout} + */ + get layout() {} + + /** + * A list of keyboard layouts to present to the user. + * @type {Layout[]} + * @readonly + */ + get layouts() {} + + /** + * Whether or not the greeter was started as a lock screen. + * @type {Boolean} + * @readonly + */ + get lock_hint() {} + + /** + * Whether or not the guest account should be selected by default. + * @type {Boolean} + * @readonly + */ + get select_guest_hint() {} + + /** + * The username to select by default. + * @type {String} + * @readonly + */ + get select_user_hint() {} + + /** + * List of available sessions. + * @type {Session[]} + * @readonly + */ + get sessions() {} + + /** + * Check if a manual login option should be shown. If {@link true}, the theme should + * provide a way for a username to be entered manually. Otherwise, themes that show + * a user list may limit logins to only those users. + * @type {Boolean} + * @readonly + */ + get show_manual_login_hint() {} + + /** + * Check if a remote login option should be shown. If {@link true}, the theme should provide + * a way for a user to log into a remote desktop server. + * @type {Boolean} + * @readonly + * @internal + */ + get show_remote_login_hint() {} + + /** + * List of available users. + * @type {User[]} + * @readonly + */ + get users() {} + + + /** + * Starts the authentication procedure for a user. + * + * @param {String|null} username A username or {@link null} to prompt for a username. + */ + authenticate( username ) {} + + /** + * Starts the authentication procedure for the guest user. + */ + authenticate_as_guest() {} + + /** + * Updates the battery data + */ + batteryUpdate() {} + + /** + * Set the brightness to quantity + * @param {Number} quantity The quantity to set + */ + brightnessSet( quantity ) {} + + /** + * Increase the brightness by quantity + * @param {Number} quantity The quantity to increase + */ + brightnessIncrease( quantity ) {} + + /** + * Decrease the brightness by quantity + * @param {Number} quantity The quantity to decrease + */ + brightnessDecrease( quantity ) {} + + /** + * Cancel user authentication that is currently in progress. + */ + cancel_authentication() {} + + /** + * Cancel the automatic login. + */ + cancel_autologin() {} + + /** + * Triggers the system to hibernate. + * @returns {Boolean} {@link true} if hibernation initiated, otherwise {@link false} + */ + hibernate() {} + + /** + * Provide a response to a prompt. + * @param {*} response + */ + respond( response ) {} + + /** + * Triggers the system to restart. + * @returns {Boolean} {@link true} if restart initiated, otherwise {@link false} + */ + restart() {} + + /** + * Set the language for the currently authenticated user. + * @param {String} language The language in the form of a locale specification (e.g. + * 'de_DE.UTF-8') + * @returns {Boolean} {@link true} if successful, otherwise {@link false} + */ + set_language( language ) {} + + /** + * Triggers the system to shutdown. + * @returns {Boolean} {@link true} if shutdown initiated, otherwise {@link false} + */ + shutdown() {} + + /** + * Start a session for the authenticated user. + * @param {String|null} session The session to log into or {@link null} to use the default. + * @returns {Boolean} {@link true} if successful, otherwise {@link false} + */ + start_session( session ) {} + + /** + * Triggers the system to suspend/sleep. + * @returns {Boolean} {@link true} if suspend/sleep initiated, otherwise {@link false} + */ + suspend() {} + + + /** + * Gets emitted when the greeter has completed authentication. + * @type {Signal} + */ + authentication_complete; + + /** + * Gets emitted when the automatic login timer has expired. + * @type {Signal} + */ + autologin_timer_expired; + + /** + * Gets emitted when brightness is updated + * @type {Signal} + */ + brightness_update; + + /** + * Gets emitted when the user has logged in and the greeter is no longer needed. + * @type {Signal} + */ + idle; + + /** + * Gets emitted when the user is returning to a greeter that + * was previously marked idle. + * @type {Signal} + */ + reset; + + /** + * Gets emitted when the greeter should show a message to the user. + * @type {Signal} + */ + show_message; + + /** + * Gets emitted when the greeter should show a prompt to the user. + * @type {Signal} + */ + show_prompt; + +} + +class Signal { + + connect( callback ) {} + + disconnect( callback ) {} +} + + +/** + * Moment.js instance - Loaded and instantiated automatically by the greeter. + * @name moment + * @type {object} + * @version 2.17.0 + * @memberOf window + * @see [Moment.js Documentation](http://momentjs.com/docs) + */ + +/** + * jQuery instance - Themes must manually load the included vendor script in order to use this object. + * @name jQuery + * @type {object} + * @version 3.1.1 + * @memberOf window + * @see [jQuery Documentation](http://api.jquery.com) + */ + +/** + * jQuery instance + * @name $ + * @memberOf window + * @see {@link window.jQuery} + */ + +/** + * JS-Cookie instance - Themes must manually load the included vendor script in order to use this object. + * @name Cookies + * @type {object} + * @version 2.1.3 + * @memberOf window + * @see [JS Cookie Documentation](https://github.com/js-cookie/js-cookie/tree/latest#readme) + */ + + + diff --git a/docs/src/GreeterConfig.js b/docs/src/GreeterConfig.js new file mode 100644 index 0000000..54e26a3 --- /dev/null +++ b/docs/src/GreeterConfig.js @@ -0,0 +1,86 @@ +/* + * GreeterConfig.js + * + * Copyright © 2017 Antergos Developers + * + * This file is part of Web Greeter. + * + * Web Greeter is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Web Greeter is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * The following additional terms are in effect as per Section 7 of the license: + * + * The preservation of all legal notices and author attributions in + * the material or in the Appropriate Legal Notices displayed + * by works containing it is required. + * + * You should have received a copy of the GNU General Public License + * along with web-greeter; If not, see . + */ + + +/** + * Provides greeter themes with a way to access values from the greeter's config + * file located at `/etc/lightdm/web-greeter.yml`. The greeter will + * create an instance of this class when it starts. The instance can be accessed + * with the global variable: [`greeter_config`](#dl-window-greeter_config). + * + * @memberOf LightDM + */ +class GreeterConfig { + /** + * Holds keys/values from the `branding` section of the config file. + * + * @type {object} + * @property {string} background_images_dir Path to directory that contains background images + * for use in greeter themes. + * @property {string} logo Path to distro logo image for use in greeter themes. + * @property {string} user_image Default user image/avatar. This is used by greeter themes + * for users that have not configured a `.face` image. + * @readonly + */ + get branding() {} + + /** + * Holds keys/values from the `greeter` section of the config file. + * + * @type {object} + * @property {boolean} debug_mode Greeter theme debug mode. + * @property {boolean} detect_theme_errors Provide an option to load a fallback theme when theme + * errors are detected. + * @property {number} screensaver_timeout Blank the screen after this many seconds of inactivity. + * @property {boolean} secure_mode Don't allow themes to make remote http requests. + * @property {string} time_format A moment.js format string to be used by the greeter to + * generate localized time for display. + * @property {string} time_language Language to use when displaying the time or `auto` + * to use the system's language. + * @property {string} theme The name of the theme to be used by the greeter. + * @readonly + */ + get greeter() {} + + + /** + * Holds keys/values from the `features` section of the config file. + * + * @type {Object} + * @property {Boolean} battery Enable greeter and themes to ger battery status. + * @property {Object} backlight + * @property {Boolean} enabled Enable greeter and themes to control display backlight. + * @property {Number} value The amount to increase/decrease brightness by greeter. + * @property {Number} steps How many steps are needed to do the change. + */ + get features() {} +} + + + + + diff --git a/docs/src/LightDMObjects.js b/docs/src/LightDMObjects.js new file mode 100644 index 0000000..69b40d9 --- /dev/null +++ b/docs/src/LightDMObjects.js @@ -0,0 +1,293 @@ +/* + * Copyright © 2015-2017 Antergos + * + * LightDMObjects.js + * + * This file is part of Web Greeter + * + * Web Greeter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, + * or any later version. + * + * Web Greeter is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * The following additional terms are in effect as per Section 7 of the license: + * + * The preservation of all legal notices and author attributions in + * the material or in the Appropriate Legal Notices displayed + * by works containing it is required. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * The global window object. + * + * @name window + * @type {object} + * @global + */ + +/** + * The greeter's Theme JavaScript API. + * + * @namespace LightDM + */ + + +/** + * Interface for object that holds info about a session. Session objects are not + * created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + * + * @memberOf LightDM + */ +class Session { + constructor( { comment, key, name } ) { + this._comment = comment; + this._key = key; + this._name = name; + } + + /** + * The name for the session. + * @type {String} + * @readonly + */ + get name() { + return this._name; + } + + /** + * The key for the session. + * @type {String} + * @readonly + */ + get key() { + return this._key; + } + + /** + * The comment for the session. + * @type {String} + * @readonly + */ + get comment() { + return this._comment; + } +} + + +/** + * Interface for object that holds info about a language on the system. Language objects are not + * created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + * + * @memberOf LightDM + */ +class Language { + constructor( { code, name, territory } ) { + this._code = code; + this._name = name; + this._territory = territory; + } + + /** + * The code for the language. + * @type {String} + * @readonly + */ + get code() { + return this._code; + } + + /** + * The name for the layout. + * @type {String} + * @readonly + */ + get name() { + return this._name; + } + + /** + * The territory for the language. + * @type {String} + * @readonly + */ + get territory() { + return this._territory; + } +} + + +/** + * Interface for object that holds info about a keyboard layout on the system. Language + * objects are not created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + * + * @memberOf LightDM + */ +class Layout { + constructor( { description, name, short_description } ) { + this._description = description; + this._name = name; + this._short_description = short_description; + } + + /** + * The description for the layout. + * @type {String} + * @readonly + */ + get description() { + return this._description; + } + + /** + * The name for the layout. + * @type {String} + * @readonly + */ + get name() { + return this._name; + } + + /** + * The territory for the layout. + * @type {String} + * @readonly + */ + get short_description() { + return this._short_description; + } +} + + +/** + * Interface for object that holds info about a user account on the system. User + * objects are not created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + * + * @memberOf LightDM + */ +class User { + constructor( user_info ) { + Object.keys(user_info).forEach( key => { + this[`_${key}`] = user_info[key]; + } ); + } + + /** + * The display name for the user. + * @type {String} + * @readonly + */ + get display_name() { + return this._display_name; + } + + /** + * The language for the user. + * @type {String} + * @readonly + */ + get language() { + return this._language; + } + + /** + * The keyboard layout for the user. + * @type {String} + * @readonly + */ + get layout() { + return this._layout; + } + + /** + * The image for the user. + * @type {String} + * @readonly + */ + get image() { + return this._image; + } + + /** + * The home_directory for the user. + * @type {String} + * @readonly + */ + get home_directory() { + return this._home_directory; + } + + /** + * The username for the user. + * @type {String} + * @readonly + */ + get username() { + return this._username; + } + + /** + * Whether or not the user is currently logged in. + * @type {Boolean} + * @readonly + */ + get logged_in() { + return this._logged_in; + } + + /** + * The last session that the user logged into. + * @type {String|Null} + * @readonly + */ + get session() { + return this._session; + } +} + +/** + * Interface for object that holds info about the battery on the system. This object is not created by the theme's code, but rather by the [`LightDM.Greeter`](#dl-LightDM-Greeter) class. + * + * @memberOf LightDM + */ +class Battery { + constructor( {level, name, state} ) { + this._level = level; + this._name = name; + this._state = state; + } + + /** + * The battery level. + * @type {String|Null} + * @readonly + */ + get level() { + return this._level; + } + + /** + * The battery's name. + * @type {String|Null} + * @readonly + */ + get name() { + return this._name; + } + + /** + * The state for the battery + * @type {String|Null} + * @readonly + */ + get state() { + return this._state; + } +} diff --git a/docs/src/ThemeUtils.js b/docs/src/ThemeUtils.js new file mode 100644 index 0000000..48a6005 --- /dev/null +++ b/docs/src/ThemeUtils.js @@ -0,0 +1,157 @@ +/* + * ThemeUtils.js + * + * Copyright © 2017 Antergos Developers + * + * This file is part of Web Greeter. + * + * Web Greeter is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Web Greeter is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * The following additional terms are in effect as per Section 7 of the license: + * + * The preservation of all legal notices and author attributions in + * the material or in the Appropriate Legal Notices displayed + * by works containing it is required. + * + * You should have received a copy of the GNU General Public License + * along with web-greeter; If not, see . + */ + + +let localized_invalid_date = null, + time_language = null, + time_format = null, + _ThemeUtils = null; + + +/** + * Provides various utility methods for use in greeter themes. The greeter will automatically + * create an instance of this class when it starts. The instance can be accessed + * with the global variable: [`theme_utils`](#dl-window-theme_utils). + * + * @memberOf LightDM + */ +class ThemeUtils { + + constructor( instance ) { + if ( null !== _ThemeUtils ) { + return _ThemeUtils; + } + + moment.locale( window.navigator.languages ); + + localized_invalid_date = moment('today', '!@#'); + _ThemeUtils = instance; + } + + /** + * Binds `this` to class, `context`, for all of the class's methods. + * + * @param {Object} context An ES6 class instance with at least one method. + * + * @return {Object} `context` with `this` bound to it for all of its methods. + */ + bind_this( context ) { + let excluded_methods = ['constructor']; + + function not_excluded( _method, _context ) { + let is_excluded = excluded_methods.findIndex( excluded_method => _method === excluded_method ) > -1, + is_method = 'function' === typeof _context[_method]; + + return is_method && !is_excluded; + } + + for ( let obj = context; obj; obj = Object.getPrototypeOf( obj ) ) { + // Stop once we have traveled all the way up the inheritance chain + if ( 'Object' === obj.constructor.name ) { + break; + } + + for ( let method of Object.getOwnPropertyNames( obj ) ) { + if ( not_excluded( method, context ) ) { + context[method] = context[method].bind( context ); + } + } + } + + return context; + } + + + /** + * Returns the contents of directory found at `path` provided that the (normalized) `path` + * meets at least one of the following conditions: + * * Is located within the greeter themes' root directory. + * * Has been explicitly allowed in the greeter's config file. + * * Is located within the greeter's shared data directory (`/var/lib/lightdm-data`). + * * Is located in `/tmp`. + * + * @param {String} path The abs path to desired directory. + * @param {Boolean} only_images Include only images in the results. Default `true`. + * @param {function(String[])} callback Callback function to be called with the result. + */ + dirlist( path, only_images = true, callback ) { + if ( '' === path || 'string' !== typeof path ) { + console.error(`theme_utils.dirlist(): path must be a non-empty string!`); + return callback([]); + + } else if ( null !== path.match(/^[^/].+/) ) { + console.error(`theme_utils.dirlist(): path must be absolute!`); + return callback([]); + } + + if ( null !== path.match(/\/\.+(?=\/)/) ) { + // No special directory names allowed (eg ../../) + path = path.replace(/\/\.+(?=\/)/g, '' ); + } + + try { + return _ThemeUtils.dirlist( path, only_images, callback ); + } catch( err ) { + console.error(`theme_utils.dirlist(): ${err}`); + return callback([]); + } + } + + /** + * Get the current time in a localized format. Time format and language are auto-detected + * by default, but can be set manually in the greeter config file. + * * `language` defaults to the system's language, but can be set manually in the config file. + * * When `time_format` config file option has a valid value, time will be formatted + * according to that value. + * * When `time_format` does not have a valid value, the time format will be `LT` + * which is `1:00 PM` or `13:00` depending on the system's locale. + * + * @return {String} The current localized time. + */ + get_current_localized_time() { + if ( null === time_language ) { + let config = greeter_config.greeter, + manual_language = ( '' !== config.time_language && 'auto' !== config.time_language ), + manual_time_format = ( '' !== config.time_format && 'auto' !== config.time_format ); + + time_language = manual_language ? config.time_language : window.navigator.language; + time_format = manual_time_format ? config.time_format : 'LT'; + + if ( manual_language ) { + moment.locale( time_language ); + } + } + + let local_time = moment().format( time_format ); + + if ( local_time === localized_invalid_date ) { + local_time = moment().format( 'LT' ); + } + + return local_time; + } +} diff --git a/docs/templates/partials/all-docs/all-docs.hbs b/docs/templates/partials/all-docs/all-docs.hbs new file mode 100644 index 0000000..b1fe82c --- /dev/null +++ b/docs/templates/partials/all-docs/all-docs.hbs @@ -0,0 +1,3 @@ +{{#orphans ~}} +{{>docs~}} +{{/orphans~}} diff --git a/docs/templates/partials/all-docs/docs/body/access.hbs b/docs/templates/partials/all-docs/docs/body/access.hbs new file mode 100644 index 0000000..58ed8b5 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/access.hbs @@ -0,0 +1,2 @@ +{{#if access}}**Access**: {{{access}}} +{{/if~}} diff --git a/docs/templates/partials/all-docs/docs/body/augments.hbs b/docs/templates/partials/all-docs/docs/body/augments.hbs new file mode 100644 index 0000000..75546ee --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/augments.hbs @@ -0,0 +1,2 @@ +{{#if augments}}**Extends**: {{>linked-type-list types=augments delimiter=", " }} +{{/if}} diff --git a/docs/templates/partials/all-docs/docs/body/authors.hbs b/docs/templates/partials/all-docs/docs/body/authors.hbs new file mode 100644 index 0000000..e91013b --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/authors.hbs @@ -0,0 +1,2 @@ +{{#if author}}{{#each author}}**Author**: {{{inlineLinks this}}} +{{/each}}{{/if~}} diff --git a/docs/templates/partials/all-docs/docs/body/body.hbs b/docs/templates/partials/all-docs/docs/body/body.hbs new file mode 100644 index 0000000..e5024e3 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/body.hbs @@ -0,0 +1,29 @@ +{{>deprecated~}} +{{>description~}} +{{!-- {{>scope~}} --}} +{{>summary~}} +{{>augments~}} +{{>implements~}} +{{>mixes~}} +{{>default~}} +{{>chainable~}} +{{>overrides~}} +{{>returns~}} +{{>category~}} +{{>throws~}} +{{>fires~}} +{{>this~}} +{{>access~}} +{{>readOnly~}} +{{>requires~}} +{{>customTags~}} +{{>see~}} +{{>since~}} +{{>version~}} +{{>authors~}} +{{>license~}} +{{>copyright~}} +{{>todo~}} +{{>params~}} +{{>properties~}} +{{>examples~}} diff --git a/docs/templates/partials/all-docs/docs/body/category.hbs b/docs/templates/partials/all-docs/docs/body/category.hbs new file mode 100644 index 0000000..6d3a03c --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/category.hbs @@ -0,0 +1,2 @@ +{{#if category}}**Category**: {{inlineLinks category}} +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/chainable.hbs b/docs/templates/partials/all-docs/docs/body/chainable.hbs new file mode 100644 index 0000000..4faff28 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/chainable.hbs @@ -0,0 +1,2 @@ +{{#if chainable}}**Chainable** +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/copyright.hbs b/docs/templates/partials/all-docs/docs/body/copyright.hbs new file mode 100644 index 0000000..5522b44 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/copyright.hbs @@ -0,0 +1,2 @@ +{{#if copyright}}**Copyright**: {{{inlineLinks copyright}}} +{{/if~}} diff --git a/docs/templates/partials/all-docs/docs/body/customTags.hbs b/docs/templates/partials/all-docs/docs/body/customTags.hbs new file mode 100644 index 0000000..27bb5f3 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/customTags.hbs @@ -0,0 +1,3 @@ +{{#if customTags}}{{#each customTags}}**{{titleCase tag}}**: {{#with (parseType value)~}} +{{#if type}}{{>link to=type}}{{/if}}{{#if description}}{{{inlineLinks description}}}{{/if}}{{/with}} +{{/each}}{{/if~}} diff --git a/docs/templates/partials/all-docs/docs/body/default.hbs b/docs/templates/partials/all-docs/docs/body/default.hbs new file mode 100644 index 0000000..9873c84 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/default.hbs @@ -0,0 +1,2 @@ +{{#unless (equal defaultvalue undefined)}}**Default**: {{>defaultvalue}} +{{/unless}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/deprecated.hbs b/docs/templates/partials/all-docs/docs/body/deprecated.hbs new file mode 100644 index 0000000..f42195c --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/deprecated.hbs @@ -0,0 +1,3 @@ +{{#if deprecated}}***Deprecated*** + +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/description.hbs b/docs/templates/partials/all-docs/docs/body/description.hbs new file mode 100644 index 0000000..5952d65 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/description.hbs @@ -0,0 +1,3 @@ +{{#if description}}{{{inlineLinks description}}} + +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/examples.hbs b/docs/templates/partials/all-docs/docs/body/examples.hbs new file mode 100644 index 0000000..87042dc --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/examples.hbs @@ -0,0 +1,4 @@ +{{#examples}} +**Example**{{#if caption}} *({{caption}})* {{else}} {{/if}} +{{{inlineLinks example}}} +{{/examples}} diff --git a/docs/templates/partials/all-docs/docs/body/fires.hbs b/docs/templates/partials/all-docs/docs/body/fires.hbs new file mode 100644 index 0000000..2c225c0 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/fires.hbs @@ -0,0 +1,3 @@ +{{#if fires~}} +**Emits**: {{>linked-type-list types=fires delimiter=", " }} +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/implements.hbs b/docs/templates/partials/all-docs/docs/body/implements.hbs new file mode 100644 index 0000000..7ffcf71 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/implements.hbs @@ -0,0 +1,2 @@ +{{#if implements}}**Implements**: {{>linked-type-list types=implements delimiter=", " }} +{{/if}} diff --git a/docs/templates/partials/all-docs/docs/body/license.hbs b/docs/templates/partials/all-docs/docs/body/license.hbs new file mode 100644 index 0000000..cf21e4e --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/license.hbs @@ -0,0 +1,2 @@ +{{#if license}}**License**: {{inlineLinks license}} +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/mixes.hbs b/docs/templates/partials/all-docs/docs/body/mixes.hbs new file mode 100644 index 0000000..cea451c --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/mixes.hbs @@ -0,0 +1,3 @@ +{{#if mixes~}} +**Mixes**: {{>linked-type-list types=mixes delimiter=", " }} +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/overrides.hbs b/docs/templates/partials/all-docs/docs/body/overrides.hbs new file mode 100644 index 0000000..28d8798 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/overrides.hbs @@ -0,0 +1,2 @@ +{{#if overrides}}**Overrides**: {{>link to=overrides}} +{{/if~}} diff --git a/docs/templates/partials/all-docs/docs/body/params/param-table-name.hbs b/docs/templates/partials/all-docs/docs/body/params/param-table-name.hbs new file mode 100644 index 0000000..724b5cc --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/params/param-table-name.hbs @@ -0,0 +1,4 @@ +{{#if optional}}[{{/if~}} +{{#if variable}}...{{/if~}} +{{{name}~}} +{{#if optional}}]{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/params/params-list.hbs b/docs/templates/partials/all-docs/docs/body/params/params-list.hbs new file mode 100644 index 0000000..928c8fb --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/params/params-list.hbs @@ -0,0 +1,9 @@ +{{#if params}} +{{#params}}**Params** + +{{#each this~}} +{{indent}}- {{name}}{{#if type}} {{>linked-type-list types=type.names delimiter=" | " }}{{/if}}{{#unless (equal defaultvalue undefined)}} {{>defaultvalue equals=true ~}}{{/unless}}{{#if description}} - {{{inlineLinks description}}}{{/if}} +{{/each}} + +{{/params~}} +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/params/params-table-html.hbs b/docs/templates/partials/all-docs/docs/body/params/params-table-html.hbs new file mode 100644 index 0000000..8a84d85 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/params/params-table-html.hbs @@ -0,0 +1,20 @@ +{{#if params}} + + + + {{#each (tableHeadHtml params "name|Param" "type|Type" "defaultvalue|Default" "description|Description")}}{{/each}} + + + + {{#tableRow params "name" "type" "defaultvalue" "description" ~}} + + {{#if @col1}}{{/if~}} + {{#if @col2}}{{/if~}} + {{#if @col3}}{{/if~}} + {{#if @col4}}{{/if}} + + {{~/tableRow}} + +
{{this}}
{{>param-table-name}}{{>linked-type-list types=type.names delimiter=" | " html=true}}{{>defaultvalue}}{{{md (inlineLinks description)}}}
+ +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/params/params-table.hbs b/docs/templates/partials/all-docs/docs/body/params/params-table.hbs new file mode 100644 index 0000000..08e49b1 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/params/params-table.hbs @@ -0,0 +1,12 @@ +{{#if params}} + +{{tableHead params "name|Param" "type|Type" "defaultvalue|Default" "description|Description" ~}} + +{{#tableRow params "name" "type" "defaultvalue" "description" ~}} +| {{#if @col1}}{{>param-table-name}} | {{/if~}} +{{#if @col2}}{{>linked-type-list types=type.names delimiter=" \| " }} | {{/if~}} +{{#if @col3}}{{>defaultvalue}} | {{/if~}} +{{#if @col4}}{{{stripNewlines (inlineLinks description)}}} |{{/if}} +{{/tableRow}} + +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/params/params.hbs b/docs/templates/partials/all-docs/docs/body/params/params.hbs new file mode 100644 index 0000000..f71f6c0 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/params/params.hbs @@ -0,0 +1,4 @@ +{{#if (optionEquals "param-list-format" "list")}}{{>params-list~}}{{/if~}} +{{#if (optionEquals "param-list-format" "table")~}} +{{#if (optionEquals "no-gfm" true)}}{{>params-table-html~}}{{else}}{{>params-table~}}{{/if~}} +{{/if~}} diff --git a/docs/templates/partials/all-docs/docs/body/properties/properties-list.hbs b/docs/templates/partials/all-docs/docs/body/properties/properties-list.hbs new file mode 100644 index 0000000..aab1d21 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/properties/properties-list.hbs @@ -0,0 +1,7 @@ +{{#if properties}}**Properties** + +{{#each properties~}} +{{#if (regexp-test name "\w+\.\w+")}} {{/if}}- {{{name}}} {{>linked-type-list types=type.names delimiter=" \| " ~}}{{#if description}} - {{{inlineLinks description}}}{{/if}} +{{/each}} + +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/properties/properties-table-html.hbs b/docs/templates/partials/all-docs/docs/body/properties/properties-table-html.hbs new file mode 100644 index 0000000..25d11cf --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/properties/properties-table-html.hbs @@ -0,0 +1,21 @@ +{{#if properties~}}**Properties** + + + + + {{#each (tableHeadHtml properties "name|Name" "type|Type" "defaultvalue|Default" "description|Description")}}{{/each}} + + + + {{#tableRow properties "name" "type" "defaultvalue" "description" ~}} + + {{#if @col1}}{{/if~}} + {{#if @col2}}{{/if~}} + {{#if @col3}}{{/if~}} + {{#if @col4}}{{/if}} + + {{~/tableRow}} + +
{{this}}
{{>param-table-name}}{{>linked-type-list types=type.names delimiter=" | " html=true}}{{>defaultvalue}}{{{md (inlineLinks description)}}}
+ +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/properties/properties-table.hbs b/docs/templates/partials/all-docs/docs/body/properties/properties-table.hbs new file mode 100644 index 0000000..e3d36c5 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/properties/properties-table.hbs @@ -0,0 +1,12 @@ +{{#if properties}}**Properties** + +{{tableHead properties "name|Name" "type|Type" "defaultvalue|Default" "description|Description" ~}} + +{{#tableRow properties "name" "type" "defaultvalue" "description" ~}} +| {{#if @col1}}{{>param-table-name}} | {{/if~}} +{{#if @col2}}{{>linked-type-list types=type.names delimiter=" \| " }} | {{/if~}} +{{#if @col3}}{{>defaultvalue}} | {{/if~}} +{{#if @col4}}{{{stripNewlines (inlineLinks description)}}} |{{/if}} +{{/tableRow}} + +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/properties/properties.hbs b/docs/templates/partials/all-docs/docs/body/properties/properties.hbs new file mode 100644 index 0000000..d23ae86 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/properties/properties.hbs @@ -0,0 +1,4 @@ +{{#if (optionEquals "property-list-format" "list")}}{{>properties-list~}}{{/if~}} +{{#if (optionEquals "property-list-format" "table")~}} + {{#if (optionEquals "no-gfm" true)}}{{>properties-table-html}}{{else}}{{>properties-table}}{{/if~}} +{{/if~}} diff --git a/docs/templates/partials/all-docs/docs/body/readOnly.hbs b/docs/templates/partials/all-docs/docs/body/readOnly.hbs new file mode 100644 index 0000000..2f70e99 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/readOnly.hbs @@ -0,0 +1,2 @@ +{{#if readonly}}**Read only**: true +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/requires.hbs b/docs/templates/partials/all-docs/docs/body/requires.hbs new file mode 100644 index 0000000..68eb24b --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/requires.hbs @@ -0,0 +1,3 @@ +{{#if requires~}} +**Requires**: {{>linked-type-list types=requires delimiter=", " }} +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/returns.hbs b/docs/templates/partials/all-docs/docs/body/returns.hbs new file mode 100644 index 0000000..0e163b5 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/returns.hbs @@ -0,0 +1,12 @@ +{{#if returns}} +{{#if returns.[0].description~}} +**Returns**: {{#each returns~}} + {{#if type~}} + {{#if type.names}}{{>linked-type-list types=type.names delimiter=" \| " ~}}{{/if}} + {{~#if description}} - {{{inlineLinks description}}}{{/if~}} + {{else~}} + {{{inlineLinks description}~}} + {{/if~}} +{{~/each}} + +{{/if}}{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/scope.hbs b/docs/templates/partials/all-docs/docs/body/scope.hbs new file mode 100644 index 0000000..6256de5 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/scope.hbs @@ -0,0 +1,10 @@ +{{#if scope}} +**Kind**: {{#if (equal kind "event") ~}} +event emitted{{#if memberof}} by {{>link to=memberof}}{{/if}} +{{else~}} +{{scope}} {{#if virtual}}abstract {{/if}}{{kindInThisContext}}{{#if memberof}} of {{>link to=memberof}}{{/if}} +{{/if~}} +{{else~}} +{{#if isExported}}**Kind**: Exported {{kind}} +{{/if~}} +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/see.hbs b/docs/templates/partials/all-docs/docs/body/see.hbs new file mode 100644 index 0000000..da76c0e --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/see.hbs @@ -0,0 +1,12 @@ +{{#if see~}} + +{{#if (equal see.length 1)~}} +**See**: {{{inlineLinks see.[0]}}} +{{else~}} +**See** + +{{#each see}}- {{{inlineLinks this}}} +{{/each}} + +{{/if~}} +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/since.hbs b/docs/templates/partials/all-docs/docs/body/since.hbs new file mode 100644 index 0000000..ca8ee6a --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/since.hbs @@ -0,0 +1,2 @@ +{{#if since}}**Since**: {{{inlineLinks since}}} +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/summary.hbs b/docs/templates/partials/all-docs/docs/body/summary.hbs new file mode 100644 index 0000000..7ef1d27 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/summary.hbs @@ -0,0 +1,2 @@ +{{#if summary}}**Summary**: {{{inlineLinks summary}}} +{{/if~}} diff --git a/docs/templates/partials/all-docs/docs/body/this.hbs b/docs/templates/partials/all-docs/docs/body/this.hbs new file mode 100644 index 0000000..86253c2 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/this.hbs @@ -0,0 +1,2 @@ +{{#if thisvalue}}**this**: {{>link to=thisvalue}} +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/throws.hbs b/docs/templates/partials/all-docs/docs/body/throws.hbs new file mode 100644 index 0000000..74503d7 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/throws.hbs @@ -0,0 +1,8 @@ +{{#if exceptions~}} +**Throws**: + +{{#each exceptions~}} +- {{#if type.names}}{{>linked-type-list types=type.names}} {{/if}}{{{inlineLinks description}}} +{{/each}} + +{{/if}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/body/todo.hbs b/docs/templates/partials/all-docs/docs/body/todo.hbs new file mode 100644 index 0000000..c11ec07 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/todo.hbs @@ -0,0 +1,22 @@ +{{#if todoList~}} +**Todo** + +{{#if (option "no-gfm")~}} + +{{#each todoList~}} +{{#if done}}- {{{inlineLinks task}}} ✓ +{{else}}- {{{inlineLinks task}}} +{{/if~}} +{{/each~}} + +{{else~}} + +{{#each todoList~}} +{{#if done}}- [x] {{{inlineLinks task}}} +{{else}}- [ ] {{{inlineLinks task}}} +{{/if~}} +{{/each~}} + +{{/if}} + +{{/if~}} diff --git a/docs/templates/partials/all-docs/docs/body/version.hbs b/docs/templates/partials/all-docs/docs/body/version.hbs new file mode 100644 index 0000000..38f6f3d --- /dev/null +++ b/docs/templates/partials/all-docs/docs/body/version.hbs @@ -0,0 +1,2 @@ +{{#if version}}**Version**: {{inlineLinks version}} +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/docs.hbs b/docs/templates/partials/all-docs/docs/docs.hbs new file mode 100644 index 0000000..b381c96 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/docs.hbs @@ -0,0 +1,5 @@ +{{>header~}} +{{>body}} +{{!-- {{>member-index~}} --}} +{{>separator~}} +{{>members~}} diff --git a/docs/templates/partials/all-docs/docs/header.hbs b/docs/templates/partials/all-docs/docs/header.hbs new file mode 100644 index 0000000..28a0b40 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/header.hbs @@ -0,0 +1,3 @@ + + +{{>heading-indent}}{{>sig-name}} diff --git a/docs/templates/partials/all-docs/docs/member-index/member-index-grouped.hbs b/docs/templates/partials/all-docs/docs/member-index/member-index-grouped.hbs new file mode 100644 index 0000000..acfd067 --- /dev/null +++ b/docs/templates/partials/all-docs/docs/member-index/member-index-grouped.hbs @@ -0,0 +1,4 @@ +{{string-repeat " " (add level baseLevel)}}* {{#unless (equal _title undefined)}}_{{_title}}_{{else}}{{>sig-link}}{{/unless}} +{{#groupBy (option "group-by")~}} +{{>member-index-grouped baseLevel=(add ../level ../baseLevel 1)~}} +{{/groupBy~}} diff --git a/docs/templates/partials/all-docs/docs/member-index/member-index-list.hbs b/docs/templates/partials/all-docs/docs/member-index/member-index-list.hbs new file mode 100644 index 0000000..16a7acf --- /dev/null +++ b/docs/templates/partials/all-docs/docs/member-index/member-index-list.hbs @@ -0,0 +1,4 @@ +{{>index-indent}}* {{>sig-link-parent}} +{{#indexChildren ~}} +{{>member-index-list~}} +{{/indexChildren}} \ No newline at end of file diff --git a/docs/templates/partials/all-docs/docs/member-index/member-index.hbs b/docs/templates/partials/all-docs/docs/member-index/member-index.hbs new file mode 100644 index 0000000..badc0bb --- /dev/null +++ b/docs/templates/partials/all-docs/docs/member-index/member-index.hbs @@ -0,0 +1,26 @@ +{{setLevel this 0~}} +{{#if (descendants min=(option 'memberIndex.minDescendants'))~}} +{{#if isExported~}} +{{#if (equal (depth) 0)}} +{{#if (optionEquals "member-index-format" "list")}} + +{{>member-index-list}} + +{{else~}} + +{{>member-index-grouped}} + +{{/if~}} +{{/if~}} +{{else~}} +{{#if (optionEquals "member-index-format" "list")}} + +{{>member-index-list}} + +{{else}} + +{{>member-index-grouped}} + +{{/if~}} +{{/if~}} +{{/if}} diff --git a/docs/templates/partials/all-docs/docs/members.hbs b/docs/templates/partials/all-docs/docs/members.hbs new file mode 100644 index 0000000..a5a0a6f --- /dev/null +++ b/docs/templates/partials/all-docs/docs/members.hbs @@ -0,0 +1,3 @@ +{{#children inherited=undefined ~}} +{{>docs~}} +{{/children~}} diff --git a/docs/templates/partials/main-index/global-index/global-index-dl.hbs b/docs/templates/partials/main-index/global-index/global-index-dl.hbs new file mode 100644 index 0000000..8dac794 --- /dev/null +++ b/docs/templates/partials/main-index/global-index/global-index-dl.hbs @@ -0,0 +1,11 @@ +{{#globals kind=kind ~}} +{{#if @first~}}{{>heading-indent}}{{../title}} + +
+{{/if~}} +
{{>sig-link-html}}
+
{{{md (inlineLinks description)}}}
+{{#if @last~}}
+ +{{/if~}} +{{/globals~}} diff --git a/docs/templates/partials/main-index/global-index/global-index-grouped.hbs b/docs/templates/partials/main-index/global-index/global-index-grouped.hbs new file mode 100644 index 0000000..9a82104 --- /dev/null +++ b/docs/templates/partials/main-index/global-index/global-index-grouped.hbs @@ -0,0 +1,9 @@ +{{#globals kind=kind~}} +{{#if @first~}}{{>heading-indent}}{{../title}} + +{{/if~}} +{{>member-index-grouped~}} +{{#if @last}} + +{{/if~}} +{{/globals}} diff --git a/docs/templates/partials/main-index/global-index/global-index-kinds.hbs b/docs/templates/partials/main-index/global-index/global-index-kinds.hbs new file mode 100644 index 0000000..93a7a6f --- /dev/null +++ b/docs/templates/partials/main-index/global-index/global-index-kinds.hbs @@ -0,0 +1,11 @@ +{{#unless (optionEquals "global-index-format" "none")~}} +{{#if (optionEquals "global-index-format" "dl")}} +{{>global-index-dl kind=kind title=title ~}} +{{/if~}} +{{#if (optionEquals "global-index-format" "grouped")}} +{{>global-index-grouped kind=kind title=title }} +{{/if~}} +{{#if (optionEquals "global-index-format" "table")}} +{{>global-index-table kind=kind title=title ~}} +{{/if~}} +{{/unless~}} diff --git a/docs/templates/partials/main-index/global-index/global-index-table.hbs b/docs/templates/partials/main-index/global-index/global-index-table.hbs new file mode 100644 index 0000000..83fa2e5 --- /dev/null +++ b/docs/templates/partials/main-index/global-index/global-index-table.hbs @@ -0,0 +1,22 @@ +{{#globals kind=kind~}} +{{#if @first~}} +{{>heading-indent}}{{../title}} + + + + + + + + +{{/if~}} + + + + +{{#if @last~}} + +
GlobalDescription
{{>sig-link-html}}{{{md (inlineLinks description)}}}
+ +{{/if~}} +{{/globals}} diff --git a/docs/templates/partials/main-index/global-index/global-index.hbs b/docs/templates/partials/main-index/global-index/global-index.hbs new file mode 100644 index 0000000..9ca3933 --- /dev/null +++ b/docs/templates/partials/main-index/global-index/global-index.hbs @@ -0,0 +1,10 @@ +{{>global-index-kinds kind="class" title="Classes" ~}} +{{>global-index-kinds kind="mixin" title="Mixins" ~}} +{{>global-index-kinds kind="member" title="Members" ~}} +{{>global-index-kinds kind="namespace" title="Objects" ~}} +{{>global-index-kinds kind="constant" title="Constants" ~}} +{{>global-index-kinds kind="function" title="Functions" ~}} +{{>global-index-kinds kind="event" title="Events" ~}} +{{>global-index-kinds kind="typedef" title="Typedefs" ~}} +{{>global-index-kinds kind="external" title="External" ~}} +{{>global-index-kinds kind="interface" title="Interfaces" ~}} diff --git a/docs/templates/partials/main-index/main-index.hbs b/docs/templates/partials/main-index/main-index.hbs new file mode 100644 index 0000000..e11fe36 --- /dev/null +++ b/docs/templates/partials/main-index/main-index.hbs @@ -0,0 +1,6 @@ +{{! a main index is only shown if at least 2 global or modules exist ~}} + +{{#if (showMainIndex)~}} +{{>module-index~}} +{{>global-index~}} +{{/if~}} diff --git a/docs/templates/partials/main-index/module-index/module-index-dl.hbs b/docs/templates/partials/main-index/module-index/module-index-dl.hbs new file mode 100644 index 0000000..dc5f32e --- /dev/null +++ b/docs/templates/partials/main-index/module-index/module-index-dl.hbs @@ -0,0 +1,11 @@ +{{#modules~}} +{{#if @first~}}{{>heading-indent}}Modules + +
+{{/if~}} +
{{>sig-link-html}}
+
{{{md (inlineLinks description)}}}
+{{#if @last~}}
+ +{{/if~}} +{{/modules~}} diff --git a/docs/templates/partials/main-index/module-index/module-index-grouped.hbs b/docs/templates/partials/main-index/module-index/module-index-grouped.hbs new file mode 100644 index 0000000..73e98be --- /dev/null +++ b/docs/templates/partials/main-index/module-index/module-index-grouped.hbs @@ -0,0 +1,7 @@ +{{#modules~}} +{{#if @first~}}{{>heading-indent}}Modules + +{{/if~}} +{{>member-index-grouped~}} +{{/modules}} + diff --git a/docs/templates/partials/main-index/module-index/module-index-table.hbs b/docs/templates/partials/main-index/module-index/module-index-table.hbs new file mode 100644 index 0000000..f685f8a --- /dev/null +++ b/docs/templates/partials/main-index/module-index/module-index-table.hbs @@ -0,0 +1,22 @@ +{{#modules~}} +{{#if @first~}} +{{>heading-indent}}Modules + + + + + + + + +{{/if~}} + + + + +{{#if @last~}} + +
ModuleDescription
{{>sig-link-html}}{{{md (inlineLinks description)}}}
+ +{{/if~}} +{{/modules}} diff --git a/docs/templates/partials/main-index/module-index/module-index.hbs b/docs/templates/partials/main-index/module-index/module-index.hbs new file mode 100644 index 0000000..881d640 --- /dev/null +++ b/docs/templates/partials/main-index/module-index/module-index.hbs @@ -0,0 +1,5 @@ +{{#unless (optionEquals "module-index-format" "none")~}} +{{#if (optionEquals "module-index-format" "dl")}}{{>module-index-dl ~}}{{/if~}} +{{#if (optionEquals "module-index-format" "grouped")}}{{>module-index-grouped ~}}{{/if~}} +{{#if (optionEquals "module-index-format" "table")}}{{>module-index-table ~}}{{/if~}} +{{/unless~}} diff --git a/docs/templates/partials/main.hbs b/docs/templates/partials/main.hbs new file mode 100644 index 0000000..4337631 --- /dev/null +++ b/docs/templates/partials/main.hbs @@ -0,0 +1,2 @@ +{{>main-index~}} +{{>all-docs~}} diff --git a/docs/templates/partials/shared/heading-indent.hbs b/docs/templates/partials/shared/heading-indent.hbs new file mode 100644 index 0000000..ccd30ba --- /dev/null +++ b/docs/templates/partials/shared/heading-indent.hbs @@ -0,0 +1 @@ +{{string-repeat "#" (headingDepth)}} \ No newline at end of file diff --git a/docs/templates/partials/shared/index-indent.hbs b/docs/templates/partials/shared/index-indent.hbs new file mode 100644 index 0000000..b04a0c1 --- /dev/null +++ b/docs/templates/partials/shared/index-indent.hbs @@ -0,0 +1 @@ +{{string-repeat " " (indexDepth)}} \ No newline at end of file diff --git a/docs/templates/partials/shared/separator.hbs b/docs/templates/partials/shared/separator.hbs new file mode 100644 index 0000000..def88eb --- /dev/null +++ b/docs/templates/partials/shared/separator.hbs @@ -0,0 +1,5 @@ +{{#if (option "separators")}} + +* * * + +{{/if~}} \ No newline at end of file diff --git a/docs/templates/partials/shared/signature/sig-link-html.hbs b/docs/templates/partials/shared/signature/sig-link-html.hbs new file mode 100644 index 0000000..167378e --- /dev/null +++ b/docs/templates/partials/shared/signature/sig-link-html.hbs @@ -0,0 +1,14 @@ +{{#if name}}{{#sig no-gfm=true ~}} +{{{@depOpen}~}} + +{{~{@codeOpen}~}} +{{#if @prefix}}{{@prefix}} {{/if~}} +{{@accessSymbol}}{{#if (isEvent)}}"{{{name}}}"{{else}}{{{name}}}{{/if~}} +{{~#if @methodSign}}{{#if (isEvent)}} {{@methodSign}}{{else}}{{@methodSign}}{{/if}}{{/if~}} +{{{@codeClose}~}} + +{{~#if @returnSymbol}} {{@returnSymbol}}{{/if~}} +{{#if @returnTypes}} {{>linked-type-list types=@returnTypes html=true delimiter=" | " }}{{/if~}} +{{#if @suffix}} {{@suffix}}{{/if~}} +{{{@depClose}~}} +{{~/sig}}{{/if~}} diff --git a/docs/templates/partials/shared/signature/sig-link-parent.hbs b/docs/templates/partials/shared/signature/sig-link-parent.hbs new file mode 100644 index 0000000..a795a7b --- /dev/null +++ b/docs/templates/partials/shared/signature/sig-link-parent.hbs @@ -0,0 +1,13 @@ +{{#if name}}{{#sig~}} +{{{@depOpen}~}} +[{{{@codeOpen}~}} +{{#if @prefix}}{{@prefix}} {{/if~}} +{{#if (isClassMember)}}{{@parent~}}{{/if~}} +{{@accessSymbol}}{{#if (isEvent)}}"{{{name}}}"{{else}}{{{name}}}{{/if~}} +{{~#if @methodSign}}{{#if (isEvent)}} {{@methodSign}}{{else}}{{@methodSign}}{{/if}}{{/if~}} +{{{@codeClose}}}](#{{{anchorName}}}) +{{~#if @returnSymbol}} {{@returnSymbol}}{{/if~}} +{{#if @returnTypes}} {{>linked-type-list types=@returnTypes delimiter=" \| " }}{{/if~}} +{{#if @suffix}} {{@suffix}}{{/if~}} +{{{@depClose}~}} +{{~/sig}}{{/if~}} diff --git a/docs/templates/partials/shared/signature/sig-link.hbs b/docs/templates/partials/shared/signature/sig-link.hbs new file mode 100644 index 0000000..1118c18 --- /dev/null +++ b/docs/templates/partials/shared/signature/sig-link.hbs @@ -0,0 +1,14 @@ +{{#if virtual}}*{{/if}}{{#with (parentObject)}}{{#if virtual}}*{{/if~}}{{/with~}} +{{#if name}}{{#sig~}} +{{{@depOpen}~}} +[{{{@codeOpen}~}} +{{#if @prefix}}{{@prefix}} {{/if~}} +{{@accessSymbol}}{{#if (isEvent)}}"{{{name}}}"{{else}}{{{name}}}{{/if~}} +{{~#if @methodSign}}{{#if (isEvent)}} {{@methodSign}}{{else}}{{@methodSign}}{{/if}}{{/if~}} +{{{@codeClose}}}](#{{{anchorName}}}) +{{~#if @returnSymbol}} {{@returnSymbol}}{{/if~}} +{{#if @returnTypes}} {{>linked-type-list types=@returnTypes delimiter=" \| " }}{{/if~}} +{{#if @suffix}} {{@suffix}}{{/if~}} +{{{@depClose}~}} +{{~/sig}}{{/if~}} +{{#if virtual}}*{{/if}}{{#with (parentObject)}}{{#if virtual}}*{{/if~}}{{/with~}} diff --git a/docs/templates/partials/shared/signature/sig-name.hbs b/docs/templates/partials/shared/signature/sig-name.hbs new file mode 100644 index 0000000..9043cb7 --- /dev/null +++ b/docs/templates/partials/shared/signature/sig-name.hbs @@ -0,0 +1,15 @@ +{{#if virtual}}*{{/if}}{{#with (parentObject)}}{{#if virtual}}*{{/if~}}{{/with~}} +{{#if name}}{{#sig~}} +{{{@depOpen}~}} +{{{@codeOpen}~}} +{{#if @prefix}}{{@prefix}} {{/if~}} +{{@parent~}} +{{@accessSymbol}}{{#if (isEvent)}}"{{{name}}}"{{else}}{{{escape name}}}{{/if~}} +{{#if @methodSign}}{{#if (isEvent)}} {{@methodSign}}{{else}}{{@methodSign}}{{/if}}{{/if~}} +{{{@codeClose}~}} +{{#if @returnSymbol}} {{@returnSymbol}}{{/if~}} +{{#if @returnTypes}} {{>linked-type-list types=@returnTypes delimiter=" \| " }}{{/if~}} +{{#if @suffix}} {{@suffix}}{{/if~}} +{{{@depClose}~}} +{{~/sig}}{{/if~}} +{{#if virtual}}*{{/if}}{{#with (parentObject)}}{{#if virtual}}*{{/if~}}{{/with~}} diff --git a/docs/templates/partials/shared/value/defaultvalue.hbs b/docs/templates/partials/shared/value/defaultvalue.hbs new file mode 100644 index 0000000..e7791c6 --- /dev/null +++ b/docs/templates/partials/shared/value/defaultvalue.hbs @@ -0,0 +1 @@ +{{#unless (equal defaultvalue undefined)}}{{#if equals}} = {{/if}}{{#if (equal type.names.[0] "string")}}{{json-stringify defaultvalue}}{{else}}{{defaultvalue}}{{/if}}{{/unless}} \ No newline at end of file diff --git a/docs/templates/partials/shared/value/link.hbs b/docs/templates/partials/shared/value/link.hbs new file mode 100644 index 0000000..09e3eeb --- /dev/null +++ b/docs/templates/partials/shared/value/link.hbs @@ -0,0 +1,25 @@ +{{! usage: link to="namepath" html=true/false caption="optional caption"~}} + +{{~#if html~}} + + +{{~#link to~}} +{{#if url~}} +{{#if ../../caption}}{{../../../caption}}{{else}}{{name}}{{/if}} +{{~else~}} +{{#if ../../caption}}{{../../../caption}}{{else}}{{name}}{{/if~}} +{{/if~}} +{{/link~}} + + +{{~else~}} + +{{#link to~}} +{{#if url~}} +[{{#if ../../caption}}{{escape ../../../caption}}{{else}}{{escape name}}{{/if}}]({{{url}}}) +{{~else~}} +{{#if ../../caption}}{{escape ../../../caption}}{{else}}{{escape name}}{{/if~}} +{{~/if~}} +{{/link~}} + +{{/if~}} diff --git a/docs/templates/partials/shared/value/linked-type-list.hbs b/docs/templates/partials/shared/value/linked-type-list.hbs new file mode 100644 index 0000000..566e02c --- /dev/null +++ b/docs/templates/partials/shared/value/linked-type-list.hbs @@ -0,0 +1,4 @@ +{{#each types~}} +{{>link to=this html=../html ~}} +{{#unless @last}}{{{../delimiter}}}{{/unless~}} +{{/each}} \ No newline at end of file