Members
(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:
-
Map.<String, conInitObject>
(constant) displaySilly :boolean
output the silly log level to console (it goes every other level > silly, silly is the lowest priority, literal spam)
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:
-
Map.<String, fileSharingObject>
(constant) NeptuneWindow
_ _
| \| |
| .` |
|_|\_|eptune
Capstone Project 2022
About Window
- Source:
(constant) NodeGUI
_ _
| \| |
| .` |
|_|\_|eptune
Capstone Project 2022
Base Window
- 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:
socketUUIDs :Map.<String, String>
A collection of socket UUIDs mapped to conInitUUIDs.
- Source:
Type:
-
Map.<String, String>
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
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
`
``: 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/ |
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