├── .circleci └── config.yml ├── .dependabot └── config.yml ├── .gitignore ├── .npmignore ├── .prettierrc.yml ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── docs ├── primer.md ├── rpc_ts_chat_demo.gif └── typescript.svg ├── package.json ├── site ├── common │ └── partials │ │ ├── analytics.html │ │ ├── button.html │ │ ├── footer.html │ │ └── navbar.html ├── landing │ ├── .DS_Store │ ├── .gitignore │ ├── Gemfile │ ├── Gemfile.lock │ ├── README.md │ ├── _config.yml │ ├── _data │ │ └── usps.yml │ ├── _includes │ ├── _layouts │ │ └── home.html │ ├── _sass │ │ ├── bootstrap.scss │ │ ├── button.scss │ │ ├── constants.scss │ │ ├── footer.scss │ │ ├── main.scss │ │ ├── navbar.scss │ │ └── why.scss │ ├── assets │ │ ├── css │ │ │ ├── styles.scss │ │ │ └── vs.css │ │ ├── fonts │ │ │ └── RenoMono.otf │ │ ├── images │ │ │ ├── github.svg │ │ │ ├── github_reverse.svg │ │ │ └── menu.svg │ │ └── index.js │ └── index.md └── typedoc │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ └── typedoc_theme │ ├── assets │ ├── css │ │ ├── _constants.sass │ │ ├── elements │ │ │ ├── _comment.sass │ │ │ ├── _filter.sass │ │ │ ├── _footer.sass │ │ │ ├── _hierarchy.sass │ │ │ ├── _images.sass │ │ │ ├── _index.sass │ │ │ ├── _member.sass │ │ │ ├── _navigation.sass │ │ │ ├── _panel.sass │ │ │ ├── _search.sass │ │ │ ├── _signatures.sass │ │ │ ├── _sources.sass │ │ │ └── _toolbar.sass │ │ ├── layouts │ │ │ ├── _default.sass │ │ │ └── _minimal.sass │ │ ├── main.sass │ │ ├── setup │ │ │ ├── _animations.sass │ │ │ ├── _grid.sass │ │ │ ├── _icons.scss │ │ │ ├── _mixins.sass │ │ │ └── _typography.sass │ │ └── vendors │ │ │ ├── _highlight.js.sass │ │ │ └── _normalize.sass │ └── images │ │ ├── icons.png │ │ ├── icons.psd │ │ ├── icons@2x.png │ │ ├── page_title_background.svg │ │ ├── widgets.png │ │ ├── widgets.psd │ │ └── widgets@2x.png │ ├── layouts │ └── default.hbs │ ├── partials │ ├── aidenFooter.hbs │ ├── analytics.hbs │ ├── breadcrumb.hbs │ ├── comment.hbs │ ├── footer.hbs │ ├── header.hbs │ ├── hierarchy.hbs │ ├── index.hbs │ ├── member.declaration.hbs │ ├── member.getterSetter.hbs │ ├── member.hbs │ ├── member.signature.body.hbs │ ├── member.signature.title.hbs │ ├── member.signatures.hbs │ ├── member.sources.hbs │ ├── members.group.hbs │ ├── members.hbs │ ├── navigation.hbs │ ├── parameter.hbs │ ├── toc.hbs │ ├── toc.root.hbs │ ├── type.hbs │ ├── typeAndParent.hbs │ └── typeParameters.hbs │ └── templates │ ├── index.hbs │ └── reflection.hbs ├── src ├── client │ ├── __tests__ │ │ ├── service.test.ts │ │ ├── stream.test.ts │ │ └── stream_retrier.test.ts │ ├── backoff.ts │ ├── client.ts │ ├── context_connector.ts │ ├── errors.ts │ ├── index.ts │ ├── service.ts │ ├── stream.ts │ └── stream_retrier.ts ├── common │ ├── common.ts │ └── index.ts ├── context │ ├── client │ │ ├── client.ts │ │ ├── composite.ts │ │ ├── empty.ts │ │ ├── index.ts │ │ ├── timestamp.ts │ │ └── token_auth.ts │ ├── common │ │ ├── common.ts │ │ ├── composite.ts │ │ ├── empty.ts │ │ ├── index.ts │ │ ├── timestamp.ts │ │ └── token_auth.ts │ └── server │ │ ├── __tests__ │ │ └── jwt_handler.test.ts │ │ ├── composite.ts │ │ ├── empty.ts │ │ ├── index.ts │ │ ├── server.ts │ │ ├── timestamp.ts │ │ ├── token_auth.ts │ │ ├── token_auth_handler.ts │ │ └── token_auth_jwt_handler.ts ├── examples │ ├── __tests__ │ │ └── examples.test.ts │ ├── context │ │ ├── auth_context.ts │ │ ├── handler.ts │ │ ├── index.ts │ │ └── service.ts │ └── server_stream │ │ ├── handler.ts │ │ ├── index.ts │ │ └── service.ts ├── protocol │ ├── client │ │ ├── client.ts │ │ └── index.ts │ ├── grpc_web │ │ ├── __tests__ │ │ │ ├── client_server.it.ts │ │ │ └── text_json_codec.test.ts │ │ ├── client │ │ │ ├── client.ts │ │ │ ├── index.ts │ │ │ └── private │ │ │ │ ├── chunk_parser.ts │ │ │ │ └── metadata.ts │ │ ├── common │ │ │ ├── codec.ts │ │ │ ├── common.ts │ │ │ ├── index.ts │ │ │ └── json_codec.ts │ │ ├── private │ │ │ ├── __tests__ │ │ │ │ └── grpc.test.ts │ │ │ ├── grpc.ts │ │ │ ├── headers.ts │ │ │ ├── http_status.ts │ │ │ ├── method_url.ts │ │ │ └── utf8.ts │ │ └── server │ │ │ ├── index.ts │ │ │ └── server.ts │ ├── mock │ │ ├── __tests__ │ │ │ └── mock.test.ts │ │ ├── index.ts │ │ └── mock.ts │ ├── private │ │ ├── helpers.ts │ │ └── http_status.ts │ └── server │ │ ├── index.ts │ │ └── server.ts ├── server │ ├── __tests__ │ │ └── errors.test.ts │ ├── context_connector.ts │ ├── errors.ts │ ├── handler.ts │ ├── index.ts │ └── server.ts ├── site │ └── index.ts └── utils │ ├── __tests__ │ └── utils.test.ts │ ├── index.ts │ └── utils.ts ├── tsconfig.doc.json ├── tsconfig.json ├── tslint.json ├── typedoc.js └── yarn.lock /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | defaults: &defaults 4 | working_directory: ~/repo 5 | docker: 6 | - image: circleci/node:latest 7 | 8 | jobs: 9 | test: 10 | <<: *defaults 11 | steps: 12 | - checkout 13 | - run: yarn --frozen-lockfile 14 | - run: yarn all 15 | - run: yarn coverage && yarn coverage:upload 16 | - persist_to_workspace: 17 | root: '~/repo' 18 | paths: '.' 19 | doc: 20 | <<: *defaults 21 | steps: 22 | - add_ssh_keys: 23 | fingerprints: 24 | - '3c:79:d1:ec:94:08:24:a0:e6:3c:91:96:dc:ce:18:8a' 25 | - attach_workspace: 26 | at: ~/repo 27 | - run: 28 | name: Add known hosts for github.com 29 | command: | 30 | HOSTKEY='github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw== 31 | github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==' 32 | 33 | TEMPFILE=$(mktemp) 34 | echo "$HOSTKEY" > $TEMPFILE 35 | 36 | git config --global user.email "$GH_EMAIL" 37 | git config --global user.name "$GH_NAME" 38 | 39 | echo -e " UserKnownHostsFile $TEMPFILE" >> ~/.ssh/config 40 | - run: 41 | name: Install bundler and gems 42 | command: | 43 | sudo apt-get update 44 | sudo apt-get install -yq ruby ruby-dev 45 | cd site/landing 46 | sudo gem install bundler 47 | bundle install 48 | - run: 49 | name: Publish doc to github pages 50 | command: yarn doc:deploy 51 | deploy: 52 | <<: *defaults 53 | steps: 54 | - attach_workspace: 55 | at: ~/repo 56 | - run: 57 | name: Authenticate with registry 58 | command: echo "//registry.npmjs.org/:_authToken=$npm_TOKEN" > ~/repo/.npmrc 59 | - run: 60 | name: Publish package 61 | command: yarn publish --non-interactive --access=public 62 | 63 | workflows: 64 | version: 2 65 | test-deploy: 66 | jobs: 67 | - test: 68 | filters: 69 | tags: 70 | only: /^v.*/ 71 | - doc: 72 | requires: 73 | - test 74 | filters: 75 | tags: 76 | only: /^v.*/ 77 | branches: 78 | only: master 79 | - deploy: 80 | requires: 81 | - test 82 | filters: 83 | tags: 84 | only: /^v.*/ 85 | branches: 86 | ignore: /.*/ 87 | -------------------------------------------------------------------------------- /.dependabot/config.yml: -------------------------------------------------------------------------------- 1 | version: 1 2 | update_configs: 3 | # Keep package.json (& lockfiles) up to date as soon as 4 | # new versions are published to the npm registry 5 | - package_manager: 'javascript' 6 | directory: '/' 7 | update_schedule: 'live' 8 | 9 | # Apply default reviewer and label to created 10 | # pull requests 11 | default_reviewers: 12 | - 'hchauvin' 13 | default_labels: 14 | - 'dependency' 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /lib 3 | /es 4 | /coverage 5 | /.nyc_output 6 | /readme_code.ts 7 | /typedoc 8 | *.log 9 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /src 2 | /circle.yml 3 | /tsconfig.json 4 | /tslint.json 5 | /typedoc 6 | /docs 7 | /.nyc_output 8 | /coverage 9 | -------------------------------------------------------------------------------- /.prettierrc.yml: -------------------------------------------------------------------------------- 1 | # These are all Prettier defaults, just specifying them 2 | # for the sake of being explicit 3 | printWidth: 80 4 | tabWidth: 2 5 | semi: true 6 | bracketSpacing: true 7 | jsxBracketSameLine: false 8 | arrowParens: avoid 9 | useTabs: false 10 | 11 | # These we differ from Prettier's defaults 12 | singleQuote: true 13 | proseWrap: never 14 | trailingComma: all 15 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "[markdown]": { 3 | "editor.formatOnSave": false 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Aiden.ai 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 all 13 | 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/primer.md: -------------------------------------------------------------------------------- 1 | # Primer 2 | 3 | This is how a minimal RPC service with one procedure, `getHello`, looks like: 4 | 5 | ```Typescript 6 | import { ModuleRpcCommon } from 'rpc_ts/lib/common'; 7 | import { ModuleRpcServer } from 'rpc_ts/lib/server'; 8 | import { ModuleRpcProtocolServer } from 'rpc_ts/lib/protocol/server'; 9 | import { ModuleRpcProtocolClient } from 'rpc_ts/lib/protocol/client'; 10 | 11 | // Definition of the RPC service 12 | const helloServiceDefinition = { 13 | getHello: { 14 | request: {} as { language: string }, 15 | response: {} as { text: string }, 16 | }, 17 | }; 18 | 19 | // Implementation of an RPC server 20 | import * as express from 'express'; 21 | import * as http from 'http'; 22 | const app = express(); 23 | const handler: ModuleRpcServer.ServiceHandlerFor = { 24 | async getHello({ language }) { 25 | if (language === 'Spanish') return { text: 'Hola' }; 26 | throw new ModuleRpcServer.ServerRpcError( 27 | ModuleRpcCommon.RpcErrorType.notFound, 28 | `language '${language}' not found`, 29 | ); 30 | }, 31 | }; 32 | app.use(ModuleRpcProtocolServer.registerRpcRoutes(helloServiceDefinition, handler)); 33 | const server = http.createServer(app).listen(); 34 | 35 | // Now let's do a Remote Procedure Call 36 | async function rpc() { 37 | const { text } = await ModuleRpcProtocolClient.getRpcClient(helloServiceDefinition, { 38 | remoteAddress: `http://localhost:${server.address().port}` 39 | }).getHello({ language: 'Spanish' }); 40 | // (Notice that, with TypeScript typing, it is not possible to mess up the 41 | // type of the request: for instance, `.getHello({ lang: 'Spanish' })` 42 | // will error.) 43 | 44 | console.log('Hello:', text); 45 | } 46 | 47 | rpc().then(() => server.close()).catch(err => { 48 | console.error(err); 49 | process.exit(1); 50 | }); 51 | ``` 52 | -------------------------------------------------------------------------------- /docs/rpc_ts_chat_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aiden/rpc_ts/2fcd229bd391c513a231e182fa7a076c0b881739/docs/rpc_ts_chat_demo.gif -------------------------------------------------------------------------------- /docs/typescript.svg: -------------------------------------------------------------------------------- 1 | TypeScriptTypeScript -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rpc_ts", 3 | "version": "2.1.0", 4 | "description": "Remote Procedure Calls in TypeScript made simple", 5 | "repository": "git@github.com:aiden/rpc_ts.git", 6 | "author": "Dashbot Ltd", 7 | "license": "MIT", 8 | "private": false, 9 | "main": "lib/index.js", 10 | "unpkg": "dist/index.js", 11 | "module": "es/index.js", 12 | "typings": "lib/index.d.ts", 13 | "dependencies": { 14 | "@improbable-eng/grpc-web": "^0.11.0", 15 | "@types/compression": "^1.0.1", 16 | "compression": "^1.0.3", 17 | "express": "^4.16.3", 18 | "fast-text-encoding": "^1.0.0", 19 | "isomorphic-fetch": "^2.2.1", 20 | "lodash": "^4.17.5", 21 | "moment": "^2.14.1", 22 | "node-jose": "^1.0.0", 23 | "query-string": "^6.0.0" 24 | }, 25 | "devDependencies": { 26 | "@improbable-eng/grpc-web-node-http-transport": "^0.11.0", 27 | "@types/chai": "^4.0.0", 28 | "@types/express": "^4.11.1", 29 | "@types/fetch-mock": "^7.3.1", 30 | "@types/lodash": "^4.14.106", 31 | "@types/mocha": "^5.2.7", 32 | "@types/node": "^8.0.47", 33 | "@types/query-string": "^6.3.0", 34 | "@types/shelljs": "^0.8.5", 35 | "@types/sinon": "^7.0.13", 36 | "aiden-doc": "1.0.3", 37 | "chai": "4.2.0", 38 | "codedown": "^2.1.5", 39 | "coveralls": "^3.0.4", 40 | "fast-check": "^1.5.0", 41 | "fetch-mock": "^7.3.9", 42 | "gh-pages": "^2.0.1", 43 | "liquidjs": "^9.1.1", 44 | "mocha": "^6", 45 | "node-sass": "^4.12.0", 46 | "nyc": "^14.1.1", 47 | "prettier": "^1.13.7", 48 | "rimraf": "^3.0.0", 49 | "rxjs": "^6.3.2", 50 | "shelljs": "^0.8.3", 51 | "sinon": "^7.3.2", 52 | "ts-node": "^8", 53 | "tsconfig-paths": "^3.5.0", 54 | "tslint": "^5.18.0", 55 | "tslint-config-prettier": "^1.13.0", 56 | "tslint-config-standard": "^8.0.1", 57 | "tslint-language-service": "^0.9.8", 58 | "tslint-no-circular-imports": "^0.7.0", 59 | "type-zoo": "^3.4.0", 60 | "typedoc": "^0.15.0", 61 | "typedoc-plugin-external-module-name": "^2.1.0", 62 | "typescript": "3.6.4" 63 | }, 64 | "scripts": { 65 | "clean": "rimraf lib dist es typedoc", 66 | "test": "mocha --exit -r tsconfig-paths/register 'lib/**/*.{test,it}.js'", 67 | "test:ts": "mocha --exit -r ts-node/register -r tsconfig-paths/register 'src/**/*.{test,it}.ts'", 68 | "coverage": "yarn nyc --reporter=html --reporter=text --es-modules=false --exclude-after-remap=false mocha --exit -r tsconfig-paths/register 'lib/**/*.{test,it}.js'", 69 | "coverage:upload": "yarn nyc report --reporter=text-lcov --exclude-after-remap=false | ./node_modules/coveralls/bin/coveralls.js", 70 | "ts": "tsc -p tsconfig.json --noEmit", 71 | "ts:doc": "yarn extra-md-ts && tsc --noEmit --project tsconfig.doc.json", 72 | "build:es": "tsc -p tsconfig.json --declaration --module esnext --outDir ./es", 73 | "build:cjs": "tsc -p tsconfig.json --declaration --module commonjs --outDir ./lib", 74 | "build": "yarn run build:cjs && yarn run build:es", 75 | "lint": "tslint -p tsconfig.json", 76 | "format": "prettier --write --ignore-path .gitignore '**/*.ts'", 77 | "format:check": "prettier -l --list-different --ignore-path .gitignore '**/*.ts'", 78 | "all": "yarn build && yarn ts && yarn ts:doc && yarn format:check && yarn lint && yarn test && yarn doc", 79 | "precommit": "lint-staged", 80 | "extra-md-ts": "cat README.md | yarn --silent codedown Typescript > readme_code.ts", 81 | "doc": "ts-node src/site/index.ts", 82 | "doc:serve": "yarn doc && (cd site/landing && bundle exec jekyll serve)", 83 | "doc:deploy": "yarn doc && yarn gh-pages -d site/landing/_site -m '[ci skip] Updates'" 84 | }, 85 | "lint-staged": { 86 | "{./*,typescript/**/*}.{js,jsx,ts,tsx,css,scss,md,json}": "prettier -l", 87 | "*.{ts,tsx}": "tslint -c tslint.json" 88 | }, 89 | "npmName": "rpc_ts", 90 | "sideEffects": false, 91 | "keywords": [ 92 | "typescript", 93 | "RPC", 94 | "API", 95 | "isomorphic", 96 | "gRPC-Web", 97 | "real-time" 98 | ] 99 | } 100 | -------------------------------------------------------------------------------- /site/common/partials/analytics.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 15 | -------------------------------------------------------------------------------- /site/common/partials/button.html: -------------------------------------------------------------------------------- 1 | 6 |

