/**
- * @file Shared API
+ * @file Bootstrapping API
* @author Jordan Lavatai and Ken Grimes
* @version 0.0.1
- * @license APGL-3.0
+ * @license AGPL-3.0
* @copyright Strapp.io
*/
-const dlog = (msg) => console.log(msg)
-
-/***********************/
-/** Helper functions **/
-/***********************/
-
-/* SDP Interop helper functions to be used by beginRTCOffer and beginRTCAnswer */
-
-/** @func Determines the multimedia signaling protocol for the given session description
- * @desc Does some basic duck typing to determine the type of Session Description
- * @arg {Object} Session Description Object
- * @return {String} Returns 'planB' if Session Description is planB, 'Unified' if
- * Session Description is Unified
- */
-function determineSessionDescription(sessionDescription) {
-}
-
-/** @func Converts a planB session description to Unified session description
- * @arg {Object} Session Description Object
- * @return {Object} PlanB Session Description
- */
-function toUnified(sessionDescription) {
-}
-
-/** @func Converts a Unified session description to planB session description
- * @arg {Object} Session Description Object
- * @return {Object} PlanB Session Description
- */
-function toPlanB(sessionDescription) {
-}
-
-/* WebSocket wielder helper functions */
-
-/* Function for setting up webSocket wielders message handler */
-/* TBD */
-/* TBD */
-
-/* SDP Negotiation helper functions */
-
-/* addRemoteIceCandidate() */
-/* addIceCandidateCreationHandler(callback for sending?) */
-/* handleIceRequest() - WebSpocketless entity specific */
-
-
-/***********************/
-/** Exposed functions **/
-/***********************/
-
-/** @func Attempts to create a websocket
- * @desc If user agent supports web sockets, attempt to create a websocket
- * with given domain
- * @arg {String} domain - ip address or domain name of other end of websocket
- * @return {Boolean} returns true if successful, false if unsucessful
- */
-export function createWebSocket(domain) {
-
-}
+import fs from "fileManager"
/** @func Returns public key for the user
* @desc Attempts to find a stored key. If unsucessful, ask user for key. If user
* @options specif
* @return {Object} cryptoKey object
*/
-export function resolveKey() {
-
+function resolveKey() {
+ return new Promise( (resolve, reject) => {
+ /* See if publicKey has been generated before */
+ const publicKey = fs.strappID
+ if (publicKey === '') {
+ resolve(generateKey())
+ }
+ else {
+ resolve(publicKey)
+ }
+ })
}
-/** @func Begins the SDP handshake process as the offerer
- * @desc
- *
- *
- */
-export function beginRTCOffer() {
-}
+/* Init FileSystem */
+fs.initFileSystem()
-/** @func Begins the SDP handshake process as the answerer
- * @desc
- *
- *
- */
-export function beginRTCAnswer() {
-}
+/* Find or generate key */
+let key = resolveKey()
+
+/* Auth */
+/* Authorization-header: Strapp pubkey (no answer)*/
+/* Determine answer, add answer to "." */
+
+
+/* Setup hardcoded files e.g. "..", ".", "accounts", "ice", "sdp", "log", "run" */
+/* Add the files to the filesystem only if they dont already exist /*
+
+/* Connect to host */
+
+
-/** @func Generic way to message host from client
- * @desc tbd
- * @arg {Object} data object to be sent
- */
-export function sendHostData(data) {
-}
-/** @func Generic way to message client from host
- * @desc tbd
- * @arg {Object} data object to be sent
- */
-export function sendClientData(data){
-}