Global

Members

(constant) app :Express

Express app
Source:
Type:
  • Express

(constant) autoKillRequestTimeout :number

Time to wait before ending HTTP requests (if the server never did it itself)
Source:
Type:
  • number

(constant) ConfigItem

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022
Source:

(constant) ConfigItem

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022 NeptuneConfig is for documentation, really. Representation of the NeptuneConfig file, extends ConfigItem.
Source:

conInitUUIDs :Map.<String, conInitObject>

A collection of connection initiation ids. Key is the conInitUUID,
Source:
Type:

(constant) ConnectionManager

Connection manager
Source:

(constant) debug :boolean

Debug mode - special stuff
Source:
Type:
  • boolean

(constant) displaySilly :boolean

output the silly log level to console (it goes every other level > silly, silly is the lowest priority, literal spam)
Source:
Type:
  • boolean

(constant) EventEmitter

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022
Source:

(constant) EventEmitter

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022 Logging module
Source:

(constant) EventEmitter

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022
Source:

fileUUIDs :Map.<String, fileSharingObject>

A collection of file sharing ids. Key is the fileUUID
Source:
Type:

logOptions :LogMan.ConstructorOptions

Source:
Type:
  • LogMan.ConstructorOptions

(constant) Neptune

Neptune
Source:

NeptuneConfig :NepConfig

Source:
Type:
  • NepConfig

NeptuneConfig :NepConfig

Source:
Type:
  • NepConfig

NeptuneConfig :NepConfig

Source:
Type:
  • NepConfig

NeptuneConfig :NepConfig

Source:
Type:
  • NepConfig

(constant) NeptuneWindow

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022 About Window
Source:

(constant) NodeGUI

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022 Base Window
Source:

(constant) NodeGUI

NodeGUI
Source:

(constant) NodeGUI

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022 Main Window
Source:

(constant) NodeGUI

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022 Main Window
Source:

(constant) NodeGUI

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022
Source:

(constant) NodeGUI

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022 About Window
Source:

Notifier

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022
Source:

(constant) qApp

NodeGUI application instance
Source:

socketUUIDs :Map.<String, String>

A collection of socket UUIDs mapped to conInitUUIDs.
Source:
Type:
  • Map.<String, String>

(constant) Version