{{ include.text }}

7 |
8 | -------------------------------------------------------------------------------- /site/common/partials/footer.html: -------------------------------------------------------------------------------- 1 | 34 | -------------------------------------------------------------------------------- /site/common/partials/navbar.html: -------------------------------------------------------------------------------- 1 | 40 | -------------------------------------------------------------------------------- /site/landing/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aiden/rpc_ts/2fcd229bd391c513a231e182fa7a076c0b881739/site/landing/.DS_Store -------------------------------------------------------------------------------- /site/landing/.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | .sass-cache 3 | .jekyll-metadata 4 | typedoc 5 | -------------------------------------------------------------------------------- /site/landing/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | # Hello! This is where you manage which Jekyll version is used to run. 4 | # When you want to use a different version, change it below, save the 5 | # file and run `bundle install`. Run Jekyll with `bundle exec`, like so: 6 | # 7 | # bundle exec jekyll serve 8 | # 9 | # This will help ensure the proper Jekyll version is running. 10 | # Happy Jekylling! 11 | gem "jekyll", "~> 3.8.3" 12 | 13 | # This is the default theme for new Jekyll sites. You may change this to anything you like. 14 | gem "minima", "~> 2.0" 15 | 16 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and 17 | # uncomment the line below. To upgrade, run `bundle update github-pages`. 18 | # gem "github-pages", group: :jekyll_plugins 19 | 20 | # If you have any plugins, put them here! 21 | group :jekyll_plugins do 22 | gem "jekyll-feed", "~> 0.6" 23 | end 24 | 25 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem 26 | gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby] 27 | 28 | # Performance-booster for watching directories on Windows 29 | gem "wdm", "~> 0.1.0" if Gem.win_platform? 30 | 31 | -------------------------------------------------------------------------------- /site/landing/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.6.0) 5 | public_suffix (>= 2.0.2, < 4.0) 6 | colorator (1.1.0) 7 | concurrent-ruby (1.1.5) 8 | em-websocket (0.5.1) 9 | eventmachine (>= 0.12.9) 10 | http_parser.rb (~> 0.6.0) 11 | eventmachine (1.2.7) 12 | ffi (1.10.0) 13 | forwardable-extended (2.6.0) 14 | http_parser.rb (0.6.0) 15 | i18n (0.9.5) 16 | concurrent-ruby (~> 1.0) 17 | jekyll (3.8.5) 18 | addressable (~> 2.4) 19 | colorator (~> 1.0) 20 | em-websocket (~> 0.5) 21 | i18n (~> 0.7) 22 | jekyll-sass-converter (~> 1.0) 23 | jekyll-watch (~> 2.0) 24 | kramdown (~> 1.14) 25 | liquid (~> 4.0) 26 | mercenary (~> 0.3.3) 27 | pathutil (~> 0.9) 28 | rouge (>= 1.7, < 4) 29 | safe_yaml (~> 1.0) 30 | jekyll-feed (0.11.0) 31 | jekyll (~> 3.3) 32 | jekyll-sass-converter (1.5.2) 33 | sass (~> 3.4) 34 | jekyll-seo-tag (2.5.0) 35 | jekyll (~> 3.3) 36 | jekyll-watch (2.1.2) 37 | listen (~> 3.0) 38 | kramdown (1.17.0) 39 | liquid (4.0.2) 40 | listen (3.1.5) 41 | rb-fsevent (~> 0.9, >= 0.9.4) 42 | rb-inotify (~> 0.9, >= 0.9.7) 43 | ruby_dep (~> 1.2) 44 | mercenary (0.3.6) 45 | minima (2.5.0) 46 | jekyll (~> 3.5) 47 | jekyll-feed (~> 0.9) 48 | jekyll-seo-tag (~> 2.1) 49 | pathutil (0.16.2) 50 | forwardable-extended (~> 2.6) 51 | public_suffix (3.0.3) 52 | rb-fsevent (0.10.3) 53 | rb-inotify (0.10.0) 54 | ffi (~> 1.0) 55 | rouge (3.3.0) 56 | ruby_dep (1.5.0) 57 | safe_yaml (1.0.5) 58 | sass (3.7.3) 59 | sass-listen (~> 4.0.0) 60 | sass-listen (4.0.0) 61 | rb-fsevent (~> 0.9, >= 0.9.4) 62 | rb-inotify (~> 0.9, >= 0.9.7) 63 | 64 | PLATFORMS 65 | ruby 66 | 67 | DEPENDENCIES 68 | jekyll (~> 3.8.3) 69 | jekyll-feed (~> 0.6) 70 | minima (~> 2.0) 71 | tzinfo-data 72 | 73 | BUNDLED WITH 74 | 1.17.1 75 | -------------------------------------------------------------------------------- /site/landing/README.md: -------------------------------------------------------------------------------- 1 | # Jekyll site for rpc_ts 2 | 3 | Run `jekyll serve` at the root of the directory to serve locally 4 | 5 | Steps to build: 6 | 1. From [rpc_ts](https://github.com/aiden/rpc_ts) generate documentation using [TypeDoc](https://typedoc.org/) 7 | 2. Copy the generated TypeDoc folder to the root of the Jekyll project at `/typedoc` 8 | 3. Run `jekyll build` to build the site 9 | -------------------------------------------------------------------------------- /site/landing/_config.yml: -------------------------------------------------------------------------------- 1 | # Welcome to Jekyll! 2 | # 3 | # This config file is meant for settings that affect your whole blog, values 4 | # which you are expected to set up once and rarely edit after that. If you find 5 | # yourself editing this file very often, consider using Jekyll's data files 6 | # feature for the data you need to update frequently. 7 | # 8 | # For technical reasons, this file is *NOT* reloaded automatically when you use 9 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process. 10 | 11 | # Site settings 12 | # These are used to personalize your new site. If you look in the HTML files, 13 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. 14 | # You can create any custom variable you would like, and they will be accessible 15 | # in the templates via {{ site.myvariable }}. 16 | title: RPC_TC 17 | email: contact@aiden.ai 18 | description: >- # this means to ignore newlines until "baseurl:" 19 | Write an awesome description for your new site here. You can edit this 20 | line in _config.yml. It will appear in your document head meta (for 21 | Google search results) and in your feed.xml site description. 22 | baseurl: "" # the subpath of your site, e.g. /blog 23 | url: "" # the base hostname & protocol for your site, e.g. http://example.com 24 | twitter_username: jekyllrb 25 | github_username: jekyll 26 | 27 | # Build settings 28 | markdown: kramdown 29 | theme: minima 30 | plugins: 31 | - jekyll-feed 32 | 33 | 34 | # For Syntax Highligting 35 | highlighter: rouge 36 | 37 | 38 | # Exclude from processing. 39 | # The following items will not be processed, by default. Create a custom list 40 | # to override the default setting. 41 | # exclude: 42 | # - Gemfile 43 | # - Gemfile.lock 44 | # - node_modules 45 | # - vendor/bundle/ 46 | # - vendor/cache/ 47 | # - vendor/gems/ 48 | # - vendor/ruby/ 49 | -------------------------------------------------------------------------------- /site/landing/_data/usps.yml: -------------------------------------------------------------------------------- 1 | - title: TypeScript-native 2 | position: side 3 | description: Clean API contracts written in TypeScript. Ideal for modern isomorphic web applications. 4 | 5 | - title: Hassle-free 6 | position: middle 7 | description: No Domain Specific Language, no code generation, no proxy. Improve the developer experience without compromising correctness. 8 | 9 | - title: Based on proven technologies 10 | position: side 11 | description: Implements the gRPC-Web+json protocol. 12 | -------------------------------------------------------------------------------- /site/landing/_includes: -------------------------------------------------------------------------------- 1 | ../common/partials -------------------------------------------------------------------------------- /site/landing/_layouts/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | {% include analytics.html %} 9 | 10 | 11 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | {% include navbar.html %} 30 | 31 | {{ content }} 32 | 33 | {% include footer.html %} 34 | 35 | 36 | 37 | 40 | 44 | 49 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /site/landing/_sass/bootstrap.scss: -------------------------------------------------------------------------------- 1 | .bg-primary { 2 | background-color: $MAIN_BLUE !important; 3 | } 4 | 5 | .btn-light { 6 | color: $MAIN_BLUE; 7 | } 8 | 9 | .btn-primary { 10 | background-color: $MAIN_BLUE; 11 | border-color: $MAIN_BLUE; 12 | } 13 | -------------------------------------------------------------------------------- /site/landing/_sass/button.scss: -------------------------------------------------------------------------------- 1 | .button { 2 | font-family: $FONT_FAMILY_MONO; 3 | margin: 10px 15px; 4 | 5 | &:hover { 6 | text-decoration: none; 7 | } 8 | 9 | p { 10 | padding: 14px 0px 10px 0px; 11 | width: 200px; 12 | border-radius: 25px; 13 | text-align: center; 14 | margin-bottom: 0px; 15 | transition: background-color 0.3s ease; 16 | 17 | &:hover { 18 | text-decoration: none; 19 | } 20 | } 21 | } 22 | 23 | .button-blue { 24 | p { 25 | background-color: $MAIN_BLUE; 26 | color: $MAIN_WHITE; 27 | &:hover { 28 | background-color: #2066f1; 29 | } 30 | } 31 | } 32 | 33 | .button-white { 34 | p { 35 | background-color: $MAIN_WHITE; 36 | color: $MAIN_BLUE; 37 | 38 | &:hover { 39 | background-color: #fbfbfb; 40 | } 41 | } 42 | } 43 | 44 | .button-clear { 45 | p { 46 | background-color: none; 47 | color: $MAIN_BLUE; 48 | border: 0.5px #fff solid; 49 | 50 | &:hover { 51 | background-color: #f9f9f9; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /site/landing/_sass/constants.scss: -------------------------------------------------------------------------------- 1 | // Fonts 2 | // 3 | $FONT_FAMILY: 'Source Sans Pro', sans-serif; 4 | $FONT_FAMILY_MONO: Menlo, Monaco, Consolas, 'Courier New', monospace; 5 | 6 | // Colors 7 | // 8 | $COLOR_BACKGROUND: #115cf1; 9 | $COLOR_TEXT: #fff; 10 | $COLOR_LINK: #abccff; 11 | 12 | // GRID 13 | $MAX_CONTENT_WIDTH: 1200px; 14 | 15 | $MAIN_BLUE: #115cf1; 16 | $SECONDARY_BLUE: #2066f1; 17 | $MAIN_WHITE: #fff; 18 | $MAIN_GRAY: #f3f3f3; 19 | -------------------------------------------------------------------------------- /site/landing/_sass/footer.scss: -------------------------------------------------------------------------------- 1 | footer{ 2 | background-color: $MAIN_BLUE; 3 | 4 | &#aiden-footer{ 5 | background-color: $MAIN_BLUE; 6 | color: $MAIN_WHITE; 7 | position: relative; 8 | 9 | #footer-copy { 10 | background-color: $SECONDARY_BLUE; 11 | padding: 15px 0px 15px 40px; 12 | border-radius: 30px; 13 | font-family: $FONT_FAMILY_MONO; 14 | margin: 72px 0px; 15 | display: flex; 16 | align-items: center; 17 | } 18 | 19 | #footer-icon{ 20 | margin-right: 30px; 21 | } 22 | 23 | a { 24 | text-decoration: none; 25 | color: white; 26 | } 27 | 28 | .col-content { 29 | border-left: none; 30 | } 31 | 32 | } 33 | } 34 | 35 | 36 | 37 | // Medium devices (tablets, 768px and up) 38 | @media (min-width: 768px) { 39 | .col-content { 40 | border-left: #fff solid 1px !important; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /site/landing/_sass/main.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Reno Mono'; 3 | src: url('../fonts/RenoMono.otf'); 4 | } 5 | 6 | body { 7 | font-family: 'Source Sans Pro', sans-serif; 8 | background: #ffffff; 9 | color: #212529; 10 | } 11 | 12 | .highlight, 13 | pre, 14 | code { 15 | font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; 16 | background-color: transparent; 17 | } 18 | 19 | a { 20 | color: #115cf1; 21 | text-decoration: underline; 22 | } 23 | 24 | .background-gray { 25 | background-color: $MAIN_GRAY; 26 | } 27 | 28 | $hero_section_top_margin: 100px; 29 | 30 | #hero-section { 31 | background-color: #f3f3f3; 32 | overflow: hidden; 33 | padding: 0; 34 | 35 | .display-3 { 36 | font-weight: 700; 37 | max-width: 685px; 38 | } 39 | 40 | .main-text { 41 | margin: $hero_section_top_margin auto 0px auto; 42 | } 43 | 44 | .lead { 45 | max-width: 520px; 46 | line-height: 40px; 47 | } 48 | 49 | .lead, 50 | .main-text h1 { 51 | margin-left: auto; 52 | margin-right: auto; 53 | } 54 | 55 | .usp-container { 56 | border-top: #fff solid 1px; 57 | } 58 | 59 | .ups-section { 60 | color: $COLOR_BACKGROUND; 61 | 62 | .middle { 63 | border-left: none; 64 | border-right: none; 65 | } 66 | 67 | .usp-title { 68 | font-size: 1.4em; 69 | } 70 | 71 | .usp-description { 72 | font-family: $FONT_FAMILY_MONO; 73 | font-size: 0.8em; 74 | } 75 | } 76 | } 77 | 78 | p.quote { 79 | font-size: 140%; 80 | font-style: italic; 81 | font-weight: 200; 82 | padding-left: 16px; 83 | border-left: 2px solid #212529; 84 | margin-left: -18px; 85 | } 86 | 87 | .why p { 88 | max-width: 800px; 89 | } 90 | 91 | p.emphasis { 92 | font-weight: 600; 93 | } 94 | 95 | .quicklook-section { 96 | padding-top: 70px; 97 | padding-bottom: 70px; 98 | padding-left: 5px; 99 | padding-right: 5px; 100 | 101 | p.section-title { 102 | margin-top: 50px; 103 | } 104 | 105 | h3 { 106 | font-weight: 400; 107 | font-size: 1.75rem; 108 | line-height: 1.2; 109 | margin-top: 50px; 110 | } 111 | 112 | .section-title { 113 | font-weight: 200; 114 | font-size: 1.5em; 115 | margin-top: 0; 116 | margin-bottom: 1rem; 117 | } 118 | 119 | .highlight { 120 | background-color: #f3f3f3; 121 | border-radius: 20px; 122 | } 123 | 124 | pre { 125 | padding: 20px; 126 | overflow-x: scroll; 127 | } 128 | 129 | code { 130 | white-space: pre; 131 | } 132 | 133 | h5 { 134 | font-size: 1.25rem; 135 | } 136 | 137 | a.btn { 138 | text-decoration: none; 139 | } 140 | 141 | img.github { 142 | width: 25px; 143 | vertical-align: top; 144 | } 145 | } 146 | 147 | .gutter { 148 | max-width: 1200px; 149 | margin: 0 auto; 150 | } 151 | 152 | .button-container { 153 | justify-content: center; 154 | margin-bottom: 50px; 155 | } 156 | 157 | // Styling for under 576 px 158 | @media (max-width: 576px) { 159 | #hero-section .main-text { 160 | margin: $hero_section_top_margin auto 0px auto; 161 | } 162 | 163 | .display-3 { 164 | font-size: 2.5em; 165 | text-align: left; 166 | } 167 | #hero-section { 168 | .lead { 169 | text-align: left; 170 | line-height: 30px; 171 | } 172 | } 173 | 174 | .button-container { 175 | justify-content: left; 176 | margin-bottom: 50px; 177 | } 178 | } 179 | 180 | @media (min-width: 576px) { 181 | .display-3 { 182 | font-size: 3.2em; 183 | } 184 | } 185 | 186 | // Medium devices (tablets, 768px and up) 187 | @media (min-width: 768px) { 188 | .display-3 { 189 | font-size: 3.2em; 190 | } 191 | 192 | #hero-section { 193 | .ups-section { 194 | .middle { 195 | border-left: #fff solid 1px; 196 | border-right: #fff solid 1px; 197 | } 198 | } 199 | } 200 | } 201 | 202 | // Large devices (desktops, 992px and up) 203 | @media (min-width: 992px) { 204 | .display-3 { 205 | font-size: 3.6em; 206 | } 207 | } 208 | 209 | // Extra large devices (large desktops, 1200px and up) 210 | @media (max-width: 1200px) { 211 | } 212 | 213 | h5.card-title { 214 | margin-top: 0; 215 | } 216 | -------------------------------------------------------------------------------- /site/landing/_sass/navbar.scss: -------------------------------------------------------------------------------- 1 | .tsd-page-toolbar { 2 | background: $MAIN_GRAY; 3 | color: $MAIN_BLUE; 4 | margin-bottom: 0; 5 | 6 | .nav-link { 7 | display: inline; 8 | padding: 0; 9 | } 10 | 11 | a { 12 | color: $MAIN_BLUE; 13 | } 14 | 15 | a.nav-link { 16 | padding: 0 15px; 17 | display: block; 18 | } 19 | 20 | .link-item { 21 | padding: 0 15px; 22 | } 23 | 24 | a.active { 25 | border-bottom: $MAIN_BLUE 3px solid; 26 | } 27 | } 28 | 29 | $navbar_transition: all 0.4s ease; 30 | 31 | header { 32 | position: fixed; 33 | top: 0; 34 | left: 0; 35 | right: 0; 36 | z-index: 1000; 37 | height: 83px; 38 | background: #f3f3f3; 39 | border-bottom: 1px solid #ffffff; 40 | transition: $navbar_transition; 41 | 42 | #tsd-search .title { 43 | font-size: 2.5rem; 44 | transition: $navbar_transition; 45 | top: -2px; 46 | } 47 | 48 | .tsd-page-toolbar { 49 | transition: $navbar_transition; 50 | } 51 | 52 | &.shrink { 53 | height: 50px; 54 | 55 | .tsd-page-toolbar { 56 | padding-top: 3px; 57 | } 58 | 59 | #tsd-search .title { 60 | font-size: 1.5rem; 61 | } 62 | } 63 | 64 | .menu { 65 | width: 30px; 66 | right: 0; 67 | position: absolute; 68 | } 69 | 70 | @media (min-width: 992px) { 71 | .menu { 72 | display: none !important; 73 | } 74 | } 75 | 76 | @media (max-width: 992px) { 77 | .link-container { 78 | display: none !important; 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /site/landing/_sass/why.scss: -------------------------------------------------------------------------------- 1 | .why-reason { 2 | white-space: pre-wrap; 3 | } 4 | 5 | .why-subreasons-container{ 6 | counter-reset: item; 7 | list-style-type: none; 8 | font-family: $FONT_FAMILY_MONO; 9 | padding: 0; 10 | font-size: 0.9em; 11 | } 12 | 13 | .why-subreasons-item { 14 | padding: 15px 0px; 15 | } 16 | 17 | .why-subreasons-item::before { 18 | content: counter(item) "\00a0\00a0"; 19 | counter-increment: item; 20 | } 21 | -------------------------------------------------------------------------------- /site/landing/assets/css/styles.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | @import 'constants'; 5 | @import 'main'; 6 | @import 'bootstrap'; 7 | @import 'button'; 8 | @import 'footer'; 9 | @import 'why'; 10 | @import 'navbar'; 11 | 12 | @import url(vs.css); 13 | -------------------------------------------------------------------------------- /site/landing/assets/css/vs.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #ffffff; } 3 | .highlight .c { color: #008000 } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #0000ff } /* Keyword */ 6 | .highlight .ch { color: #008000 } /* Comment.Hashbang */ 7 | .highlight .cm { color: #008000 } /* Comment.Multiline */ 8 | .highlight .cp { color: #0000ff } /* Comment.Preproc */ 9 | .highlight .cpf { color: #008000 } /* Comment.PreprocFile */ 10 | .highlight .c1 { color: #008000 } /* Comment.Single */ 11 | .highlight .cs { color: #008000 } /* Comment.Special */ 12 | .highlight .ge { font-style: italic } /* Generic.Emph */ 13 | .highlight .gh { font-weight: bold } /* Generic.Heading */ 14 | .highlight .gp { font-weight: bold } /* Generic.Prompt */ 15 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 16 | .highlight .gu { font-weight: bold } /* Generic.Subheading */ 17 | .highlight .kc { color: #0000ff } /* Keyword.Constant */ 18 | .highlight .kd { color: #0000ff } /* Keyword.Declaration */ 19 | .highlight .kn { color: #0000ff } /* Keyword.Namespace */ 20 | .highlight .kp { color: #0000ff } /* Keyword.Pseudo */ 21 | .highlight .kr { color: #0000ff } /* Keyword.Reserved */ 22 | .highlight .kt { color: #2b91af } /* Keyword.Type */ 23 | .highlight .s { color: #a31515 } /* Literal.String */ 24 | .highlight .nc { color: #2b91af } /* Name.Class */ 25 | .highlight .ow { color: #0000ff } /* Operator.Word */ 26 | .highlight .sa { color: #a31515 } /* Literal.String.Affix */ 27 | .highlight .sb { color: #a31515 } /* Literal.String.Backtick */ 28 | .highlight .sc { color: #a31515 } /* Literal.String.Char */ 29 | .highlight .dl { color: #a31515 } /* Literal.String.Delimiter */ 30 | .highlight .sd { color: #a31515 } /* Literal.String.Doc */ 31 | .highlight .s2 { color: #a31515 } /* Literal.String.Double */ 32 | .highlight .se { color: #a31515 } /* Literal.String.Escape */ 33 | .highlight .sh { color: #a31515 } /* Literal.String.Heredoc */ 34 | .highlight .si { color: #a31515 } /* Literal.String.Interpol */ 35 | .highlight .sx { color: #a31515 } /* Literal.String.Other */ 36 | .highlight .sr { color: #a31515 } /* Literal.String.Regex */ 37 | .highlight .s1 { color: #a31515 } /* Literal.String.Single */ 38 | .highlight .ss { color: #a31515 } /* Literal.String.Symbol */ 39 | -------------------------------------------------------------------------------- /site/landing/assets/fonts/RenoMono.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aiden/rpc_ts/2fcd229bd391c513a231e182fa7a076c0b881739/site/landing/assets/fonts/RenoMono.otf -------------------------------------------------------------------------------- /site/landing/assets/images/github.svg: -------------------------------------------------------------------------------- 1 | github 2 | -------------------------------------------------------------------------------- /site/landing/assets/images/github_reverse.svg: -------------------------------------------------------------------------------- 1 | github_reverse -------------------------------------------------------------------------------- /site/landing/assets/images/menu.svg: -------------------------------------------------------------------------------- 1 | Menu -------------------------------------------------------------------------------- /site/landing/assets/index.js: -------------------------------------------------------------------------------- 1 | // document.querySelectorAll('a[href^="#"]').forEach(anchor => { 2 | // anchor.addEventListener('click', function(e) { 3 | // e.preventDefault(); 4 | 5 | // document.querySelector(this.getAttribute('href')).scrollIntoView({ 6 | // behavior: 'smooth', 7 | // }); 8 | // }); 9 | // }); 10 | 11 | // document.querySelectorAll('a[href^="/#"]').forEach(anchor => { 12 | // anchor.addEventListener('click', function(e) { 13 | // const el = document.querySelector(this.getAttribute('href').substr(1)); 14 | // if (!el) { 15 | // return; 16 | // } 17 | // e.preventDefault(); 18 | // el.scrollIntoView({ 19 | // behavior: 'smooth', 20 | // }); 21 | // }); 22 | // }); 23 | 24 | // Select all links with hashes 25 | $('a[href*="#"]') 26 | // Remove links that don't actually link to anything 27 | .not('[href="#"]') 28 | .not('[href="#0"]') 29 | .click(function(event) { 30 | // On-page links 31 | if ( 32 | location.pathname.replace(/^\//, '') == 33 | this.pathname.replace(/^\//, '') && 34 | location.hostname == this.hostname 35 | ) { 36 | // Figure out element to scroll to 37 | var target = $(this.hash); 38 | target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); 39 | // Does a scroll target exist? 40 | if (target.length) { 41 | // Only prevent default if animation is actually gonna happen 42 | event.preventDefault(); 43 | $('html, body').animate( 44 | { 45 | scrollTop: target.offset().top, 46 | }, 47 | 1000, 48 | function() { 49 | // Callback after animation 50 | // Must change focus! 51 | var $target = $(target); 52 | $target.focus(); 53 | if ($target.is(':focus')) { 54 | // Checking if the target was focused 55 | return false; 56 | } else { 57 | $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable 58 | $target.focus(); // Set focus again 59 | } 60 | }, 61 | ); 62 | } 63 | } 64 | }); 65 | 66 | $(window).scroll(function() { 67 | if ($(document).scrollTop() > 50) { 68 | $('header').addClass('shrink'); 69 | } else { 70 | $('header').removeClass('shrink'); 71 | } 72 | }); 73 | -------------------------------------------------------------------------------- /site/typedoc/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .sass-cache 3 | node_modules 4 | npm-debug.log 5 | *.css 6 | *.css.map 7 | -------------------------------------------------------------------------------- /site/typedoc/README.md: -------------------------------------------------------------------------------- 1 | # Documentation themes and utilities for aiden.ai 2 | 3 | [![CircleCI](https://circleci.com/gh/aiden/aiden-doc/tree/master.svg?style=svg)](https://circleci.com/gh/aiden/aiden-doc/tree/master) [![npm version](https://badge.fury.io/js/aiden-doc.svg)](https://badge.fury.io/js/aiden-doc) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) 4 | 5 | ## License 6 | 7 | Copyright (c) 2018 Aiden.ai \ 8 | Copyright (c) 2015 Sebastian Lenz. 9 | 10 | Licensed under the Apache License, Version 2.0. 11 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/_constants.sass: -------------------------------------------------------------------------------- 1 | // Fonts 2 | // 3 | $FONT_FAMILY: 'Source Sans Pro', sans-serif 4 | $FONT_FAMILY_MONO: Menlo, Monaco, Consolas, 'Courier New', monospace 5 | 6 | $FONT_SIZE: 16px 7 | $FONT_SIZE_MONO: 14px 8 | $FONT_SIZE_SMALL: 13.6px 9 | 10 | $LINE_HEIGHT: 1.333em 11 | 12 | $FONT_WEIGHT_SUPERLIGHT: 100 13 | $FONT_WEIGHT_LIGHT: 300 14 | $FONT_WEIGHT_NORMAL: 400 // normal 15 | $FONT_WEIGHT_SUB_BOLD: 500 16 | 17 | 18 | // Colors 19 | // 20 | $COLOR_BACKGROUND: #ffffff // #115CF1 21 | $COLOR_BACKGROUND_SECONDARY: #f3f3f3 22 | $COLOR_SEARCH_BAR_BACKGROUND: #ffffff 23 | $COLOR_SIGNATURE_BACKGROUND: $COLOR_BACKGROUND_SECONDARY 24 | $COLOR_COMMENT_BACKGROUND: $COLOR_BACKGROUND 25 | $COLOR_TEXT: #212529 // #fff 26 | $COLOR_TEXT_ASIDE: #115cf1 27 | // $COLOR_LINK: hsla(180, 50%, 40%, 1) 28 | $COLOR_LINK: #115cf1 29 | $COLOR_BLACK: #212529 30 | 31 | 32 | $COLOR_MENU_DIVIDER: #fff 33 | $COLOR_MENU_DIVIDER_FOCUS: #000 34 | $COLOR_MENU_LABEL: #808080 35 | 36 | $COLOR_PANEL: $COLOR_BACKGROUND 37 | $COLOR_PANEL_DIVIDER: #fff 38 | 39 | $COLOR_COMMENT_TAG: $COLOR_TEXT 40 | $COLOR_COMMENT_TAG_TEXT: $COLOR_TEXT 41 | 42 | $COLOR_CODE_BACKGROUND: rgba(#000, 0.04) 43 | 44 | $COLOR_TS: $COLOR_TEXT 45 | $COLOR_TS_INTERFACE: $COLOR_TEXT 46 | $COLOR_TS_ENUM: $COLOR_TEXT 47 | $COLOR_TS_CLASS: $COLOR_TEXT 48 | $COLOR_TS_PRIVATE: $COLOR_TEXT 49 | 50 | $COLOR_TS_PRIVATE: $COLOR_TEXT 51 | 52 | // $COLOR_TS_ENUM: #e74c3c 53 | // $COLOR_TS_CLASS: #099dcb 54 | // $COLOR_TS_PRIVATE: #808080 55 | 56 | $TOOLBAR_COLOR: $COLOR_BACKGROUND 57 | $TOOLBAR_TEXT_COLOR: $COLOR_TEXT 58 | $TOOLBAR_HEIGHT: 40px 59 | 60 | // GRID 61 | $MAX_CONTENT_WIDTH: 1200px 62 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_comment.sass: -------------------------------------------------------------------------------- 1 | // Displays all regular comment tags 2 | // 3 | //
4 | //
see
5 | //

