├── .eslintrc
├── .github
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── .images
├── ual-flow.png
└── ual-login.png
├── .npmignore
├── .travis.yml
├── CONTRIBUTING.md
├── IMPORTANT.md
├── LICENSE
├── README.md
├── __mocks__
└── authenticatorMocks.ts
├── build-docs.sh
├── docs
├── assets
│ ├── css
│ │ ├── main.css
│ │ └── main.css.map
│ ├── images
│ │ ├── icons.png
│ │ ├── icons@2x.png
│ │ ├── widgets.png
│ │ └── widgets@2x.png
│ └── js
│ │ ├── main.js
│ │ └── search.js
├── classes
│ ├── authenticator.html
│ ├── ual.html
│ ├── ualerror.html
│ └── user.html
├── enums
│ └── ualerrortype.html
├── index.html
└── interfaces
│ ├── authenticatorresponse.html
│ ├── buttonstyle.html
│ ├── chain.html
│ ├── rpcendpoint.html
│ ├── signtransactionconfig.html
│ └── signtransactionresponse.html
├── package.json
├── src
├── Authenticator.ts
├── UAL.test.ts
├── UAL.ts
├── UALError.ts
├── User.test.ts
├── User.ts
├── index.ts
└── interfaces.ts
├── tsconfig.json
└── yarn.lock
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@blockone/blockone",
3 | "ignorePatterns": ["src/**/*.test.ts"]
4 | }
5 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ## Change Description
5 |
6 |
7 |
8 | ## API Changes
9 | - [ ] API Changes
10 |
11 |
12 |
13 |
14 | ## Documentation Additions
15 | - [ ] Documentation Additions
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #environment
2 | .env
3 |
4 | # editors
5 | # Intellij and idea based editors
6 | .idea
7 |
8 | # VS Code
9 | .vscode/*
10 | !.vscode/settings.json
11 | !.vscode/tasks.json
12 | !.vscode/launch.json
13 | !.vscode/extensions.json
14 |
15 | ## Sublime Text
16 | # Cache files for Sublime Text
17 | *.tmlanguage.cache
18 | *.tmPreferences.cache
19 | *.stTheme.cache
20 |
21 | # Workspace files are user-specific
22 | *.sublime-workspace
23 |
24 | # OS generated files #
25 | ######################
26 | .DS_Store
27 | .DS_Store?
28 | ._*
29 | .Spotlight-V100
30 | .Trashes
31 | ehthumbs.db
32 | Thumbs.db
33 |
34 | # Logs
35 | logs
36 | *.log
37 | npm-debug.log*
38 | yarn-debug.log*
39 | yarn-error.log*
40 | *.out
41 |
42 | # Runtime data
43 | pids
44 | *.pid
45 | *.seed
46 | *.pid.lock
47 |
48 | # Dependency directories
49 | node_modules/
50 | jspm_packages/
51 |
52 | # Optional npm cache directory
53 | .npm
54 |
55 | # Optional eslint cache
56 | .eslintcache
57 |
58 | # Optional REPL history
59 | .node_repl_history
60 |
61 | # Output of 'npm pack'
62 | *.tgz
63 |
64 | # Yarn Integrity file
65 | .yarn-integrity
66 |
67 | # next.js build output
68 | .next
69 |
70 | # Typescript
71 | dist/
72 | dist-web/
73 | build/
74 |
75 | # Dev Server Static Output
76 | public/
77 |
--------------------------------------------------------------------------------
/.images/ual-flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSIO/universal-authenticator-library/457a54060418b0c3e3183ad3c939208499ac6ac2/.images/ual-flow.png
--------------------------------------------------------------------------------
/.images/ual-login.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSIO/universal-authenticator-library/457a54060418b0c3e3183ad3c939208499ac6ac2/.images/ual-login.png
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | *
2 | !/dist/**
3 | !README.md
4 | !package.json
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: node_js
3 | node_js:
4 | - '12.14.1'
5 | stages:
6 | - test
7 | jobs:
8 | include:
9 | - stage: test
10 | name: "Lint and Test"
11 | script:
12 | - yarn lint
13 | - yarn test
14 | notifications:
15 | webhooks:
16 | secure: "NIpLWwQtpNid/JM/fq6p6qxKEgLPwSsisbWjb2g+ZXY2LqnxLm7l9EsOJULqqK6AWIcdDu1aEJNnQFjFc1yg4wlYinxfyY1RnML3IzkjK4+sKRejGcyzj6cyS8+wnOkiSjkwVAO5ntQUCipwE7H42jRJ4xf6MlixM0mj4jH7thA3+OW1v3mp5iDgkVJQ0Jp3F6ntZuDZfdjBWYjL26Aftzk7Pu1vIxzr8iZeeMp3YhJC8fTDYJ/HodVUrZB3OouA6FkSE97XRdEcKxkuhntD6cp2t2G5urpAgKvV3fRzWw9qBqZvOM+fBVVQWYbNOkenSS7MHFDRiPOYI2VJGjLvFrp0Hraf9aaAPjg5OjCDQLuVkNm8B/kAKgxQDPJWPIRNk4wor6drbXuoHpGVY/lwinhxwpHP2jpj/klWfaWaw3xrfoPndkxCvZcX6CfR9hLYnMyiQsdFvqjfKcSdWdYnnFvWsUvn3d60Y/cYicN82/SGqodSvBs76JQ6G0R/SVnCvYb5wpLFjJ1jbgyhI4OPXfsCJVEwrZNqo2JAXJI8wS3IzTzr+cCUSxMfkmrwklERZebEegZfDhixB5/PaWMgabN4mgiygq+Oj3IyUulBka2zA19tsCihCihh/MoVMTPhtSnOAY7E//u92knuzuAwdjP4yS1WNb7S92graZAhgJ8="
17 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to universal-authenticator-library
2 |
3 | Interested in contributing? That's awesome! Here are some guidelines to get started quickly and easily:
4 |
5 | - [Reporting An Issue](#reporting-an-issue)
6 | - [Bug Reports](#bug-reports)
7 | - [Feature Requests](#feature-requests)
8 | - [Change Requests](#change-requests)
9 | - [Working on universal-authenticator-library](#working-on-universal-authenticator-library)
10 | - [Feature Branches](#feature-branches)
11 | - [Submitting Pull Requests](#submitting-pull-requests)
12 | - [Testing and Quality Assurance](#testing-and-quality-assurance)
13 | - [Conduct](#conduct)
14 | - [Contributor License & Acknowledgments](#contributor-license--acknowledgments)
15 | - [References](#references)
16 |
17 | ## Reporting An Issue
18 |
19 | If you're about to raise an issue because you think you've found a problem with universal-authenticator-library, or you'd like to make a request for a new feature in the codebase, or any other reason… please read this first.
20 |
21 | The GitHub issue tracker is the preferred channel for [bug reports](#bug-reports), [feature requests](#feature-requests), and [submitting pull requests](#submitting-pull-requests), but please respect the following restrictions:
22 |
23 | * Please **search for existing issues**. Help us keep duplicate issues to a minimum by checking to see if someone has already reported your problem or requested your idea.
24 |
25 | * Please **be civil**. Keep the discussion on topic and respect the opinions of others. See also our [Contributor Code of Conduct](#contributor-code-of-conduct).
26 |
27 | ### Bug Reports
28 |
29 | A bug is a _demonstrable problem_ that is caused by the code in the repository. Good bug reports are extremely helpful - thank you!
30 |
31 | Guidelines for bug reports:
32 |
33 | 1. **Use the GitHub issue search** — check if the issue has already been
34 | reported.
35 |
36 | 1. **Check if the issue has been fixed** — look for [closed issues in the
37 | current milestone](https://github.com/EOSIO/universal-authenticator-library/issues?q=is%3Aissue+is%3Aclosed) or try to reproduce it
38 | using the latest `develop` branch.
39 |
40 | A good bug report shouldn't leave others needing to chase you up for more information. Be sure to include the details of your environment and relevant tests that demonstrate the failure.
41 |
42 | [Report a bug](https://github.com/EOSIO/universal-authenticator-library/issues/new?title=Bug%3A)
43 |
44 | ### Feature Requests
45 |
46 | Feature requests are welcome. Before you submit one be sure to have:
47 |
48 | 1. **Use the GitHub search** and check the feature hasn't already been requested.
49 | 1. Take a moment to think about whether your idea fits with the scope and aims of the project.
50 | 1. Remember, it's up to *you* to make a strong case to convince the project's leaders of the merits of this feature. Please provide as much detail and context as possible, this means explaining the use case and why it is likely to be common.
51 |
52 | ### Change Requests
53 |
54 | Change requests cover both architectural and functional changes to how universal-authenticator-library works. If you have an idea for a new or different dependency, a refactor, or an improvement to a feature, etc - please be sure to:
55 |
56 | 1. **Use the GitHub search** and check someone else didn't get there first
57 | 1. Take a moment to think about the best way to make a case for, and explain what you're thinking. Are you sure this shouldn't really be
58 | a [bug report](#bug-reports) or a [feature request](#feature-requests)? Is it really one idea or is it many? What's the context? What problem are you solving? Why is what you are suggesting better than what's already there?
59 |
60 | ## Working on universal-authenticator-library
61 |
62 | Code contributions are welcome and encouraged! If you are looking for a good place to start, check out the [good first issue](https://github.com/EOSIO/universal-authenticator-library/labels/good%20first%20issue) label in GitHub issues.
63 |
64 | Also, please follow these guidelines when submitting code:
65 |
66 | ### Feature Branches
67 |
68 | To get it out of the way:
69 |
70 | - **[develop](https://github.com/EOSIO/universal-authenticator-library/tree/develop)** is the development branch. All work on the next release happens here so you should generally branch off `develop`. Do **NOT** use this branch for a production site.
71 | - **[master](https://github.com/EOSIO/universal-authenticator-library)** contains the latest release of universal-authenticator-library. This branch may be used in production. Do **NOT** use this branch to work on universal-authenticator-library's source.
72 |
73 | ### Submitting Pull Requests
74 |
75 | Pull requests are awesome. If you're looking to raise a PR for something which doesn't have an open issue, please think carefully about [raising an issue](#reporting-an-issue) which your PR can close, especially if you're fixing a bug. This makes it more likely that there will be enough information available for your PR to be properly tested and merged.
76 |
77 | ### Testing and Quality Assurance
78 |
79 | Never underestimate just how useful quality assurance is. If you're looking to get involved with the code base and don't know where to start, checking out and testing a pull request is one of the most useful things you could do.
80 |
81 | Essentially, [check out the latest develop branch](#working-on-universal-authenticator-library), take it for a spin, and if you find anything odd, please follow the [bug report guidelines](#bug-reports) and let us know!
82 |
83 | ## Conduct
84 |
85 | While contributing, please be respectful and constructive, so that participation in our project is a positive experience for everyone.
86 |
87 | Examples of behavior that contributes to creating a positive environment include:
88 | - Using welcoming and inclusive language
89 | - Being respectful of differing viewpoints and experiences
90 | - Gracefully accepting constructive criticism
91 | - Focusing on what is best for the community
92 | - Showing empathy towards other community members
93 |
94 | Examples of unacceptable behavior include:
95 | - The use of sexualized language or imagery and unwelcome sexual attention or advances
96 | - Trolling, insulting/derogatory comments, and personal or political attacks
97 | - Public or private harassment
98 | - Publishing others’ private information, such as a physical or electronic address, without explicit permission
99 | - Other conduct which could reasonably be considered inappropriate in a professional setting
100 |
101 | ## Contributor License & Acknowledgments
102 |
103 | Whenever you make a contribution to this project, you license your contribution under the same terms as set out in LICENSE, and you represent and warrant that you have the right to license your contribution under those terms. Whenever you make a contribution to this project, you also certify in the terms of the Developer’s Certificate of Origin set out below:
104 |
105 | ```
106 | Developer Certificate of Origin
107 | Version 1.1
108 |
109 | Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
110 | 1 Letterman Drive
111 | Suite D4700
112 | San Francisco, CA, 94129
113 |
114 | Everyone is permitted to copy and distribute verbatim copies of this
115 | license document, but changing it is not allowed.
116 |
117 |
118 | Developer's Certificate of Origin 1.1
119 |
120 | By making a contribution to this project, I certify that:
121 |
122 | (a) The contribution was created in whole or in part by me and I
123 | have the right to submit it under the open source license
124 | indicated in the file; or
125 |
126 | (b) The contribution is based upon previous work that, to the best
127 | of my knowledge, is covered under an appropriate open source
128 | license and I have the right under that license to submit that
129 | work with modifications, whether created in whole or in part
130 | by me, under the same open source license (unless I am
131 | permitted to submit under a different license), as indicated
132 | in the file; or
133 |
134 | (c) The contribution was provided directly to me by some other
135 | person who certified (a), (b) or (c) and I have not modified
136 | it.
137 |
138 | (d) I understand and agree that this project and the contribution
139 | are public and that a record of the contribution (including all
140 | personal information I submit with it, including my sign-off) is
141 | maintained indefinitely and may be redistributed consistent with
142 | this project or the open source license(s) involved.
143 | ```
144 |
145 | ## References
146 |
147 | * Overall CONTRIB adapted from https://github.com/mathjax/MathJax/blob/master/CONTRIBUTING.md
148 | * Conduct section adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
149 |
--------------------------------------------------------------------------------
/IMPORTANT.md:
--------------------------------------------------------------------------------
1 | # Important Notice
2 |
3 | We (block.one and its affiliates) make available EOSIO and other software, updates, patches and documentation (collectively, Software) on a voluntary basis as a member of the EOSIO community. A condition of you accessing any Software, websites, articles, media, publications, documents or other material (collectively, Material) is your acceptance of the terms of this important notice.
4 |
5 | ## Software
6 | We are not responsible for ensuring the overall performance of Software or any related applications. Any test results or performance figures are indicative and will not reflect performance under all conditions. Software may contain components that are open sourced and subject to their own licenses; you are responsible for ensuring your compliance with those licenses.
7 |
8 | We make no representation, warranty, guarantee or undertaking in respect of Software, whether expressed or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall we be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the Software or the use or other dealings in the Software.
9 |
10 | Wallets and related components are complex software that require the highest levels of security. If incorrectly built or used, they may compromise users’ private keys and digital assets. Wallet applications and related components should undergo thorough security evaluations before being used. Only experienced developers should work with such Software.
11 |
12 | Material is not made available to any person or entity that is the subject of sanctions administered or enforced by any country or government or otherwise designated on any list of prohibited or restricted parties (including but not limited to the lists maintained by the United Nations Security Council, the U.S. Government, the European Union or its Member States, or other applicable government authority) or organized or resident in a country or territory that is the subject of country-wide or territory-wide sanctions. You represent and warrant that neither you nor any party having a direct or indirect beneficial interest in you or on whose behalf you are acting as agent or nominee is such a person or entity and you will comply with all applicable import, re-import, sanctions, anti-boycott, export, and re-export control laws and regulations. If this is not accurate or you do not agree, then you must immediately cease accessing our Material and delete all copies of Software.
13 |
14 | Any person using or offering Software in connection with providing software, goods or services to third parties shall advise such third parties of this important notice, including all limitations, restrictions and exclusions of liability.
15 |
16 | ## Trademarks
17 | Block.one, EOSIO, EOS, the heptahedron and associated logos and related marks are our trademarks. Other trademarks referenced in Material are the property of their respective owners.
18 |
19 | ## Third parties
20 | Any reference in Material to any third party or third-party product, resource or service is not an endorsement or recommendation by Block.one. We are not responsible for, and disclaim any and all responsibility and liability for, your use of or reliance on any of these resources. Third-party resources may be updated, changed or terminated at any time, so information in Material may be out of date or inaccurate.
21 |
22 | ## Forward-looking statements
23 | Please note that in making statements expressing Block.one’s vision, we do not guarantee anything, and all aspects of our vision are subject to change at any time and in all respects at Block.one’s sole discretion, with or without notice. We call these “forward-looking statements”, which includes statements on our website and in other Material, other than statements of historical facts, such as statements regarding EOSIO’s development, expected performance, and future features, or our business strategy, plans, prospects, developments and objectives. These statements are only predictions and reflect Block.one’s current beliefs and expectations with respect to future events; they are based on assumptions and are subject to risk, uncertainties and change at any time.
24 |
25 | We operate in a rapidly changing environment and new risks emerge from time to time. Given these risks and uncertainties, you are cautioned not to rely on these forward-looking statements. Actual results, performance or events may differ materially from what is predicted in the forward-looking statements. Some of the factors that could cause actual results, performance or events to differ materially from the forward-looking statements include, without limitation: technical feasibility and barriers; market trends and volatility; continued availability of capital, financing and personnel; product acceptance; the commercial success of any new products or technologies; competition; government regulation and laws; and general economic, market or business conditions.
26 |
27 | All statements are valid only as of the date of first posting and Block.one is under no obligation to, and expressly disclaims any obligation to, update or alter any statements, whether as a result of new information, subsequent events or otherwise. Nothing in any Material constitutes technological, financial, investment, legal or other advice, either in general or with regard to any particular situation or implementation. Please consult with experts in appropriate areas before implementing or utilizing anything contained in Material.
28 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-2019 block.one and its contributors. All rights reserved.
2 |
3 | The MIT License
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Universal Authenticator Library (UAL Core for short)
2 |
3 | 
4 |
5 | # About EOSIO Labs
6 |
7 | EOSIO Labs repositories are experimental. Developers in the community are encouraged to use EOSIO Labs repositories as the basis for code and concepts to incorporate into their applications. Community members are also welcome to contribute and further develop these repositories. Since these repositories are not supported by Block.one, we may not provide responses to issue reports, pull requests, updates to functionality, or other requests from the community, and we encourage the community to take responsibility for these.
8 |
9 | ## Why UAL?
10 | App Developers need to support many authentication providers (wallets) in order to maximize user reach and permit user choice. Today, this usually means implementing and maintaining many different APIs. The purpose of this library is to simplify, for App Developers, supporting multiple authentication providers.
11 |
12 | The Universal Authenticator Library (UAL) achieves this goal by abstracting the internal business logic of many authentication providers and exposing a single universal API.
13 |
14 | This lets App Developers integrate once, and support all authentication providers that implement an Authenticator for UAL.
15 |
16 | UAL also provides a renderer concept. Renderers are used so that the login experience on every site using UAL is the same. This gives End Users the benefit of a consistent and familiar interface. By utilizing the `getStyles()` method on the Authenticators, the Authenticator button will be rendered the same on any website.
17 |
18 | ### In Summary
19 |
20 | For integrating app developers:
21 | * a simple way to support multiple key managers, with a few lines of code
22 | * increases an application’s market reach, by supporting multiple authenticators
23 | * reduces time to create applications, by eliminating the need to individually support authenticators
24 | * access to all the necessary functions to sign transactions and customize user experience
25 |
26 | For app users:
27 | * a way to login to integrating apps using the authenticator of choice
28 | * a uniform, familiar login option that instills confidence while interacting with integrating apps
29 |
30 | The following is an example for a *desktop browser*. Mobile wallets with built-in browsers are autodetected and will not prompt the user to select them.
31 |
32 |
33 |
34 | *All product and company names are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.*
35 |
36 | ## Architecture
37 | UAL Core - Provides abstract classes/interfaces to provide consistent Public APIs for integrating developers. Also provides some minor convenience functions.
38 |
39 | Authenticators - Communicates with the signing app/device. An Authenticator provides login/logout functionality that returns a User object. The User object allows the integrating app to request a signature through the signing app/device.
40 |
41 | Renderers - Provides a UI layer for giving users a consistent UI/UX flow, independent of the Authenticator they are using or the site they are on.
42 |
43 |
44 |
45 | ## Usage (Authenticator Developer)
46 |
47 | A developer that wishes to add support for their authenticator to UAL must implement 2 classes. An `Authenticator` and a `User`.
48 |
49 | The `Authenticator` class represents the Button that will (potentially) be rendered on the screen and the business logic around logging.
50 |
51 | Logging in returns 1 or more `User` objects. A `User` object provides the ability for a Dapp developer to request the Dapp User to sign a transaction using whichever authentication provider they selected when logging in.
52 |
53 | ## Usage (Dapp Developer)
54 |
55 | Requires one or more Authenticators to communicate with the auth provider. Currently supported Authenticators include the following. See the [UAL New Authenticator Walkthrough](https://github.com/EOSIO/ual-authenticator-walkthrough) to learn how contributors could add new Authenticators.
56 |
57 | Authenticators initially created by block.one:
58 | - [UAL for Scatter](https://github.com/EOSIO/ual-scatter)
59 | - [UAL for Lynx](https://github.com/EOSIO/ual-lynx)
60 | - [UAL for Ledger](https://github.com/EOSIO/ual-ledger)
61 | - [UAL for Token Pocket](https://github.com/EOSIO/ual-token-pocket)
62 |
63 | Authenticators contributed by wallet providers and other community members:
64 | - [UAL for MEET.ONE](https://github.com/meet-one/ual-meetone)
65 | - [UAL for Anchor](https://github.com/greymass/ual-anchor)
66 |
67 | Recommended to use one of the prebuilt Renderers rather than the library directly:
68 | - [UAL Renderer for PlainJS](https://github.com/EOSIO/ual-plainjs-renderer)
69 | - [UAL Renderer for ReactJS](https://github.com/EOSIO/ual-reactjs-renderer)
70 |
71 | Example usage can be found at:
72 | - [Basic Example App for UAL with PlainJS](https://github.com/EOSIO/ual-plainjs-renderer/tree/master/examples)
73 | - [Basic Example App for UAL with ReactJS](https://github.com/EOSIO/ual-reactjs-renderer/tree/master/examples)
74 |
75 | ## Contributing
76 |
77 | [Contributing Guide](./CONTRIBUTING.md)
78 |
79 | [Code of Conduct](./CONTRIBUTING.md#conduct)
80 |
81 | ## License
82 |
83 | [MIT](./LICENSE)
84 |
85 | ## Important
86 |
87 | See [LICENSE](./LICENSE) for copyright and license terms.
88 |
89 | All repositories and other materials are provided subject to the terms of this [IMPORTANT](./IMPORTANT.md) notice and you must familiarize yourself with its terms. The notice contains important information, limitations and restrictions relating to our software, publications, trademarks, third-party resources, and forward-looking statements. By accessing any of our repositories and other materials, you accept and agree to the terms of the notice.
90 |
--------------------------------------------------------------------------------
/__mocks__/authenticatorMocks.ts:
--------------------------------------------------------------------------------
1 | // tslint:disable:max-classes-per-file
2 | import { Authenticator } from '../src/Authenticator'
3 | import { ButtonStyle, Chain } from '../src/interfaces'
4 | import { UALError } from '../src/UALError'
5 | import { User } from '../src/User'
6 |
7 | class MockAuthenticator extends Authenticator {
8 | constructor(chains: Chain[]) {
9 | super(chains)
10 | }
11 |
12 | public init(): Promise {
13 | return Promise.resolve()
14 | }
15 |
16 | public reset(): void {}
17 |
18 | public isErrored(): boolean {
19 | return false
20 | }
21 |
22 | public getOnboardingLink(): string {
23 | return ''
24 | }
25 |
26 | public getError(): UALError | null {
27 | return null
28 | }
29 |
30 | public isLoading(): boolean {
31 | return true
32 | }
33 |
34 | public getStyle(): ButtonStyle {
35 | throw new Error('method not implemented')
36 | }
37 |
38 | public shouldRender(): boolean {
39 | return true
40 | }
41 |
42 | public shouldAutoLogin(): boolean {
43 | return false
44 | }
45 |
46 | public shouldRequestAccountName(): Promise {
47 | throw new Error('method not implemented')
48 | }
49 |
50 | public login(accountName?: string): Promise {
51 | throw new Error(`method not implemented for ${accountName}`)
52 | }
53 |
54 | public logout(): Promise {
55 | throw new Error('method not implemented')
56 | }
57 |
58 | public requiresGetKeyConfirmation(): boolean {
59 | return false
60 | }
61 |
62 | public getName(): string {
63 | return 'authenticator'
64 | }
65 | }
66 |
67 | export class MockAuthenticatorToRender extends MockAuthenticator {
68 | constructor(chains: Chain[]) {
69 | super(chains)
70 | }
71 |
72 | public shouldRender(): boolean {
73 | return true
74 | }
75 | }
76 |
77 | export class MockAuthenticatorToNotRender extends MockAuthenticator {
78 | constructor(chains: Chain[]) {
79 | super(chains)
80 | }
81 |
82 | public shouldRender(): boolean {
83 | return false
84 | }
85 | }
86 |
87 | export class MockAuthenticatorToAutoLogin extends MockAuthenticator {
88 | constructor(chains: Chain[]) {
89 | super(chains)
90 | }
91 |
92 | public shouldAutoLogin(): boolean {
93 | return true
94 | }
95 | }
96 |
97 | export class MockAuthenticatorToInvalidate extends MockAuthenticator {
98 | constructor(chains: Chain[]) {
99 | super(chains)
100 | }
101 |
102 | public shouldInvalidateAfter(): number {
103 | return 0
104 | }
105 | }
106 |
--------------------------------------------------------------------------------
/build-docs.sh:
--------------------------------------------------------------------------------
1 | ./node_modules/.bin/typedoc --mode file --theme minimal --target "ES6" --exclude "**/*.test.ts,**/testHelpers/*" --hideGenerator --excludeExternals --excludeNotExported --includeDeclarations --readme none --out docs
2 |
--------------------------------------------------------------------------------
/docs/assets/css/main.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v1.1.3 | MIT License | git.io/normalize */
2 | /* ========================================================================== HTML5 display definitions ========================================================================== */
3 | /** Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. */
4 | article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
5 |
6 | /** Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. */
7 | audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; }
8 |
9 | /** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */
10 | audio:not([controls]) { display: none; height: 0; }
11 |
12 | /** Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. Known issue: no IE 6 support. */
13 | [hidden] { display: none; }
14 |
15 | /* ========================================================================== Base ========================================================================== */
16 | /** 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using `em` units. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */
17 | html { font-size: 100%; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ font-family: sans-serif; }
18 |
19 | /** Address `font-family` inconsistency between `textarea` and other form elements. */
20 | button, input, select, textarea { font-family: sans-serif; }
21 |
22 | /** Address margins handled incorrectly in IE 6/7. */
23 | body { margin: 0; }
24 |
25 | /* ========================================================================== Links ========================================================================== */
26 | /** Address `outline` inconsistency between Chrome and other browsers. */
27 | a:focus { outline: thin dotted; }
28 | a:active, a:hover { outline: 0; }
29 |
30 | /** Improve readability when focused and also mouse hovered in all browsers. */
31 | /* ========================================================================== Typography ========================================================================== */
32 | /** Address font sizes and margins set differently in IE 6/7. Address font sizes within `section` and `article` in Firefox 4+, Safari 5, and Chrome. */
33 | h1 { font-size: 2em; margin: 0.67em 0; }
34 |
35 | h2 { font-size: 1.5em; margin: 0.83em 0; }
36 |
37 | h3 { font-size: 1.17em; margin: 1em 0; }
38 |
39 | h4, .tsd-index-panel h3 { font-size: 1em; margin: 1.33em 0; }
40 |
41 | h5 { font-size: 0.83em; margin: 1.67em 0; }
42 |
43 | h6 { font-size: 0.67em; margin: 2.33em 0; }
44 |
45 | /** Address styling not present in IE 7/8/9, Safari 5, and Chrome. */
46 | abbr[title] { border-bottom: 1px dotted; }
47 |
48 | /** Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. */
49 | b, strong { font-weight: bold; }
50 |
51 | blockquote { margin: 1em 40px; }
52 |
53 | /** Address styling not present in Safari 5 and Chrome. */
54 | dfn { font-style: italic; }
55 |
56 | /** Address differences between Firefox and other browsers. Known issue: no IE 6/7 normalization. */
57 | hr { box-sizing: content-box; height: 0; }
58 |
59 | /** Address styling not present in IE 6/7/8/9. */
60 | mark { background: #ff0; color: #000; }
61 |
62 | /** Address margins set differently in IE 6/7. */
63 | p, pre { margin: 1em 0; }
64 |
65 | /** Correct font family set oddly in IE 6, Safari 4/5, and Chrome. */
66 | code, kbd, pre, samp { font-family: monospace, serif; _font-family: "courier new", monospace; font-size: 1em; }
67 |
68 | /** Improve readability of pre-formatted text in all browsers. */
69 | pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; }
70 |
71 | /** Address CSS quotes not supported in IE 6/7. */
72 | q { quotes: none; }
73 | q:before, q:after { content: ""; content: none; }
74 |
75 | /** Address `quotes` property not supported in Safari 4. */
76 | /** Address inconsistent and variable font size in all browsers. */
77 | small { font-size: 80%; }
78 |
79 | /** Prevent `sub` and `sup` affecting `line-height` in all browsers. */
80 | sub { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
81 |
82 | sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; top: -0.5em; }
83 |
84 | sub { bottom: -0.25em; }
85 |
86 | /* ========================================================================== Lists ========================================================================== */
87 | /** Address margins set differently in IE 6/7. */
88 | dl, menu, ol, ul { margin: 1em 0; }
89 |
90 | dd { margin: 0 0 0 40px; }
91 |
92 | /** Address paddings set differently in IE 6/7. */
93 | menu, ol, ul { padding: 0 0 0 40px; }
94 |
95 | /** Correct list images handled incorrectly in IE 7. */
96 | nav ul, nav ol { list-style: none; list-style-image: none; }
97 |
98 | /* ========================================================================== Embedded content ========================================================================== */
99 | /** 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. 2. Improve image quality when scaled in IE 7. */
100 | img { border: 0; /* 1 */ -ms-interpolation-mode: bicubic; }
101 |
102 | /* 2 */
103 | /** Correct overflow displayed oddly in IE 9. */
104 | svg:not(:root) { overflow: hidden; }
105 |
106 | /* ========================================================================== Figures ========================================================================== */
107 | /** Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. */
108 | figure, form { margin: 0; }
109 |
110 | /* ========================================================================== Forms ========================================================================== */
111 | /** Correct margin displayed oddly in IE 6/7. */
112 | /** Define consistent border, margin, and padding. */
113 | fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; }
114 |
115 | /** 1. Correct color not being inherited in IE 6/7/8/9. 2. Correct text not wrapping in Firefox 3. 3. Correct alignment displayed oddly in IE 6/7. */
116 | legend { border: 0; /* 1 */ padding: 0; white-space: normal; /* 2 */ *margin-left: -7px; }
117 |
118 | /* 3 */
119 | /** 1. Correct font size not being inherited in all browsers. 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, and Chrome. 3. Improve appearance and consistency in all browsers. */
120 | button, input, select, textarea { font-size: 100%; /* 1 */ margin: 0; /* 2 */ vertical-align: baseline; /* 3 */ *vertical-align: middle; }
121 |
122 | /* 3 */
123 | /** Address Firefox 3+ setting `line-height` on `input` using `!important` in the UA stylesheet. */
124 | button, input { line-height: normal; }
125 |
126 | /** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. Correct `select` style inheritance in Firefox 4+ and Opera. */
127 | button, select { text-transform: none; }
128 |
129 | /** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. 4. Remove inner spacing in IE 7 without affecting normal text inputs. Known issue: inner spacing remains in IE 6. */
130 | button, html input[type="button"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ *overflow: visible; }
131 |
132 | /* 4 */
133 | input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ *overflow: visible; }
134 |
135 | /* 4 */
136 | /** Re-set default cursor for disabled elements. */
137 | button[disabled], html input[disabled] { cursor: default; }
138 |
139 | /** 1. Address box sizing set to content-box in IE 8/9. 2. Remove excess padding in IE 8/9. 3. Remove excess padding in IE 7. Known issue: excess padding remains in IE 6. */
140 | input { /* 3 */ }
141 | input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ *height: 13px; /* 3 */ *width: 13px; }
142 | input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; }
143 | input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
144 |
145 | /** 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome (include `-moz` to future-proof). */
146 | /** Remove inner padding and search cancel button in Safari 5 and Chrome on OS X. */
147 | /** Remove inner padding and border in Firefox 3+. */
148 | button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; }
149 |
150 | /** 1. Remove default vertical scrollbar in IE 6/7/8/9. 2. Improve readability and alignment in all browsers. */
151 | textarea { overflow: auto; /* 1 */ vertical-align: top; }
152 |
153 | /* 2 */
154 | /* ========================================================================== Tables ========================================================================== */
155 | /** Remove most spacing between table cells. */
156 | table { border-collapse: collapse; border-spacing: 0; }
157 |
158 | /* Visual Studio-like style based on original C# coloring by Jason Diamond */
159 | .hljs { display: inline-block; padding: 0.5em; background: white; color: black; }
160 |
161 | .hljs-comment, .hljs-annotation, .hljs-template_comment, .diff .hljs-header, .hljs-chunk, .apache .hljs-cbracket { color: #008000; }
162 |
163 | .hljs-keyword, .hljs-id, .hljs-built_in, .css .smalltalk .hljs-class, .hljs-winutils, .bash .hljs-variable, .tex .hljs-command, .hljs-request, .hljs-status, .nginx .hljs-title { color: #00f; }
164 |
165 | .xml .hljs-tag { color: #00f; }
166 | .xml .hljs-tag .hljs-value { color: #00f; }
167 |
168 | .hljs-string, .hljs-title, .hljs-parent, .hljs-tag .hljs-value, .hljs-rules .hljs-value { color: #a31515; }
169 |
170 | .ruby .hljs-symbol { color: #a31515; }
171 | .ruby .hljs-symbol .hljs-string { color: #a31515; }
172 |
173 | .hljs-template_tag, .django .hljs-variable, .hljs-addition, .hljs-flow, .hljs-stream, .apache .hljs-tag, .hljs-date, .tex .hljs-formula, .coffeescript .hljs-attribute { color: #a31515; }
174 |
175 | .ruby .hljs-string, .hljs-decorator, .hljs-filter .hljs-argument, .hljs-localvars, .hljs-array, .hljs-attr_selector, .hljs-pseudo, .hljs-pi, .hljs-doctype, .hljs-deletion, .hljs-envvar, .hljs-shebang, .hljs-preprocessor, .hljs-pragma, .userType, .apache .hljs-sqbracket, .nginx .hljs-built_in, .tex .hljs-special, .hljs-prompt { color: #2b91af; }
176 |
177 | .hljs-phpdoc, .hljs-javadoc, .hljs-xmlDocTag { color: #808080; }
178 |
179 | .vhdl .hljs-typename { font-weight: bold; }
180 | .vhdl .hljs-string { color: #666666; }
181 | .vhdl .hljs-literal { color: #a31515; }
182 | .vhdl .hljs-attribute { color: #00b0e8; }
183 |
184 | .xml .hljs-attribute { color: #f00; }
185 |
186 | .col > :first-child, .col-1 > :first-child, .col-2 > :first-child, .col-3 > :first-child, .col-4 > :first-child, .col-5 > :first-child, .col-6 > :first-child, .col-7 > :first-child, .col-8 > :first-child, .col-9 > :first-child, .col-10 > :first-child, .col-11 > :first-child, .tsd-panel > :first-child, ul.tsd-descriptions > li > :first-child, .col > :first-child > :first-child, .col-1 > :first-child > :first-child, .col-2 > :first-child > :first-child, .col-3 > :first-child > :first-child, .col-4 > :first-child > :first-child, .col-5 > :first-child > :first-child, .col-6 > :first-child > :first-child, .col-7 > :first-child > :first-child, .col-8 > :first-child > :first-child, .col-9 > :first-child > :first-child, .col-10 > :first-child > :first-child, .col-11 > :first-child > :first-child, .tsd-panel > :first-child > :first-child, ul.tsd-descriptions > li > :first-child > :first-child, .col > :first-child > :first-child > :first-child, .col-1 > :first-child > :first-child > :first-child, .col-2 > :first-child > :first-child > :first-child, .col-3 > :first-child > :first-child > :first-child, .col-4 > :first-child > :first-child > :first-child, .col-5 > :first-child > :first-child > :first-child, .col-6 > :first-child > :first-child > :first-child, .col-7 > :first-child > :first-child > :first-child, .col-8 > :first-child > :first-child > :first-child, .col-9 > :first-child > :first-child > :first-child, .col-10 > :first-child > :first-child > :first-child, .col-11 > :first-child > :first-child > :first-child, .tsd-panel > :first-child > :first-child > :first-child, ul.tsd-descriptions > li > :first-child > :first-child > :first-child { margin-top: 0; }
187 | .col > :last-child, .col-1 > :last-child, .col-2 > :last-child, .col-3 > :last-child, .col-4 > :last-child, .col-5 > :last-child, .col-6 > :last-child, .col-7 > :last-child, .col-8 > :last-child, .col-9 > :last-child, .col-10 > :last-child, .col-11 > :last-child, .tsd-panel > :last-child, ul.tsd-descriptions > li > :last-child, .col > :last-child > :last-child, .col-1 > :last-child > :last-child, .col-2 > :last-child > :last-child, .col-3 > :last-child > :last-child, .col-4 > :last-child > :last-child, .col-5 > :last-child > :last-child, .col-6 > :last-child > :last-child, .col-7 > :last-child > :last-child, .col-8 > :last-child > :last-child, .col-9 > :last-child > :last-child, .col-10 > :last-child > :last-child, .col-11 > :last-child > :last-child, .tsd-panel > :last-child > :last-child, ul.tsd-descriptions > li > :last-child > :last-child, .col > :last-child > :last-child > :last-child, .col-1 > :last-child > :last-child > :last-child, .col-2 > :last-child > :last-child > :last-child, .col-3 > :last-child > :last-child > :last-child, .col-4 > :last-child > :last-child > :last-child, .col-5 > :last-child > :last-child > :last-child, .col-6 > :last-child > :last-child > :last-child, .col-7 > :last-child > :last-child > :last-child, .col-8 > :last-child > :last-child > :last-child, .col-9 > :last-child > :last-child > :last-child, .col-10 > :last-child > :last-child > :last-child, .col-11 > :last-child > :last-child > :last-child, .tsd-panel > :last-child > :last-child > :last-child, ul.tsd-descriptions > li > :last-child > :last-child > :last-child { margin-bottom: 0; }
188 |
189 | .container { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
190 | @media (max-width: 640px) { .container { padding: 0 20px; } }
191 |
192 | .container-main { padding-bottom: 200px; }
193 |
194 | .row { position: relative; margin: 0 -10px; }
195 | .row:after { visibility: hidden; display: block; content: ""; clear: both; height: 0; }
196 |
197 | .col, .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11 { box-sizing: border-box; float: left; padding: 0 10px; }
198 |
199 | .col-1 { width: 8.33333%; }
200 |
201 | .offset-1 { margin-left: 8.33333%; }
202 |
203 | .col-2 { width: 16.66667%; }
204 |
205 | .offset-2 { margin-left: 16.66667%; }
206 |
207 | .col-3 { width: 25%; }
208 |
209 | .offset-3 { margin-left: 25%; }
210 |
211 | .col-4 { width: 33.33333%; }
212 |
213 | .offset-4 { margin-left: 33.33333%; }
214 |
215 | .col-5 { width: 41.66667%; }
216 |
217 | .offset-5 { margin-left: 41.66667%; }
218 |
219 | .col-6 { width: 50%; }
220 |
221 | .offset-6 { margin-left: 50%; }
222 |
223 | .col-7 { width: 58.33333%; }
224 |
225 | .offset-7 { margin-left: 58.33333%; }
226 |
227 | .col-8 { width: 66.66667%; }
228 |
229 | .offset-8 { margin-left: 66.66667%; }
230 |
231 | .col-9 { width: 75%; }
232 |
233 | .offset-9 { margin-left: 75%; }
234 |
235 | .col-10 { width: 83.33333%; }
236 |
237 | .offset-10 { margin-left: 83.33333%; }
238 |
239 | .col-11 { width: 91.66667%; }
240 |
241 | .offset-11 { margin-left: 91.66667%; }
242 |
243 | .tsd-kind-icon { display: block; position: relative; padding-left: 20px; text-indent: -20px; }
244 | .tsd-kind-icon:before { content: ''; display: inline-block; vertical-align: middle; width: 17px; height: 17px; margin: 0 3px 2px 0; background-image: url(../images/icons.png); }
245 | @media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { .tsd-kind-icon:before { background-image: url(../images/icons@2x.png); background-size: 238px 204px; } }
246 |
247 | .tsd-signature.tsd-kind-icon:before { background-position: 0 -153px; }
248 |
249 | .tsd-kind-object-literal > .tsd-kind-icon:before { background-position: 0px -17px; }
250 | .tsd-kind-object-literal.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -17px; }
251 | .tsd-kind-object-literal.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -17px; }
252 |
253 | .tsd-kind-class > .tsd-kind-icon:before { background-position: 0px -34px; }
254 | .tsd-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -34px; }
255 | .tsd-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -34px; }
256 |
257 | .tsd-kind-class.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: 0px -51px; }
258 | .tsd-kind-class.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -51px; }
259 | .tsd-kind-class.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -51px; }
260 |
261 | .tsd-kind-interface > .tsd-kind-icon:before { background-position: 0px -68px; }
262 | .tsd-kind-interface.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -68px; }
263 | .tsd-kind-interface.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -68px; }
264 |
265 | .tsd-kind-interface.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: 0px -85px; }
266 | .tsd-kind-interface.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -85px; }
267 | .tsd-kind-interface.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -85px; }
268 |
269 | .tsd-kind-module > .tsd-kind-icon:before { background-position: 0px -102px; }
270 | .tsd-kind-module.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -102px; }
271 | .tsd-kind-module.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -102px; }
272 |
273 | .tsd-kind-external-module > .tsd-kind-icon:before { background-position: 0px -102px; }
274 | .tsd-kind-external-module.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -102px; }
275 | .tsd-kind-external-module.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -102px; }
276 |
277 | .tsd-kind-enum > .tsd-kind-icon:before { background-position: 0px -119px; }
278 | .tsd-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -119px; }
279 | .tsd-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -119px; }
280 |
281 | .tsd-kind-enum-member > .tsd-kind-icon:before { background-position: 0px -136px; }
282 | .tsd-kind-enum-member.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -136px; }
283 | .tsd-kind-enum-member.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -136px; }
284 |
285 | .tsd-kind-signature > .tsd-kind-icon:before { background-position: 0px -153px; }
286 | .tsd-kind-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -153px; }
287 | .tsd-kind-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -153px; }
288 |
289 | .tsd-kind-type-alias > .tsd-kind-icon:before { background-position: 0px -170px; }
290 | .tsd-kind-type-alias.tsd-is-protected > .tsd-kind-icon:before { background-position: -17px -170px; }
291 | .tsd-kind-type-alias.tsd-is-private > .tsd-kind-icon:before { background-position: -34px -170px; }
292 |
293 | .tsd-kind-variable > .tsd-kind-icon:before { background-position: -136px -0px; }
294 | .tsd-kind-variable.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -0px; }
295 | .tsd-kind-variable.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
296 | .tsd-kind-variable.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -0px; }
297 | .tsd-kind-variable.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -0px; }
298 | .tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -0px; }
299 | .tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -0px; }
300 | .tsd-kind-variable.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
301 | .tsd-kind-variable.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -0px; }
302 | .tsd-kind-variable.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -0px; }
303 | .tsd-kind-variable.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
304 | .tsd-kind-variable.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -0px; }
305 | .tsd-kind-variable.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -0px; }
306 |
307 | .tsd-kind-property > .tsd-kind-icon:before { background-position: -136px -0px; }
308 | .tsd-kind-property.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -0px; }
309 | .tsd-kind-property.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
310 | .tsd-kind-property.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -0px; }
311 | .tsd-kind-property.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -0px; }
312 | .tsd-kind-property.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -0px; }
313 | .tsd-kind-property.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -0px; }
314 | .tsd-kind-property.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
315 | .tsd-kind-property.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -0px; }
316 | .tsd-kind-property.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -0px; }
317 | .tsd-kind-property.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -0px; }
318 | .tsd-kind-property.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -0px; }
319 | .tsd-kind-property.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -0px; }
320 |
321 | .tsd-kind-get-signature > .tsd-kind-icon:before { background-position: -136px -17px; }
322 | .tsd-kind-get-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -17px; }
323 | .tsd-kind-get-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
324 | .tsd-kind-get-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -17px; }
325 | .tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -17px; }
326 | .tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -17px; }
327 | .tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -17px; }
328 | .tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
329 | .tsd-kind-get-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -17px; }
330 | .tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -17px; }
331 | .tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -17px; }
332 | .tsd-kind-get-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -17px; }
333 | .tsd-kind-get-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -17px; }
334 |
335 | .tsd-kind-set-signature > .tsd-kind-icon:before { background-position: -136px -34px; }
336 | .tsd-kind-set-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -34px; }
337 | .tsd-kind-set-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
338 | .tsd-kind-set-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -34px; }
339 | .tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -34px; }
340 | .tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -34px; }
341 | .tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -34px; }
342 | .tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
343 | .tsd-kind-set-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -34px; }
344 | .tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -34px; }
345 | .tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -34px; }
346 | .tsd-kind-set-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -34px; }
347 | .tsd-kind-set-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -34px; }
348 |
349 | .tsd-kind-accessor > .tsd-kind-icon:before { background-position: -136px -51px; }
350 | .tsd-kind-accessor.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -51px; }
351 | .tsd-kind-accessor.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
352 | .tsd-kind-accessor.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -51px; }
353 | .tsd-kind-accessor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -51px; }
354 | .tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -51px; }
355 | .tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -51px; }
356 | .tsd-kind-accessor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
357 | .tsd-kind-accessor.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -51px; }
358 | .tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -51px; }
359 | .tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -51px; }
360 | .tsd-kind-accessor.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -51px; }
361 | .tsd-kind-accessor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -51px; }
362 |
363 | .tsd-kind-function > .tsd-kind-icon:before { background-position: -136px -68px; }
364 | .tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
365 | .tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
366 | .tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
367 | .tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
368 | .tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
369 | .tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
370 | .tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
371 | .tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
372 | .tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
373 | .tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
374 | .tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
375 | .tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
376 |
377 | .tsd-kind-method > .tsd-kind-icon:before { background-position: -136px -68px; }
378 | .tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
379 | .tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
380 | .tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
381 | .tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
382 | .tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
383 | .tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
384 | .tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
385 | .tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
386 | .tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
387 | .tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
388 | .tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
389 | .tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
390 |
391 | .tsd-kind-call-signature > .tsd-kind-icon:before { background-position: -136px -68px; }
392 | .tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -68px; }
393 | .tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
394 | .tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -68px; }
395 | .tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -68px; }
396 | .tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -68px; }
397 | .tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -68px; }
398 | .tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
399 | .tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -68px; }
400 | .tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -68px; }
401 | .tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -68px; }
402 | .tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -68px; }
403 | .tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -68px; }
404 |
405 | .tsd-kind-function.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: -136px -85px; }
406 | .tsd-kind-function.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -85px; }
407 | .tsd-kind-function.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
408 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -85px; }
409 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -85px; }
410 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -85px; }
411 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -85px; }
412 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
413 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -85px; }
414 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -85px; }
415 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
416 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -85px; }
417 | .tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -85px; }
418 |
419 | .tsd-kind-method.tsd-has-type-parameter > .tsd-kind-icon:before { background-position: -136px -85px; }
420 | .tsd-kind-method.tsd-has-type-parameter.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -85px; }
421 | .tsd-kind-method.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
422 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -85px; }
423 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -85px; }
424 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -85px; }
425 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -85px; }
426 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
427 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -85px; }
428 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -85px; }
429 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -85px; }
430 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -85px; }
431 | .tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -85px; }
432 |
433 | .tsd-kind-constructor > .tsd-kind-icon:before { background-position: -136px -102px; }
434 | .tsd-kind-constructor.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -102px; }
435 | .tsd-kind-constructor.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
436 | .tsd-kind-constructor.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -102px; }
437 | .tsd-kind-constructor.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -102px; }
438 | .tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -102px; }
439 | .tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -102px; }
440 | .tsd-kind-constructor.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
441 | .tsd-kind-constructor.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -102px; }
442 | .tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -102px; }
443 | .tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
444 | .tsd-kind-constructor.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -102px; }
445 | .tsd-kind-constructor.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -102px; }
446 |
447 | .tsd-kind-constructor-signature > .tsd-kind-icon:before { background-position: -136px -102px; }
448 | .tsd-kind-constructor-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -102px; }
449 | .tsd-kind-constructor-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
450 | .tsd-kind-constructor-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -102px; }
451 | .tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -102px; }
452 | .tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -102px; }
453 | .tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -102px; }
454 | .tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
455 | .tsd-kind-constructor-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -102px; }
456 | .tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -102px; }
457 | .tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -102px; }
458 | .tsd-kind-constructor-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -102px; }
459 | .tsd-kind-constructor-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -102px; }
460 |
461 | .tsd-kind-index-signature > .tsd-kind-icon:before { background-position: -136px -119px; }
462 | .tsd-kind-index-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -119px; }
463 | .tsd-kind-index-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
464 | .tsd-kind-index-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -119px; }
465 | .tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -119px; }
466 | .tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -119px; }
467 | .tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -119px; }
468 | .tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
469 | .tsd-kind-index-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -119px; }
470 | .tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -119px; }
471 | .tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -119px; }
472 | .tsd-kind-index-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -119px; }
473 | .tsd-kind-index-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -119px; }
474 |
475 | .tsd-kind-event > .tsd-kind-icon:before { background-position: -136px -136px; }
476 | .tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -136px; }
477 | .tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
478 | .tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -136px; }
479 | .tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -136px; }
480 | .tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -136px; }
481 | .tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -136px; }
482 | .tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
483 | .tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -136px; }
484 | .tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -136px; }
485 | .tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -136px; }
486 | .tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -136px; }
487 | .tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -136px; }
488 |
489 | .tsd-is-static > .tsd-kind-icon:before { background-position: -136px -153px; }
490 | .tsd-is-static.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -153px; }
491 | .tsd-is-static.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
492 | .tsd-is-static.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -153px; }
493 | .tsd-is-static.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -153px; }
494 | .tsd-is-static.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -153px; }
495 | .tsd-is-static.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -153px; }
496 | .tsd-is-static.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
497 | .tsd-is-static.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -153px; }
498 | .tsd-is-static.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -153px; }
499 | .tsd-is-static.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -153px; }
500 | .tsd-is-static.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -153px; }
501 | .tsd-is-static.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -153px; }
502 |
503 | .tsd-is-static.tsd-kind-function > .tsd-kind-icon:before { background-position: -136px -170px; }
504 | .tsd-is-static.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
505 | .tsd-is-static.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
506 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
507 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
508 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
509 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
510 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
511 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
512 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
513 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
514 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
515 | .tsd-is-static.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
516 |
517 | .tsd-is-static.tsd-kind-method > .tsd-kind-icon:before { background-position: -136px -170px; }
518 | .tsd-is-static.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
519 | .tsd-is-static.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
520 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
521 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
522 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
523 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
524 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
525 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
526 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
527 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
528 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
529 | .tsd-is-static.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
530 |
531 | .tsd-is-static.tsd-kind-call-signature > .tsd-kind-icon:before { background-position: -136px -170px; }
532 | .tsd-is-static.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -170px; }
533 | .tsd-is-static.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
534 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -170px; }
535 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -170px; }
536 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -170px; }
537 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -170px; }
538 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
539 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -170px; }
540 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -170px; }
541 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -170px; }
542 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -170px; }
543 | .tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -170px; }
544 |
545 | .tsd-is-static.tsd-kind-event > .tsd-kind-icon:before { background-position: -136px -187px; }
546 | .tsd-is-static.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { background-position: -153px -187px; }
547 | .tsd-is-static.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
548 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { background-position: -51px -187px; }
549 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { background-position: -68px -187px; }
550 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { background-position: -85px -187px; }
551 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited > .tsd-kind-icon:before { background-position: -102px -187px; }
552 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
553 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { background-position: -170px -187px; }
554 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { background-position: -187px -187px; }
555 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { background-position: -119px -187px; }
556 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { background-position: -204px -187px; }
557 | .tsd-is-static.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited > .tsd-kind-icon:before { background-position: -221px -187px; }
558 |
559 | .no-transition { transition: none !important; }
560 |
561 | @-webkit-keyframes fade-in { from { opacity: 0; }
562 | to { opacity: 1; } }
563 |
564 | @keyframes fade-in { from { opacity: 0; }
565 | to { opacity: 1; } }
566 | @-webkit-keyframes fade-out { from { opacity: 1; visibility: visible; }
567 | to { opacity: 0; } }
568 | @keyframes fade-out { from { opacity: 1; visibility: visible; }
569 | to { opacity: 0; } }
570 | @-webkit-keyframes fade-in-delayed { 0% { opacity: 0; }
571 | 33% { opacity: 0; }
572 | 100% { opacity: 1; } }
573 | @keyframes fade-in-delayed { 0% { opacity: 0; }
574 | 33% { opacity: 0; }
575 | 100% { opacity: 1; } }
576 | @-webkit-keyframes fade-out-delayed { 0% { opacity: 1; visibility: visible; }
577 | 66% { opacity: 0; }
578 | 100% { opacity: 0; } }
579 | @keyframes fade-out-delayed { 0% { opacity: 1; visibility: visible; }
580 | 66% { opacity: 0; }
581 | 100% { opacity: 0; } }
582 | @-webkit-keyframes shift-to-left { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
583 | to { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); } }
584 | @keyframes shift-to-left { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
585 | to { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); } }
586 | @-webkit-keyframes unshift-to-left { from { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
587 | to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
588 | @keyframes unshift-to-left { from { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
589 | to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
590 | @-webkit-keyframes pop-in-from-right { from { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
591 | to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
592 | @keyframes pop-in-from-right { from { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
593 | to { -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
594 | @-webkit-keyframes pop-out-to-right { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); visibility: visible; }
595 | to { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); } }
596 | @keyframes pop-out-to-right { from { -webkit-transform: translate(0, 0); transform: translate(0, 0); visibility: visible; }
597 | to { -webkit-transform: translate(100%, 0); transform: translate(100%, 0); } }
598 | body { background: #fdfdfd; font-family: "Segoe UI", sans-serif; font-size: 16px; color: #222; }
599 |
600 | a { color: #4da6ff; text-decoration: none; }
601 | a:hover { text-decoration: underline; }
602 |
603 | code, pre { font-family: Menlo, Monaco, Consolas, "Courier New", monospace; padding: 0.2em; margin: 0; font-size: 14px; background-color: rgba(0, 0, 0, 0.04); }
604 |
605 | pre { padding: 10px; }
606 | pre code { padding: 0; font-size: 100%; background-color: transparent; }
607 |
608 | .tsd-typography { line-height: 1.333em; }
609 | .tsd-typography ul { list-style: square; padding: 0 0 0 20px; margin: 0; }
610 | .tsd-typography h4, .tsd-typography .tsd-index-panel h3, .tsd-index-panel .tsd-typography h3, .tsd-typography h5, .tsd-typography h6 { font-size: 1em; margin: 0; }
611 | .tsd-typography h5, .tsd-typography h6 { font-weight: normal; }
612 | .tsd-typography p, .tsd-typography ul, .tsd-typography ol { margin: 1em 0; }
613 |
614 | @media (min-width: 901px) and (max-width: 1024px) { html.default .col-content { width: 72%; }
615 | html.default .col-menu { width: 28%; }
616 | html.default .tsd-navigation { padding-left: 10px; } }
617 | @media (max-width: 900px) { html.default .col-content { float: none; width: 100%; }
618 | html.default .col-menu { position: fixed !important; overflow: auto; -webkit-overflow-scrolling: touch; overflow-scrolling: touch; z-index: 1024; top: 0 !important; bottom: 0 !important; left: auto !important; right: 0 !important; width: 100%; padding: 20px 20px 0 0; max-width: 450px; visibility: hidden; background-color: #fff; -webkit-transform: translate(100%, 0); transform: translate(100%, 0); }
619 | html.default .col-menu > *:last-child { padding-bottom: 20px; }
620 | html.default .overlay { content: ""; display: block; position: fixed; z-index: 1023; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.75); visibility: hidden; }
621 | html.default.to-has-menu .overlay { -webkit-animation: fade-in 0.4s; animation: fade-in 0.4s; }
622 | html.default.to-has-menu header, html.default.to-has-menu footer, html.default.to-has-menu .col-content { -webkit-animation: shift-to-left 0.4s; animation: shift-to-left 0.4s; }
623 | html.default.to-has-menu .col-menu { -webkit-animation: pop-in-from-right 0.4s; animation: pop-in-from-right 0.4s; }
624 | html.default.from-has-menu .overlay { -webkit-animation: fade-out 0.4s; animation: fade-out 0.4s; }
625 | html.default.from-has-menu header, html.default.from-has-menu footer, html.default.from-has-menu .col-content { -webkit-animation: unshift-to-left 0.4s; animation: unshift-to-left 0.4s; }
626 | html.default.from-has-menu .col-menu { -webkit-animation: pop-out-to-right 0.4s; animation: pop-out-to-right 0.4s; }
627 | html.default.has-menu body { overflow: hidden; }
628 | html.default.has-menu .overlay { visibility: visible; }
629 | html.default.has-menu header, html.default.has-menu footer, html.default.has-menu .col-content { -webkit-transform: translate(-25%, 0); transform: translate(-25%, 0); }
630 | html.default.has-menu .col-menu { visibility: visible; -webkit-transform: translate(0, 0); transform: translate(0, 0); } }
631 |
632 | .tsd-page-title { padding: 70px 0 20px 0; margin: 0 0 40px 0; background: #fff; box-shadow: 0 0 5px rgba(0, 0, 0, 0.35); }
633 | .tsd-page-title h1 { margin: 0; }
634 |
635 | .tsd-breadcrumb { margin: 0; padding: 0; color: #808080; }
636 | .tsd-breadcrumb a { color: #808080; text-decoration: none; }
637 | .tsd-breadcrumb a:hover { text-decoration: underline; }
638 | .tsd-breadcrumb li { display: inline; }
639 | .tsd-breadcrumb li:after { content: " / "; }
640 |
641 | html.minimal .container { margin: 0; }
642 | html.minimal .container-main { padding-top: 50px; padding-bottom: 0; }
643 | html.minimal .content-wrap { padding-left: 300px; }
644 | html.minimal .tsd-navigation { position: fixed !important; overflow: auto; -webkit-overflow-scrolling: touch; overflow-scrolling: touch; box-sizing: border-box; z-index: 1; left: 0; top: 40px; bottom: 0; width: 300px; padding: 20px; margin: 0; }
645 | html.minimal .tsd-member .tsd-member { margin-left: 0; }
646 | html.minimal .tsd-page-toolbar { position: fixed; z-index: 2; }
647 | html.minimal #tsd-filter .tsd-filter-group { right: 0; -webkit-transform: none; transform: none; }
648 | html.minimal footer { background-color: transparent; }
649 | html.minimal footer .container { padding: 0; }
650 | html.minimal .tsd-generator { padding: 0; }
651 | @media (max-width: 900px) { html.minimal .tsd-navigation { display: none; }
652 | html.minimal .content-wrap { padding-left: 0; } }
653 |
654 | dl.tsd-comment-tags { overflow: hidden; }
655 | dl.tsd-comment-tags dt { clear: both; float: left; padding: 1px 5px; margin: 0 10px 0 0; border-radius: 4px; border: 1px solid #808080; color: #808080; font-size: 0.8em; font-weight: normal; }
656 | dl.tsd-comment-tags dd { margin: 0 0 10px 0; }
657 | dl.tsd-comment-tags p { margin: 0; }
658 |
659 | .tsd-panel.tsd-comment .lead { font-size: 1.1em; line-height: 1.333em; margin-bottom: 2em; }
660 | .tsd-panel.tsd-comment .lead:last-child { margin-bottom: 0; }
661 |
662 | .toggle-protected .tsd-is-private { display: none; }
663 |
664 | .toggle-public .tsd-is-private, .toggle-public .tsd-is-protected, .toggle-public .tsd-is-private-protected { display: none; }
665 |
666 | .toggle-inherited .tsd-is-inherited { display: none; }
667 |
668 | .toggle-only-exported .tsd-is-not-exported { display: none; }
669 |
670 | .toggle-externals .tsd-is-external { display: none; }
671 |
672 | #tsd-filter { position: relative; display: inline-block; height: 40px; vertical-align: bottom; }
673 | .no-filter #tsd-filter { display: none; }
674 | #tsd-filter .tsd-filter-group { display: inline-block; height: 40px; vertical-align: bottom; white-space: nowrap; }
675 | #tsd-filter input { display: none; }
676 | @media (max-width: 900px) { #tsd-filter .tsd-filter-group { display: block; position: absolute; top: 40px; right: 20px; height: auto; background-color: #fff; visibility: hidden; -webkit-transform: translate(50%, 0); transform: translate(50%, 0); box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
677 | .has-options #tsd-filter .tsd-filter-group { visibility: visible; }
678 | .to-has-options #tsd-filter .tsd-filter-group { -webkit-animation: fade-in 0.2s; animation: fade-in 0.2s; }
679 | .from-has-options #tsd-filter .tsd-filter-group { -webkit-animation: fade-out 0.2s; animation: fade-out 0.2s; }
680 | #tsd-filter label, #tsd-filter .tsd-select { display: block; padding-right: 20px; } }
681 |
682 | footer { border-top: 1px solid #eee; background-color: #fff; }
683 | footer.with-border-bottom { border-bottom: 1px solid #eee; }
684 | footer .tsd-legend-group { font-size: 0; }
685 | footer .tsd-legend { display: inline-block; width: 25%; padding: 0; font-size: 16px; list-style: none; line-height: 1.333em; vertical-align: top; }
686 | @media (max-width: 900px) { footer .tsd-legend { width: 50%; } }
687 |
688 | .tsd-hierarchy { list-style: square; padding: 0 0 0 20px; margin: 0; }
689 | .tsd-hierarchy .target { font-weight: bold; }
690 |
691 | .tsd-index-panel .tsd-index-content { margin-bottom: -30px !important; }
692 | .tsd-index-panel .tsd-index-section { margin-bottom: 30px !important; }
693 | .tsd-index-panel h3 { margin: 0 -20px 10px -20px; padding: 0 20px 10px 20px; border-bottom: 1px solid #eee; }
694 | .tsd-index-panel ul.tsd-index-list { -webkit-column-count: 3; -moz-column-count: 3; -ms-column-count: 3; -o-column-count: 3; column-count: 3; -webkit-column-gap: 20px; -moz-column-gap: 20px; -ms-column-gap: 20px; -o-column-gap: 20px; column-gap: 20px; padding: 0; list-style: none; line-height: 1.333em; }
695 | @media (max-width: 900px) { .tsd-index-panel ul.tsd-index-list { -webkit-column-count: 1; -moz-column-count: 1; -ms-column-count: 1; -o-column-count: 1; column-count: 1; } }
696 | @media (min-width: 901px) and (max-width: 1024px) { .tsd-index-panel ul.tsd-index-list { -webkit-column-count: 2; -moz-column-count: 2; -ms-column-count: 2; -o-column-count: 2; column-count: 2; } }
697 | .tsd-index-panel ul.tsd-index-list li { -webkit-column-break-inside: avoid; -moz-column-break-inside: avoid; -ms-column-break-inside: avoid; -o-column-break-inside: avoid; column-break-inside: avoid; -webkit-page-break-inside: avoid; -moz-page-break-inside: avoid; -ms-page-break-inside: avoid; -o-page-break-inside: avoid; page-break-inside: avoid; }
698 | .tsd-index-panel a, .tsd-index-panel .tsd-parent-kind-module a { color: #9600ff; }
699 | .tsd-index-panel .tsd-parent-kind-interface a { color: #7da01f; }
700 | .tsd-index-panel .tsd-parent-kind-enum a { color: #cc9900; }
701 | .tsd-index-panel .tsd-parent-kind-class a { color: #4da6ff; }
702 | .tsd-index-panel .tsd-kind-module a { color: #9600ff; }
703 | .tsd-index-panel .tsd-kind-interface a { color: #7da01f; }
704 | .tsd-index-panel .tsd-kind-enum a { color: #cc9900; }
705 | .tsd-index-panel .tsd-kind-class a { color: #4da6ff; }
706 | .tsd-index-panel .tsd-is-private a { color: #808080; }
707 |
708 | .tsd-flag { display: inline-block; padding: 1px 5px; border-radius: 4px; color: #fff; background-color: #808080; text-indent: 0; font-size: 14px; font-weight: normal; }
709 |
710 | .tsd-anchor { position: absolute; top: -100px; }
711 |
712 | .tsd-member { position: relative; }
713 | .tsd-member .tsd-anchor + h3 { margin-top: 0; margin-bottom: 0; border-bottom: none; }
714 |
715 | .tsd-navigation { padding: 0 0 0 40px; }
716 | .tsd-navigation a { display: block; padding-top: 2px; padding-bottom: 2px; border-left: 2px solid transparent; color: #222; text-decoration: none; transition: border-left-color 0.1s; }
717 | .tsd-navigation a:hover { text-decoration: underline; }
718 | .tsd-navigation ul { margin: 0; padding: 0; list-style: none; }
719 | .tsd-navigation li { padding: 0; }
720 |
721 | .tsd-navigation.primary { padding-bottom: 40px; }
722 | .tsd-navigation.primary a { display: block; padding-top: 6px; padding-bottom: 6px; }
723 | .tsd-navigation.primary ul li a { padding-left: 5px; }
724 | .tsd-navigation.primary ul li li a { padding-left: 25px; }
725 | .tsd-navigation.primary ul li li li a { padding-left: 45px; }
726 | .tsd-navigation.primary ul li li li li a { padding-left: 65px; }
727 | .tsd-navigation.primary ul li li li li li a { padding-left: 85px; }
728 | .tsd-navigation.primary ul li li li li li li a { padding-left: 105px; }
729 | .tsd-navigation.primary > ul { border-bottom: 1px solid #eee; }
730 | .tsd-navigation.primary li { border-top: 1px solid #eee; }
731 | .tsd-navigation.primary li.current > a { font-weight: bold; }
732 | .tsd-navigation.primary li.label span { display: block; padding: 20px 0 6px 5px; color: #808080; }
733 | .tsd-navigation.primary li.globals + li > span, .tsd-navigation.primary li.globals + li > a { padding-top: 20px; }
734 |
735 | .tsd-navigation.secondary ul { transition: opacity 0.2s; }
736 | .tsd-navigation.secondary ul li a { padding-left: 25px; }
737 | .tsd-navigation.secondary ul li li a { padding-left: 45px; }
738 | .tsd-navigation.secondary ul li li li a { padding-left: 65px; }
739 | .tsd-navigation.secondary ul li li li li a { padding-left: 85px; }
740 | .tsd-navigation.secondary ul li li li li li a { padding-left: 105px; }
741 | .tsd-navigation.secondary ul li li li li li li a { padding-left: 125px; }
742 | .tsd-navigation.secondary ul.current a { border-left-color: #eee; }
743 | .tsd-navigation.secondary li.focus > a, .tsd-navigation.secondary ul.current li.focus > a { border-left-color: #000; }
744 | .tsd-navigation.secondary li.current { margin-top: 20px; margin-bottom: 20px; border-left-color: #eee; }
745 | .tsd-navigation.secondary li.current > a { font-weight: bold; }
746 |
747 | @media (min-width: 901px) { .menu-sticky-wrap { position: static; }
748 | .no-csspositionsticky .menu-sticky-wrap.sticky { position: fixed; }
749 | .no-csspositionsticky .menu-sticky-wrap.sticky-current { position: fixed; }
750 | .no-csspositionsticky .menu-sticky-wrap.sticky-current ul.before-current, .no-csspositionsticky .menu-sticky-wrap.sticky-current ul.after-current { opacity: 0; }
751 | .no-csspositionsticky .menu-sticky-wrap.sticky-bottom { position: absolute; top: auto !important; left: auto !important; bottom: 0; right: 0; }
752 | .csspositionsticky .menu-sticky-wrap.sticky { position: -webkit-sticky; position: sticky; }
753 | .csspositionsticky .menu-sticky-wrap.sticky-current { position: -webkit-sticky; position: sticky; } }
754 |
755 | .tsd-panel { margin: 20px 0; padding: 20px; background-color: #fff; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
756 | .tsd-panel:empty { display: none; }
757 | .tsd-panel > h1, .tsd-panel > h2, .tsd-panel > h3 { margin: 1.5em -20px 10px -20px; padding: 0 20px 10px 20px; border-bottom: 1px solid #eee; }
758 | .tsd-panel > h1.tsd-before-signature, .tsd-panel > h2.tsd-before-signature, .tsd-panel > h3.tsd-before-signature { margin-bottom: 0; border-bottom: 0; }
759 | .tsd-panel table { display: block; width: 100%; overflow: auto; margin-top: 10px; word-break: normal; word-break: keep-all; }
760 | .tsd-panel table th { font-weight: bold; }
761 | .tsd-panel table th, .tsd-panel table td { padding: 6px 13px; border: 1px solid #ddd; }
762 | .tsd-panel table tr { background-color: #fff; border-top: 1px solid #ccc; }
763 | .tsd-panel table tr:nth-child(2n) { background-color: #f8f8f8; }
764 |
765 | .tsd-panel-group { margin: 60px 0; }
766 | .tsd-panel-group > h1, .tsd-panel-group > h2, .tsd-panel-group > h3 { padding-left: 20px; padding-right: 20px; }
767 |
768 | #tsd-search { transition: background-color 0.2s; }
769 | #tsd-search .title { position: relative; z-index: 2; }
770 | #tsd-search .field { position: absolute; left: 0; top: 0; right: 40px; height: 40px; }
771 | #tsd-search .field input { box-sizing: border-box; position: relative; top: -50px; z-index: 1; width: 100%; padding: 0 10px; opacity: 0; outline: 0; border: 0; background: transparent; color: #222; }
772 | #tsd-search .field label { position: absolute; overflow: hidden; right: -40px; }
773 | #tsd-search .field input, #tsd-search .title { transition: opacity 0.2s; }
774 | #tsd-search .results { position: absolute; visibility: hidden; top: 40px; width: 100%; margin: 0; padding: 0; list-style: none; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); }
775 | #tsd-search .results li { padding: 0 10px; background-color: #fdfdfd; }
776 | #tsd-search .results li:nth-child(even) { background-color: #fff; }
777 | #tsd-search .results li.state { display: none; }
778 | #tsd-search .results li.current, #tsd-search .results li:hover { background-color: #eee; }
779 | #tsd-search .results a { display: block; }
780 | #tsd-search .results a:before { top: 10px; }
781 | #tsd-search .results span.parent { color: #808080; font-weight: normal; }
782 | #tsd-search.has-focus { background-color: #eee; }
783 | #tsd-search.has-focus .field input { top: 0; opacity: 1; }
784 | #tsd-search.has-focus .title { z-index: 0; opacity: 0; }
785 | #tsd-search.has-focus .results { visibility: visible; }
786 | #tsd-search.loading .results li.state.loading { display: block; }
787 | #tsd-search.failure .results li.state.failure { display: block; }
788 |
789 | .tsd-signature { margin: 0 0 1em 0; padding: 10px; border: 1px solid #eee; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
790 | .tsd-signature.tsd-kind-icon { padding-left: 30px; }
791 | .tsd-signature.tsd-kind-icon:before { top: 10px; left: 10px; }
792 | .tsd-panel > .tsd-signature { margin-left: -20px; margin-right: -20px; border-width: 1px 0; }
793 | .tsd-panel > .tsd-signature.tsd-kind-icon { padding-left: 40px; }
794 | .tsd-panel > .tsd-signature.tsd-kind-icon:before { left: 20px; }
795 |
796 | .tsd-signature-symbol { color: #808080; font-weight: normal; }
797 |
798 | .tsd-signature-type { font-style: italic; font-weight: normal; }
799 |
800 | .tsd-signatures { padding: 0; margin: 0 0 1em 0; border: 1px solid #eee; }
801 | .tsd-signatures .tsd-signature { margin: 0; border-width: 1px 0 0 0; transition: background-color 0.1s; }
802 | .tsd-signatures .tsd-signature:first-child { border-top-width: 0; }
803 | .tsd-signatures .tsd-signature.current { background-color: #eee; }
804 | .tsd-signatures.active > .tsd-signature { cursor: pointer; }
805 | .tsd-panel > .tsd-signatures { margin-left: -20px; margin-right: -20px; border-width: 1px 0; }
806 | .tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon { padding-left: 40px; }
807 | .tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon:before { left: 20px; }
808 | .tsd-panel > a.anchor + .tsd-signatures { border-top-width: 0; margin-top: -20px; }
809 |
810 | ul.tsd-descriptions { position: relative; overflow: hidden; transition: height 0.3s; padding: 0; list-style: none; }
811 | ul.tsd-descriptions.active > .tsd-description { display: none; }
812 | ul.tsd-descriptions.active > .tsd-description.current { display: block; }
813 | ul.tsd-descriptions.active > .tsd-description.fade-in { -webkit-animation: fade-in-delayed 0.3s; animation: fade-in-delayed 0.3s; }
814 | ul.tsd-descriptions.active > .tsd-description.fade-out { -webkit-animation: fade-out-delayed 0.3s; animation: fade-out-delayed 0.3s; position: absolute; display: block; top: 0; left: 0; right: 0; opacity: 0; visibility: hidden; }
815 | ul.tsd-descriptions h4, ul.tsd-descriptions .tsd-index-panel h3, .tsd-index-panel ul.tsd-descriptions h3 { font-size: 16px; margin: 1em 0 0.5em 0; }
816 |
817 | ul.tsd-parameters, ul.tsd-type-parameters { list-style: square; margin: 0; padding-left: 20px; }
818 | ul.tsd-parameters > li.tsd-parameter-siganture, ul.tsd-type-parameters > li.tsd-parameter-siganture { list-style: none; margin-left: -20px; }
819 | ul.tsd-parameters h5, ul.tsd-type-parameters h5 { font-size: 16px; margin: 1em 0 0.5em 0; }
820 | ul.tsd-parameters .tsd-comment, ul.tsd-type-parameters .tsd-comment { margin-top: -0.5em; }
821 |
822 | .tsd-sources { font-size: 14px; color: #808080; margin: 0 0 1em 0; }
823 | .tsd-sources a { color: #808080; text-decoration: underline; }
824 | .tsd-sources ul, .tsd-sources p { margin: 0 !important; }
825 | .tsd-sources ul { list-style: none; padding: 0; }
826 |
827 | .tsd-page-toolbar { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 40px; color: #333; background: #fff; border-bottom: 1px solid #eee; }
828 | .tsd-page-toolbar a { color: #333; text-decoration: none; }
829 | .tsd-page-toolbar a.title { font-weight: bold; }
830 | .tsd-page-toolbar a.title:hover { text-decoration: underline; }
831 | .tsd-page-toolbar .table-wrap { display: table; width: 100%; height: 40px; }
832 | .tsd-page-toolbar .table-cell { display: table-cell; position: relative; white-space: nowrap; line-height: 40px; }
833 | .tsd-page-toolbar .table-cell:first-child { width: 100%; }
834 |
835 | .tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before { content: ""; display: inline-block; width: 40px; height: 40px; margin: 0 -8px 0 0; background-image: url(../images/widgets.png); background-repeat: no-repeat; text-indent: -1024px; vertical-align: bottom; }
836 | @media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { .tsd-widget:before, .tsd-select .tsd-select-label:before, .tsd-select .tsd-select-list li:before { background-image: url(../images/widgets@2x.png); background-size: 320px 40px; } }
837 |
838 | .tsd-widget { display: inline-block; overflow: hidden; opacity: 0.6; height: 40px; transition: opacity 0.1s, background-color 0.2s; vertical-align: bottom; cursor: pointer; }
839 | .tsd-widget:hover { opacity: 0.8; }
840 | .tsd-widget.active { opacity: 1; background-color: #eee; }
841 | .tsd-widget.no-caption { width: 40px; }
842 | .tsd-widget.no-caption:before { margin: 0; }
843 | .tsd-widget.search:before { background-position: 0 0; }
844 | .tsd-widget.menu:before { background-position: -40px 0; }
845 | .tsd-widget.options:before { background-position: -80px 0; }
846 | .tsd-widget.options, .tsd-widget.menu { display: none; }
847 | @media (max-width: 900px) { .tsd-widget.options, .tsd-widget.menu { display: inline-block; } }
848 | input[type=checkbox] + .tsd-widget:before { background-position: -120px 0; }
849 | input[type=checkbox]:checked + .tsd-widget:before { background-position: -160px 0; }
850 |
851 | .tsd-select { position: relative; display: inline-block; height: 40px; transition: opacity 0.1s, background-color 0.2s; vertical-align: bottom; cursor: pointer; }
852 | .tsd-select .tsd-select-label { opacity: 0.6; transition: opacity 0.2s; }
853 | .tsd-select .tsd-select-label:before { background-position: -240px 0; }
854 | .tsd-select.active .tsd-select-label { opacity: 0.8; }
855 | .tsd-select.active .tsd-select-list { visibility: visible; opacity: 1; transition-delay: 0s; }
856 | .tsd-select .tsd-select-list { position: absolute; visibility: hidden; top: 40px; left: 0; margin: 0; padding: 0; opacity: 0; list-style: none; box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); transition: visibility 0s 0.2s, opacity 0.2s; }
857 | .tsd-select .tsd-select-list li { padding: 0 20px 0 0; background-color: #fdfdfd; }
858 | .tsd-select .tsd-select-list li:before { background-position: 40px 0; }
859 | .tsd-select .tsd-select-list li:nth-child(even) { background-color: #fff; }
860 | .tsd-select .tsd-select-list li:hover { background-color: #eee; }
861 | .tsd-select .tsd-select-list li.selected:before { background-position: -200px 0; }
862 | @media (max-width: 900px) { .tsd-select .tsd-select-list { top: 0; left: auto; right: 100%; margin-right: -5px; }
863 | .tsd-select .tsd-select-label:before { background-position: -280px 0; } }
864 |
865 | img { max-width: 100%; }
866 |
--------------------------------------------------------------------------------
/docs/assets/css/main.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "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",
4 | "sources": ["../../../../src/default/assets/css/vendors/_normalize.sass","../../../../src/default/assets/css/vendors/_highlight.js.sass","../../../../src/default/assets/css/setup/_mixins.sass","../../../../src/default/assets/css/setup/_grid.sass","../../../../src/default/assets/css/setup/_icons.scss","../../../../src/default/assets/css/setup/_animations.sass","../../../../src/default/assets/css/setup/_typography.sass","../../../../src/default/assets/css/_constants.sass","../../../../src/default/assets/css/layouts/_default.sass","../../../../src/default/assets/css/layouts/_minimal.sass","../../../../src/default/assets/css/elements/_comment.sass","../../../../src/default/assets/css/elements/_filter.sass","../../../../src/default/assets/css/elements/_footer.sass","../../../../src/default/assets/css/elements/_hierarchy.sass","../../../../src/default/assets/css/elements/_index.sass","../../../../src/default/assets/css/elements/_member.sass","../../../../src/default/assets/css/elements/_navigation.sass","../../../../src/default/assets/css/elements/_panel.sass","../../../../src/default/assets/css/elements/_search.sass","../../../../src/default/assets/css/elements/_signatures.sass","../../../../src/default/assets/css/elements/_sources.sass","../../../../src/default/assets/css/elements/_toolbar.sass","../../../../src/default/assets/css/elements/_images.sass"],
5 | "names": [],
6 | "file": "main.css"
7 | }
8 |
--------------------------------------------------------------------------------
/docs/assets/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSIO/universal-authenticator-library/457a54060418b0c3e3183ad3c939208499ac6ac2/docs/assets/images/icons.png
--------------------------------------------------------------------------------
/docs/assets/images/icons@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSIO/universal-authenticator-library/457a54060418b0c3e3183ad3c939208499ac6ac2/docs/assets/images/icons@2x.png
--------------------------------------------------------------------------------
/docs/assets/images/widgets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSIO/universal-authenticator-library/457a54060418b0c3e3183ad3c939208499ac6ac2/docs/assets/images/widgets.png
--------------------------------------------------------------------------------
/docs/assets/images/widgets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/EOSIO/universal-authenticator-library/457a54060418b0c3e3183ad3c939208499ac6ac2/docs/assets/images/widgets@2x.png
--------------------------------------------------------------------------------
/docs/assets/js/search.js:
--------------------------------------------------------------------------------
1 | var typedoc = typedoc || {};
2 | typedoc.search = typedoc.search || {};
3 | typedoc.search.data = {"kinds":{"4":"Enumeration","16":"Enumeration member","32":"Variable","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method"},"rows":[{"id":0,"kind":256,"name":"AuthenticatorResponse","url":"interfaces/authenticatorresponse.html","classes":"tsd-kind-interface"},{"id":1,"kind":1024,"name":"availableAuthenticators","url":"interfaces/authenticatorresponse.html#availableauthenticators","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"AuthenticatorResponse"},{"id":2,"kind":1024,"name":"autoLoginAuthenticator","url":"interfaces/authenticatorresponse.html#autologinauthenticator","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"AuthenticatorResponse"},{"id":3,"kind":256,"name":"ButtonStyle","url":"interfaces/buttonstyle.html","classes":"tsd-kind-interface"},{"id":4,"kind":1024,"name":"icon","url":"interfaces/buttonstyle.html#icon","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ButtonStyle"},{"id":5,"kind":1024,"name":"text","url":"interfaces/buttonstyle.html#text","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ButtonStyle"},{"id":6,"kind":1024,"name":"textColor","url":"interfaces/buttonstyle.html#textcolor","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ButtonStyle"},{"id":7,"kind":1024,"name":"background","url":"interfaces/buttonstyle.html#background","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"ButtonStyle"},{"id":8,"kind":256,"name":"Chain","url":"interfaces/chain.html","classes":"tsd-kind-interface"},{"id":9,"kind":1024,"name":"chainId","url":"interfaces/chain.html#chainid","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Chain"},{"id":10,"kind":1024,"name":"rpcEndpoints","url":"interfaces/chain.html#rpcendpoints","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"Chain"},{"id":11,"kind":256,"name":"RpcEndpoint","url":"interfaces/rpcendpoint.html","classes":"tsd-kind-interface"},{"id":12,"kind":1024,"name":"protocol","url":"interfaces/rpcendpoint.html#protocol","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RpcEndpoint"},{"id":13,"kind":1024,"name":"host","url":"interfaces/rpcendpoint.html#host","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RpcEndpoint"},{"id":14,"kind":1024,"name":"port","url":"interfaces/rpcendpoint.html#port","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RpcEndpoint"},{"id":15,"kind":1024,"name":"path","url":"interfaces/rpcendpoint.html#path","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"RpcEndpoint"},{"id":16,"kind":256,"name":"SignTransactionConfig","url":"interfaces/signtransactionconfig.html","classes":"tsd-kind-interface"},{"id":17,"kind":1024,"name":"broadcast","url":"interfaces/signtransactionconfig.html#broadcast","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SignTransactionConfig"},{"id":18,"kind":1024,"name":"blocksBehind","url":"interfaces/signtransactionconfig.html#blocksbehind","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SignTransactionConfig"},{"id":19,"kind":1024,"name":"expireSeconds","url":"interfaces/signtransactionconfig.html#expireseconds","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SignTransactionConfig"},{"id":20,"kind":256,"name":"SignTransactionResponse","url":"interfaces/signtransactionresponse.html","classes":"tsd-kind-interface"},{"id":21,"kind":1024,"name":"wasBroadcast","url":"interfaces/signtransactionresponse.html#wasbroadcast","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SignTransactionResponse"},{"id":22,"kind":1024,"name":"transactionId","url":"interfaces/signtransactionresponse.html#transactionid","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SignTransactionResponse"},{"id":23,"kind":1024,"name":"status","url":"interfaces/signtransactionresponse.html#status","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SignTransactionResponse"},{"id":24,"kind":1024,"name":"error","url":"interfaces/signtransactionresponse.html#error","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SignTransactionResponse"},{"id":25,"kind":1024,"name":"transaction","url":"interfaces/signtransactionresponse.html#transaction","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"SignTransactionResponse"},{"id":26,"kind":32,"name":"UALLoggedInAuthType","url":"index.html#ualloggedinauthtype","classes":"tsd-kind-variable"},{"id":27,"kind":32,"name":"UALAccountName","url":"index.html#ualaccountname","classes":"tsd-kind-variable"},{"id":28,"kind":4,"name":"UALErrorType","url":"enums/ualerrortype.html","classes":"tsd-kind-enum"},{"id":29,"kind":16,"name":"UAL","url":"enums/ualerrortype.html#ual","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"UALErrorType"},{"id":30,"kind":16,"name":"Login","url":"enums/ualerrortype.html#login","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"UALErrorType"},{"id":31,"kind":16,"name":"Logout","url":"enums/ualerrortype.html#logout","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"UALErrorType"},{"id":32,"kind":16,"name":"Signing","url":"enums/ualerrortype.html#signing","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"UALErrorType"},{"id":33,"kind":16,"name":"Validation","url":"enums/ualerrortype.html#validation","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"UALErrorType"},{"id":34,"kind":16,"name":"Initialization","url":"enums/ualerrortype.html#initialization","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"UALErrorType"},{"id":35,"kind":16,"name":"DataRequest","url":"enums/ualerrortype.html#datarequest","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"UALErrorType"},{"id":36,"kind":16,"name":"Unsupported","url":"enums/ualerrortype.html#unsupported","classes":"tsd-kind-enum-member tsd-parent-kind-enum","parent":"UALErrorType"},{"id":37,"kind":128,"name":"UALError","url":"classes/ualerror.html","classes":"tsd-kind-class"},{"id":38,"kind":1024,"name":"type","url":"classes/ualerror.html#type","classes":"tsd-kind-property tsd-parent-kind-class","parent":"UALError"},{"id":39,"kind":1024,"name":"cause","url":"classes/ualerror.html#cause","classes":"tsd-kind-property tsd-parent-kind-class","parent":"UALError"},{"id":40,"kind":1024,"name":"source","url":"classes/ualerror.html#source","classes":"tsd-kind-property tsd-parent-kind-class","parent":"UALError"},{"id":41,"kind":512,"name":"constructor","url":"classes/ualerror.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"UALError"},{"id":42,"kind":1024,"name":"name","url":"classes/ualerror.html#name","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"UALError"},{"id":43,"kind":1024,"name":"message","url":"classes/ualerror.html#message","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-inherited","parent":"UALError"},{"id":44,"kind":1024,"name":"stack","url":"classes/ualerror.html#stack","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-overwrite tsd-is-inherited","parent":"UALError"},{"id":45,"kind":1024,"name":"Error","url":"classes/ualerror.html#error","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-static","parent":"UALError"},{"id":46,"kind":128,"name":"User","url":"classes/user.html","classes":"tsd-kind-class"},{"id":47,"kind":2048,"name":"signTransaction","url":"classes/user.html#signtransaction","classes":"tsd-kind-method tsd-parent-kind-class","parent":"User"},{"id":48,"kind":2048,"name":"signArbitrary","url":"classes/user.html#signarbitrary","classes":"tsd-kind-method tsd-parent-kind-class","parent":"User"},{"id":49,"kind":2048,"name":"verifyKeyOwnership","url":"classes/user.html#verifykeyownership","classes":"tsd-kind-method tsd-parent-kind-class","parent":"User"},{"id":50,"kind":2048,"name":"getAccountName","url":"classes/user.html#getaccountname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"User"},{"id":51,"kind":2048,"name":"getChainId","url":"classes/user.html#getchainid","classes":"tsd-kind-method tsd-parent-kind-class","parent":"User"},{"id":52,"kind":2048,"name":"getKeys","url":"classes/user.html#getkeys","classes":"tsd-kind-method tsd-parent-kind-class","parent":"User"},{"id":53,"kind":2048,"name":"returnEosjsTransaction","url":"classes/user.html#returneosjstransaction","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"User"},{"id":54,"kind":2048,"name":"buildRpcEndpoint","url":"classes/user.html#buildrpcendpoint","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-protected","parent":"User"},{"id":55,"kind":128,"name":"Authenticator","url":"classes/authenticator.html","classes":"tsd-kind-class"},{"id":56,"kind":512,"name":"constructor","url":"classes/authenticator.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"Authenticator"},{"id":57,"kind":1024,"name":"chains","url":"classes/authenticator.html#chains","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Authenticator"},{"id":58,"kind":1024,"name":"options","url":"classes/authenticator.html#options","classes":"tsd-kind-property tsd-parent-kind-class","parent":"Authenticator"},{"id":59,"kind":2048,"name":"init","url":"classes/authenticator.html#init","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":60,"kind":2048,"name":"reset","url":"classes/authenticator.html#reset","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":61,"kind":2048,"name":"isErrored","url":"classes/authenticator.html#iserrored","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":62,"kind":2048,"name":"getOnboardingLink","url":"classes/authenticator.html#getonboardinglink","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":63,"kind":2048,"name":"getError","url":"classes/authenticator.html#geterror","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":64,"kind":2048,"name":"isLoading","url":"classes/authenticator.html#isloading","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":65,"kind":2048,"name":"getStyle","url":"classes/authenticator.html#getstyle","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":66,"kind":2048,"name":"shouldRender","url":"classes/authenticator.html#shouldrender","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":67,"kind":2048,"name":"shouldAutoLogin","url":"classes/authenticator.html#shouldautologin","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":68,"kind":2048,"name":"shouldRequestAccountName","url":"classes/authenticator.html#shouldrequestaccountname","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":69,"kind":2048,"name":"login","url":"classes/authenticator.html#login","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":70,"kind":2048,"name":"logout","url":"classes/authenticator.html#logout","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":71,"kind":2048,"name":"requiresGetKeyConfirmation","url":"classes/authenticator.html#requiresgetkeyconfirmation","classes":"tsd-kind-method tsd-parent-kind-class","parent":"Authenticator"},{"id":72,"kind":128,"name":"UAL","url":"classes/ual.html","classes":"tsd-kind-class"},{"id":73,"kind":512,"name":"constructor","url":"classes/ual.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"UAL"},{"id":74,"kind":1024,"name":"chains","url":"classes/ual.html#chains","classes":"tsd-kind-property tsd-parent-kind-class","parent":"UAL"},{"id":75,"kind":1024,"name":"appName","url":"classes/ual.html#appname","classes":"tsd-kind-property tsd-parent-kind-class","parent":"UAL"},{"id":76,"kind":1024,"name":"authenticators","url":"classes/ual.html#authenticators","classes":"tsd-kind-property tsd-parent-kind-class tsd-is-private","parent":"UAL"},{"id":77,"kind":2048,"name":"getAuthenticators","url":"classes/ual.html#getauthenticators","classes":"tsd-kind-method tsd-parent-kind-class","parent":"UAL"}]};
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "universal-authenticator-library",
3 | "version": "0.3.0",
4 | "description": "A library for allowing apps to easily use different auth providers.",
5 | "main": "dist/index.js",
6 | "scripts": {
7 | "build": "rm -rf dist && tsc --build tsconfig.json",
8 | "lint": "eslint --ext .js,.jsx,.ts,.tsx src",
9 | "test": "jest",
10 | "watch": "tsc -w --jsx react",
11 | "prepare": "yarn build && sh ./build-docs.sh"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "git+https://github.com/EOSIO/universal-authenticator-library.git"
16 | },
17 | "author": {
18 | "name": "block.one",
19 | "url": "https://block.one/"
20 | },
21 | "contributors": [
22 | "Jeffrey Smith",
23 | "Nasser Abouelazm",
24 | "Chris Allnutt",
25 | "Randy Torres",
26 | "Mike Manfredi"
27 | ],
28 | "license": "MIT",
29 | "bugs": {
30 | "url": "https://github.com/EOSIO/universal-authenticator-library/issues"
31 | },
32 | "homepage": "https://github.com/EOSIO/universal-authenticator-library#readme",
33 | "devDependencies": {
34 | "@blockone/eslint-config-blockone": "^3.0.0",
35 | "@types/jest": "^25.1.4",
36 | "eslint": "^6.8.0",
37 | "jest": "^25.1.0",
38 | "ts-jest": "^25.2.1",
39 | "typedoc": "^0.16.11",
40 | "typescript": "^3.8.3"
41 | },
42 | "jest": {
43 | "verbose": false,
44 | "moduleFileExtensions": [
45 | "ts",
46 | "js"
47 | ],
48 | "transform": {
49 | "^.+\\.(ts)$": "ts-jest"
50 | },
51 | "globals": {
52 | "ts-jest": {
53 | "tsConfig": "tsconfig.json"
54 | }
55 | },
56 | "testPathIgnorePatterns": [
57 | "/node_modules",
58 | "/dist"
59 | ],
60 | "testRegex": "(/src/.*(\\.|/)(test|spec))\\.(js|ts)$",
61 | "testEnvironment": "node"
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/Authenticator.ts:
--------------------------------------------------------------------------------
1 | import { ButtonStyle, Chain } from './interfaces'
2 | import { UALError } from './UALError'
3 | import { User } from './User'
4 |
5 | /**
6 | * Represents Button that is rendered for, and interfaces with, a specific Authenticator app.
7 | */
8 | export abstract class Authenticator {
9 |
10 | /**
11 | * Default value for shouldInvalidateAfter(), 1 week in seconds
12 | */
13 | private defaultInvalidateAfter = 604800
14 |
15 | /**
16 | * @param chains This represents each of the chains that the dapp provides support for.
17 | *
18 | * @param options Optional argument that is intended for Authenticator specific options.
19 | */
20 | constructor(public chains: Chain[], public options?: any) {}
21 |
22 | /**
23 | * Attempts to render the Authenticator and updates the authenticator's state, accordingly
24 | */
25 | public abstract init(): Promise
26 |
27 | /**
28 | * Resets the authenticator to its initial, default state then calls init method
29 | */
30 | public abstract reset(): void
31 |
32 | /**
33 | * Returns true if the authenticator has errored while initializing.
34 | */
35 | public abstract isErrored(): boolean
36 |
37 | /**
38 | * Returns a URL where the user can download and install the underlying authenticator
39 | * if it is not found by the UAL Authenticator.
40 | */
41 | public abstract getOnboardingLink(): string
42 |
43 | /**
44 | * Returns error (if available) if the authenticator has errored while initializing.
45 | */
46 | public abstract getError(): UALError | null
47 |
48 | /**
49 | * Returns true if the authenticator is loading while initializing its internal state.
50 | */
51 | public abstract isLoading(): boolean
52 |
53 | /**
54 | * Returns the style of the Button that will be rendered.
55 | */
56 | public abstract getStyle(): ButtonStyle
57 |
58 | /**
59 | * Returns whether or not the button should render based on the operating environment and other factors.
60 | * ie. If your Authenticator App does not support mobile, it returns false when running in a mobile browser.
61 | */
62 | public abstract shouldRender(): boolean
63 |
64 | /**
65 | * Returns whether or not the dapp should attempt to auto login with the Authenticator app.
66 | * Auto login will only occur when there is only one Authenticator that returns shouldRender() true and
67 | * shouldAutoLogin() true.
68 | */
69 | public abstract shouldAutoLogin(): boolean
70 |
71 | /**
72 | * Returns whether or not the button should show an account name input field.
73 | * This is for Authenticators that do not have a concept of account names.
74 | */
75 | public abstract shouldRequestAccountName(): Promise
76 |
77 | /**
78 | * Returns the amount of seconds after the authentication will be invalid for logging in on new
79 | * browser sessions. Setting this value to zero will cause users to re-attempt authentication on
80 | * every new browser session. Please note that the invalidate time will be saved client-side and
81 | * should not be relied on for security.
82 | */
83 | public shouldInvalidateAfter(): number {
84 | return this.defaultInvalidateAfter
85 | }
86 |
87 | /**
88 | * Login using the Authenticator App. This can return one or more users depending on multiple chain support.
89 | *
90 | * @param accountName The account name of the user for Authenticators that do not store accounts (optional)
91 | */
92 | public abstract login(accountName?: string): Promise
93 |
94 | /**
95 | * Logs the user out of the dapp. This will be strongly dependent on each Authenticator app's patterns.
96 | */
97 | public abstract logout(): Promise
98 |
99 | /**
100 | * Returns true if user confirmation is required for `getKeys`
101 | */
102 | public abstract requiresGetKeyConfirmation(): boolean
103 |
104 | /**
105 | * Returns the name of the authenticator.
106 | */
107 | public abstract getName(): string
108 | }
109 |
--------------------------------------------------------------------------------
/src/UAL.test.ts:
--------------------------------------------------------------------------------
1 | import {
2 | MockAuthenticatorToAutoLogin,
3 | MockAuthenticatorToInvalidate,
4 | MockAuthenticatorToNotRender,
5 | MockAuthenticatorToRender
6 | } from '../__mocks__/authenticatorMocks'
7 | import { Authenticator } from './Authenticator'
8 | import { AuthenticatorResponse, Chain } from './interfaces'
9 | import { UAL } from './UAL'
10 |
11 | const mockChain: Chain = {
12 | chainId: '1234',
13 | rpcEndpoints: [{
14 | protocol: 'string',
15 | host: '',
16 | port: 123,
17 | path: ''
18 | }]
19 | }
20 |
21 | describe('UAL', () => {
22 | let ual: UAL
23 | let authenticators: Authenticator[]
24 | let renderMe: Authenticator
25 | let dontRenderMe: Authenticator
26 | let autoLoginMe: Authenticator
27 | let invalidateMe: Authenticator
28 |
29 | beforeAll(() => {
30 | renderMe = new MockAuthenticatorToRender([mockChain])
31 | dontRenderMe = new MockAuthenticatorToNotRender([mockChain])
32 | autoLoginMe = new MockAuthenticatorToAutoLogin([mockChain])
33 | invalidateMe = new MockAuthenticatorToInvalidate([mockChain])
34 | authenticators = [
35 | renderMe,
36 | dontRenderMe,
37 | autoLoginMe,
38 | invalidateMe
39 | ]
40 | ual = new UAL([mockChain], 'My App', authenticators)
41 | })
42 |
43 | describe('has a getAuthenticators method', () => {
44 | let response: any
45 | beforeAll(() => {
46 | renderMe.init = jest.fn()
47 | dontRenderMe.init = jest.fn()
48 | autoLoginMe.init = jest.fn()
49 | invalidateMe.init = jest.fn()
50 | })
51 | beforeEach(() => {
52 | response = ual.getAuthenticators()
53 | })
54 |
55 | it('that returns an AuthenticatorResponse object', () => {
56 | let trueResponse: AuthenticatorResponse = {
57 | availableAuthenticators: [],
58 | autoLoginAuthenticator: null
59 | }
60 | expect(response.hasOwnProperty('availableAuthenticators')).toEqual(true)
61 | expect(response.hasOwnProperty('autoLoginAuthenticator')).toEqual(true)
62 | expect(Object.keys(response).join('') === Object.keys(trueResponse).join('')).toEqual(true)
63 | })
64 |
65 | it('that filters in authenticators that should be rendered', () => {
66 | expect(response.availableAuthenticators.indexOf(renderMe)).not.toEqual(-1)
67 | expect(response.availableAuthenticators.indexOf(autoLoginMe)).not.toEqual(-1)
68 | expect(response.availableAuthenticators.indexOf(invalidateMe)).not.toEqual(-1)
69 | })
70 |
71 | it('that filters out authenticators that cannot be rendered', () => {
72 | expect(response.availableAuthenticators.indexOf(dontRenderMe)).toEqual(-1)
73 | })
74 |
75 | it('that calls init on all available authenticators', () => {
76 | expect(renderMe.init).toHaveBeenCalled()
77 | expect(autoLoginMe.init).toHaveBeenCalled()
78 | expect(invalidateMe.init).toHaveBeenCalled()
79 | })
80 |
81 | it('that does not call init on unavailable authenticators', () => {
82 | expect(dontRenderMe.init).not.toHaveBeenCalled()
83 | })
84 |
85 | it('that returns an auto-login authenticator if it is the only one available', () => {
86 | expect(response.autoLoginAuthenticator).toEqual(null)
87 | })
88 |
89 | it('that returns an invalidate after authenticator with correct setting', () => {
90 | expect(invalidateMe.shouldInvalidateAfter()).toEqual(0)
91 | })
92 |
93 | it('that returns an authenticator without shouldInvalidateAfter to have default setting', () => {
94 | expect(autoLoginMe.shouldInvalidateAfter()).toEqual(604800)
95 | })
96 |
97 | it('that does not return an auto-login authenticator if other authenticators are available', () => {
98 | ual = new UAL([mockChain], 'My App', [dontRenderMe, autoLoginMe])
99 | response = ual.getAuthenticators()
100 | expect(response.autoLoginAuthenticator).toEqual(autoLoginMe)
101 | })
102 |
103 | it('can return name when calling getName', () => {
104 | let expectedName = 'authenticator'
105 | authenticators.forEach(authenticator => {
106 | expect(authenticator.getName()).toEqual(expectedName)
107 | })
108 | })
109 | })
110 | })
111 |
--------------------------------------------------------------------------------
/src/UAL.ts:
--------------------------------------------------------------------------------
1 | import { Authenticator } from './Authenticator'
2 | import { AuthenticatorResponse, Chain } from './interfaces'
3 |
4 | /**
5 | * This class provides the business logic layer for the UAL.
6 | */
7 | export class UAL {
8 | /**
9 | * @param chains A list of chains the dapp supports.
10 | *
11 | * @param appName The name of the app using the authenticators
12 | *
13 | * @param authenticators A list of authenticator apps that the dapp supports.
14 | */
15 | constructor(
16 | public chains: Chain[],
17 | public appName: string,
18 | private authenticators: Authenticator[],
19 | ) {}
20 |
21 | /**
22 | * Returns an object with a list of initialized Authenticators that returned true for shouldRender()
23 | * as well as an authenticator that supports autoLogin
24 | */
25 | public getAuthenticators(): AuthenticatorResponse {
26 | const availableAuthenticators = this.authenticators.filter((authenticator: Authenticator) => {
27 | return authenticator.shouldRender()
28 | }) as Authenticator[]
29 |
30 | availableAuthenticators.forEach((authenticator: Authenticator) => authenticator.init())
31 |
32 | let autoLoginAuthenticator: Authenticator | null = null
33 | if (availableAuthenticators.length === 1) {
34 | if (availableAuthenticators[0].shouldAutoLogin()) {
35 | autoLoginAuthenticator = availableAuthenticators[0]
36 | }
37 | }
38 |
39 | return {
40 | availableAuthenticators,
41 | autoLoginAuthenticator
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/UALError.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Types of errors that the UALError class can represent
3 | */
4 | export enum UALErrorType {
5 | UAL = 'UAL', // Generic error
6 | Login = 'Login',
7 | Logout = 'Logout',
8 | Signing = 'Signing',
9 | Validation = 'Validation',
10 | Initialization = 'Initialization', // Covers situations like Scatter.connect, module not loading, etc.
11 | DataRequest = 'DataRequest', // Errors fetching data like accountName, keys, etc.
12 | Unsupported = 'Unsupported', // Thrown from an unsupported operation
13 | }
14 |
15 | /**
16 | * Base error class for UAL errors.
17 | */
18 | export class UALError extends Error {
19 | /**
20 | * The type of the error
21 | */
22 | public readonly type: UALErrorType
23 |
24 | /**
25 | * The underlying Error (if any) that caused the current error.
26 | */
27 | public readonly cause: Error | null
28 |
29 | /**
30 | * The name of the authenticator that is the source of the error.
31 | */
32 | public readonly source: string
33 |
34 | /**
35 | * @param message Message describing the error
36 | *
37 | * @param source The name of the authenticator that is the source of the error
38 | *
39 | * @param cause The underlying Error (if any) that resulted in the current one being thrown
40 | */
41 | constructor(message: string, type: UALErrorType, cause: Error | null, source: string) {
42 | super(message)
43 |
44 | this.type = type
45 | this.cause = cause
46 | this.source = source
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/User.test.ts:
--------------------------------------------------------------------------------
1 | import { User } from "./User";
2 | import { SignTransactionConfig, SignTransactionResponse, RpcEndpoint } from "./interfaces";
3 |
4 | class TestUser extends User {
5 | public getKeys(): Promise {
6 | throw new Error("Method not implemented.");
7 | }
8 | public getRpcEndpointString(endpoint: RpcEndpoint): string {
9 | return this.buildRpcEndpoint(endpoint);
10 | }
11 | public getEosjsTransaction(wasBroadcast: boolean, completedTransaction: any): SignTransactionResponse {
12 | return this.returnEosjsTransaction(wasBroadcast, completedTransaction)
13 | }
14 | public signTransaction(transaction: any, config?: SignTransactionConfig): Promise {
15 | throw new Error(`Method not implemented: ${transaction}, ${config}`);
16 | }
17 | public signArbitrary(publicKey: string, data: string, helpText: string): Promise {
18 | throw new Error(`Method not implemented: ${publicKey}, ${data}, ${helpText}`);
19 | }
20 | public verifyKeyOwnership(challenge: string): Promise {
21 | throw new Error(`Method not implemented: ${challenge}`);
22 | }
23 | public getAccountName(): Promise {
24 | throw new Error("Method not implemented.");
25 | }
26 | public getChainId(): Promise {
27 | throw new Error("Method not implemented.");
28 | }
29 | }
30 |
31 | interface MockAction {
32 | account: string
33 | name: string
34 | }
35 |
36 | interface MockData {
37 | to: string
38 | from: string
39 | }
40 |
41 | interface MockTransaction {
42 | actions: MockAction[]
43 | data: MockData[]
44 | transaction_id?: number
45 | processed?: any
46 | code?: number
47 | message?: string
48 | error?: any
49 | }
50 |
51 | describe('User', () => {
52 | let user: TestUser;
53 | let endpoint: RpcEndpoint;
54 |
55 | beforeEach(() => {
56 | user = new TestUser();
57 | });
58 |
59 | describe('builds a correct endpoint', () => {
60 |
61 | it('with a path containing a leading slash', () => {
62 | endpoint = {
63 | host: "example.com",
64 | port: 80,
65 | protocol: "http",
66 | path: "/"
67 | }
68 |
69 | expect(user.getRpcEndpointString(endpoint)).toEqual("http://example.com:80")
70 | })
71 |
72 | it('with a path containing a trailing slash', () => {
73 | endpoint = {
74 | host: "example.com",
75 | port: 80,
76 | protocol: "http",
77 | path: "/somepath/"
78 | }
79 |
80 | expect(user.getRpcEndpointString(endpoint)).toEqual("http://example.com:80/somepath")
81 | })
82 |
83 | it('with no path', () => {
84 | endpoint = {
85 | host: "example.com",
86 | port: 80,
87 | protocol: "http"
88 | }
89 |
90 | expect(user.getRpcEndpointString(endpoint)).toEqual("http://example.com:80")
91 | })
92 | })
93 |
94 | describe('returns a SignTransactionResponse that contains a raw transaction object', () => {
95 | let transaction: MockTransaction
96 | beforeEach(() => {
97 | transaction = {
98 | actions: [{
99 | account: 'example',
100 | name: 'example'
101 | }],
102 | data: [{
103 | to: 'cryptkeeper',
104 | from: 'example'
105 | }]
106 | }
107 | })
108 |
109 | it('if the transaction was not broadcast', () => {
110 | expect(user.getEosjsTransaction(false, transaction).hasOwnProperty('transaction')).toEqual(true)
111 | })
112 |
113 | it('if the transaction was broadcast and contains a transaction id', () => {
114 | transaction.transaction_id = 1
115 | transaction.processed = {
116 | receipt: {
117 | status: 'ok'
118 | }
119 | }
120 | expect(user.getEosjsTransaction(true, transaction).hasOwnProperty('transaction')).toEqual(true)
121 | })
122 |
123 | it('if the transaction was broadcast and contains an error code', () => {
124 | transaction.code = 400
125 | transaction.message = 'hello world'
126 | transaction.error = {
127 | name: 'my error'
128 | }
129 | expect(user.getEosjsTransaction(true, transaction).hasOwnProperty('transaction')).toEqual(true)
130 | })
131 |
132 | it('if the transaction was broadcast and contains neither a transaction id nor an error code', () => {
133 | expect(user.getEosjsTransaction(true, transaction).hasOwnProperty('transaction')).toEqual(true)
134 | })
135 | })
136 | });
137 |
--------------------------------------------------------------------------------
/src/User.ts:
--------------------------------------------------------------------------------
1 | import { RpcEndpoint, SignTransactionConfig, SignTransactionResponse } from './interfaces'
2 |
3 | /**
4 | * Represents a logged in User and provides the ability to sign transactions as that user.
5 | */
6 | export abstract class User {
7 |
8 | /**
9 | * @param transaction The transaction to be signed (a object that matches the RpcAPI structure).
10 | */
11 | public abstract signTransaction(transaction: any, config?: SignTransactionConfig): Promise
12 |
13 | /**
14 | * @param publicKey The public key to use for signing.
15 | * @param data The data to be signed.
16 | * @param helpText Help text to explain the need for arbitrary data to be signed.
17 | *
18 | * @returns The signature
19 | */
20 | public abstract signArbitrary(publicKey: string, data: string, helpText: string): Promise
21 |
22 | /**
23 | * @param challenge Challenge text sent to the authenticator.
24 | *
25 | * @returns Whether the user owns the private keys corresponding with provided public keys.
26 | */
27 | public abstract verifyKeyOwnership(challenge: string): Promise
28 |
29 | public abstract getAccountName(): Promise
30 |
31 | public abstract getChainId(): Promise
32 |
33 | public abstract getKeys(): Promise
34 |
35 | protected returnEosjsTransaction(wasBroadcast: boolean, completedTransaction: any): SignTransactionResponse {
36 | if (wasBroadcast) {
37 | if (completedTransaction.hasOwnProperty('transaction_id')) {
38 | return {
39 | wasBroadcast: true,
40 | transactionId: completedTransaction.transaction_id,
41 | status: completedTransaction.processed.receipt.status,
42 | transaction: completedTransaction,
43 | }
44 | } else if (completedTransaction.hasOwnProperty('code')) {
45 | return {
46 | wasBroadcast: true,
47 | error: {
48 | code: completedTransaction.code,
49 | message: completedTransaction.message,
50 | name: completedTransaction.error.name,
51 | },
52 | transaction: completedTransaction,
53 | }
54 | } else {
55 | return {
56 | wasBroadcast: true,
57 | transaction: completedTransaction,
58 | }
59 | }
60 | } else {
61 | return {
62 | wasBroadcast: false,
63 | transaction: completedTransaction,
64 | }
65 | }
66 | }
67 |
68 | protected buildRpcEndpoint(endPoint: RpcEndpoint): string {
69 | let rpcEndpointString = `${endPoint.protocol}://${endPoint.host}:${endPoint.port}`
70 | if (endPoint.path) {
71 | let separator = '/'
72 | if (endPoint.path.startsWith('/')) {
73 | separator = ''
74 | }
75 | rpcEndpointString = `${rpcEndpointString}${separator}${endPoint.path}`
76 | }
77 |
78 | if (rpcEndpointString.endsWith('/')) {
79 | rpcEndpointString = rpcEndpointString.substring(0, rpcEndpointString.length - 1)
80 | }
81 |
82 | return rpcEndpointString
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './Authenticator'
2 | export * from './UAL'
3 | export * from './interfaces'
4 | export * from './User'
5 | export * from './UALError'
6 |
--------------------------------------------------------------------------------
/src/interfaces.ts:
--------------------------------------------------------------------------------
1 | import { Authenticator } from './Authenticator'
2 |
3 | export interface AuthenticatorResponse {
4 | /** List of authenticators */
5 | availableAuthenticators: Authenticator[]
6 |
7 | /** The Authenticator to use for auto login, if supported and available */
8 | autoLoginAuthenticator: Authenticator | null
9 | }
10 |
11 | /** The fields that an Authenticator can style on their button */
12 | export interface ButtonStyle {
13 | /** Whatever is provided here will be set as the `src` attribute */
14 | icon: string
15 |
16 | text: string
17 | textColor: string
18 |
19 | /** CSS string */
20 | background: string
21 | }
22 |
23 | /** Defines a supported chain */
24 | export interface Chain {
25 | /** The chainId for the chain */
26 | chainId: string
27 |
28 | /** One or more rpcEndpoints associated with that chainId */
29 | rpcEndpoints: RpcEndpoint[]
30 | }
31 |
32 | export interface RpcEndpoint {
33 | protocol: string
34 | host: string
35 | port: number
36 | path?: string
37 | }
38 |
39 | /** Optional arguments to signTransaction */
40 | export interface SignTransactionConfig {
41 | /** If the transaction should also be broadcast */
42 | broadcast?: boolean
43 |
44 | /** Number of blocks behind (for use with eosjs) */
45 | blocksBehind?: number
46 |
47 | /** Number of seconds before expiration (for use with eosjs) */
48 | expireSeconds?: number
49 | }
50 |
51 | /** The object returned from signTransaction */
52 | export interface SignTransactionResponse {
53 | /** Was the transaction broadcast */
54 | wasBroadcast: boolean
55 |
56 | /** The transcation id (optional) */
57 | transactionId?: string
58 |
59 | /** The status of the transaction as returned by the RPC API (optional) */
60 | status?: string
61 |
62 | /** Set if there was an error */
63 | error?: {
64 |
65 | /** The error code */
66 | code: string,
67 |
68 | /** The error message */
69 | message: string,
70 |
71 | /** The error name */
72 | name: string
73 | }
74 | /** The raw transaction object */
75 | transaction: any
76 | }
77 |
78 | export const UALLoggedInAuthType = 'UALLoggedInAuthType'
79 |
80 | export const UALAccountName = 'UALAccountName'
81 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es6",
4 | "module": "commonjs",
5 | "rootDir": "./src",
6 | "outDir": "dist",
7 | "strict": true,
8 | "noImplicitAny": false,
9 | "noUnusedLocals": true,
10 | "noUnusedParameters": true,
11 | "noImplicitReturns": true,
12 | "noFallthroughCasesInSwitch": true,
13 | "moduleResolution": "node",
14 | "esModuleInterop": true,
15 | "declaration": true
16 | },
17 | "lib": ["esnext"],
18 | "include": [
19 | "src/**/*"
20 | ],
21 | "exclude": [
22 | "src/**/*.test.ts"
23 | ]
24 | }
25 |
--------------------------------------------------------------------------------