mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-25 02:04:38 +00:00

Runs a Tailscale client in the browser (via a WebAssembly build of the wasm package) and allows SSH access to machines. The wasm package exports a newIPN function, which returns a simple JS object with methods like start(), login(), logout() and ssh(). The golang.org/x/crypto/ssh package is used for the SSH client. Terminal emulation and QR code renedring is done via NPM packages (xterm and qrcode respectively), thus we also need a JS toolchain that can install and bundle them. Yarn is used for installation, and esbuild handles loading them and bundling for production serving. Updates #3157 Signed-off-by: Mihai Parparita <mihai@tailscale.com>
17 lines
452 B
JavaScript
17 lines
452 B
JavaScript
// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
/**
|
|
* @fileoverview Callbacks used by jsStateStore to persist IPN state.
|
|
*/
|
|
|
|
export const sessionStateStorage = {
|
|
setState(id, value) {
|
|
window.sessionStorage[`ipn-state-${id}`] = value
|
|
},
|
|
getState(id) {
|
|
return window.sessionStorage[`ipn-state-${id}`] || ""
|
|
},
|
|
}
|