Dispatcher.EVENT_BEGIN

6 | //
see
7 | //

Dispatcher.EVENT_BEGIN_RESOLVE

8 | //
see
9 | //

Dispatcher.EVENT_END_RESOLVE

10 | //
11 | // 12 | dl.tsd-comment-tags 13 | overflow: hidden 14 | color: $COLOR_TEXT 15 | background-color: $COLOR_BACKGROUND_SECONDARY 16 | border-radius: 20px 17 | padding: 10px 0px 0px 10px 18 | 19 | dt 20 | float: left 21 | padding: 1px 5px 22 | margin: 2px 10px 0 0 23 | border-radius: 4px 24 | // border: 1px solid $COLOR_COMMENT_TAG 25 | color: $COLOR_TEXT 26 | font-size: 0.8em 27 | font-weight: $FONT_WEIGHT_NORMAL 28 | background-color: $COLOR_BACKGROUND 29 | 30 | dd 31 | margin: 0 0 0 0 32 | padding-bottom: 10px 33 | 34 | &:before, &:after 35 | display: table 36 | content: " " 37 | pre, &:after 38 | clear: both 39 | background-color: #F3F3F3 40 | border-radius: 20px 41 | color: #314159 42 | 43 | pre 44 | .hljs-comment 45 | color: #28a745 46 | 47 | p 48 | margin: 0 49 | 50 | 51 | // Special formatting for the main reflection on each page. 52 | // 53 | //
54 | //
55 | //