_ _ | \| | | .` | |_|\_|eptune Capstone Project 2022
Source:

Methods

sanitizeFilename(filename) → {string}

Sanitizes a filename for Windows and Linux devices by removing illegal characters and reserved file names on Windows. If the filename is empty (excluding the file extension), sets it to "file".
Source:
Parameters:
Name Type Description
filename string The filename to sanitize.
Returns:
Type:
string
The sanitized filename.

(async) Shutdown(shutdownTimeoutopt)

Call this function to initiate a clean shutdown
Source:
Parameters:
Name Type Attributes Default Description
shutdownTimeout number <optional>
1500 Time to wait before closing the process

Type Definitions

AESKey

AES Key
Properties:
Name Type Description
key Buffer The AES key itself
iv Buffer The initialization vector
Source:
Type:
  • object

ClipboardSettings

Properties:
Name Type Attributes Default Description
enabled boolean <optional>
false Clipboard data sent/received synced between the two
allowClientToSet boolean <optional>
true Allow client to update this server's clipboard data remotely
allowClientToGet boolean <optional>
false Allow client to request this server's clipboard data remotely
synchronizeClipboardToClient boolean <optional>
false Send clipboard to client when this server's clipboard data changes
synchronizeClipboardToServer boolean <optional>
false Mainly for parity, does not effect anything. Treat as read-only.
Source:
Type:
  • object

conInitObject

Properties:
Name Type Description
log Logger Logging object
aliceDHObject crypto.DiffieHellmanGroup This is our keys
dynamicSaltDHObject crypto.DiffieHellmanGroup The dynamic salt DH keys
enabled boolean Whether we're allowing step 2 or 3 to go through
socketCreated boolean Accepting connections via the socket
socketUUID string Socket id
secret string Shared secret key
createdTime string ISO timestamp when this initiation attempt started. 5 minutes after this time we invalidate this attempt
supportedCiphers Array.<string> Array of NeptuneCrypto ciphers the client wishes to use
selectedCipher string Cipher algorithm we've accepted
supportedHashAlgorithms Array.<string> Array of NeptuneCrypto HKDF hash algorithms the client wishes to use
selectedHashAlgorithm string Hash algorithm we've accepted
supportedKeyGroups Array.<string> Array of DH key groups the client supported
selectedKeyGroup string Key group we've agreed to use
clientId string Client UUID
client Client Client object
Source:
Type:
  • object

constructorData

Properties:
Name Type Attributes Description
IPAddress IPAddress
clientId string Unique Id of the device (provided by the device)
friendlyName string Friendly name of the device
dateAdded Date If null, current date time
pairId string <optional>
Id representing the pair between the devices
pairKey string <optional>
Shared secret between the two devices
Source:
Type:
  • object

ConstructorOptions

Properties:
Name Type Attributes Default Description
consolePrefixes logLevelsString <optional>
String in front of messages logged to the console
consoleSufixes logLevelsString <optional>
String at the end of messages logged to the console
consolePrefix string <optional>
"" String of text at the front of ALL messages.
consoleSufix string <optional>
"\x1b[0m" String of text at the end of ALL messages (reset color)
filePrefixes logLevelsString <optional>
String in front of messages written to file
fileSufixes logLevelsString <optional>
String at the end of messages written to file
filePrefix string <optional>
"[%date%-%time%]" String of text at the front of ALL messages written to file
fileSufix string <optional>
"" String of text at the end of ALL messages written to file
consoleDisplayLevel logLevelsBoolean <optional>
Which levels to output to the console, (default is all, except debug and silly if `process.env.NODE_ENV !== "development"`)
consoleBeepOnLevel logLevelsBoolean <optional>
Which levels to make a ding sound on (output bell character)
fileWriteLevel logLevelsBoolean <optional>
Which log levels are written to the log file (default is all)
fileLineTerminator string <optional>
"\r\n" New line character, sets to appropriate value based on platform.
outputToConsole boolean <optional>
true Output to the console
outputToFile boolean <optional>
true Output to the file
objectRenderDepth number <optional>
2 When logging objects, this dictates how deep we render the object. Default 2
cleanLog boolean <optional>
false Delete any log file
consoleMessageCharacterLimit number <optional>
1000 The maximum number of characters we'll print to the console each message.
consoleMessageCharacterLimitString string <optional>
"...|" This is the string appended on to a message that we've fit to the consoleMessageCharacterLimit.
fileMessageCharacterLimit number <optional>
7500 The maximum number of characters written out each log message to the file.
fileMessageCharacterLimitString string <optional>
"...|" This is the string appended on to a message that we've fit to the fileMessageCharacterLimit.
Source:
Type:
  • object

Contents

Properties:
Name Type Description
text string The text description
subtext string Subtext
image string Image in base64
actions Array.<NotificationAction> Buttons or textboxes, things the user can interact with
timerData TimerData Data related to timer
progress Progress Progress data
Source:
Type:
  • Object

EncryptionDescriptor

Encryption settings
Properties:
Name Type Description
enabled boolean Whether or not encryption is enabled (and we'll encrypt files on save)
active boolean Unused reserved property.
newKeyLength number Length newly generated encryption keys should be (keys we create)
Source:
Type:
  • object

EncryptionOptions

Properties:
Name Type Attributes Default Description
hashAlgorithm string <optional>
"sha256" Hashing algorithm used in deriving the key via HKDF
cipherAlgorithm string <optional>
"" Encryption method. Can be: `chacha20-poly1305`, `aes-256-gcm`, `aes256` or anything else defined in `encryptionCipherKeyLengths`
Source:
Type:
  • object

fileSharingObject

Properties:
Name Type Description
fileUUID string File UUID
fileName string File name for when the file is copied to the received folder
enabled boolean Whether the file is able to be downloaded/uploaded. Once the fileUUID is used, this is flipped off and the object is deleted.
createdTime string Time object was created (ISO) (file have a life time of 2 minutes)
isUpload boolean File is being uploaded
filePath string If upload, this is the directory the file is being saved to. If not an uploaded, this is the file we're serving.
clientUUID string UUID of the client.
clientName string Friendly name of the client.
socketUUID string UUID of the socket client uses.
authenticationCode string Random string of length 64 to represent a unique key only the client will know. Only used for download
Source:
Type:
  • object

FileSharingSettings

Properties:
Name Type Attributes Default Description
enabled boolean <optional>
false If file sharing is allowed between the two devices.
allowClientToUpload boolean <optional>
true Whether client can upload any files. This toggles the ability to receive files from the client.
allowClientToDownload boolean <optional>
true Whether client can download files (that we send it). This toggles the ability to send files to the client.
requireConfirmationOnClinetUploads boolean <optional>
false Whether to ask the user to confirm receiving a file from client. False and files are automatically downloaded.
notifyOnClientUpload boolean <optional>
true Notify the user when a file is received
receivedFilesDirectory string <optional>
"./data/receivedFiles/" Where received files are saved (default is ./data/receivedFiles/)
clientBrowsable boolean <optional>
false Remote client device is browsable
serverBrowsable boolean <optional>
false Allow the client device to remotely browse our files
Source:
Type:
  • object

HKDFOptions

HKDF options
Properties:
Name Type Attributes Default Description
hashAlgorithm string <optional>
"sha256" Hashing algorithm used in deriving the key via HKDF
keyLength int <optional>
32 AES key length (this can just be your primary key)
ivLength int <optional>
16 IV length, needs to be 16 for any AES algorithm. If not needing a AES key, this can just be a secondary key (and ignored)
uniqueIV boolean <optional>
true The IV generated is random. DO NOT SET THIS TO FALSE! Only set to false IF the IV must be shared and cannot be synced/transmitted
Source:
Type:
  • object

logLevelsBoolean

Properties:
Name Type Description
critical boolean
error boolean
warn boolean
info boolean
http boolean
verbose boolean
debug boolean
silly boolean
Source:
Type:
  • object

logLevelsString

Properties:
Name Type Description
critical string
error string
warn string
info string
http string
verbose string
debug string
silly string
Source:
Type:
  • object

messageboxButtons

Properties:
Name Type Description
button NodeGUI.QPushButton
buttonRole NodeGUI.ButtonRole
Source:
Type:
  • object

messageboxButtons

Properties:
Name Type Description
button NodeGUI.QPushButton
buttonRole NodeGUI.ButtonRole
Source:
Type:
  • object

NeptuneApplicationSettings

Properties:
Name Type Attributes Default Description
requireSaveButton boolean <optional>
false Whether or not the save button is visible and required in the MainWindow. If false, settings are saved when changed.
advertiseNeptune boolean <optional>
true Whether or not to use MDNS to advertise (broadcast) this server on to the network. Doing so allows client devices to pair without entering an IP.
startMinimized boolean <optional>
false Whether the main window should not be displayed on startup
Source:
Type:
  • object

NotificationAction

Properties:
Name Type Attributes Description
id string The 'name' of the action
type string Button, textbox, or combobox
contents string <optional>
The contents (title/text/name) of the button
hintText string <optional>
Unique to text box and combobox, the "hint"
allowGeneratedReplies boolean <optional>
Allow those generated smart replies (for textbox only)
choices Array.<string> <optional>
Choices the user gets (for combobox only)
Source:
Type:
  • Object

NotificationActionParameters

Properties:
Name Type Attributes Description
id string Id of the action
text string <optional>
Optional text input (if action is a text box)
Source:
Type:
  • object

NotificationActionParameters

Properties:
Name Type Attributes Description
id string <optional>
Id of the button clicked
text string <optional>
Optional text input (if action is a text box)
comboBoxChoice string <optional>
Optional selected choice of the combo box.
Source:
Type:
  • object

NotificationData

Properties:
Name Type Description
action string What to do with this data, how to process (create, remove, update)
applicationName string The app that created the notification
applicationPackage string The package name of that application
notificationId number Notification ID provided by Android, used to refer to this notification on either end
notificationIcon string Base64 representation of the notification icon
title string Title of the notification
type string Notification type (standard, timer, progress, media, call)
contents Contents Content of the notification
onlyAlertOnce boolean Only play the sound, vibrate, and ticker if the notification is not already showing
priority string Can be "max", "high", "default", "low", and "min"
timestamp string When this item was displayed
isSilent boolean Display this / is silent
Source:
Type:
  • Object

NotificationDataLegacy

Data provided by the client
Properties:
Name Type Description
action string What the do with this data, how to process (create, remove, update)
applicationName string The app that created the notification (it's friendly name)
applicationPackage string The package name of the application that created the notification
notificationId number Notification Id provided by Android, used to refer to this notification on either end
notificationIcon string Base64 representation of the notification icon. This must be saved to the disk before being used (Windows only accepts URIs to icons)
title string Title of the notification
type string Notification type (text, image, inline, chronometer, progress bar). This will determine the data in `contents`.
contents TextNotification Content of the notification (type set by above)
extras object Unused currently, reserved for misc data
persistent boolean Notification is persistent
color number Color of the notification
onlyAlertOnce boolean Only let the sound, vibration and ticker to be played if the notification is not already showing.
category string Category of notification, https://developer.android.com/reference/android/app/Notification#category
priority number Android #setImportance
timestamp string ISO date time stamp
timeoutAfter number Duration in milliseconds after which this notification should be canceled, if it is not already canceled
isActive boolean Display this notification
Source:
Type:
  • object

NotificationSettings

Properties:
Name Type Attributes Default Description
enabled boolean <optional>
true Notifications are sent/received between the two
Source:
Type:
  • object

PingData

Properties:
Name Type Description
pingSentAt Date Time we sent ping request.
pongSentAt Date Time client sent the pong response (questionable reliability).
pongReceivedAt Date Time we received the pong response.
pingTime number Time between sending the ping request and client receiving the ping in ms.
RTT number Total time to ping and receive a response (use this) in ms.
Source:
Type:
  • object

Progress

Properties:
Name Type Description
value number Current position
max number Maximum value
isIndeterminate boolean Indeterminate state of the progress bar
Source:
Type:
  • Object

StandardizedClipboardData

All values are expressed as string value like: `data:;, `

`mimeType`: Mime type of the data

``: How the data is encoded (base64, hex)

``: Actual format data

Properties:
Name Type Attributes Description
Image string <optional>
Image data, can be PNG, DIB, Bitmap, etc .. Depends on mime type, which is `image/` (you want ``).
Text string <optional>
Plain text data, either Unicode (UTF8) or ASCII.
RichText string <optional>
Rich text data
HTML string <optional>
HTML format data
Source:
Type:
  • object

TimerData

Properties:
Name Type Description
countingDown boolean Whether the chronometer is counting down (true) or up (false)
Source:
Type:
  • Object

UpdateNotificationData

Properties:
Name Type Attributes Description
action string Activated or dismissed.
actionParameters NotificationActionParameters <optional>
Data related to user input.
Source:
Type:
  • object

UpdateNotificationData

Properties:
Name Type Attributes Description
action string Activated or dismissed.
actionParameters NotificationActionParameters <optional>
Data related to user input.
Source:
Type:
  • object

WebDescriptor

Properties:
Name Type Description
port number Port the web server is listening on
Source:
Type:
  • object