The default TypeDoc main application class.

56 | //

This class holds the two main components of TypeDoc, the Dispatcher and the Renderer.

57 | //
58 | //
59 | // 60 | .tsd-panel.tsd-comment .lead 61 | font-size: 1.1em 62 | line-height: $LINE_HEIGHT 63 | margin-bottom: 2em 64 | 65 | &:last-child 66 | margin-bottom: 0 67 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_filter.sass: -------------------------------------------------------------------------------- 1 | // Classes set on the body to control the visible state of the filtered elements 2 | // 3 | .toggle-protected .tsd-is-private 4 | display: none 5 | 6 | .toggle-public .tsd-is-private, 7 | .toggle-public .tsd-is-protected, 8 | .toggle-public .tsd-is-private-protected 9 | display: none 10 | 11 | .toggle-inherited .tsd-is-inherited 12 | display: none 13 | 14 | .toggle-only-exported .tsd-is-not-exported 15 | display: none 16 | 17 | .toggle-externals .tsd-is-external 18 | display: none 19 | 20 | 21 | // Filter Buttons in the toolbar 22 | // 23 | #tsd-filter 24 | position: relative 25 | display: inline-block 26 | height: $TOOLBAR_HEIGHT 27 | vertical-align: bottom 28 | 29 | .no-filter & 30 | display: none 31 | 32 | .tsd-filter-group 33 | display: inline-block 34 | height: $TOOLBAR_HEIGHT 35 | vertical-align: bottom 36 | white-space: nowrap 37 | 38 | input 39 | display: none 40 | 41 | +size-xs-sm 42 | .tsd-filter-group 43 | display: block 44 | position: absolute 45 | top: $TOOLBAR_HEIGHT 46 | right: 20px 47 | height: auto 48 | background-color: $COLOR_PANEL 49 | visibility: hidden 50 | transform: translate(50%,0) 51 | box-shadow: 0 0 4px rgba(#000, 0.25) 52 | 53 | .has-options & 54 | visibility: visible 55 | 56 | .to-has-options & 57 | animation: fade-in 0.2s 58 | 59 | .from-has-options & 60 | animation: fade-out 0.2s 61 | 62 | label, 63 | .tsd-select 64 | display: block 65 | padding-right: 20px -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_footer.sass: -------------------------------------------------------------------------------- 1 | footer 2 | // border-top: 1px solid $COLOR_PANEL_DIVIDER 3 | background-color: $COLOR_PANEL 4 | 5 | &.with-border-bottom 6 | border-bottom: 1px solid $COLOR_PANEL_DIVIDER 7 | 8 | .tsd-legend-group 9 | font-size: 0 10 | 11 | h2 12 | font-style: normal 13 | font-size: 27.2px 14 | 15 | .tsd-legend 16 | display: inline-block 17 | width: 25% 18 | padding: 0 19 | font-size: $FONT_SIZE_SMALL 20 | font-weight: $FONT_WEIGHT_SUPERLIGHT 21 | list-style: none 22 | line-height: $LINE_HEIGHT 23 | vertical-align: top 24 | 25 | +size-xs-sm 26 | width: 50% 27 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_hierarchy.sass: -------------------------------------------------------------------------------- 1 | // Displays the type hierarchy 2 | // 3 | // 17 | // 18 | .tsd-hierarchy 19 | list-style: square 20 | padding: 0 0 0 20px 21 | margin: 0 22 | 23 | .target 24 | font-weight: bold 25 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_images.sass: -------------------------------------------------------------------------------- 1 | // fixes issue with images in readme 2 | img 3 | max-width: 100% 4 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_index.sass: -------------------------------------------------------------------------------- 1 | // Displays an index of grouped links. 2 | // 3 | //
4 | //
5 | //
6 | //

Constructor methods

7 | // 10 | //
11 | //
12 | //

Properties

13 | // 19 | //
20 | //
21 | //
22 | // 23 | .tsd-index-panel 24 | .tsd-index-content 25 | margin-bottom: -30px !important 26 | 27 | .tsd-index-section 28 | margin-bottom: 30px !important 29 | 30 | h3 31 | @extend h4 32 | margin: 0 0px 10px 0px 33 | padding: 0 0px 10px 0px 34 | font-weight: 600 35 | 36 | ul.tsd-index-list 37 | +vendors(column-count, 3) 38 | +vendors(column-gap, 20px) 39 | padding: 0 40 | list-style: none 41 | line-height: $LINE_HEIGHT 42 | 43 | +size-xs-sm 44 | +vendors(column-count, 1) 45 | 46 | +size-md 47 | +vendors(column-count, 2) 48 | 49 | li 50 | +vendors(column-break-inside, avoid) 51 | +vendors(page-break-inside, avoid) 52 | 53 | a, 54 | .tsd-parent-kind-module a 55 | color: $COLOR_TS 56 | 57 | .tsd-parent-kind-interface a 58 | color: $COLOR_TS_INTERFACE 59 | 60 | .tsd-parent-kind-enum a 61 | color: $COLOR_TS_ENUM 62 | 63 | .tsd-parent-kind-class a 64 | color: $COLOR_TS_CLASS 65 | 66 | 67 | .tsd-kind-module a 68 | color: $COLOR_TS 69 | 70 | .tsd-kind-interface a 71 | color: $COLOR_TS_INTERFACE 72 | 73 | .tsd-kind-enum a 74 | color: $COLOR_TS_ENUM 75 | 76 | .tsd-kind-class a 77 | color: $COLOR_TS_CLASS 78 | 79 | .tsd-is-private a 80 | color: $COLOR_TS_PRIVATE 81 | 82 | 83 | #vertical-line 84 | border-right: 1px solid #ffffff 85 | height: 100vh 86 | position: fixed 87 | top: 0 88 | z-index: -1 89 | width: calc(((1200 - 200) * 0.333px)) 90 | pointer-events: none 91 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_member.sass: -------------------------------------------------------------------------------- 1 | .tsd-flag 2 | display: inline-block 3 | padding: 1px 5px 4 | border-radius: 4px 5 | color: $COLOR_BACKGROUND 6 | background-color: $COLOR_COMMENT_TAG 7 | text-indent: 0 8 | font-size: $FONT_SIZE_MONO 9 | font-weight: $FONT_WEIGHT_NORMAL 10 | 11 | .tsd-anchor 12 | position: absolute 13 | top: -100px 14 | 15 | .tsd-member 16 | position: relative 17 | 18 | .tsd-anchor + h3 19 | margin-top: 0 20 | margin-bottom: 0 21 | border-bottom: none 22 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_panel.sass: -------------------------------------------------------------------------------- 1 | // Displays a panel, an organisation unit in TypeDoc used to group single entities 2 | // like a method or a variable. 3 | // 4 | //
5 | //

Eirmod tempor invidunt

6 | //

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

7 | //
8 | // 9 | .tsd-panel 10 | @extend %prevent-children-margin 11 | margin: 20px 0 12 | padding: 20px 0 13 | background-color: $COLOR_PANEL 14 | 15 | &:empty 16 | display: none 17 | 18 | > h1, > h2, > h3 19 | margin: 1.5em 0px 10px 0px 20 | padding: 0 0 10px 0 21 | border-bottom: 1px solid $COLOR_PANEL_DIVIDER 22 | 23 | &.tsd-before-signature 24 | margin-bottom: 0 25 | border-bottom: 0 26 | 27 | table 28 | display: block 29 | width: 100% 30 | overflow: auto 31 | margin-top: 10px 32 | word-break: normal 33 | word-break: keep-all 34 | 35 | th 36 | font-weight: bold 37 | 38 | th, td 39 | padding: 6px 13px 40 | border: 1px solid #ddd 41 | 42 | tr 43 | background-color: #fff 44 | border-top: 1px solid #ccc 45 | 46 | &:nth-child(2n) 47 | background-color: #f8f8f8 48 | 49 | > .tsd-comment 50 | > .tsd-comment-tags 51 | font-size: 0.8em 52 | background-color: $COLOR_BACKGROUND_SECONDARY 53 | color: $COLOR_COMMENT_TAG 54 | 55 | // [license] tag & [[see]] tag 56 | dt 57 | color: $COLOR_TEXT 58 | background-color: #fff 59 | 60 | p 61 | padding-right: 10px; 62 | 63 | 64 | 65 | // Holds a series of panels with an optional heading. 66 | // 67 | //
68 | //

Consetetur sadipscing elitr

69 | //
70 | //

Eirmod tempor invidunt

71 | //

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

72 | //
73 | //
74 | //

Eirmod tempor invidunt

75 | //

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.

76 | //
77 | //
78 | // 79 | .tsd-panel-group 80 | margin: 60px 0 81 | 82 | > h1, > h2, > h3 83 | padding-left: 0px 84 | padding-right: 0px 85 | 86 | > h2 87 | font-weight: $FONT_WEIGHT_SUPERLIGHT 88 | font-size: 40px 89 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_search.sass: -------------------------------------------------------------------------------- 1 | #tsd-search 2 | transition: background-color 0.2s 3 | border-radius: 20px 20px 0 0 4 | 5 | .title 6 | position: relative 7 | z-index: 10002 8 | font-weight: 600 9 | font-size: 1.5em 10 | &:hover 11 | text-decoration: none 12 | 13 | .field 14 | position: absolute 15 | left: 0 16 | top: 0 17 | right: 40px 18 | height: 40px 19 | border-radius: 20px 0 0 20px 20 | 21 | input 22 | box-sizing: border-box 23 | position: relative 24 | top: -50px 25 | z-index: 10001 26 | width: 100% 27 | padding: 0 10px 28 | opacity: 0 29 | outline: 0 30 | border: 0 31 | background: transparent 32 | color: $COLOR_TEXT 33 | border-radius: 20px 34 | 35 | label 36 | position: absolute 37 | overflow: hidden 38 | right: -40px 39 | background-color: white 40 | border-radius: 20px 41 | opacity: 1 42 | 43 | .field input, 44 | .title 45 | transition: opacity 0.2s 46 | 47 | .results 48 | position: absolute 49 | visibility: hidden 50 | top: 40px 51 | width: 100% 52 | margin: 0 53 | padding: 0 54 | list-style: none 55 | box-shadow: 0 0 4px rgba(#000, 0.25) 56 | 57 | li 58 | padding: 0 10px 59 | background-color: #fff 60 | 61 | li:nth-child(even) 62 | background-color: #fff 63 | 64 | li.state 65 | display: none 66 | 67 | li.current, 68 | li:hover 69 | background-color: #F3F3F3 70 | 71 | a 72 | display: block 73 | color: $COLOR_TEXT 74 | 75 | &:before 76 | top: 10px 77 | 78 | span.parent 79 | color: $COLOR_TEXT_ASIDE 80 | font-weight: $FONT_WEIGHT_NORMAL 81 | 82 | &.has-focus 83 | .field 84 | background-color: $COLOR_SEARCH_BAR_BACKGROUND 85 | 86 | .field input 87 | top: 0 88 | opacity: 1 89 | 90 | .link-container 91 | display: none 92 | 93 | .title 94 | z-index: 9999 95 | opacity: 0 96 | 97 | .results 98 | visibility: visible 99 | 100 | .tsd-widget.search 101 | border-top-left-radius: 0; 102 | border-bottom-left-radius: 0; 103 | 104 | &.loading .results li.state.loading 105 | display: block 106 | 107 | &.failure .results li.state.failure 108 | display: block 109 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_signatures.sass: -------------------------------------------------------------------------------- 1 | // Wraps a function signature. 2 | // Changes its appearance when directly placed inside a `tsd-panel`. 3 | // Can be combined with class `tsd-kind-icon` to display an icon in front of the signature. 4 | // 5 | //
6 | //
7 | // getChildByName( 8 | // name: string 9 | // ): 10 | // DeclarationReflection 11 | //
12 | //
13 | // 14 | .tsd-signature 15 | margin: 0 0 1em 0 16 | padding: 10px 17 | font-family: $FONT_FAMILY_MONO 18 | font-size: $FONT_SIZE_MONO 19 | border: 0 20 | background: $COLOR_BACKGROUND 21 | border-radius: 20px 22 | color: $COLOR_TEXT 23 | border: 1px solid darken($COLOR_BACKGROUND_SECONDARY, 20%) !important 24 | 25 | a 26 | color: $COLOR_LINK 27 | 28 | &.tsd-kind-icon 29 | padding-left: 30px 30 | 31 | &:before 32 | top: 10px 33 | left: 10px 34 | 35 | .tsd-panel > & 36 | margin-left: 0px 37 | margin-right: 0px 38 | border-width: 1px 0 39 | 40 | &.tsd-kind-icon 41 | padding-left: 30px 42 | 43 | &:before 44 | left: 20px 45 | 46 | .tsd-signature-symbol 47 | color: $COLOR_TEXT_ASIDE 48 | font-weight: $FONT_WEIGHT_NORMAL 49 | 50 | .tsd-signature-type 51 | font-style: italic 52 | font-weight: $FONT_WEIGHT_NORMAL 53 | 54 | 55 | // Displays a list of signatures. 56 | // Changes its appearance when directly placed inside a `tsd-panel`. 57 | // Made interactive by JavaScript at `typedoc.Signature`. 58 | // 59 | // 63 | // 64 | .tsd-signatures 65 | padding: 0 66 | margin: 0 0 1em 0 67 | 68 | .tsd-signature 69 | margin: 0 70 | margin-top: 10px 71 | border-width: 1px 0 0 0 72 | transition: background-color 0.1s 73 | 74 | &:first-child 75 | border-top-width: 0 76 | margin-top: 0 77 | 78 | &.current 79 | background-color: $COLOR_SIGNATURE_BACKGROUND 80 | 81 | &.active > .tsd-signature 82 | cursor: pointer 83 | 84 | .tsd-panel > & 85 | margin-left: 0px 86 | margin-right: 0px 87 | border-width: 1px 0 88 | 89 | .tsd-signature.tsd-kind-icon 90 | padding-left: 30px 91 | 92 | &:before 93 | left: 20px 94 | 95 | .tsd-panel > a.anchor + & 96 | border-top-width: 0 97 | margin-top: -20px 98 | 99 | 100 | 101 | // Holds the descriptions related to a list of signatures. 102 | // Made interactive by JavaScript at `typedoc.Signature`. 103 | // 104 | // 112 | // 113 | ul.tsd-descriptions 114 | position: relative 115 | overflow: hidden 116 | transition: height 0.3s 117 | padding: 0 118 | list-style: none 119 | 120 | > li 121 | @extend %prevent-children-margin 122 | 123 | &.active > .tsd-description 124 | display: none 125 | 126 | &.current 127 | display: block 128 | 129 | &.fade-in 130 | animation: fade-in-delayed 0.3s 131 | 132 | &.fade-out 133 | animation: fade-out-delayed 0.3s 134 | position: absolute 135 | display: block 136 | top: 0 137 | left: 0 138 | right: 0 139 | opacity: 0 140 | visibility: hidden 141 | 142 | h4 143 | font-size: $FONT_SIZE 144 | margin: 1em 0 0.5em 0 145 | 146 | &.tsd-type-parameters-title, &.tsd-parameters-title, &.tsd-returns-title 147 | font-weight: 600 !important 148 | 149 | ul.tsd-parameters, 150 | ul.tsd-type-parameters 151 | list-style: square 152 | margin: 0 153 | padding-left: 20px 154 | 155 | > li.tsd-parameter-siganture 156 | list-style: none 157 | margin-left: -20px 158 | 159 | h5 160 | font-size: $FONT_SIZE 161 | margin: 1em 0 0.5em 0 162 | 163 | .tsd-comment 164 | margin-top: -0.5em 165 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/elements/_sources.sass: -------------------------------------------------------------------------------- 1 | // Displays the source and inheritance information 2 | // 3 | // 9 | // 10 | .tsd-sources 11 | font-size: $FONT_SIZE_MONO 12 | color: $COLOR_TEXT_ASIDE 13 | margin: 0 0 1em 0 14 | 15 | a 16 | color: $COLOR_TEXT_ASIDE 17 | text-decoration: underline 18 | 19 | ul, p 20 | margin: 0 !important 21 | 22 | ul 23 | list-style: none 24 | padding: 0 -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/layouts/_default.sass: -------------------------------------------------------------------------------- 1 | html.default 2 | +size-md 3 | .col-content 4 | width: 72% 5 | 6 | .col-menu 7 | width: 28% 8 | 9 | .tsd-navigation 10 | padding-left: 10px 11 | 12 | +size-xs-sm 13 | .col-content 14 | float: none 15 | width: 100% 16 | 17 | .col-menu 18 | position: fixed !important 19 | overflow: auto 20 | -webkit-overflow-scrolling: touch 21 | overflow-scrolling: touch 22 | z-index: 1024 23 | top: 0 !important 24 | bottom: 0 !important 25 | left: auto !important 26 | right: 0 !important 27 | width: 100% 28 | padding: 20px 20px 0 0 29 | max-width: 450px 30 | visibility: hidden 31 | background-color: $COLOR_PANEL 32 | transform: translate(100%,0) 33 | border-right: 1px solid #ffffff 34 | padding-left: 20px 35 | 36 | 37 | > *:last-child 38 | padding-bottom: 20px 39 | 40 | .leave-at-xs-sm 41 | display: none 42 | 43 | 44 | .link-container 45 | width: 100% 46 | 47 | .overlay 48 | content: '' 49 | display: block 50 | position: fixed 51 | z-index: 1023 52 | top: 0 53 | left: 0 54 | right: 0 55 | bottom: 0 56 | background-color: rgba(#000, 0.75) 57 | visibility: hidden 58 | 59 | &.to-has-menu 60 | .overlay 61 | animation: fade-in 0.4s 62 | 63 | header, 64 | footer, 65 | .col-content 66 | animation: shift-to-left 0.4s 67 | 68 | .col-menu 69 | animation: pop-in-from-right 0.4s 70 | 71 | &.from-has-menu 72 | .overlay 73 | animation: fade-out 0.4s 74 | 75 | header, 76 | footer, 77 | .col-content 78 | animation: unshift-to-left 0.4s 79 | 80 | .col-menu 81 | animation: pop-out-to-right 0.4s 82 | 83 | &.has-menu 84 | body 85 | overflow: hidden 86 | 87 | .overlay 88 | visibility: visible 89 | 90 | header, 91 | footer, 92 | .col-content 93 | transform: translate(-25%, 0) 94 | 95 | .col-menu 96 | visibility: visible 97 | transform: translate(0,0) 98 | 99 | +size-max-content 100 | #vertical-line 101 | width: calc(30% - 40px) 102 | 103 | .tsd-page-title 104 | font-weight: $FONT_WEIGHT_LIGHT 105 | // background: url("../images/page_title_background.svg") 106 | // box-shadow: 0 0 5px rgba(#000, 0.35) 107 | 108 | h1 109 | margin: 0 110 | color: $COLOR_TEXT 111 | font-size: 2.5em 112 | font-weight: $FONT_WEIGHT_LIGHT 113 | 114 | .tsd-breadcrumb 115 | margin: 0 116 | padding: 0 117 | color: $TOOLBAR_TEXT_COLOR 118 | font-weight: $FONT_WEIGHT_LIGHT 119 | 120 | a 121 | color: $TOOLBAR_TEXT_COLOR 122 | text-decoration: none 123 | 124 | &:hover 125 | text-decoration: underline 126 | 127 | li 128 | display: inline 129 | 130 | &:after 131 | content: ' / ' 132 | 133 | .tsd-generator 134 | color: $COLOR_TEXT_ASIDE 135 | font-size: $FONT_SIZE_SMALL 136 | 137 | h3, h4, h5 138 | font-weight: $FONT_WEIGHT_NORMAL 139 | 140 | .tsd-type-parameters-title, .tsd-parameters-title, .tsd-returns-title, .tsd-index-section h3 141 | font-weight: $FONT_WEIGHT_SUB_BOLD 142 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/layouts/_minimal.sass: -------------------------------------------------------------------------------- 1 | html.minimal 2 | .container-typedoc 3 | margin: 0 4 | 5 | .container-typedoc-main 6 | padding-top: 50px 7 | padding-bottom: 0 8 | 9 | .content-wrap 10 | padding-left: 300px 11 | 12 | .tsd-navigation 13 | position: fixed !important 14 | overflow: auto 15 | -webkit-overflow-scrolling: touch 16 | overflow-scrolling: touch 17 | box-sizing: border-box 18 | z-index: 1 19 | left: 0 20 | top: 40px 21 | bottom: 0 22 | width: 300px 23 | padding: 20px 24 | margin: 0 25 | 26 | .tsd-member .tsd-member 27 | margin-left: 0 28 | 29 | .tsd-page-toolbar 30 | position: fixed 31 | z-index: 2 32 | 33 | #tsd-filter .tsd-filter-group 34 | right: 0 35 | transform: none 36 | 37 | footer 38 | background-color: transparent 39 | 40 | .container-typedoc 41 | padding: 0 42 | 43 | .tsd-generator 44 | padding: 0 45 | color: #808080 46 | font-size: 85% 47 | 48 | +size-xs-sm 49 | .tsd-navigation 50 | display: none 51 | .content-wrap 52 | padding-left: 0 53 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/main.sass: -------------------------------------------------------------------------------- 1 | @import constants 2 | 3 | @import vendors/normalize 4 | @import vendors/highlight.js 5 | 6 | @import setup/mixins 7 | @import setup/grid 8 | @import setup/icons 9 | @import setup/animations 10 | @import setup/typography 11 | 12 | @import layouts/default 13 | @import layouts/minimal 14 | 15 | @import elements/comment 16 | @import elements/filter 17 | @import elements/footer 18 | @import elements/hierarchy 19 | @import elements/index 20 | @import elements/member 21 | @import elements/navigation 22 | @import elements/panel 23 | @import elements/search 24 | @import elements/signatures 25 | @import elements/sources 26 | @import elements/toolbar 27 | @import elements/images 28 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/setup/_animations.sass: -------------------------------------------------------------------------------- 1 | .no-transition 2 | transition: none !important 3 | 4 | @keyframes fade-in 5 | from 6 | opacity: 0 7 | to 8 | opacity: 1 9 | 10 | @keyframes fade-out 11 | from 12 | opacity: 1 13 | visibility: visible 14 | to 15 | opacity: 0 16 | 17 | @keyframes fade-in-delayed 18 | 0% 19 | opacity: 0 20 | 33% 21 | opacity: 0 22 | 100% 23 | opacity: 1 24 | 25 | @keyframes fade-out-delayed 26 | 0% 27 | opacity: 1 28 | visibility: visible 29 | 66% 30 | opacity: 0 31 | 100% 32 | opacity: 0 33 | 34 | @keyframes shift-to-left 35 | from 36 | transform: translate(0,0) 37 | to 38 | transform: translate(-25%,0) 39 | 40 | @keyframes unshift-to-left 41 | from 42 | transform: translate(-25%,0) 43 | to 44 | transform: translate(0,0) 45 | 46 | @keyframes pop-in-from-right 47 | from 48 | transform: translate(100%,0) 49 | to 50 | transform: translate(0,0) 51 | 52 | @keyframes pop-out-to-right 53 | from 54 | transform: translate(0,0) 55 | visibility: visible 56 | to 57 | transform: translate(100%,0) -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/setup/_grid.sass: -------------------------------------------------------------------------------- 1 | =size-xs 2 | @media (max-width: 640px) 3 | & 4 | @content 5 | 6 | =size-sm 7 | @media (min-width: 641px) and (max-width: 1000px) 8 | & 9 | @content 10 | 11 | =size-md 12 | @media (min-width: 901px) and (max-width: 1024px) 13 | & 14 | @content 15 | 16 | =size-lg 17 | @media (min-width: 1025px) 18 | & 19 | @content 20 | 21 | =size-xs-sm 22 | @media (max-width: 1000px) 23 | & 24 | @content 25 | 26 | =size-md-lg 27 | @media (min-width: 1001px) 28 | & 29 | @content 30 | 31 | // For white vertical line 32 | =size-max-content 33 | @media (max-width: $MAX_CONTENT_WIDTH) 34 | & 35 | @content 36 | 37 | .container-typedoc 38 | max-width: $MAX_CONTENT_WIDTH 39 | margin: 0 auto 40 | padding: 0 1rem 41 | 42 | +size-xs 43 | padding: 0 15px 44 | 45 | .container-typedoc-main 46 | padding-top: 175px 47 | padding-bottom: 200px 48 | 49 | .row 50 | +clearfix 51 | position: relative 52 | margin: 0 -10px 53 | 54 | .col 55 | @extend %prevent-children-margin 56 | box-sizing: border-box 57 | float: left 58 | padding: 0 10px 59 | 60 | @for $width from 1 to 12 61 | .col-#{$width} 62 | @extend .col 63 | width: $width / 12 * 100% 64 | 65 | .offset-#{$width} 66 | margin-left: $width / 12 * 100% 67 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/setup/_mixins.sass: -------------------------------------------------------------------------------- 1 | @mixin vendors($property, $value...) 2 | -webkit-#{$property}: $value 3 | -moz-#{$property}: $value 4 | -ms-#{$property}: $value 5 | -o-#{$property}: $value 6 | #{$property}: $value 7 | 8 | @mixin clearfix 9 | &:after 10 | visibility: hidden 11 | display: block 12 | content: "" 13 | clear: both 14 | height: 0 15 | 16 | @mixin retina 17 | @media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) 18 | & 19 | @content 20 | 21 | %prevent-children-margin 22 | > :first-child, 23 | > :first-child > :first-child, 24 | > :first-child > :first-child > :first-child 25 | margin-top: 0 26 | 27 | > :last-child, 28 | > :last-child > :last-child, 29 | > :last-child > :last-child > :last-child 30 | margin-bottom: 0 31 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/setup/_typography.sass: -------------------------------------------------------------------------------- 1 | body 2 | background: $COLOR_BACKGROUND 3 | font-family: $FONT_FAMILY 4 | font-size: $FONT_SIZE 5 | color: $COLOR_TEXT 6 | 7 | a 8 | color: $COLOR_LINK 9 | text-decoration: none 10 | 11 | &:hover 12 | text-decoration: underline 13 | 14 | code, pre 15 | font-family: $FONT_FAMILY_MONO 16 | padding: 0.2em 17 | margin: 0 18 | font-size: $FONT_SIZE_MONO 19 | background-color: $COLOR_CODE_BACKGROUND 20 | 21 | pre 22 | padding: 10px 23 | 24 | code 25 | padding: 0 26 | font-size: 100% 27 | background-color: transparent 28 | 29 | .tsd-typography 30 | //line-height: $LINE_HEIGHT 31 | a 32 | color: $COLOR_LINK 33 | 34 | ul 35 | list-style: square 36 | padding: 0 0 0 20px 37 | margin: 0 38 | 39 | h4, h5, h6 40 | font-size: 1em 41 | margin: 0 42 | 43 | h5, h6 44 | font-weight: $FONT_WEIGHT_NORMAL 45 | 46 | p, ul, ol 47 | margin: 1em 0 48 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/css/vendors/_highlight.js.sass: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | *Visual Studio-like style based on original C# coloring by Jason Diamond 4 | 5 | .hljs 6 | display: inline-block 7 | padding: 0.5em 8 | background: white 9 | color: black 10 | 11 | .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 12 | color: #2066F1 13 | 14 | .hljs-comment, .hljs-annotation, .hljs-template_comment, .diff .hljs-header, .hljs-chunk, .apache .hljs-cbracket 15 | color: #28a745 16 | 17 | .xml .hljs-tag 18 | color: #034BDA 19 | .hljs-value 20 | color: #034BDA 21 | 22 | .hljs-string, .hljs-title, .hljs-parent, .hljs-tag .hljs-value, .hljs-rules .hljs-value 23 | color: #a31515 24 | 25 | .ruby .hljs-symbol 26 | color: #a31515 27 | .hljs-string 28 | color: #a31515 29 | 30 | .hljs-template_tag, .django .hljs-variable, .hljs-addition, .hljs-flow, .hljs-stream, .apache .hljs-tag, .hljs-date, .tex .hljs-formula, .coffeescript .hljs-attribute 31 | color: #a31515 32 | 33 | .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 34 | color: #2b91af 35 | 36 | .hljs-phpdoc, .hljs-javadoc, .hljs-xmlDocTag 37 | color: #808080 38 | 39 | .vhdl 40 | .hljs-typename 41 | font-weight: bold 42 | .hljs-string 43 | color: #666666 44 | .hljs-literal 45 | color: #a31515 46 | .hljs-attribute 47 | color: #00b0e8 48 | 49 | .xml .hljs-attribute 50 | color: #f00 51 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aiden/rpc_ts/2fcd229bd391c513a231e182fa7a076c0b881739/site/typedoc/typedoc_theme/assets/images/icons.png -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/images/icons.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aiden/rpc_ts/2fcd229bd391c513a231e182fa7a076c0b881739/site/typedoc/typedoc_theme/assets/images/icons.psd -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/images/icons@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aiden/rpc_ts/2fcd229bd391c513a231e182fa7a076c0b881739/site/typedoc/typedoc_theme/assets/images/icons@2x.png -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/images/widgets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aiden/rpc_ts/2fcd229bd391c513a231e182fa7a076c0b881739/site/typedoc/typedoc_theme/assets/images/widgets.png -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/images/widgets.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aiden/rpc_ts/2fcd229bd391c513a231e182fa7a076c0b881739/site/typedoc/typedoc_theme/assets/images/widgets.psd -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/assets/images/widgets@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aiden/rpc_ts/2fcd229bd391c513a231e182fa7a076c0b881739/site/typedoc/typedoc_theme/assets/images/widgets@2x.png -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/layouts/default.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{#ifCond model.name '==' project.name}}{{project.name}}{{else}}{{model.name}} | {{project.name}}{{/ifCond}} 7 | 8 | 9 | {{> analytics}} 10 | 11 | 15 | 16 | 22 | 23 | 24 | 25 | 26 | 27 | {{> header}} 28 | 29 |
30 |
31 |
32 | 33 | 50 | 51 |
52 |
53 |

{{#compact}} 54 | {{model.name}} 55 | {{#if model.typeParameters}} 56 | < 57 | {{#each model.typeParameters}} 58 | {{#if @index}}, {{/if}} 59 | {{name}} 60 | {{/each}} 61 | > 62 | {{/if}} 63 | {{/compact}}

64 |
65 | 66 | {{{contents}}} 67 |
68 | 69 |
70 |
71 | 72 | {{> aidenFooter}} 73 | 74 |
75 | 76 | 77 | 78 | 82 | 87 | 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/aidenFooter.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 | 6 |
7 | 8 |
9 | 30 |
31 |
32 |
33 |
34 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/analytics.hbs: -------------------------------------------------------------------------------- 1 | 2 | 6 | 15 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/breadcrumb.hbs: -------------------------------------------------------------------------------- 1 | {{#if parent}} 2 | {{#with parent}}{{> breadcrumb}}{{/with}} 3 |
  • 4 | {{#if url}} 5 | {{name}} 6 | {{else}} 7 | {{name}} 8 | {{/if}} 9 |
  • 10 | {{else}} 11 | {{#if url}} 12 |
  • 13 | Globals 14 |
  • 15 | {{/if}} 16 | {{/if}} -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/comment.hbs: -------------------------------------------------------------------------------- 1 | {{#with comment}} 2 | {{#if hasVisibleComponent}} 3 |
    4 | {{#if shortText}} 5 |
    6 | {{#markdown}}{{{shortText}}}{{/markdown}} 7 |
    8 | {{/if}} 9 | {{#if text}} 10 | {{#markdown}}{{{text}}}{{/markdown}} 11 | {{/if}} 12 | {{#if tags}} 13 |
    14 | {{#each tags}} 15 |
    {{tagName}}
    16 |
    {{#markdown}}{{{text}}}{{/markdown}}
    17 | {{/each}} 18 |
    19 | {{/if}} 20 |
    21 | {{/if}} 22 | {{/with}} 23 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/header.hbs: -------------------------------------------------------------------------------- 1 | 40 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/hierarchy.hbs: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/index.hbs: -------------------------------------------------------------------------------- 1 | {{#if groups}} 2 |
    3 |

    Index

    4 |
    5 |
    6 | {{#each groups}} 7 |
    8 |

    {{title}}

    9 | 14 |
    15 | {{/each}} 16 |
    17 |
    18 |
    19 | {{/if}} -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/member.declaration.hbs: -------------------------------------------------------------------------------- 1 |
    {{#compact}} 2 | {{{wbr name}}}{{#if isOptional}}?{{/if}}: {{#with type}}{{>type}}{{/with}} 3 | {{#if defaultValue}} 4 | 5 |  =  6 | {{defaultValue}} 7 | 8 | {{/if}} 9 | {{/compact}}
    10 | 11 | {{> member.sources}} 12 | 13 | {{> comment}} 14 | 15 | {{#if type.declaration}} 16 |
    17 |

    Type declaration

    18 | {{#with type.declaration}} 19 | {{> parameter}} 20 | {{/with}} 21 |
    22 | {{/if}} -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/member.getterSetter.hbs: -------------------------------------------------------------------------------- 1 | 21 | 22 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/member.hbs: -------------------------------------------------------------------------------- 1 |
    2 | 3 | {{#if name}} 4 |

    {{#each flags}}{{this}} {{/each}}{{{wbr name}}}

    5 | {{/if}} 6 | 7 | {{#if signatures}} 8 | {{> member.signatures}} 9 | {{else}}{{#if hasGetterOrSetter}} 10 | {{> member.getterSetter}} 11 | {{else}} 12 | {{> member.declaration}} 13 | {{/if}}{{/if}} 14 | 15 | {{#each groups}} 16 | {{#each children}} 17 | {{#unless hasOwnDocument}} 18 | {{> member}} 19 | {{/unless}} 20 | {{/each}} 21 | {{/each}} 22 |
    23 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/member.signature.body.hbs: -------------------------------------------------------------------------------- 1 | {{#unless hideSources}} 2 | {{> member.sources}} 3 | {{/unless}} 4 | 5 | {{> comment}} 6 | 7 | {{#if typeParameters}} 8 |

    Type parameters

    9 | {{> typeParameters}} 10 | {{/if}} 11 | 12 | {{#if parameters}} 13 |

    Parameters

    14 | 42 | {{/if}} 43 | 44 | {{#if type}} 45 |

    Returns {{#with type}}{{>type}}{{/with}}

    46 | 47 | {{#if comment.returns}} 48 | {{#markdown}}{{{comment.returns}}}{{/markdown}} 49 | {{/if}} 50 | 51 | {{#if type.declaration}} 52 | {{#with type.declaration}} 53 | {{> parameter}} 54 | {{/with}} 55 | {{/if}} 56 | {{/if}} -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/member.signature.title.hbs: -------------------------------------------------------------------------------- 1 | {{#compact}} 2 | {{#unless hideName}}{{{wbr name}}}{{/unless}} 3 | {{#if typeParameters}} 4 | < 5 | {{#each typeParameters}} 6 | {{#if @index}}, {{/if}} 7 | {{name}} 8 | {{/each}} 9 | > 10 | {{/if}} 11 | ( 12 | {{#each parameters}} 13 | {{#if @index}}, {{/if}} 14 | {{#if flags.isRest}}...{{/if}} 15 | {{name}} 16 | 17 | {{#if flags.isOptional}}?{{/if}} 18 | {{#if defaultValue}}?{{/if}} 19 | :  20 | 21 | {{#with type}}{{>type}}{{/with}} 22 | {{/each}} 23 | ) 24 | {{#if type}} 25 | 26 | {{#with type}}{{>type}}{{/with}} 27 | {{/if}} 28 | {{/compact}} -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/member.signatures.hbs: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/member.sources.hbs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/members.group.hbs: -------------------------------------------------------------------------------- 1 |
    2 |

    {{title}}

    3 | {{#each children}} 4 | {{#unless hasOwnDocument}} 5 | {{> member}} 6 | {{/unless}} 7 | {{/each}} 8 |
    9 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/members.hbs: -------------------------------------------------------------------------------- 1 | {{#each groups}} 2 | {{#unless allChildrenHaveOwnDocument}} 3 | {{> members.group}} 4 | {{/unless}} 5 | {{/each}} -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/navigation.hbs: -------------------------------------------------------------------------------- 1 | {{#if isVisible}} 2 | {{#if isLabel}} 3 |
  • 4 | {{{wbr title}}} 5 |
  • 6 | {{else}} 7 | {{#if isGlobals}} 8 | 11 | {{else}} 12 |
  • 13 |
    14 | {{{wbr title}}} 15 | {{#if isInPath}} 16 | {{#if children}} 17 |
      18 | {{#each children}} 19 | {{> navigation}} 20 | {{/each}} 21 |
    22 | {{/if}} 23 | {{/if}} 24 |
  • 25 | {{/if}} 26 | {{/if}} 27 | {{/if}} 28 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/parameter.hbs: -------------------------------------------------------------------------------- 1 | 82 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/toc.hbs: -------------------------------------------------------------------------------- 1 |
  • 2 | {{{wbr title}}} 3 | {{#if children}} 4 |
      5 | {{#each children}} 6 | {{> toc}} 7 | {{/each}} 8 |
    9 | {{/if}} 10 |
  • 11 | -------------------------------------------------------------------------------- /site/typedoc/typedoc_theme/partials/toc.root.hbs: -------------------------------------------------------------------------------- 1 | {{#if isInPath}} 2 | 3 | 17 |