diff --git a/.codelite/.tern-project b/.codelite/.tern-project
deleted file mode 100644
index 09b6465..0000000
--- a/.codelite/.tern-project
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "libs": ["browser", "ecma5", "ecma6"],
- "plugins": {
- "commonjs": {
- },
- "modules": {
- },
- "node_resolve": {
- },
- "node": {
- }
- }
-}
\ No newline at end of file
diff --git a/.codelite/Dialog-macdev.tags b/.codelite/Dialog-macdev.tags
deleted file mode 100644
index 96a971f..0000000
Binary files a/.codelite/Dialog-macdev.tags and /dev/null differ
diff --git a/.codelite/Dialog.session b/.codelite/Dialog.session
deleted file mode 100644
index 0e31174..0000000
--- a/.codelite/Dialog.session
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.codelite/Dialog.tags b/.codelite/Dialog.tags
deleted file mode 100644
index 6f2794a..0000000
Binary files a/.codelite/Dialog.tags and /dev/null differ
diff --git a/.codelite/Dialog.workspace.minh_danh b/.codelite/Dialog.workspace.minh_danh
deleted file mode 100644
index 34d4191..0000000
--- a/.codelite/Dialog.workspace.minh_danh
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/.codelite/DialogSampleApp.session b/.codelite/DialogSampleApp.session
deleted file mode 100644
index 14ee549..0000000
--- a/.codelite/DialogSampleApp.session
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.codelite/DialogSampleApp.tags b/.codelite/DialogSampleApp.tags
deleted file mode 100644
index e1f80cd..0000000
Binary files a/.codelite/DialogSampleApp.tags and /dev/null differ
diff --git a/.codelite/HelloWorld-cameron_henlin.tags b/.codelite/HelloWorld-cameron_henlin.tags
deleted file mode 100644
index 7970a43..0000000
Binary files a/.codelite/HelloWorld-cameron_henlin.tags and /dev/null differ
diff --git a/.codelite/HelloWorld-macdev.tags b/.codelite/HelloWorld-macdev.tags
deleted file mode 100644
index ce25e85..0000000
Binary files a/.codelite/HelloWorld-macdev.tags and /dev/null differ
diff --git a/.codelite/HelloWorld-macdev.tags-shm b/.codelite/HelloWorld-macdev.tags-shm
deleted file mode 100644
index dbfc882..0000000
Binary files a/.codelite/HelloWorld-macdev.tags-shm and /dev/null differ
diff --git a/.codelite/HelloWorld-macdev.tags-wal b/.codelite/HelloWorld-macdev.tags-wal
deleted file mode 100644
index f4e291f..0000000
Binary files a/.codelite/HelloWorld-macdev.tags-wal and /dev/null differ
diff --git a/.codelite/HelloWorld.session b/.codelite/HelloWorld.session
deleted file mode 100644
index 9451c88..0000000
--- a/.codelite/HelloWorld.session
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.codelite/HelloWorld.workspace.cameron_henlin b/.codelite/HelloWorld.workspace.cameron_henlin
deleted file mode 100644
index e4cab5a..0000000
--- a/.codelite/HelloWorld.workspace.cameron_henlin
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/.codelite/NuklearQuickDraw-cameron_henlin.tags b/.codelite/NuklearQuickDraw-cameron_henlin.tags
deleted file mode 100644
index e69de29..0000000
diff --git a/.codelite/NuklearQuickDraw-cameron_henlin.tags-shm b/.codelite/NuklearQuickDraw-cameron_henlin.tags-shm
deleted file mode 100644
index 6bb49fb..0000000
Binary files a/.codelite/NuklearQuickDraw-cameron_henlin.tags-shm and /dev/null differ
diff --git a/.codelite/NuklearQuickDraw.session b/.codelite/NuklearQuickDraw.session
deleted file mode 100644
index 4418fb5..0000000
--- a/.codelite/NuklearQuickDraw.session
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/.codelite/QuickDrawTest-cameron_henlin.tags b/.codelite/QuickDrawTest-cameron_henlin.tags
deleted file mode 100644
index 0a069e9..0000000
Binary files a/.codelite/QuickDrawTest-cameron_henlin.tags and /dev/null differ
diff --git a/.codelite/QuickDrawTest.session b/.codelite/QuickDrawTest.session
deleted file mode 100644
index f8ee52b..0000000
--- a/.codelite/QuickDrawTest.session
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.codelite/Sys6DialogTestApp.session b/.codelite/Sys6DialogTestApp.session
deleted file mode 100644
index 1dc12b7..0000000
--- a/.codelite/Sys6DialogTestApp.session
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.codelite/Sys6DialogTestApp.tags b/.codelite/Sys6DialogTestApp.tags
deleted file mode 100644
index 6c18cba..0000000
Binary files a/.codelite/Sys6DialogTestApp.tags and /dev/null differ
diff --git a/.codelite/Sys6Dialogapp.session b/.codelite/Sys6Dialogapp.session
deleted file mode 100644
index cbf9aa6..0000000
--- a/.codelite/Sys6Dialogapp.session
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/.codelite/Sys6Dialogapp.tags b/.codelite/Sys6Dialogapp.tags
deleted file mode 100644
index d789fd9..0000000
Binary files a/.codelite/Sys6Dialogapp.tags and /dev/null differ
diff --git a/.codelite/compilation.db b/.codelite/compilation.db
deleted file mode 100644
index d4960d2..0000000
Binary files a/.codelite/compilation.db and /dev/null differ
diff --git a/.codelite/compile_commands.json b/.codelite/compile_commands.json
deleted file mode 100644
index 0637a08..0000000
--- a/.codelite/compile_commands.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/.codelite/cppcheck.list b/.codelite/cppcheck.list
deleted file mode 100644
index abd95a6..0000000
--- a/.codelite/cppcheck.list
+++ /dev/null
@@ -1 +0,0 @@
-/home/minhdanh/Documents/LinuxApps/Dialog/dialog.c
diff --git a/.codelite/refactoring.db b/.codelite/refactoring.db
deleted file mode 100644
index 2bc195c..0000000
Binary files a/.codelite/refactoring.db and /dev/null differ
diff --git a/.codelite/subversion.conf b/.codelite/subversion.conf
deleted file mode 100644
index 5fdccfe..0000000
--- a/.codelite/subversion.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "svn-settings": {
- "m_repoPath": ""
- }
-}
\ No newline at end of file
diff --git a/.codelite/valgrind.memcheck.supp b/.codelite/valgrind.memcheck.supp
deleted file mode 100644
index e69de29..0000000
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0fdaf6a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+build/
+.vscode/
+output_js*
\ No newline at end of file
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
deleted file mode 100644
index 94df914..0000000
--- a/.vscode/c_cpp_properties.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "configurations": [
- {
- "name": "Linux",
- "includePath": [
- "${workspaceFolder}/**",
- "~/Documents/Retro68/InterfacesAndLibraries/**"
- ],
- "defines": [],
- "compilerPath": "/usr/bin/gcc",
- "cStandard": "gnu17",
- "cppStandard": "gnu++14",
- "intelliSenseMode": "linux-gcc-x64"
- }
- ],
- "version": 4
-}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index 7e89774..0000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "C_Cpp.errorSquiggles": "Enabled",
- "files.associations": {
- "string.h": "c",
- "stdio.h": "c",
- "toolutils.h": "c",
- "textedit.h": "c",
- "types.h": "c",
- "resources.h": "c",
- "fonts.h": "c",
- "devices.h": "c",
- "stdlib.h": "c",
- "serialhelper.h": "c",
- "coprocessorjs.h": "c",
- "dialogs.h": "c",
- "osutils.h": "c",
- "traps.h": "c",
- "quickdraw.h": "c"
- }
-}
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 977110b..866ce5e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,9 +6,9 @@
cmake_minimum_required(VERSION 2.8)
-add_application(NuklearQuickDraw
+add_application(MessagesForMacintosh
SerialHelper.c
coprocessorjs.c
- Sample.c
- Sample.r
+ mac_main.c
+ mac_main.r
)
diff --git a/JS/index.js b/JS/index.js
index f484e00..9a48192 100644
--- a/JS/index.js
+++ b/JS/index.js
@@ -4,6 +4,9 @@ const InMemoryCache = require('apollo-cache-inmemory').InMemoryCache;
const createHttpLink = require('apollo-link-http').createHttpLink;
const gql = require('graphql-tag')
+// TEST_MODE can be turned on or off to prevent communications with the Apollo iMessage Server running on your moder Mac
+const TEST_MODE = true
+
const defaultOptions = {
watchQuery: {
fetchPolicy: 'no-cache',
@@ -148,7 +151,6 @@ const widthFor12ptFont = [
8
]
-
// this is tied to Sample.c's message window max width
const MAX_WIDTH = 304
const SPACE_WIDTH = widthFor12ptFont[32]
@@ -169,7 +171,7 @@ const getNextWordLength = (word) => {
currentWidth += currentCharWidth
}
-return currentWidth
+ return currentWidth
}
const shortenText = (text) => {
@@ -273,12 +275,68 @@ const splitMessages = (messages) => {
return messageOutput
}
+const parseChatsToFriendlyNameString = (chats) => {
+
+ let friendlyNameStrings = ``
+
+ if (!chats) {
+
+ return ``
+ }
+
+ for (let chat of chats) {
+
+ friendlyNameStrings = `${friendlyNameStrings},${chat.friendlyName.replace(/,/g, '')}`
+ }
+
+ friendlyNameStrings = friendlyNameStrings.substring(1, friendlyNameStrings.length)
+
+ console.log(`chats`)
+ console.log(friendlyNameStrings)
+
+ return friendlyNameStrings
+}
+
let lastMessageOutput
+const TEST_MESSAGES = [
+ {chatter: `friend 1`, text: `my super fun text message`},
+ {chatter: `me`, text: `some cool old thing I said earlier`},
+ {chatter: `friend 2`, text: `this message is not relevant to the conversation! not at all :(`},
+ {chatter: `friend 1`, text: `i watch star wars in reverse order`},
+ {chatter: `me`, text: `https://github.com/CamHenlin/MessagesForMacintosh https://github.com/CamHenlin/MessagesForMacintosh`},
+ {chatter: `friend 3`, text: `i'm just catching up`},
+ {chatter: `friend 3`, text: `nobody chat for a minute`},
+ {chatter: `friend 2`, text: `hang on`},
+ {chatter: `friend 1`, text: `no`}
+]
+
+const TEST_CHATS = [
+ {friendlyName: `my group chat 1`, name: `my group chat 1`},
+ {friendlyName: `friend 1`, name: `friend 1`},
+ {friendlyName: `friend 4`, name: `friend 4`},
+ {friendlyName: `boss`, name: `boss`},
+ {friendlyName: `friend 3`, name: `friend 3`},
+ {friendlyName: `restaurant`, name: `restaurant`}
+]
+
+if (TEST_MODE) {
+
+ setInterval(() => {
+
+ TEST_MESSAGES = TEST_MESSAGES.concat({chatter: `friend 1`, text: Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 64)})
+ }, 10000)
+}
+
class iMessageClient {
async getMessages (chatId, page) {
+ if (TEST_MODE) {
+
+ return splitMessages(TEST_MESSAGES)
+ }
+
console.log(`get messages for chat ID: ${chatId}`)
let result
@@ -327,6 +385,13 @@ class iMessageClient {
async sendMessage (chatId, message) {
+ if (TEST_MODE) {
+
+ TEST_MESSAGES = TEST_MESSAGES.concat({sender: `me`, text: message})
+
+ return splitMessages(TEST_MESSAGES)
+ }
+
console.log(`send message`)
console.log(chatId)
console.log(message)
@@ -361,6 +426,11 @@ class iMessageClient {
async getChats () {
+ if (TEST_MODE) {
+
+ return parseChatsToFriendlyNameString(TEST_CHATS)
+ }
+
let result
try {
@@ -385,30 +455,19 @@ class iMessageClient {
}
let chats = result.data.getChats
- let friendlyNameStrings = ``
- if (!chats) {
-
- return ``
- }
-
- for (let chat of chats) {
-
- friendlyNameStrings = `${friendlyNameStrings},${chat.friendlyName.replace(/,/g, '')}`
- }
-
- friendlyNameStrings = friendlyNameStrings.substring(1, friendlyNameStrings.length)
-
- console.log(`chats`)
- console.log(friendlyNameStrings)
-
- return friendlyNameStrings
+ return parseChatsToFriendlyNameString(chats)
}
setIPAddress (IPAddress) {
console.log(`instantiate apolloclient with uri ${IPAddress}:4000/`)
+ if (TEST_MODE) {
+
+ return
+ }
+
try {
client = new ApolloClient({
diff --git a/Sample.r b/Sample.r
deleted file mode 100644
index 9db4ac4..0000000
--- a/Sample.r
+++ /dev/null
@@ -1 +0,0 @@
-/*
#
# Apple Macintosh Developer Technical Support
#
# MultiFinder-Aware Simple Sample Application
#
# Sample
#
# Sample.r - Rez Source
#
# Copyright © 1989 Apple Computer, Inc.
# All rights reserved.
#
# Versions:
# 1.00 08/88
# 1.01 11/88
# 1.02 04/89 MPW 3.1
#
# Components:
# Sample.p April 1, 1989
# Sample.c April 1, 1989
# Sample.a April 1, 1989
# Sample.inc1.a April 1, 1989
# SampleMisc.a April 1, 1989
# Sample.r April 1, 1989
# Sample.h April 1, 1989
# [P]Sample.make April 1, 1989
# [C]Sample.make April 1, 1989
# [A]Sample.make April 1, 1989
#
# Sample is an example application that demonstrates how to
# initialize the commonly used toolbox managers, operate
# successfully under MultiFinder, handle desk accessories,
# and create, grow, and zoom windows.
#
# It does not by any means demonstrate all the techniques
# you need for a large application. In particular, Sample
# does not cover exception handling, multiple windows/documents,
# sophisticated memory management, printing, or undo. All of
# these are vital parts of a normal full-sized application.
#
# This application is an example of the form of a Macintosh
# application; it is NOT a template. It is NOT intended to be
# used as a foundation for the next world-class, best-selling,
# 600K application. A stick figure drawing of the human body may
# be a good example of the form for a painting, but that does not
# mean it should be used as the basis for the next Mona Lisa.
#
# We recommend that you review this program or TESample before
# beginning a new application.
*/
#include "Types.r"
#include "Sample.h"
/* this is a definition for a resource which contains only a rectangle */
type 'RECT' {
rect;
};
/* we use an MBAR resource to conveniently load all the menus */
resource 'MBAR' (rMenuBar, preload) {
{ mApple, mFile, mEdit, mLight, mHelp }; /* five menus */
};
resource 'MENU' (mApple, preload) {
mApple, textMenuProc,
AllItems & ~MenuItem2, /* Disable dashed line, enable About and DAs */
enabled, apple,
{
"About Messages",
noicon, nokey, nomark, plain;
"-",
noicon, nokey, nomark, plain
}
};
resource 'MENU' (mFile, preload) {
mFile, textMenuProc,
MenuItem12, /* enable Quit only, program enables others */
enabled, "File",
{
"New",
noicon, "N", nomark, plain;
"Open",
noicon, "O", nomark, plain;
"-",
noicon, nokey, nomark, plain;
"Close",
noicon, "W", nomark, plain;
"Save",
noicon, "S", nomark, plain;
"Save As",
noicon, nokey, nomark, plain;
"Revert",
noicon, nokey, nomark, plain;
"-",
noicon, nokey, nomark, plain;
"Page Setup",
noicon, nokey, nomark, plain;
"Print",
noicon, nokey, nomark, plain;
"-",
noicon, nokey, nomark, plain;
"Quit",
noicon, "Q", nomark, plain
}
};
resource 'MENU' (mEdit, preload) {
mEdit, textMenuProc,
NoItems, /* disable everything, program does the enabling */
enabled, "Edit",
{
"Undo",
noicon, "Z", nomark, plain;
"-",
noicon, nokey, nomark, plain;
"Cut",
noicon, "X", nomark, plain;
"Copy",
noicon, "C", nomark, plain;
"Paste",
noicon, "V", nomark, plain;
"Clear",
noicon, nokey, nomark, plain
}
};
resource 'MENU' (mLight, preload) {
mLight, textMenuProc,
NoItems, /* disable everything, program does the enabling */
enabled, "Messages",
{
"New Message",
noicon, nokey, nomark, plain;
}
};
resource 'MENU' (mHelp, preload) {
mHelp, textMenuProc,
AllItems, /* disable everything, program does the enabling */
enabled, "Help",
{
"Quick Help",
noicon, nokey, nomark, plain;
"User Guide",
noicon, nokey, nomark, plain;
"Test Entry",
noicon, nokey, nomark, plain;
"Test Entry 2",
noicon, nokey, nomark, plain;
"Test Entry 3",
noicon, nokey, nomark, plain;
}
};
/* this ALRT and DITL are used as an About screen */
resource 'ALRT' (rAboutAlert, purgeable) {
{40, 20, 160, 290},
rAboutAlert,
{ /* array: 4 elements */
/* [1] */
OK, visible, silent,
/* [2] */
OK, visible, silent,
/* [3] */
OK, visible, silent,
/* [4] */
OK, visible, silent
},
centerMainScreen // Where to show the alert
};
resource 'DITL' (rAboutAlert, purgeable) {
{ /* array DITLarray: 5 elements */
/* [1] */
{88, 180, 108, 260},
Button {
enabled,
"OK"
},
/* [2] */
{8, 8, 24, 214},
StaticText {
disabled,
"Messages for Macintosh"
},
/* [3] */
{32, 8, 48, 237},
StaticText {
disabled,
"Copyright © 2021 Cameron Henlin"
},
/* [4] */
{56, 8, 72, 136},
StaticText {
disabled,
"cam.henlin@gmail.com"
},
/* [5] */
{80, 24, 112, 167},
StaticText {
disabled,
"https://github.com/CamHenlin/MessagesForMacintosh"
}
}
};
/* this ALRT and DITL are used as an error screen */
resource 'ALRT' (rUserAlert, purgeable) {
{40, 20, 120, 260},
rUserAlert,
{ /* array: 4 elements */
/* [1] */
OK, visible, silent,
/* [2] */
OK, visible, silent,
/* [3] */
OK, visible, silent,
/* [4] */
OK, visible, silent
},
centerMainScreen // Where to show the alert
};
resource 'DITL' (rUserAlert, purgeable) {
{ /* array DITLarray: 3 elements */
/* [1] */
{50, 150, 70, 230},
Button {
enabled,
"OK"
},
/* [2] */
{10, 60, 30, 230},
StaticText {
disabled,
"Sample - Error occurred!"
},
/* [3] */
{8, 8, 40, 40},
Icon {
disabled,
2
}
}
};
resource 'WIND' (rWindow, preload, purgeable) {
{39, 1, 341, 511},
zoomDocProc, visible, noGoAway, 0x0, "Messages",
centerMainScreen // Where to show the alert
};
resource 'RECT' (rStopRect, preload, purgeable) {
{69, 69, 110, 110}
};
resource 'RECT' (rXRect, preload, purgeable) {
{32, 32, 69, 69}
};
resource 'RECT' (rGoRect, preload, purgeable) {
{120, 10, 220, 110}
};
/* here is the quintessential MultiFinder friendliness device, the SIZE resource */
resource 'SIZE' (-1) {
dontSaveScreen,
acceptSuspendResumeEvents,
enableOptionSwitch,
canBackground, /* we can background; we don't currently, but our sleep value */
/* guarantees we don't hog the Mac while we are in the background */
multiFinderAware, /* this says we do our own activate/deactivate; don't fake us out */
backgroundAndForeground, /* this is definitely not a background-only application! */
dontGetFrontClicks, /* change this is if you want "do first click" behavior like the Finder */
ignoreChildDiedEvents, /* essentially, I'm not a debugger (sub-launching) */
not32BitCompatible, /* this app should not be run in 32-bit address space */
reserved,
reserved,
reserved,
reserved,
reserved,
reserved,
reserved,
kPrefSize * 1024,
kMinSize * 1024
};
\ No newline at end of file
diff --git a/build/%NuklearQuickDraw.ad b/build/%NuklearQuickDraw.ad
deleted file mode 100644
index f1ca1b6..0000000
Binary files a/build/%NuklearQuickDraw.ad and /dev/null differ
diff --git a/build/.finf/NuklearQuickDraw.APPL b/build/.finf/NuklearQuickDraw.APPL
deleted file mode 100644
index 6d687eb..0000000
Binary files a/build/.finf/NuklearQuickDraw.APPL and /dev/null differ
diff --git a/build/.rsrc/NuklearQuickDraw.APPL b/build/.rsrc/NuklearQuickDraw.APPL
deleted file mode 100644
index a08c68d..0000000
Binary files a/build/.rsrc/NuklearQuickDraw.APPL and /dev/null differ
diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt
deleted file mode 100644
index 1501b82..0000000
--- a/build/CMakeCache.txt
+++ /dev/null
@@ -1,360 +0,0 @@
-# This is the CMakeCache file.
-# For build in directory: /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build
-# It was generated by CMake: /usr/bin/cmake
-# You can edit this file to change values found and used by cmake.
-# If you do not want to change any of the values, simply exit the editor.
-# If you do want to change a value, simply edit, save, and exit the editor.
-# The syntax for the file is as follows:
-# KEY:TYPE=VALUE
-# KEY is the name of a variable in the cache.
-# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
-# VALUE is the current value for the KEY.
-
-########################
-# EXTERNAL cache entries
-########################
-
-//Path to a program.
-CMAKE_ADDR2LINE:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-addr2line
-
-//Path to a program.
-CMAKE_AR:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-ar
-
-//Choose the type of build, options are: None Debug Release RelWithDebInfo
-// MinSizeRel ...
-CMAKE_BUILD_TYPE:STRING=
-
-//Enable/Disable color output during build.
-CMAKE_COLOR_MAKEFILE:BOOL=ON
-
-//A wrapper around 'ar' adding the appropriate '--plugin' option
-// for the GCC compiler
-CMAKE_CXX_COMPILER_AR:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc-ar
-
-//A wrapper around 'ranlib' adding the appropriate '--plugin' option
-// for the GCC compiler
-CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc-ranlib
-
-//Flags used by the CXX compiler during all build types.
-CMAKE_CXX_FLAGS:STRING=
-
-//Flags used by the CXX compiler during DEBUG builds.
-CMAKE_CXX_FLAGS_DEBUG:STRING=-g
-
-//Flags used by the CXX compiler during MINSIZEREL builds.
-CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
-
-//Flags used by the CXX compiler during RELEASE builds.
-CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
-
-//Flags used by the CXX compiler during RELWITHDEBINFO builds.
-CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
-
-//A wrapper around 'ar' adding the appropriate '--plugin' option
-// for the GCC compiler
-CMAKE_C_COMPILER_AR:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc-ar
-
-//A wrapper around 'ranlib' adding the appropriate '--plugin' option
-// for the GCC compiler
-CMAKE_C_COMPILER_RANLIB:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc-ranlib
-
-//Flags used by the C compiler during all build types.
-CMAKE_C_FLAGS:STRING=
-
-//Flags used by the C compiler during DEBUG builds.
-CMAKE_C_FLAGS_DEBUG:STRING=-g
-
-//Flags used by the C compiler during MINSIZEREL builds.
-CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
-
-//Flags used by the C compiler during RELEASE builds.
-CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
-
-//Flags used by the C compiler during RELWITHDEBINFO builds.
-CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
-
-//Path to a program.
-CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
-
-//Flags used by the linker during all build types.
-CMAKE_EXE_LINKER_FLAGS:STRING=
-
-//Flags used by the linker during DEBUG builds.
-CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during MINSIZEREL builds.
-CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during RELEASE builds.
-CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during RELWITHDEBINFO builds.
-CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//Enable/Disable output of compile commands during generation.
-CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
-
-//installation prefix
-CMAKE_INSTALL_PREFIX:PATH=/home/camh/Retro68-build/toolchain/m68k-apple-macos
-
-//Path to a program.
-CMAKE_LINKER:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-ld
-
-//Path to a program.
-CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
-
-//Flags used by the linker during the creation of modules during
-// all build types.
-CMAKE_MODULE_LINKER_FLAGS:STRING=
-
-//Flags used by the linker during the creation of modules during
-// DEBUG builds.
-CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during the creation of modules during
-// MINSIZEREL builds.
-CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during the creation of modules during
-// RELEASE builds.
-CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during the creation of modules during
-// RELWITHDEBINFO builds.
-CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//Path to a program.
-CMAKE_NM:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-nm
-
-//Path to a program.
-CMAKE_OBJCOPY:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-objcopy
-
-//Path to a program.
-CMAKE_OBJDUMP:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-objdump
-
-//Value Computed by CMake
-CMAKE_PROJECT_DESCRIPTION:STATIC=
-
-//Value Computed by CMake
-CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
-
-//Value Computed by CMake
-CMAKE_PROJECT_NAME:STATIC=Project
-
-//Path to a program.
-CMAKE_RANLIB:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-ranlib
-
-//Path to a program.
-CMAKE_READELF:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-readelf
-
-//Flags used by the linker during the creation of shared libraries
-// during all build types.
-CMAKE_SHARED_LINKER_FLAGS:STRING=
-
-//Flags used by the linker during the creation of shared libraries
-// during DEBUG builds.
-CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during the creation of shared libraries
-// during MINSIZEREL builds.
-CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during the creation of shared libraries
-// during RELEASE builds.
-CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during the creation of shared libraries
-// during RELWITHDEBINFO builds.
-CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//If set, runtime paths are not added when installing shared libraries,
-// but are added when building.
-CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
-
-//If set, runtime paths are not added when using shared libraries.
-CMAKE_SKIP_RPATH:BOOL=NO
-
-//Flags used by the linker during the creation of static libraries
-// during all build types.
-CMAKE_STATIC_LINKER_FLAGS:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during DEBUG builds.
-CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during MINSIZEREL builds.
-CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during RELEASE builds.
-CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during RELWITHDEBINFO builds.
-CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//Path to a program.
-CMAKE_STRIP:FILEPATH=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-strip
-
-//The CMake toolchain file
-CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/camh/Retro68-build/toolchain/m68k-apple-macos/cmake/retro68.toolchain.cmake
-
-//If this value is on, makefiles will be generated without the
-// .SILENT directive, and all commands will be echoed to the console
-// during the make. This is useful for debugging only. With Visual
-// Studio IDE projects all commands are done without /nologo.
-CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
-
-//Value Computed by CMake
-Project_BINARY_DIR:STATIC=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build
-
-//Value Computed by CMake
-Project_SOURCE_DIR:STATIC=/home/camh/Documents/Retro68kApps/NuklearQuickDraw
-
-//path to root of Retro68 Toolchain
-RETRO68_ROOT:PATH=/home/camh/Retro68-build/toolchain
-
-
-########################
-# INTERNAL cache entries
-########################
-
-//ADVANCED property for variable: CMAKE_ADDR2LINE
-CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_AR
-CMAKE_AR-ADVANCED:INTERNAL=1
-//This is the directory where this CMakeCache.txt was created
-CMAKE_CACHEFILE_DIR:INTERNAL=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build
-//Major version of cmake used to create the current loaded cache
-CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
-//Minor version of cmake used to create the current loaded cache
-CMAKE_CACHE_MINOR_VERSION:INTERNAL=16
-//Patch version of cmake used to create the current loaded cache
-CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
-//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
-CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
-//Path to CMake executable.
-CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
-//Path to cpack program executable.
-CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
-//Path to ctest program executable.
-CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
-//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
-CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
-CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS
-CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
-CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
-CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
-CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
-CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_COMPILER_AR
-CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
-CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS
-CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
-CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
-CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
-CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
-CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_DLLTOOL
-CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
-//Executable file format
-CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
-CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
-CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
-CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
-CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
-CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
-//Name of external makefile project generator.
-CMAKE_EXTRA_GENERATOR:INTERNAL=
-//Name of generator.
-CMAKE_GENERATOR:INTERNAL=Unix Makefiles
-//Generator instance identifier.
-CMAKE_GENERATOR_INSTANCE:INTERNAL=
-//Name of generator platform.
-CMAKE_GENERATOR_PLATFORM:INTERNAL=
-//Name of generator toolset.
-CMAKE_GENERATOR_TOOLSET:INTERNAL=
-//Source directory with the top level CMakeLists.txt file for this
-// project
-CMAKE_HOME_DIRECTORY:INTERNAL=/home/camh/Documents/Retro68kApps/NuklearQuickDraw
-//ADVANCED property for variable: CMAKE_LINKER
-CMAKE_LINKER-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
-CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
-CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
-CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
-CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
-CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_NM
-CMAKE_NM-ADVANCED:INTERNAL=1
-//number of local generators
-CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
-//ADVANCED property for variable: CMAKE_OBJCOPY
-CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_OBJDUMP
-CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
-//Platform information initialized
-CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_RANLIB
-CMAKE_RANLIB-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_READELF
-CMAKE_READELF-ADVANCED:INTERNAL=1
-//Path to CMake installation.
-CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.16
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
-CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
-CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
-CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
-CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
-CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SKIP_RPATH
-CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
-CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
-CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
-CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
-CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STRIP
-CMAKE_STRIP-ADVANCED:INTERNAL=1
-//uname command
-CMAKE_UNAME:INTERNAL=/usr/bin/uname
-//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
-CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
-
diff --git a/build/CMakeFiles/3.16.3/CMakeCCompiler.cmake b/build/CMakeFiles/3.16.3/CMakeCCompiler.cmake
deleted file mode 100644
index 70fedf4..0000000
--- a/build/CMakeFiles/3.16.3/CMakeCCompiler.cmake
+++ /dev/null
@@ -1,76 +0,0 @@
-set(CMAKE_C_COMPILER "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc")
-set(CMAKE_C_COMPILER_ARG1 "")
-set(CMAKE_C_COMPILER_ID "GNU")
-set(CMAKE_C_COMPILER_VERSION "9.1.0")
-set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
-set(CMAKE_C_COMPILER_WRAPPER "")
-set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
-set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
-set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
-set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
-set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
-
-set(CMAKE_C_PLATFORM_ID "")
-set(CMAKE_C_SIMULATE_ID "")
-set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
-set(CMAKE_C_SIMULATE_VERSION "")
-
-
-
-set(CMAKE_AR "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-ar")
-set(CMAKE_C_COMPILER_AR "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc-ar")
-set(CMAKE_RANLIB "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-ranlib")
-set(CMAKE_C_COMPILER_RANLIB "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc-ranlib")
-set(CMAKE_LINKER "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-ld")
-set(CMAKE_MT "")
-set(CMAKE_COMPILER_IS_GNUCC 1)
-set(CMAKE_C_COMPILER_LOADED 1)
-set(CMAKE_C_COMPILER_WORKS TRUE)
-set(CMAKE_C_ABI_COMPILED TRUE)
-set(CMAKE_COMPILER_IS_MINGW )
-set(CMAKE_COMPILER_IS_CYGWIN )
-if(CMAKE_COMPILER_IS_CYGWIN)
- set(CYGWIN 1)
- set(UNIX 1)
-endif()
-
-set(CMAKE_C_COMPILER_ENV_VAR "CC")
-
-if(CMAKE_COMPILER_IS_MINGW)
- set(MINGW 1)
-endif()
-set(CMAKE_C_COMPILER_ID_RUN 1)
-set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
-set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
-set(CMAKE_C_LINKER_PREFERENCE 10)
-
-# Save compiler ABI information.
-set(CMAKE_C_SIZEOF_DATA_PTR "")
-set(CMAKE_C_COMPILER_ABI "")
-set(CMAKE_C_LIBRARY_ARCHITECTURE "")
-
-if(CMAKE_C_SIZEOF_DATA_PTR)
- set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
-endif()
-
-if(CMAKE_C_COMPILER_ABI)
- set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
-endif()
-
-if(CMAKE_C_LIBRARY_ARCHITECTURE)
- set(CMAKE_LIBRARY_ARCHITECTURE "")
-endif()
-
-set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
-if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
- set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
-endif()
-
-
-
-
-
-set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include;/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed;/home/camh/Retro68-build/toolchain/m68k-apple-macos/include")
-set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;c;retrocrt;Interface")
-set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0;/home/camh/Retro68-build/toolchain/m68k-apple-macos/lib")
-set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake b/build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake
deleted file mode 100644
index 9018db8..0000000
--- a/build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake
+++ /dev/null
@@ -1,88 +0,0 @@
-set(CMAKE_CXX_COMPILER "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++")
-set(CMAKE_CXX_COMPILER_ARG1 "")
-set(CMAKE_CXX_COMPILER_ID "GNU")
-set(CMAKE_CXX_COMPILER_VERSION "9.1.0")
-set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
-set(CMAKE_CXX_COMPILER_WRAPPER "")
-set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
-set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20")
-set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
-set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
-set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
-set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
-set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
-
-set(CMAKE_CXX_PLATFORM_ID "")
-set(CMAKE_CXX_SIMULATE_ID "")
-set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
-set(CMAKE_CXX_SIMULATE_VERSION "")
-
-
-
-set(CMAKE_AR "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-ar")
-set(CMAKE_CXX_COMPILER_AR "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc-ar")
-set(CMAKE_RANLIB "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-ranlib")
-set(CMAKE_CXX_COMPILER_RANLIB "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc-ranlib")
-set(CMAKE_LINKER "/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-ld")
-set(CMAKE_MT "")
-set(CMAKE_COMPILER_IS_GNUCXX 1)
-set(CMAKE_CXX_COMPILER_LOADED 1)
-set(CMAKE_CXX_COMPILER_WORKS TRUE)
-set(CMAKE_CXX_ABI_COMPILED TRUE)
-set(CMAKE_COMPILER_IS_MINGW )
-set(CMAKE_COMPILER_IS_CYGWIN )
-if(CMAKE_COMPILER_IS_CYGWIN)
- set(CYGWIN 1)
- set(UNIX 1)
-endif()
-
-set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
-
-if(CMAKE_COMPILER_IS_MINGW)
- set(MINGW 1)
-endif()
-set(CMAKE_CXX_COMPILER_ID_RUN 1)
-set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
-set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
-
-foreach (lang C OBJC OBJCXX)
- if (CMAKE_${lang}_COMPILER_ID_RUN)
- foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
- list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
- endforeach()
- endif()
-endforeach()
-
-set(CMAKE_CXX_LINKER_PREFERENCE 30)
-set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
-
-# Save compiler ABI information.
-set(CMAKE_CXX_SIZEOF_DATA_PTR "")
-set(CMAKE_CXX_COMPILER_ABI "")
-set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
-
-if(CMAKE_CXX_SIZEOF_DATA_PTR)
- set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
-endif()
-
-if(CMAKE_CXX_COMPILER_ABI)
- set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
-endif()
-
-if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
- set(CMAKE_LIBRARY_ARCHITECTURE "")
-endif()
-
-set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
-if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
- set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
-endif()
-
-
-
-
-
-set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/home/camh/Retro68-build/toolchain/m68k-apple-macos/include/c++/9.1.0;/home/camh/Retro68-build/toolchain/m68k-apple-macos/include/c++/9.1.0/m68k-apple-macos;/home/camh/Retro68-build/toolchain/m68k-apple-macos/include/c++/9.1.0/backward;/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include;/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed;/home/camh/Retro68-build/toolchain/m68k-apple-macos/include")
-set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc;c;retrocrt;Interface")
-set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0;/home/camh/Retro68-build/toolchain/m68k-apple-macos/lib")
-set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin b/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_C.bin
deleted file mode 100644
index e69de29..0000000
diff --git a/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/3.16.3/CMakeDetermineCompilerABI_CXX.bin
deleted file mode 100644
index e69de29..0000000
diff --git a/build/CMakeFiles/3.16.3/CMakeSystem.cmake b/build/CMakeFiles/3.16.3/CMakeSystem.cmake
deleted file mode 100644
index e32f5e6..0000000
--- a/build/CMakeFiles/3.16.3/CMakeSystem.cmake
+++ /dev/null
@@ -1,15 +0,0 @@
-set(CMAKE_HOST_SYSTEM "Linux-5.11.0-40-generic")
-set(CMAKE_HOST_SYSTEM_NAME "Linux")
-set(CMAKE_HOST_SYSTEM_VERSION "5.11.0-40-generic")
-set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
-
-include("/home/camh/Retro68-build/toolchain/m68k-apple-macos/cmake/retro68.toolchain.cmake")
-
-set(CMAKE_SYSTEM "Retro68-1")
-set(CMAKE_SYSTEM_NAME "Retro68")
-set(CMAKE_SYSTEM_VERSION "1")
-set(CMAKE_SYSTEM_PROCESSOR "")
-
-set(CMAKE_CROSSCOMPILING "TRUE")
-
-set(CMAKE_SYSTEM_LOADED 1)
diff --git a/build/CMakeFiles/3.16.3/CompilerIdC/.finf/a.out b/build/CMakeFiles/3.16.3/CompilerIdC/.finf/a.out
deleted file mode 100644
index 6d687eb..0000000
Binary files a/build/CMakeFiles/3.16.3/CompilerIdC/.finf/a.out and /dev/null differ
diff --git a/build/CMakeFiles/3.16.3/CompilerIdC/.rsrc/a.out b/build/CMakeFiles/3.16.3/CompilerIdC/.rsrc/a.out
deleted file mode 100644
index ba2a2f3..0000000
Binary files a/build/CMakeFiles/3.16.3/CompilerIdC/.rsrc/a.out and /dev/null differ
diff --git a/build/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c b/build/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c
deleted file mode 100644
index d884b50..0000000
--- a/build/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.c
+++ /dev/null
@@ -1,671 +0,0 @@
-#ifdef __cplusplus
-# error "A C++ compiler has been selected for C."
-#endif
-
-#if defined(__18CXX)
-# define ID_VOID_MAIN
-#endif
-#if defined(__CLASSIC_C__)
-/* cv-qualifiers did not exist in K&R C */
-# define const
-# define volatile
-#endif
-
-
-/* Version number components: V=Version, R=Revision, P=Patch
- Version date components: YYYY=Year, MM=Month, DD=Day */
-
-#if defined(__INTEL_COMPILER) || defined(__ICC)
-# define COMPILER_ID "Intel"
-# if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-# endif
-# if defined(__GNUC__)
-# define SIMULATE_ID "GNU"
-# endif
- /* __INTEL_COMPILER = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
-# if defined(__INTEL_COMPILER_UPDATE)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
-# else
-# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
-# endif
-# if defined(__INTEL_COMPILER_BUILD_DATE)
- /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
-# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
-# endif
-# if defined(_MSC_VER)
- /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# if defined(__GNUC__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-# elif defined(__GNUG__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-# endif
-# if defined(__GNUC_MINOR__)
-# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif defined(__PATHCC__)
-# define COMPILER_ID "PathScale"
-# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
-# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
-# if defined(__PATHCC_PATCHLEVEL__)
-# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
-# endif
-
-#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
-# define COMPILER_ID "Embarcadero"
-# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
-# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
-# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
-
-#elif defined(__BORLANDC__)
-# define COMPILER_ID "Borland"
- /* __BORLANDC__ = 0xVRR */
-# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
-# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
-
-#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
-# define COMPILER_ID "Watcom"
- /* __WATCOMC__ = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__WATCOMC__)
-# define COMPILER_ID "OpenWatcom"
- /* __WATCOMC__ = VVRP + 1100 */
-# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__SUNPRO_C)
-# define COMPILER_ID "SunPro"
-# if __SUNPRO_C >= 0x5100
- /* __SUNPRO_C = 0xVRRP */
-# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
-# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
-# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
-# else
- /* __SUNPRO_CC = 0xVRP */
-# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
-# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
-# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
-# endif
-
-#elif defined(__HP_cc)
-# define COMPILER_ID "HP"
- /* __HP_cc = VVRRPP */
-# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
-# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
-
-#elif defined(__DECC)
-# define COMPILER_ID "Compaq"
- /* __DECC_VER = VVRRTPPPP */
-# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
-# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
-# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
-
-#elif defined(__IBMC__) && defined(__COMPILER_VER__)
-# define COMPILER_ID "zOS"
- /* __IBMC__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
-
-#elif defined(__ibmxl__) && defined(__clang__)
-# define COMPILER_ID "XLClang"
-# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
-# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
-# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
-# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
-
-
-#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
-# define COMPILER_ID "XL"
- /* __IBMC__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
-
-#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
-# define COMPILER_ID "VisualAge"
- /* __IBMC__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
-
-#elif defined(__PGI)
-# define COMPILER_ID "PGI"
-# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
-# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
-# if defined(__PGIC_PATCHLEVEL__)
-# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
-# endif
-
-#elif defined(_CRAYC)
-# define COMPILER_ID "Cray"
-# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
-# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
-
-#elif defined(__TI_COMPILER_VERSION__)
-# define COMPILER_ID "TI"
- /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
-# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
-# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
-# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
-
-#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
-# define COMPILER_ID "Fujitsu"
-
-#elif defined(__ghs__)
-# define COMPILER_ID "GHS"
-/* __GHS_VERSION_NUMBER = VVVVRP */
-# ifdef __GHS_VERSION_NUMBER
-# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
-# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
-# endif
-
-#elif defined(__TINYC__)
-# define COMPILER_ID "TinyCC"
-
-#elif defined(__BCC__)
-# define COMPILER_ID "Bruce"
-
-#elif defined(__SCO_VERSION__)
-# define COMPILER_ID "SCO"
-
-#elif defined(__ARMCC_VERSION) && !defined(__clang__)
-# define COMPILER_ID "ARMCC"
-#if __ARMCC_VERSION >= 1000000
- /* __ARMCC_VERSION = VRRPPPP */
- # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
- # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
- # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
-#else
- /* __ARMCC_VERSION = VRPPPP */
- # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
- # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
- # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
-#endif
-
-
-#elif defined(__clang__) && defined(__apple_build_version__)
-# define COMPILER_ID "AppleClang"
-# if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
- /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
-
-#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
-# define COMPILER_ID "ARMClang"
- # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
- # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
- # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
-# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
-
-#elif defined(__clang__)
-# define COMPILER_ID "Clang"
-# if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
- /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-
-#elif defined(__GNUC__)
-# define COMPILER_ID "GNU"
-# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
-# if defined(__GNUC_MINOR__)
-# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif defined(_MSC_VER)
-# define COMPILER_ID "MSVC"
- /* _MSC_VER = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
-# if defined(_MSC_FULL_VER)
-# if _MSC_VER >= 1400
- /* _MSC_FULL_VER = VVRRPPPPP */
-# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
-# else
- /* _MSC_FULL_VER = VVRRPPPP */
-# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
-# endif
-# endif
-# if defined(_MSC_BUILD)
-# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
-# endif
-
-#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
-# define COMPILER_ID "ADSP"
-#if defined(__VISUALDSPVERSION__)
- /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
-# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
-# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
-# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
-#endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# define COMPILER_ID "IAR"
-# if defined(__VER__) && defined(__ICCARM__)
-# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
-# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
-# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
-# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__))
-# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
-# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
-# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
-# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# endif
-
-#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
-# define COMPILER_ID "SDCC"
-# if defined(__SDCC_VERSION_MAJOR)
-# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
-# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
-# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
-# else
- /* SDCC = VRP */
-# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
-# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
-# endif
-
-
-/* These compilers are either not known or too old to define an
- identification macro. Try to identify the platform and guess that
- it is the native compiler. */
-#elif defined(__hpux) || defined(__hpua)
-# define COMPILER_ID "HP"
-
-#else /* unknown compiler */
-# define COMPILER_ID ""
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
- getting matched. Store it in a pointer rather than an array
- because some compilers will just produce instructions to fill the
- array rather than assigning a pointer to a static array. */
-char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
-#ifdef SIMULATE_ID
-char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
-#endif
-
-#ifdef __QNXNTO__
-char const* qnxnto = "INFO" ":" "qnxnto[]";
-#endif
-
-#if defined(__CRAYXE) || defined(__CRAYXC)
-char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
-#endif
-
-#define STRINGIFY_HELPER(X) #X
-#define STRINGIFY(X) STRINGIFY_HELPER(X)
-
-/* Identify known platforms by name. */
-#if defined(__linux) || defined(__linux__) || defined(linux)
-# define PLATFORM_ID "Linux"
-
-#elif defined(__CYGWIN__)
-# define PLATFORM_ID "Cygwin"
-
-#elif defined(__MINGW32__)
-# define PLATFORM_ID "MinGW"
-
-#elif defined(__APPLE__)
-# define PLATFORM_ID "Darwin"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-# define PLATFORM_ID "Windows"
-
-#elif defined(__FreeBSD__) || defined(__FreeBSD)
-# define PLATFORM_ID "FreeBSD"
-
-#elif defined(__NetBSD__) || defined(__NetBSD)
-# define PLATFORM_ID "NetBSD"
-
-#elif defined(__OpenBSD__) || defined(__OPENBSD)
-# define PLATFORM_ID "OpenBSD"
-
-#elif defined(__sun) || defined(sun)
-# define PLATFORM_ID "SunOS"
-
-#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
-# define PLATFORM_ID "AIX"
-
-#elif defined(__hpux) || defined(__hpux__)
-# define PLATFORM_ID "HP-UX"
-
-#elif defined(__HAIKU__)
-# define PLATFORM_ID "Haiku"
-
-#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
-# define PLATFORM_ID "BeOS"
-
-#elif defined(__QNX__) || defined(__QNXNTO__)
-# define PLATFORM_ID "QNX"
-
-#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
-# define PLATFORM_ID "Tru64"
-
-#elif defined(__riscos) || defined(__riscos__)
-# define PLATFORM_ID "RISCos"
-
-#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
-# define PLATFORM_ID "SINIX"
-
-#elif defined(__UNIX_SV__)
-# define PLATFORM_ID "UNIX_SV"
-
-#elif defined(__bsdos__)
-# define PLATFORM_ID "BSDOS"
-
-#elif defined(_MPRAS) || defined(MPRAS)
-# define PLATFORM_ID "MP-RAS"
-
-#elif defined(__osf) || defined(__osf__)
-# define PLATFORM_ID "OSF1"
-
-#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
-# define PLATFORM_ID "SCO_SV"
-
-#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
-# define PLATFORM_ID "ULTRIX"
-
-#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
-# define PLATFORM_ID "Xenix"
-
-#elif defined(__WATCOMC__)
-# if defined(__LINUX__)
-# define PLATFORM_ID "Linux"
-
-# elif defined(__DOS__)
-# define PLATFORM_ID "DOS"
-
-# elif defined(__OS2__)
-# define PLATFORM_ID "OS2"
-
-# elif defined(__WINDOWS__)
-# define PLATFORM_ID "Windows3x"
-
-# else /* unknown platform */
-# define PLATFORM_ID
-# endif
-
-#elif defined(__INTEGRITY)
-# if defined(INT_178B)
-# define PLATFORM_ID "Integrity178"
-
-# else /* regular Integrity */
-# define PLATFORM_ID "Integrity"
-# endif
-
-#else /* unknown platform */
-# define PLATFORM_ID
-
-#endif
-
-/* For windows compilers MSVC and Intel we can determine
- the architecture of the compiler being used. This is because
- the compilers do not have flags that can change the architecture,
- but rather depend on which compiler is being used
-*/
-#if defined(_WIN32) && defined(_MSC_VER)
-# if defined(_M_IA64)
-# define ARCHITECTURE_ID "IA64"
-
-# elif defined(_M_X64) || defined(_M_AMD64)
-# define ARCHITECTURE_ID "x64"
-
-# elif defined(_M_IX86)
-# define ARCHITECTURE_ID "X86"
-
-# elif defined(_M_ARM64)
-# define ARCHITECTURE_ID "ARM64"
-
-# elif defined(_M_ARM)
-# if _M_ARM == 4
-# define ARCHITECTURE_ID "ARMV4I"
-# elif _M_ARM == 5
-# define ARCHITECTURE_ID "ARMV5I"
-# else
-# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
-# endif
-
-# elif defined(_M_MIPS)
-# define ARCHITECTURE_ID "MIPS"
-
-# elif defined(_M_SH)
-# define ARCHITECTURE_ID "SHx"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__WATCOMC__)
-# if defined(_M_I86)
-# define ARCHITECTURE_ID "I86"
-
-# elif defined(_M_IX86)
-# define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# if defined(__ICCARM__)
-# define ARCHITECTURE_ID "ARM"
-
-# elif defined(__ICCRX__)
-# define ARCHITECTURE_ID "RX"
-
-# elif defined(__ICCRH850__)
-# define ARCHITECTURE_ID "RH850"
-
-# elif defined(__ICCRL78__)
-# define ARCHITECTURE_ID "RL78"
-
-# elif defined(__ICCRISCV__)
-# define ARCHITECTURE_ID "RISCV"
-
-# elif defined(__ICCAVR__)
-# define ARCHITECTURE_ID "AVR"
-
-# elif defined(__ICC430__)
-# define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__ICCV850__)
-# define ARCHITECTURE_ID "V850"
-
-# elif defined(__ICC8051__)
-# define ARCHITECTURE_ID "8051"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__ghs__)
-# if defined(__PPC64__)
-# define ARCHITECTURE_ID "PPC64"
-
-# elif defined(__ppc__)
-# define ARCHITECTURE_ID "PPC"
-
-# elif defined(__ARM__)
-# define ARCHITECTURE_ID "ARM"
-
-# elif defined(__x86_64__)
-# define ARCHITECTURE_ID "x64"
-
-# elif defined(__i386__)
-# define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-#else
-# define ARCHITECTURE_ID
-#endif
-
-/* Convert integer to decimal digit literals. */
-#define DEC(n) \
- ('0' + (((n) / 10000000)%10)), \
- ('0' + (((n) / 1000000)%10)), \
- ('0' + (((n) / 100000)%10)), \
- ('0' + (((n) / 10000)%10)), \
- ('0' + (((n) / 1000)%10)), \
- ('0' + (((n) / 100)%10)), \
- ('0' + (((n) / 10)%10)), \
- ('0' + ((n) % 10))
-
-/* Convert integer to hex digit literals. */
-#define HEX(n) \
- ('0' + ((n)>>28 & 0xF)), \
- ('0' + ((n)>>24 & 0xF)), \
- ('0' + ((n)>>20 & 0xF)), \
- ('0' + ((n)>>16 & 0xF)), \
- ('0' + ((n)>>12 & 0xF)), \
- ('0' + ((n)>>8 & 0xF)), \
- ('0' + ((n)>>4 & 0xF)), \
- ('0' + ((n) & 0xF))
-
-/* Construct a string literal encoding the version number components. */
-#ifdef COMPILER_VERSION_MAJOR
-char const info_version[] = {
- 'I', 'N', 'F', 'O', ':',
- 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
- COMPILER_VERSION_MAJOR,
-# ifdef COMPILER_VERSION_MINOR
- '.', COMPILER_VERSION_MINOR,
-# ifdef COMPILER_VERSION_PATCH
- '.', COMPILER_VERSION_PATCH,
-# ifdef COMPILER_VERSION_TWEAK
- '.', COMPILER_VERSION_TWEAK,
-# endif
-# endif
-# endif
- ']','\0'};
-#endif
-
-/* Construct a string literal encoding the internal version number. */
-#ifdef COMPILER_VERSION_INTERNAL
-char const info_version_internal[] = {
- 'I', 'N', 'F', 'O', ':',
- 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
- 'i','n','t','e','r','n','a','l','[',
- COMPILER_VERSION_INTERNAL,']','\0'};
-#endif
-
-/* Construct a string literal encoding the version number components. */
-#ifdef SIMULATE_VERSION_MAJOR
-char const info_simulate_version[] = {
- 'I', 'N', 'F', 'O', ':',
- 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
- SIMULATE_VERSION_MAJOR,
-# ifdef SIMULATE_VERSION_MINOR
- '.', SIMULATE_VERSION_MINOR,
-# ifdef SIMULATE_VERSION_PATCH
- '.', SIMULATE_VERSION_PATCH,
-# ifdef SIMULATE_VERSION_TWEAK
- '.', SIMULATE_VERSION_TWEAK,
-# endif
-# endif
-# endif
- ']','\0'};
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
- getting matched. Store it in a pointer rather than an array
- because some compilers will just produce instructions to fill the
- array rather than assigning a pointer to a static array. */
-char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
-char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
-
-
-
-
-#if !defined(__STDC__)
-# if (defined(_MSC_VER) && !defined(__clang__)) \
- || (defined(__ibmxl__) || defined(__IBMC__))
-# define C_DIALECT "90"
-# else
-# define C_DIALECT
-# endif
-#elif __STDC_VERSION__ >= 201000L
-# define C_DIALECT "11"
-#elif __STDC_VERSION__ >= 199901L
-# define C_DIALECT "99"
-#else
-# define C_DIALECT "90"
-#endif
-const char* info_language_dialect_default =
- "INFO" ":" "dialect_default[" C_DIALECT "]";
-
-/*--------------------------------------------------------------------------*/
-
-#ifdef ID_VOID_MAIN
-void main() {}
-#else
-# if defined(__CLASSIC_C__)
-int main(argc, argv) int argc; char *argv[];
-# else
-int main(int argc, char* argv[])
-# endif
-{
- int require = 0;
- require += info_compiler[argc];
- require += info_platform[argc];
- require += info_arch[argc];
-#ifdef COMPILER_VERSION_MAJOR
- require += info_version[argc];
-#endif
-#ifdef COMPILER_VERSION_INTERNAL
- require += info_version_internal[argc];
-#endif
-#ifdef SIMULATE_ID
- require += info_simulate[argc];
-#endif
-#ifdef SIMULATE_VERSION_MAJOR
- require += info_simulate_version[argc];
-#endif
-#if defined(__CRAYXE) || defined(__CRAYXC)
- require += info_cray[argc];
-#endif
- require += info_language_dialect_default[argc];
- (void)argv;
- return require;
-}
-#endif
diff --git a/build/CMakeFiles/3.16.3/CompilerIdC/a.out b/build/CMakeFiles/3.16.3/CompilerIdC/a.out
deleted file mode 100644
index e69de29..0000000
diff --git a/build/CMakeFiles/3.16.3/CompilerIdC/a.out.gdb b/build/CMakeFiles/3.16.3/CompilerIdC/a.out.gdb
deleted file mode 100755
index 28a13e7..0000000
Binary files a/build/CMakeFiles/3.16.3/CompilerIdC/a.out.gdb and /dev/null differ
diff --git a/build/CMakeFiles/3.16.3/CompilerIdCXX/.finf/a.out b/build/CMakeFiles/3.16.3/CompilerIdCXX/.finf/a.out
deleted file mode 100644
index 6d687eb..0000000
Binary files a/build/CMakeFiles/3.16.3/CompilerIdCXX/.finf/a.out and /dev/null differ
diff --git a/build/CMakeFiles/3.16.3/CompilerIdCXX/.rsrc/a.out b/build/CMakeFiles/3.16.3/CompilerIdCXX/.rsrc/a.out
deleted file mode 100644
index b1abdf8..0000000
Binary files a/build/CMakeFiles/3.16.3/CompilerIdCXX/.rsrc/a.out and /dev/null differ
diff --git a/build/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
deleted file mode 100644
index 69cfdba..0000000
--- a/build/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
+++ /dev/null
@@ -1,660 +0,0 @@
-/* This source file must have a .cpp extension so that all C++ compilers
- recognize the extension without flags. Borland does not know .cxx for
- example. */
-#ifndef __cplusplus
-# error "A C compiler has been selected for C++."
-#endif
-
-
-/* Version number components: V=Version, R=Revision, P=Patch
- Version date components: YYYY=Year, MM=Month, DD=Day */
-
-#if defined(__COMO__)
-# define COMPILER_ID "Comeau"
- /* __COMO_VERSION__ = VRR */
-# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
-# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
-
-#elif defined(__INTEL_COMPILER) || defined(__ICC)
-# define COMPILER_ID "Intel"
-# if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-# endif
-# if defined(__GNUC__)
-# define SIMULATE_ID "GNU"
-# endif
- /* __INTEL_COMPILER = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
-# if defined(__INTEL_COMPILER_UPDATE)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
-# else
-# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
-# endif
-# if defined(__INTEL_COMPILER_BUILD_DATE)
- /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
-# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
-# endif
-# if defined(_MSC_VER)
- /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# if defined(__GNUC__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-# elif defined(__GNUG__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-# endif
-# if defined(__GNUC_MINOR__)
-# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif defined(__PATHCC__)
-# define COMPILER_ID "PathScale"
-# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
-# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
-# if defined(__PATHCC_PATCHLEVEL__)
-# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
-# endif
-
-#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
-# define COMPILER_ID "Embarcadero"
-# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
-# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
-# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
-
-#elif defined(__BORLANDC__)
-# define COMPILER_ID "Borland"
- /* __BORLANDC__ = 0xVRR */
-# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
-# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
-
-#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
-# define COMPILER_ID "Watcom"
- /* __WATCOMC__ = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__WATCOMC__)
-# define COMPILER_ID "OpenWatcom"
- /* __WATCOMC__ = VVRP + 1100 */
-# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__SUNPRO_CC)
-# define COMPILER_ID "SunPro"
-# if __SUNPRO_CC >= 0x5100
- /* __SUNPRO_CC = 0xVRRP */
-# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
-# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
-# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
-# else
- /* __SUNPRO_CC = 0xVRP */
-# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
-# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
-# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
-# endif
-
-#elif defined(__HP_aCC)
-# define COMPILER_ID "HP"
- /* __HP_aCC = VVRRPP */
-# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
-# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
-
-#elif defined(__DECCXX)
-# define COMPILER_ID "Compaq"
- /* __DECCXX_VER = VVRRTPPPP */
-# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
-# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
-# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
-
-#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
-# define COMPILER_ID "zOS"
- /* __IBMCPP__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
-
-#elif defined(__ibmxl__) && defined(__clang__)
-# define COMPILER_ID "XLClang"
-# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
-# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
-# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
-# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
-
-
-#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
-# define COMPILER_ID "XL"
- /* __IBMCPP__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
-
-#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
-# define COMPILER_ID "VisualAge"
- /* __IBMCPP__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
-
-#elif defined(__PGI)
-# define COMPILER_ID "PGI"
-# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
-# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
-# if defined(__PGIC_PATCHLEVEL__)
-# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
-# endif
-
-#elif defined(_CRAYC)
-# define COMPILER_ID "Cray"
-# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
-# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
-
-#elif defined(__TI_COMPILER_VERSION__)
-# define COMPILER_ID "TI"
- /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
-# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
-# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
-# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
-
-#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
-# define COMPILER_ID "Fujitsu"
-
-#elif defined(__ghs__)
-# define COMPILER_ID "GHS"
-/* __GHS_VERSION_NUMBER = VVVVRP */
-# ifdef __GHS_VERSION_NUMBER
-# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
-# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
-# endif
-
-#elif defined(__SCO_VERSION__)
-# define COMPILER_ID "SCO"
-
-#elif defined(__ARMCC_VERSION) && !defined(__clang__)
-# define COMPILER_ID "ARMCC"
-#if __ARMCC_VERSION >= 1000000
- /* __ARMCC_VERSION = VRRPPPP */
- # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
- # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
- # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
-#else
- /* __ARMCC_VERSION = VRPPPP */
- # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
- # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
- # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
-#endif
-
-
-#elif defined(__clang__) && defined(__apple_build_version__)
-# define COMPILER_ID "AppleClang"
-# if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
- /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
-
-#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
-# define COMPILER_ID "ARMClang"
- # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
- # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
- # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000)
-# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
-
-#elif defined(__clang__)
-# define COMPILER_ID "Clang"
-# if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
- /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-
-#elif defined(__GNUC__) || defined(__GNUG__)
-# define COMPILER_ID "GNU"
-# if defined(__GNUC__)
-# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
-# else
-# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
-# endif
-# if defined(__GNUC_MINOR__)
-# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif defined(_MSC_VER)
-# define COMPILER_ID "MSVC"
- /* _MSC_VER = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
-# if defined(_MSC_FULL_VER)
-# if _MSC_VER >= 1400
- /* _MSC_FULL_VER = VVRRPPPPP */
-# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
-# else
- /* _MSC_FULL_VER = VVRRPPPP */
-# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
-# endif
-# endif
-# if defined(_MSC_BUILD)
-# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
-# endif
-
-#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
-# define COMPILER_ID "ADSP"
-#if defined(__VISUALDSPVERSION__)
- /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
-# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
-# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
-# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF)
-#endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# define COMPILER_ID "IAR"
-# if defined(__VER__) && defined(__ICCARM__)
-# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
-# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
-# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
-# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__))
-# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
-# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
-# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
-# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# endif
-
-
-/* These compilers are either not known or too old to define an
- identification macro. Try to identify the platform and guess that
- it is the native compiler. */
-#elif defined(__hpux) || defined(__hpua)
-# define COMPILER_ID "HP"
-
-#else /* unknown compiler */
-# define COMPILER_ID ""
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
- getting matched. Store it in a pointer rather than an array
- because some compilers will just produce instructions to fill the
- array rather than assigning a pointer to a static array. */
-char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
-#ifdef SIMULATE_ID
-char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
-#endif
-
-#ifdef __QNXNTO__
-char const* qnxnto = "INFO" ":" "qnxnto[]";
-#endif
-
-#if defined(__CRAYXE) || defined(__CRAYXC)
-char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
-#endif
-
-#define STRINGIFY_HELPER(X) #X
-#define STRINGIFY(X) STRINGIFY_HELPER(X)
-
-/* Identify known platforms by name. */
-#if defined(__linux) || defined(__linux__) || defined(linux)
-# define PLATFORM_ID "Linux"
-
-#elif defined(__CYGWIN__)
-# define PLATFORM_ID "Cygwin"
-
-#elif defined(__MINGW32__)
-# define PLATFORM_ID "MinGW"
-
-#elif defined(__APPLE__)
-# define PLATFORM_ID "Darwin"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-# define PLATFORM_ID "Windows"
-
-#elif defined(__FreeBSD__) || defined(__FreeBSD)
-# define PLATFORM_ID "FreeBSD"
-
-#elif defined(__NetBSD__) || defined(__NetBSD)
-# define PLATFORM_ID "NetBSD"
-
-#elif defined(__OpenBSD__) || defined(__OPENBSD)
-# define PLATFORM_ID "OpenBSD"
-
-#elif defined(__sun) || defined(sun)
-# define PLATFORM_ID "SunOS"
-
-#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
-# define PLATFORM_ID "AIX"
-
-#elif defined(__hpux) || defined(__hpux__)
-# define PLATFORM_ID "HP-UX"
-
-#elif defined(__HAIKU__)
-# define PLATFORM_ID "Haiku"
-
-#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
-# define PLATFORM_ID "BeOS"
-
-#elif defined(__QNX__) || defined(__QNXNTO__)
-# define PLATFORM_ID "QNX"
-
-#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
-# define PLATFORM_ID "Tru64"
-
-#elif defined(__riscos) || defined(__riscos__)
-# define PLATFORM_ID "RISCos"
-
-#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
-# define PLATFORM_ID "SINIX"
-
-#elif defined(__UNIX_SV__)
-# define PLATFORM_ID "UNIX_SV"
-
-#elif defined(__bsdos__)
-# define PLATFORM_ID "BSDOS"
-
-#elif defined(_MPRAS) || defined(MPRAS)
-# define PLATFORM_ID "MP-RAS"
-
-#elif defined(__osf) || defined(__osf__)
-# define PLATFORM_ID "OSF1"
-
-#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
-# define PLATFORM_ID "SCO_SV"
-
-#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
-# define PLATFORM_ID "ULTRIX"
-
-#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
-# define PLATFORM_ID "Xenix"
-
-#elif defined(__WATCOMC__)
-# if defined(__LINUX__)
-# define PLATFORM_ID "Linux"
-
-# elif defined(__DOS__)
-# define PLATFORM_ID "DOS"
-
-# elif defined(__OS2__)
-# define PLATFORM_ID "OS2"
-
-# elif defined(__WINDOWS__)
-# define PLATFORM_ID "Windows3x"
-
-# else /* unknown platform */
-# define PLATFORM_ID
-# endif
-
-#elif defined(__INTEGRITY)
-# if defined(INT_178B)
-# define PLATFORM_ID "Integrity178"
-
-# else /* regular Integrity */
-# define PLATFORM_ID "Integrity"
-# endif
-
-#else /* unknown platform */
-# define PLATFORM_ID
-
-#endif
-
-/* For windows compilers MSVC and Intel we can determine
- the architecture of the compiler being used. This is because
- the compilers do not have flags that can change the architecture,
- but rather depend on which compiler is being used
-*/
-#if defined(_WIN32) && defined(_MSC_VER)
-# if defined(_M_IA64)
-# define ARCHITECTURE_ID "IA64"
-
-# elif defined(_M_X64) || defined(_M_AMD64)
-# define ARCHITECTURE_ID "x64"
-
-# elif defined(_M_IX86)
-# define ARCHITECTURE_ID "X86"
-
-# elif defined(_M_ARM64)
-# define ARCHITECTURE_ID "ARM64"
-
-# elif defined(_M_ARM)
-# if _M_ARM == 4
-# define ARCHITECTURE_ID "ARMV4I"
-# elif _M_ARM == 5
-# define ARCHITECTURE_ID "ARMV5I"
-# else
-# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
-# endif
-
-# elif defined(_M_MIPS)
-# define ARCHITECTURE_ID "MIPS"
-
-# elif defined(_M_SH)
-# define ARCHITECTURE_ID "SHx"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__WATCOMC__)
-# if defined(_M_I86)
-# define ARCHITECTURE_ID "I86"
-
-# elif defined(_M_IX86)
-# define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# if defined(__ICCARM__)
-# define ARCHITECTURE_ID "ARM"
-
-# elif defined(__ICCRX__)
-# define ARCHITECTURE_ID "RX"
-
-# elif defined(__ICCRH850__)
-# define ARCHITECTURE_ID "RH850"
-
-# elif defined(__ICCRL78__)
-# define ARCHITECTURE_ID "RL78"
-
-# elif defined(__ICCRISCV__)
-# define ARCHITECTURE_ID "RISCV"
-
-# elif defined(__ICCAVR__)
-# define ARCHITECTURE_ID "AVR"
-
-# elif defined(__ICC430__)
-# define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__ICCV850__)
-# define ARCHITECTURE_ID "V850"
-
-# elif defined(__ICC8051__)
-# define ARCHITECTURE_ID "8051"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__ghs__)
-# if defined(__PPC64__)
-# define ARCHITECTURE_ID "PPC64"
-
-# elif defined(__ppc__)
-# define ARCHITECTURE_ID "PPC"
-
-# elif defined(__ARM__)
-# define ARCHITECTURE_ID "ARM"
-
-# elif defined(__x86_64__)
-# define ARCHITECTURE_ID "x64"
-
-# elif defined(__i386__)
-# define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-# define ARCHITECTURE_ID ""
-# endif
-#else
-# define ARCHITECTURE_ID
-#endif
-
-/* Convert integer to decimal digit literals. */
-#define DEC(n) \
- ('0' + (((n) / 10000000)%10)), \
- ('0' + (((n) / 1000000)%10)), \
- ('0' + (((n) / 100000)%10)), \
- ('0' + (((n) / 10000)%10)), \
- ('0' + (((n) / 1000)%10)), \
- ('0' + (((n) / 100)%10)), \
- ('0' + (((n) / 10)%10)), \
- ('0' + ((n) % 10))
-
-/* Convert integer to hex digit literals. */
-#define HEX(n) \
- ('0' + ((n)>>28 & 0xF)), \
- ('0' + ((n)>>24 & 0xF)), \
- ('0' + ((n)>>20 & 0xF)), \
- ('0' + ((n)>>16 & 0xF)), \
- ('0' + ((n)>>12 & 0xF)), \
- ('0' + ((n)>>8 & 0xF)), \
- ('0' + ((n)>>4 & 0xF)), \
- ('0' + ((n) & 0xF))
-
-/* Construct a string literal encoding the version number components. */
-#ifdef COMPILER_VERSION_MAJOR
-char const info_version[] = {
- 'I', 'N', 'F', 'O', ':',
- 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
- COMPILER_VERSION_MAJOR,
-# ifdef COMPILER_VERSION_MINOR
- '.', COMPILER_VERSION_MINOR,
-# ifdef COMPILER_VERSION_PATCH
- '.', COMPILER_VERSION_PATCH,
-# ifdef COMPILER_VERSION_TWEAK
- '.', COMPILER_VERSION_TWEAK,
-# endif
-# endif
-# endif
- ']','\0'};
-#endif
-
-/* Construct a string literal encoding the internal version number. */
-#ifdef COMPILER_VERSION_INTERNAL
-char const info_version_internal[] = {
- 'I', 'N', 'F', 'O', ':',
- 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
- 'i','n','t','e','r','n','a','l','[',
- COMPILER_VERSION_INTERNAL,']','\0'};
-#endif
-
-/* Construct a string literal encoding the version number components. */
-#ifdef SIMULATE_VERSION_MAJOR
-char const info_simulate_version[] = {
- 'I', 'N', 'F', 'O', ':',
- 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
- SIMULATE_VERSION_MAJOR,
-# ifdef SIMULATE_VERSION_MINOR
- '.', SIMULATE_VERSION_MINOR,
-# ifdef SIMULATE_VERSION_PATCH
- '.', SIMULATE_VERSION_PATCH,
-# ifdef SIMULATE_VERSION_TWEAK
- '.', SIMULATE_VERSION_TWEAK,
-# endif
-# endif
-# endif
- ']','\0'};
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
- getting matched. Store it in a pointer rather than an array
- because some compilers will just produce instructions to fill the
- array rather than assigning a pointer to a static array. */
-char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
-char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
-
-
-
-
-#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
-# if defined(__INTEL_CXX11_MODE__)
-# if defined(__cpp_aggregate_nsdmi)
-# define CXX_STD 201402L
-# else
-# define CXX_STD 201103L
-# endif
-# else
-# define CXX_STD 199711L
-# endif
-#elif defined(_MSC_VER) && defined(_MSVC_LANG)
-# define CXX_STD _MSVC_LANG
-#else
-# define CXX_STD __cplusplus
-#endif
-
-const char* info_language_dialect_default = "INFO" ":" "dialect_default["
-#if CXX_STD > 201703L
- "20"
-#elif CXX_STD >= 201703L
- "17"
-#elif CXX_STD >= 201402L
- "14"
-#elif CXX_STD >= 201103L
- "11"
-#else
- "98"
-#endif
-"]";
-
-/*--------------------------------------------------------------------------*/
-
-int main(int argc, char* argv[])
-{
- int require = 0;
- require += info_compiler[argc];
- require += info_platform[argc];
-#ifdef COMPILER_VERSION_MAJOR
- require += info_version[argc];
-#endif
-#ifdef COMPILER_VERSION_INTERNAL
- require += info_version_internal[argc];
-#endif
-#ifdef SIMULATE_ID
- require += info_simulate[argc];
-#endif
-#ifdef SIMULATE_VERSION_MAJOR
- require += info_simulate_version[argc];
-#endif
-#if defined(__CRAYXE) || defined(__CRAYXC)
- require += info_cray[argc];
-#endif
- require += info_language_dialect_default[argc];
- (void)argv;
- return require;
-}
diff --git a/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out b/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out
deleted file mode 100644
index e69de29..0000000
diff --git a/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out.gdb b/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out.gdb
deleted file mode 100755
index 4f1f132..0000000
Binary files a/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out.gdb and /dev/null differ
diff --git a/build/CMakeFiles/CMakeDirectoryInformation.cmake b/build/CMakeFiles/CMakeDirectoryInformation.cmake
deleted file mode 100644
index cb19425..0000000
--- a/build/CMakeFiles/CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
-# Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/camh/Documents/Retro68kApps/NuklearQuickDraw")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build")
-
-# Force unix paths in dependencies.
-set(CMAKE_FORCE_UNIX_PATHS 1)
-
-
-# The C and CXX include file regular expressions for this directory.
-set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/build/CMakeFiles/CMakeError.log b/build/CMakeFiles/CMakeError.log
deleted file mode 100644
index 6c0b15a..0000000
--- a/build/CMakeFiles/CMakeError.log
+++ /dev/null
@@ -1,4 +0,0 @@
-The C compiler identification could not be found in "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/3.16.3/CompilerIdC/a.out"
-
-The CXX compiler identification could not be found in "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out"
-
diff --git a/build/CMakeFiles/CMakeOutput.log b/build/CMakeFiles/CMakeOutput.log
deleted file mode 100644
index f5428af..0000000
--- a/build/CMakeFiles/CMakeOutput.log
+++ /dev/null
@@ -1,364 +0,0 @@
-The target system is: Retro68 - 1 -
-The host system is: Linux - 5.11.0-40-generic - x86_64
-Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
-Compiler: /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc
-Build flags:
-Id flags:
-
-The output was:
-0
-
-
-Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
-
-Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out.gdb"
-
-The C compiler identification is GNU, found in "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/3.16.3/CompilerIdC/a.out.gdb"
-
-Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
-Compiler: /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++
-Build flags:
-Id flags:
-
-The output was:
-0
-
-
-Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
-
-Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out.gdb"
-
-The CXX compiler identification is GNU, found in "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/3.16.3/CompilerIdCXX/a.out.gdb"
-
-Determining if the C compiler works passed with the following output:
-Change Dir: /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp
-
-Run Build Command(s):/usr/bin/make cmTC_d209b/fast && /usr/bin/make -f CMakeFiles/cmTC_d209b.dir/build.make CMakeFiles/cmTC_d209b.dir/build
-make[1]: Entering directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp'
-Building C object CMakeFiles/cmTC_d209b.dir/testCCompiler.c.obj
-/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc -o CMakeFiles/cmTC_d209b.dir/testCCompiler.c.obj -c /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp/testCCompiler.c
-Linking C executable cmTC_d209b
-/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d209b.dir/link.txt --verbose=1
-/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc CMakeFiles/cmTC_d209b.dir/testCCompiler.c.obj -o cmTC_d209b
-make[1]: Leaving directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp'
-
-
-
-Detecting C compiler ABI info compiled with the following output:
-Change Dir: /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp
-
-Run Build Command(s):/usr/bin/make cmTC_f2ad3/fast && /usr/bin/make -f CMakeFiles/cmTC_f2ad3.dir/build.make CMakeFiles/cmTC_f2ad3.dir/build
-make[1]: Entering directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp'
-Building C object CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj
-/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc -v -o CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj -c /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c
-Using built-in specs.
-COLLECT_GCC=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc
-Target: m68k-apple-macos
-Configured with: /home/camh/Retro68/gcc/configure --target=m68k-apple-macos --prefix=/home/camh/Retro68-build/toolchain/ --enable-languages=c,c++ --with-arch=m68k --with-cpu=m68000 --disable-libssp MAKEINFO=missing
-Thread model: single
-gcc version 9.1.0 (GCC)
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj' '-c' '-mcpu=68000'
- /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/cc1 -quiet -v -Wno-trigraphs /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mcpu=68000 -auxbase-strip CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj -version -o /tmp/ccR5oK71.s
-GNU C17 (GCC) version 9.1.0 (m68k-apple-macos)
- compiled by GNU C version 9.3.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version none
-GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
-ignoring nonexistent directory "/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/sys-include"
-#include "..." search starts here:
-#include <...> search starts here:
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include
-End of search list.
-GNU C17 (GCC) version 9.1.0 (m68k-apple-macos)
- compiled by GNU C version 9.3.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version none
-GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
-Compiler executable checksum: 68baab70957df643ffb4605a09112146
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj' '-c' '-mcpu=68000'
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/as -mcpu=68000 -o CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj /tmp/ccR5oK71.s
-COMPILER_PATH=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/
-LIBRARY_PATH=/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib/
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj' '-c' '-mcpu=68000'
-Linking C executable cmTC_f2ad3
-/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f2ad3.dir/link.txt --verbose=1
-/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc -v CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj -o cmTC_f2ad3
-Using built-in specs.
-COLLECT_GCC=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc
-COLLECT_LTO_WRAPPER=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper
-Target: m68k-apple-macos
-Configured with: /home/camh/Retro68/gcc/configure --target=m68k-apple-macos --prefix=/home/camh/Retro68-build/toolchain/ --enable-languages=c,c++ --with-arch=m68k --with-cpu=m68000 --disable-libssp MAKEINFO=missing
-Thread model: single
-gcc version 9.1.0 (GCC)
-COMPILER_PATH=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/
-LIBRARY_PATH=/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib/
-COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f2ad3' '-mcpu=68000'
- /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/collect2 -plugin /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/liblto_plugin.so -plugin-opt=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccUBj7Uv.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lretrocrt -plugin-opt=-pass-through=-lInterface -elf2mac -q -undefined=_consolewrite -o cmTC_f2ad3 -L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0 -L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj --start-group -lgcc -lc -lretrocrt -lInterface --end-group
-COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f2ad3' '-mcpu=68000'
-make[1]: Leaving directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp'
-
-
-
-Parsed C implicit include dir info from above output: rv=done
- found start of include info
- found start of implicit include info
- add: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include]
- add: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed]
- add: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include]
- end of search list found
- collapse include dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include] ==> [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include]
- collapse include dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed] ==> [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed]
- collapse include dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include] ==> [/home/camh/Retro68-build/toolchain/m68k-apple-macos/include]
- implicit include dirs: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include;/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed;/home/camh/Retro68-build/toolchain/m68k-apple-macos/include]
-
-
-Parsed C implicit link information from above output:
- link line regex: [^( *|.*[/\])(m68k-apple-macos-ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
- ignore line: [Change Dir: /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp]
- ignore line: []
- ignore line: [Run Build Command(s):/usr/bin/make cmTC_f2ad3/fast && /usr/bin/make -f CMakeFiles/cmTC_f2ad3.dir/build.make CMakeFiles/cmTC_f2ad3.dir/build]
- ignore line: [make[1]: Entering directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp']
- ignore line: [Building C object CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj]
- ignore line: [/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc -v -o CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj -c /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c]
- ignore line: [Using built-in specs.]
- ignore line: [COLLECT_GCC=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc]
- ignore line: [Target: m68k-apple-macos]
- ignore line: [Configured with: /home/camh/Retro68/gcc/configure --target=m68k-apple-macos --prefix=/home/camh/Retro68-build/toolchain/ --enable-languages=c c++ --with-arch=m68k --with-cpu=m68000 --disable-libssp MAKEINFO=missing]
- ignore line: [Thread model: single]
- ignore line: [gcc version 9.1.0 (GCC) ]
- ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj' '-c' '-mcpu=68000']
- ignore line: [ /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/cc1 -quiet -v -Wno-trigraphs /usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mcpu=68000 -auxbase-strip CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj -version -o /tmp/ccR5oK71.s]
- ignore line: [GNU C17 (GCC) version 9.1.0 (m68k-apple-macos)]
- ignore line: [ compiled by GNU C version 9.3.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version none]
- ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
- ignore line: [ignoring nonexistent directory "/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/sys-include"]
- ignore line: [#include "..." search starts here:]
- ignore line: [#include <...> search starts here:]
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include]
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed]
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include]
- ignore line: [End of search list.]
- ignore line: [GNU C17 (GCC) version 9.1.0 (m68k-apple-macos)]
- ignore line: [ compiled by GNU C version 9.3.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version none]
- ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
- ignore line: [Compiler executable checksum: 68baab70957df643ffb4605a09112146]
- ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj' '-c' '-mcpu=68000']
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/as -mcpu=68000 -o CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj /tmp/ccR5oK71.s]
- ignore line: [COMPILER_PATH=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/]
- ignore line: [LIBRARY_PATH=/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib/]
- ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj' '-c' '-mcpu=68000']
- ignore line: [Linking C executable cmTC_f2ad3]
- ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f2ad3.dir/link.txt --verbose=1]
- ignore line: [/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc -v CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj -o cmTC_f2ad3 ]
- ignore line: [Using built-in specs.]
- ignore line: [COLLECT_GCC=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc]
- ignore line: [COLLECT_LTO_WRAPPER=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper]
- ignore line: [Target: m68k-apple-macos]
- ignore line: [Configured with: /home/camh/Retro68/gcc/configure --target=m68k-apple-macos --prefix=/home/camh/Retro68-build/toolchain/ --enable-languages=c c++ --with-arch=m68k --with-cpu=m68000 --disable-libssp MAKEINFO=missing]
- ignore line: [Thread model: single]
- ignore line: [gcc version 9.1.0 (GCC) ]
- ignore line: [COMPILER_PATH=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/]
- ignore line: [LIBRARY_PATH=/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib/]
- ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f2ad3' '-mcpu=68000']
- link line: [ /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/collect2 -plugin /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/liblto_plugin.so -plugin-opt=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccUBj7Uv.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lretrocrt -plugin-opt=-pass-through=-lInterface -elf2mac -q -undefined=_consolewrite -o cmTC_f2ad3 -L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0 -L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj --start-group -lgcc -lc -lretrocrt -lInterface --end-group]
- arg [/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/collect2] ==> ignore
- arg [-plugin] ==> ignore
- arg [/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/liblto_plugin.so] ==> ignore
- arg [-plugin-opt=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper] ==> ignore
- arg [-plugin-opt=-fresolution=/tmp/ccUBj7Uv.res] ==> ignore
- arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
- arg [-plugin-opt=-pass-through=-lc] ==> ignore
- arg [-plugin-opt=-pass-through=-lretrocrt] ==> ignore
- arg [-plugin-opt=-pass-through=-lInterface] ==> ignore
- arg [-elf2mac] ==> ignore
- arg [-q] ==> ignore
- arg [-undefined=_consolewrite] ==> ignore
- arg [-o] ==> ignore
- arg [cmTC_f2ad3] ==> ignore
- arg [-L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0] ==> dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0]
- arg [-L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib] ==> dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib]
- arg [CMakeFiles/cmTC_f2ad3.dir/CMakeCCompilerABI.c.obj] ==> ignore
- arg [--start-group] ==> ignore
- arg [-lgcc] ==> lib [gcc]
- arg [-lc] ==> lib [c]
- arg [-lretrocrt] ==> lib [retrocrt]
- arg [-lInterface] ==> lib [Interface]
- arg [--end-group] ==> ignore
- collapse library dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0] ==> [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0]
- collapse library dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib] ==> [/home/camh/Retro68-build/toolchain/m68k-apple-macos/lib]
- implicit libs: [gcc;c;retrocrt;Interface]
- implicit dirs: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0;/home/camh/Retro68-build/toolchain/m68k-apple-macos/lib]
- implicit fwks: []
-
-
-Determining if the CXX compiler works passed with the following output:
-Change Dir: /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp
-
-Run Build Command(s):/usr/bin/make cmTC_b0b45/fast && /usr/bin/make -f CMakeFiles/cmTC_b0b45.dir/build.make CMakeFiles/cmTC_b0b45.dir/build
-make[1]: Entering directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp'
-Building CXX object CMakeFiles/cmTC_b0b45.dir/testCXXCompiler.cxx.obj
-/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++ -o CMakeFiles/cmTC_b0b45.dir/testCXXCompiler.cxx.obj -c /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
-Linking CXX executable cmTC_b0b45
-/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b0b45.dir/link.txt --verbose=1
-/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++ CMakeFiles/cmTC_b0b45.dir/testCXXCompiler.cxx.obj -o cmTC_b0b45
-make[1]: Leaving directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp'
-
-
-
-Detecting CXX compiler ABI info compiled with the following output:
-Change Dir: /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp
-
-Run Build Command(s):/usr/bin/make cmTC_e45aa/fast && /usr/bin/make -f CMakeFiles/cmTC_e45aa.dir/build.make CMakeFiles/cmTC_e45aa.dir/build
-make[1]: Entering directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp'
-Building CXX object CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj
-/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++ -v -o CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp
-Using built-in specs.
-COLLECT_GCC=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++
-Target: m68k-apple-macos
-Configured with: /home/camh/Retro68/gcc/configure --target=m68k-apple-macos --prefix=/home/camh/Retro68-build/toolchain/ --enable-languages=c,c++ --with-arch=m68k --with-cpu=m68000 --disable-libssp MAKEINFO=missing
-Thread model: single
-gcc version 9.1.0 (GCC)
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mcpu=68000'
- /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/cc1plus -quiet -v -Wno-trigraphs /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mcpu=68000 -auxbase-strip CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj -version -o /tmp/cc3vCbPa.s
-GNU C++14 (GCC) version 9.1.0 (m68k-apple-macos)
- compiled by GNU C version 9.3.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version none
-GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
-ignoring nonexistent directory "/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/sys-include"
-#include "..." search starts here:
-#include <...> search starts here:
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0/m68k-apple-macos
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0/backward
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include
-End of search list.
-GNU C++14 (GCC) version 9.1.0 (m68k-apple-macos)
- compiled by GNU C version 9.3.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version none
-GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
-Compiler executable checksum: 5b31867a30cfa7e65d4bce12c39f8a21
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mcpu=68000'
- /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/as -mcpu=68000 -o CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj /tmp/cc3vCbPa.s
-COMPILER_PATH=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/
-LIBRARY_PATH=/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib/
-COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mcpu=68000'
-Linking CXX executable cmTC_e45aa
-/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e45aa.dir/link.txt --verbose=1
-/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++ -v CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj -o cmTC_e45aa
-Using built-in specs.
-COLLECT_GCC=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++
-COLLECT_LTO_WRAPPER=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper
-Target: m68k-apple-macos
-Configured with: /home/camh/Retro68/gcc/configure --target=m68k-apple-macos --prefix=/home/camh/Retro68-build/toolchain/ --enable-languages=c,c++ --with-arch=m68k --with-cpu=m68000 --disable-libssp MAKEINFO=missing
-Thread model: single
-gcc version 9.1.0 (GCC)
-COMPILER_PATH=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/
-LIBRARY_PATH=/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib/
-COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e45aa' '-mcpu=68000'
- /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/collect2 -plugin /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/liblto_plugin.so -plugin-opt=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccpTTxYC.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lretrocrt -plugin-opt=-pass-through=-lInterface -elf2mac -q -undefined=_consolewrite -o cmTC_e45aa -L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0 -L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj -lstdc++ -lm --start-group -lgcc -lc -lretrocrt -lInterface --end-group
-COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e45aa' '-mcpu=68000'
-make[1]: Leaving directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp'
-
-
-
-Parsed CXX implicit include dir info from above output: rv=done
- found start of include info
- found start of implicit include info
- add: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0]
- add: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0/m68k-apple-macos]
- add: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0/backward]
- add: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include]
- add: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed]
- add: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include]
- end of search list found
- collapse include dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0] ==> [/home/camh/Retro68-build/toolchain/m68k-apple-macos/include/c++/9.1.0]
- collapse include dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0/m68k-apple-macos] ==> [/home/camh/Retro68-build/toolchain/m68k-apple-macos/include/c++/9.1.0/m68k-apple-macos]
- collapse include dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0/backward] ==> [/home/camh/Retro68-build/toolchain/m68k-apple-macos/include/c++/9.1.0/backward]
- collapse include dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include] ==> [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include]
- collapse include dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed] ==> [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed]
- collapse include dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include] ==> [/home/camh/Retro68-build/toolchain/m68k-apple-macos/include]
- implicit include dirs: [/home/camh/Retro68-build/toolchain/m68k-apple-macos/include/c++/9.1.0;/home/camh/Retro68-build/toolchain/m68k-apple-macos/include/c++/9.1.0/m68k-apple-macos;/home/camh/Retro68-build/toolchain/m68k-apple-macos/include/c++/9.1.0/backward;/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include;/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed;/home/camh/Retro68-build/toolchain/m68k-apple-macos/include]
-
-
-Parsed CXX implicit link information from above output:
- link line regex: [^( *|.*[/\])(m68k-apple-macos-ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
- ignore line: [Change Dir: /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp]
- ignore line: []
- ignore line: [Run Build Command(s):/usr/bin/make cmTC_e45aa/fast && /usr/bin/make -f CMakeFiles/cmTC_e45aa.dir/build.make CMakeFiles/cmTC_e45aa.dir/build]
- ignore line: [make[1]: Entering directory '/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/CMakeTmp']
- ignore line: [Building CXX object CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj]
- ignore line: [/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++ -v -o CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj -c /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp]
- ignore line: [Using built-in specs.]
- ignore line: [COLLECT_GCC=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++]
- ignore line: [Target: m68k-apple-macos]
- ignore line: [Configured with: /home/camh/Retro68/gcc/configure --target=m68k-apple-macos --prefix=/home/camh/Retro68-build/toolchain/ --enable-languages=c c++ --with-arch=m68k --with-cpu=m68000 --disable-libssp MAKEINFO=missing]
- ignore line: [Thread model: single]
- ignore line: [gcc version 9.1.0 (GCC) ]
- ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mcpu=68000']
- ignore line: [ /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/cc1plus -quiet -v -Wno-trigraphs /usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mcpu=68000 -auxbase-strip CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj -version -o /tmp/cc3vCbPa.s]
- ignore line: [GNU C++14 (GCC) version 9.1.0 (m68k-apple-macos)]
- ignore line: [ compiled by GNU C version 9.3.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version none]
- ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
- ignore line: [ignoring nonexistent directory "/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/sys-include"]
- ignore line: [#include "..." search starts here:]
- ignore line: [#include <...> search starts here:]
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0]
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0/m68k-apple-macos]
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include/c++/9.1.0/backward]
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include]
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/include-fixed]
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/include]
- ignore line: [End of search list.]
- ignore line: [GNU C++14 (GCC) version 9.1.0 (m68k-apple-macos)]
- ignore line: [ compiled by GNU C version 9.3.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version none]
- ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
- ignore line: [Compiler executable checksum: 5b31867a30cfa7e65d4bce12c39f8a21]
- ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mcpu=68000']
- ignore line: [ /home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/as -mcpu=68000 -o CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj /tmp/cc3vCbPa.s]
- ignore line: [COMPILER_PATH=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/]
- ignore line: [LIBRARY_PATH=/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib/]
- ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj' '-c' '-mcpu=68000']
- ignore line: [Linking CXX executable cmTC_e45aa]
- ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e45aa.dir/link.txt --verbose=1]
- ignore line: [/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++ -v CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj -o cmTC_e45aa ]
- ignore line: [Using built-in specs.]
- ignore line: [COLLECT_GCC=/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-g++]
- ignore line: [COLLECT_LTO_WRAPPER=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper]
- ignore line: [Target: m68k-apple-macos]
- ignore line: [Configured with: /home/camh/Retro68/gcc/configure --target=m68k-apple-macos --prefix=/home/camh/Retro68-build/toolchain/ --enable-languages=c c++ --with-arch=m68k --with-cpu=m68000 --disable-libssp MAKEINFO=missing]
- ignore line: [Thread model: single]
- ignore line: [gcc version 9.1.0 (GCC) ]
- ignore line: [COMPILER_PATH=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/bin/]
- ignore line: [LIBRARY_PATH=/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/:/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib/]
- ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e45aa' '-mcpu=68000']
- link line: [ /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/collect2 -plugin /home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/liblto_plugin.so -plugin-opt=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccpTTxYC.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lretrocrt -plugin-opt=-pass-through=-lInterface -elf2mac -q -undefined=_consolewrite -o cmTC_e45aa -L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0 -L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj -lstdc++ -lm --start-group -lgcc -lc -lretrocrt -lInterface --end-group]
- arg [/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/collect2] ==> ignore
- arg [-plugin] ==> ignore
- arg [/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/liblto_plugin.so] ==> ignore
- arg [-plugin-opt=/home/camh/Retro68-build/toolchain/libexec/gcc/m68k-apple-macos/9.1.0/lto-wrapper] ==> ignore
- arg [-plugin-opt=-fresolution=/tmp/ccpTTxYC.res] ==> ignore
- arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
- arg [-plugin-opt=-pass-through=-lc] ==> ignore
- arg [-plugin-opt=-pass-through=-lretrocrt] ==> ignore
- arg [-plugin-opt=-pass-through=-lInterface] ==> ignore
- arg [-elf2mac] ==> ignore
- arg [-q] ==> ignore
- arg [-undefined=_consolewrite] ==> ignore
- arg [-o] ==> ignore
- arg [cmTC_e45aa] ==> ignore
- arg [-L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0] ==> dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0]
- arg [-L/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib] ==> dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib]
- arg [CMakeFiles/cmTC_e45aa.dir/CMakeCXXCompilerABI.cpp.obj] ==> ignore
- arg [-lstdc++] ==> lib [stdc++]
- arg [-lm] ==> lib [m]
- arg [--start-group] ==> ignore
- arg [-lgcc] ==> lib [gcc]
- arg [-lc] ==> lib [c]
- arg [-lretrocrt] ==> lib [retrocrt]
- arg [-lInterface] ==> lib [Interface]
- arg [--end-group] ==> ignore
- collapse library dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0] ==> [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0]
- collapse library dir [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0/../../../../m68k-apple-macos/lib] ==> [/home/camh/Retro68-build/toolchain/m68k-apple-macos/lib]
- implicit libs: [stdc++;m;gcc;c;retrocrt;Interface]
- implicit dirs: [/home/camh/Retro68-build/toolchain/lib/gcc/m68k-apple-macos/9.1.0;/home/camh/Retro68-build/toolchain/m68k-apple-macos/lib]
- implicit fwks: []
-
-
diff --git a/build/CMakeFiles/CMakeRuleHashes.txt b/build/CMakeFiles/CMakeRuleHashes.txt
deleted file mode 100644
index cdaa29a..0000000
--- a/build/CMakeFiles/CMakeRuleHashes.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# Hashes of file build rules.
-8ffde4ac1cdc1218469a04ac02fc18d8 CMakeFiles/NuklearQuickDraw_APPL
-329185643b4f6900eadfaea9a548f63a NuklearQuickDraw.bin
-91b2346eaa6612a55994cce77404dcb4 Sample.r.rsrc.bin
diff --git a/build/CMakeFiles/Makefile.cmake b/build/CMakeFiles/Makefile.cmake
deleted file mode 100644
index 1a7279e..0000000
--- a/build/CMakeFiles/Makefile.cmake
+++ /dev/null
@@ -1,119 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
-# The generator used is:
-set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
-
-# The top level Makefile was generated from the following files:
-set(CMAKE_MAKEFILE_DEPENDS
- "CMakeCache.txt"
- "../CMakeLists.txt"
- "CMakeFiles/3.16.3/CMakeCCompiler.cmake"
- "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
- "CMakeFiles/3.16.3/CMakeSystem.cmake"
- "/home/camh/Retro68-build/toolchain/m68k-apple-macos/cmake/Platform/Retro68.cmake"
- "/home/camh/Retro68-build/toolchain/m68k-apple-macos/cmake/add_application.cmake"
- "/home/camh/Retro68-build/toolchain/m68k-apple-macos/cmake/retro68.toolchain.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeCCompiler.cmake.in"
- "/usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c"
- "/usr/share/cmake-3.16/Modules/CMakeCInformation.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in"
- "/usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp"
- "/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeParseArguments.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeSystem.cmake.in"
- "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake"
- "/usr/share/cmake-3.16/Modules/CMakeUnixFindMake.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/HP-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/XL-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
- "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake"
- "/usr/share/cmake-3.16/Modules/Internal/FeatureTesting.cmake"
- )
-
-# The corresponding makefile is:
-set(CMAKE_MAKEFILE_OUTPUTS
- "Makefile"
- "CMakeFiles/cmake.check_cache"
- )
-
-# Byproducts of CMake generate step:
-set(CMAKE_MAKEFILE_PRODUCTS
- "CMakeFiles/3.16.3/CMakeSystem.cmake"
- "CMakeFiles/3.16.3/CMakeCCompiler.cmake"
- "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
- "CMakeFiles/3.16.3/CMakeCCompiler.cmake"
- "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
- "CMakeFiles/CMakeDirectoryInformation.cmake"
- )
-
-# Dependency information for all targets:
-set(CMAKE_DEPEND_INFO_FILES
- "CMakeFiles/NuklearQuickDraw_APPL.dir/DependInfo.cmake"
- "CMakeFiles/NuklearQuickDraw.dir/DependInfo.cmake"
- )
diff --git a/build/CMakeFiles/Makefile2 b/build/CMakeFiles/Makefile2
deleted file mode 100644
index 9ea45ed..0000000
--- a/build/CMakeFiles/Makefile2
+++ /dev/null
@@ -1,135 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
-# Default target executed when no arguments are given to make.
-default_target: all
-
-.PHONY : default_target
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-
-# Remove some rules from gmake that .SUFFIXES does not remove.
-SUFFIXES =
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-
-# Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-
-# A target that is always out of date.
-cmake_force:
-
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E remove -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /home/camh/Documents/Retro68kApps/NuklearQuickDraw
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build
-
-#=============================================================================
-# Directory level rules for the build root directory
-
-# The main recursive "all" target.
-all: CMakeFiles/NuklearQuickDraw_APPL.dir/all
-all: CMakeFiles/NuklearQuickDraw.dir/all
-
-.PHONY : all
-
-# The main recursive "preinstall" target.
-preinstall:
-
-.PHONY : preinstall
-
-# The main recursive "clean" target.
-clean: CMakeFiles/NuklearQuickDraw_APPL.dir/clean
-clean: CMakeFiles/NuklearQuickDraw.dir/clean
-
-.PHONY : clean
-
-#=============================================================================
-# Target rules for target CMakeFiles/NuklearQuickDraw_APPL.dir
-
-# All Build rule for target.
-CMakeFiles/NuklearQuickDraw_APPL.dir/all: CMakeFiles/NuklearQuickDraw.dir/all
- $(MAKE) -f CMakeFiles/NuklearQuickDraw_APPL.dir/build.make CMakeFiles/NuklearQuickDraw_APPL.dir/depend
- $(MAKE) -f CMakeFiles/NuklearQuickDraw_APPL.dir/build.make CMakeFiles/NuklearQuickDraw_APPL.dir/build
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles --progress-num=5,6 "Built target NuklearQuickDraw_APPL"
-.PHONY : CMakeFiles/NuklearQuickDraw_APPL.dir/all
-
-# Build rule for subdir invocation for target.
-CMakeFiles/NuklearQuickDraw_APPL.dir/rule: cmake_check_build_system
- $(CMAKE_COMMAND) -E cmake_progress_start /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles 6
- $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/NuklearQuickDraw_APPL.dir/all
- $(CMAKE_COMMAND) -E cmake_progress_start /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles 0
-.PHONY : CMakeFiles/NuklearQuickDraw_APPL.dir/rule
-
-# Convenience name for target.
-NuklearQuickDraw_APPL: CMakeFiles/NuklearQuickDraw_APPL.dir/rule
-
-.PHONY : NuklearQuickDraw_APPL
-
-# clean rule for target.
-CMakeFiles/NuklearQuickDraw_APPL.dir/clean:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw_APPL.dir/build.make CMakeFiles/NuklearQuickDraw_APPL.dir/clean
-.PHONY : CMakeFiles/NuklearQuickDraw_APPL.dir/clean
-
-#=============================================================================
-# Target rules for target CMakeFiles/NuklearQuickDraw.dir
-
-# All Build rule for target.
-CMakeFiles/NuklearQuickDraw.dir/all:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/depend
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/build
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles --progress-num=1,2,3,4 "Built target NuklearQuickDraw"
-.PHONY : CMakeFiles/NuklearQuickDraw.dir/all
-
-# Build rule for subdir invocation for target.
-CMakeFiles/NuklearQuickDraw.dir/rule: cmake_check_build_system
- $(CMAKE_COMMAND) -E cmake_progress_start /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles 4
- $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/NuklearQuickDraw.dir/all
- $(CMAKE_COMMAND) -E cmake_progress_start /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles 0
-.PHONY : CMakeFiles/NuklearQuickDraw.dir/rule
-
-# Convenience name for target.
-NuklearQuickDraw: CMakeFiles/NuklearQuickDraw.dir/rule
-
-.PHONY : NuklearQuickDraw
-
-# clean rule for target.
-CMakeFiles/NuklearQuickDraw.dir/clean:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/clean
-.PHONY : CMakeFiles/NuklearQuickDraw.dir/clean
-
-#=============================================================================
-# Special targets to cleanup operation of make.
-
-# Special rule to run CMake to check the build system integrity.
-# No rule that depends on this can have commands that come from listfiles
-# because they might be regenerated.
-cmake_check_build_system:
- $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-.PHONY : cmake_check_build_system
-
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/C.includecache b/build/CMakeFiles/NuklearQuickDraw.dir/C.includecache
deleted file mode 100644
index 924d4c8..0000000
--- a/build/CMakeFiles/NuklearQuickDraw.dir/C.includecache
+++ /dev/null
@@ -1,148 +0,0 @@
-#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">])
-
-#IncludeRegexScan: ^.*$
-
-#IncludeRegexComplain: ^$
-
-#IncludeRegexTransform:
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.c
-Types.h
--
-Resources.h
--
-Quickdraw.h
--
-Fonts.h
--
-Events.h
--
-Windows.h
--
-Menus.h
--
-TextEdit.h
--
-Dialogs.h
--
-ToolUtils.h
--
-Memory.h
--
-Sound.h
--
-SegLoad.h
--
-Files.h
--
-OSUtils.h
--
-DiskInit.h
--
-Packages.h
--
-Traps.h
--
-Serial.h
--
-Devices.h
--
-stdio.h
--
-string.h
--
-Sample.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.h
-SerialHelper.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.h
-Quickdraw.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/Quickdraw.h
-output_js.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/output_js.h
-coprocessorjs.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.h
-nuklear_app.c
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/nuklear_app.c
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.h
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.c
-SerialHelper.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.h
-stdio.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/stdio.h
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.h
-Serial.h
--
-Devices.h
--
-stdio.h
--
-string.h
--
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.c
-stdio.h
--
-Serial.h
--
-math.h
--
-Devices.h
--
-string.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/string.h
-stdbool.h
--
-time.h
--
-SerialHelper.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.h
-coprocessorjs.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.h
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.h
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/nuklear.h
-stdarg.h
--
-sal.h
--
-stdint.h
--
-stdbool.h
--
-stdlib.h
--
-stdio.h
--
-stdarg.h
--
-assert.h
--
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/nuklear_app.c
-Types.h
--
-nuklear.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/nuklear.h
-nuklear_quickdraw.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/nuklear_quickdraw.h
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/nuklear_quickdraw.h
-MacTypes.h
--
-Types.h
--
-Quickdraw.h
--
-Scrap.h
--
-Serial.h
--
-SerialHelper.h
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.h
-
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/output_js.h
-
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/DependInfo.cmake b/build/CMakeFiles/NuklearQuickDraw.dir/DependInfo.cmake
deleted file mode 100644
index d5c9ed1..0000000
--- a/build/CMakeFiles/NuklearQuickDraw.dir/DependInfo.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- "C"
- )
-# The set of files for implicit dependencies of each language:
-set(CMAKE_DEPENDS_CHECK_C
- "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.c" "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj"
- "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.c" "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj"
- "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.c" "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj"
- )
-set(CMAKE_C_COMPILER_ID "GNU")
-
-# The include file search paths:
-set(CMAKE_C_TARGET_INCLUDE_PATH
- )
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj b/build/CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj
deleted file mode 100644
index c049f3f..0000000
Binary files a/build/CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj and /dev/null differ
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj b/build/CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj
deleted file mode 100644
index eaf9f08..0000000
Binary files a/build/CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj and /dev/null differ
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/build.make b/build/CMakeFiles/NuklearQuickDraw.dir/build.make
deleted file mode 100644
index e16b342..0000000
--- a/build/CMakeFiles/NuklearQuickDraw.dir/build.make
+++ /dev/null
@@ -1,128 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-
-# Remove some rules from gmake that .SUFFIXES does not remove.
-SUFFIXES =
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-
-# Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-
-# A target that is always out of date.
-cmake_force:
-
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E remove -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /home/camh/Documents/Retro68kApps/NuklearQuickDraw
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build
-
-# Include any dependencies generated for this target.
-include CMakeFiles/NuklearQuickDraw.dir/depend.make
-
-# Include the progress variables for this target.
-include CMakeFiles/NuklearQuickDraw.dir/progress.make
-
-# Include the compile flags for this target's objects.
-include CMakeFiles/NuklearQuickDraw.dir/flags.make
-
-CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj: CMakeFiles/NuklearQuickDraw.dir/flags.make
-CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj: ../SerialHelper.c
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj"
- /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj -c /home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.c
-
-CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.i"
- /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.c > CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.i
-
-CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.s"
- /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.c -o CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.s
-
-CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj: CMakeFiles/NuklearQuickDraw.dir/flags.make
-CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj: ../coprocessorjs.c
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj"
- /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj -c /home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.c
-
-CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.i"
- /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.c > CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.i
-
-CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.s"
- /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.c -o CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.s
-
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: CMakeFiles/NuklearQuickDraw.dir/flags.make
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: ../Sample.c
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj"
- /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj -c /home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.c
-
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.i: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/NuklearQuickDraw.dir/Sample.c.i"
- /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.c > CMakeFiles/NuklearQuickDraw.dir/Sample.c.i
-
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.s: cmake_force
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/NuklearQuickDraw.dir/Sample.c.s"
- /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.c -o CMakeFiles/NuklearQuickDraw.dir/Sample.c.s
-
-# Object files for target NuklearQuickDraw
-NuklearQuickDraw_OBJECTS = \
-"CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj" \
-"CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj" \
-"CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj"
-
-# External object files for target NuklearQuickDraw
-NuklearQuickDraw_EXTERNAL_OBJECTS =
-
-NuklearQuickDraw.code.bin: CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj
-NuklearQuickDraw.code.bin: CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj
-NuklearQuickDraw.code.bin: CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj
-NuklearQuickDraw.code.bin: CMakeFiles/NuklearQuickDraw.dir/build.make
-NuklearQuickDraw.code.bin: CMakeFiles/NuklearQuickDraw.dir/link.txt
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Linking C executable NuklearQuickDraw.code.bin"
- $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/NuklearQuickDraw.dir/link.txt --verbose=$(VERBOSE)
-
-# Rule to build all files generated by this target.
-CMakeFiles/NuklearQuickDraw.dir/build: NuklearQuickDraw.code.bin
-
-.PHONY : CMakeFiles/NuklearQuickDraw.dir/build
-
-CMakeFiles/NuklearQuickDraw.dir/clean:
- $(CMAKE_COMMAND) -P CMakeFiles/NuklearQuickDraw.dir/cmake_clean.cmake
-.PHONY : CMakeFiles/NuklearQuickDraw.dir/clean
-
-CMakeFiles/NuklearQuickDraw.dir/depend:
- cd /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/camh/Documents/Retro68kApps/NuklearQuickDraw /home/camh/Documents/Retro68kApps/NuklearQuickDraw /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/NuklearQuickDraw.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : CMakeFiles/NuklearQuickDraw.dir/depend
-
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/cmake_clean.cmake b/build/CMakeFiles/NuklearQuickDraw.dir/cmake_clean.cmake
deleted file mode 100644
index 3e269c8..0000000
--- a/build/CMakeFiles/NuklearQuickDraw.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-file(REMOVE_RECURSE
- "CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj"
- "CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj"
- "CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj"
- "NuklearQuickDraw.code.bin"
- "NuklearQuickDraw.code.bin.pdb"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang C)
- include(CMakeFiles/NuklearQuickDraw.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj b/build/CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj
deleted file mode 100644
index d4a8b7b..0000000
Binary files a/build/CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj and /dev/null differ
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/depend.internal b/build/CMakeFiles/NuklearQuickDraw.dir/depend.internal
deleted file mode 100644
index 2eb63b7..0000000
--- a/build/CMakeFiles/NuklearQuickDraw.dir/depend.internal
+++ /dev/null
@@ -1,19 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.c
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.h
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.h
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.h
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/nuklear.h
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/nuklear_app.c
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/nuklear_quickdraw.h
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/output_js.h
-CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.c
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.h
-CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/SerialHelper.h
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.c
- /home/camh/Documents/Retro68kApps/NuklearQuickDraw/coprocessorjs.h
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/depend.make b/build/CMakeFiles/NuklearQuickDraw.dir/depend.make
deleted file mode 100644
index 410f332..0000000
--- a/build/CMakeFiles/NuklearQuickDraw.dir/depend.make
+++ /dev/null
@@ -1,19 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: ../Sample.c
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: ../Sample.h
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: ../SerialHelper.h
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: ../coprocessorjs.h
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: ../nuklear.h
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: ../nuklear_app.c
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: ../nuklear_quickdraw.h
-CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj: ../output_js.h
-
-CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj: ../SerialHelper.c
-CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj: ../SerialHelper.h
-
-CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj: ../SerialHelper.h
-CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj: ../coprocessorjs.c
-CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj: ../coprocessorjs.h
-
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/flags.make b/build/CMakeFiles/NuklearQuickDraw.dir/flags.make
deleted file mode 100644
index cf8207c..0000000
--- a/build/CMakeFiles/NuklearQuickDraw.dir/flags.make
+++ /dev/null
@@ -1,10 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
-# compile C with /home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc
-C_FLAGS =
-
-C_DEFINES =
-
-C_INCLUDES =
-
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/link.txt b/build/CMakeFiles/NuklearQuickDraw.dir/link.txt
deleted file mode 100644
index f1afeca..0000000
--- a/build/CMakeFiles/NuklearQuickDraw.dir/link.txt
+++ /dev/null
@@ -1 +0,0 @@
-/home/camh/Retro68-build/toolchain/bin/m68k-apple-macos-gcc CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj -o NuklearQuickDraw.code.bin
diff --git a/build/CMakeFiles/NuklearQuickDraw.dir/progress.make b/build/CMakeFiles/NuklearQuickDraw.dir/progress.make
deleted file mode 100644
index a69a57e..0000000
--- a/build/CMakeFiles/NuklearQuickDraw.dir/progress.make
+++ /dev/null
@@ -1,5 +0,0 @@
-CMAKE_PROGRESS_1 = 1
-CMAKE_PROGRESS_2 = 2
-CMAKE_PROGRESS_3 = 3
-CMAKE_PROGRESS_4 = 4
-
diff --git a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/DependInfo.cmake b/build/CMakeFiles/NuklearQuickDraw_APPL.dir/DependInfo.cmake
deleted file mode 100644
index d413eb4..0000000
--- a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/DependInfo.cmake
+++ /dev/null
@@ -1,20 +0,0 @@
-# The set of languages for which implicit dependencies are needed:
-set(CMAKE_DEPENDS_LANGUAGES
- )
-# The set of files for implicit dependencies of each language:
-
-# Pairs of files generated by the same build rule.
-set(CMAKE_MULTIPLE_OUTPUT_PAIRS
- "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/%NuklearQuickDraw.ad" "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/NuklearQuickDraw.bin"
- "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/NuklearQuickDraw.APPL" "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/NuklearQuickDraw.bin"
- "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/NuklearQuickDraw.ad" "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/NuklearQuickDraw.bin"
- "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/NuklearQuickDraw.dsk" "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/NuklearQuickDraw.bin"
- )
-
-
-# Targets to which this target links.
-set(CMAKE_TARGET_LINKED_INFO_FILES
- )
-
-# Fortran module output directory.
-set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/build.make b/build/CMakeFiles/NuklearQuickDraw_APPL.dir/build.make
deleted file mode 100644
index d77f086..0000000
--- a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/build.make
+++ /dev/null
@@ -1,103 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
-# Delete rule output on recipe failure.
-.DELETE_ON_ERROR:
-
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-
-# Remove some rules from gmake that .SUFFIXES does not remove.
-SUFFIXES =
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-
-# Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-
-# A target that is always out of date.
-cmake_force:
-
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E remove -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /home/camh/Documents/Retro68kApps/NuklearQuickDraw
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build
-
-# Utility rule file for NuklearQuickDraw_APPL.
-
-# Include the progress variables for this target.
-include CMakeFiles/NuklearQuickDraw_APPL.dir/progress.make
-
-CMakeFiles/NuklearQuickDraw_APPL: NuklearQuickDraw.bin
-
-
-NuklearQuickDraw.bin: NuklearQuickDraw.code.bin
-NuklearQuickDraw.bin: Sample.r.rsrc.bin
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating NuklearQuickDraw.bin, NuklearQuickDraw.APPL, NuklearQuickDraw.dsk, NuklearQuickDraw.ad, %NuklearQuickDraw.ad"
- /home/camh/Retro68-build/toolchain/bin/Rez /home/camh/Retro68-build/toolchain/m68k-apple-macos/RIncludes/Retro68APPL.r -I/home/camh/Retro68-build/toolchain/m68k-apple-macos/RIncludes --copy NuklearQuickDraw.code.bin -o NuklearQuickDraw.bin -t APPL -c ???? --cc NuklearQuickDraw.dsk --cc NuklearQuickDraw.APPL --cc %NuklearQuickDraw.ad /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/Sample.r.rsrc.bin
-
-NuklearQuickDraw.APPL: NuklearQuickDraw.bin
- @$(CMAKE_COMMAND) -E touch_nocreate NuklearQuickDraw.APPL
-
-NuklearQuickDraw.dsk: NuklearQuickDraw.bin
- @$(CMAKE_COMMAND) -E touch_nocreate NuklearQuickDraw.dsk
-
-NuklearQuickDraw.ad: NuklearQuickDraw.bin
- @$(CMAKE_COMMAND) -E touch_nocreate NuklearQuickDraw.ad
-
-%NuklearQuickDraw.ad: NuklearQuickDraw.bin
- @$(CMAKE_COMMAND) -E touch_nocreate %NuklearQuickDraw.ad
-
-Sample.r.rsrc.bin: ../Sample.r
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Generating Sample.r.rsrc.bin"
- /home/camh/Retro68-build/toolchain/bin/Rez /home/camh/Documents/Retro68kApps/NuklearQuickDraw/Sample.r -I /home/camh/Retro68-build/toolchain/m68k-apple-macos/RIncludes -o Sample.r.rsrc.bin
-
-NuklearQuickDraw_APPL: CMakeFiles/NuklearQuickDraw_APPL
-NuklearQuickDraw_APPL: NuklearQuickDraw.bin
-NuklearQuickDraw_APPL: NuklearQuickDraw.APPL
-NuklearQuickDraw_APPL: NuklearQuickDraw.dsk
-NuklearQuickDraw_APPL: NuklearQuickDraw.ad
-NuklearQuickDraw_APPL: %NuklearQuickDraw.ad
-NuklearQuickDraw_APPL: Sample.r.rsrc.bin
-NuklearQuickDraw_APPL: CMakeFiles/NuklearQuickDraw_APPL.dir/build.make
-
-.PHONY : NuklearQuickDraw_APPL
-
-# Rule to build all files generated by this target.
-CMakeFiles/NuklearQuickDraw_APPL.dir/build: NuklearQuickDraw_APPL
-
-.PHONY : CMakeFiles/NuklearQuickDraw_APPL.dir/build
-
-CMakeFiles/NuklearQuickDraw_APPL.dir/clean:
- $(CMAKE_COMMAND) -P CMakeFiles/NuklearQuickDraw_APPL.dir/cmake_clean.cmake
-.PHONY : CMakeFiles/NuklearQuickDraw_APPL.dir/clean
-
-CMakeFiles/NuklearQuickDraw_APPL.dir/depend:
- cd /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/camh/Documents/Retro68kApps/NuklearQuickDraw /home/camh/Documents/Retro68kApps/NuklearQuickDraw /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/NuklearQuickDraw_APPL.dir/DependInfo.cmake --color=$(COLOR)
-.PHONY : CMakeFiles/NuklearQuickDraw_APPL.dir/depend
-
diff --git a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/cmake_clean.cmake b/build/CMakeFiles/NuklearQuickDraw_APPL.dir/cmake_clean.cmake
deleted file mode 100644
index 5bd5f9d..0000000
--- a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/cmake_clean.cmake
+++ /dev/null
@@ -1,14 +0,0 @@
-file(REMOVE_RECURSE
- "%NuklearQuickDraw.ad"
- "CMakeFiles/NuklearQuickDraw_APPL"
- "NuklearQuickDraw.APPL"
- "NuklearQuickDraw.ad"
- "NuklearQuickDraw.bin"
- "NuklearQuickDraw.dsk"
- "Sample.r.rsrc.bin"
-)
-
-# Per-language clean rules from dependency scanning.
-foreach(lang )
- include(CMakeFiles/NuklearQuickDraw_APPL.dir/cmake_clean_${lang}.cmake OPTIONAL)
-endforeach()
diff --git a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/depend.internal b/build/CMakeFiles/NuklearQuickDraw_APPL.dir/depend.internal
deleted file mode 100644
index f647855..0000000
--- a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/depend.internal
+++ /dev/null
@@ -1,3 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
diff --git a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/depend.make b/build/CMakeFiles/NuklearQuickDraw_APPL.dir/depend.make
deleted file mode 100644
index f647855..0000000
--- a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/depend.make
+++ /dev/null
@@ -1,3 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
diff --git a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/progress.make b/build/CMakeFiles/NuklearQuickDraw_APPL.dir/progress.make
deleted file mode 100644
index 3a86673..0000000
--- a/build/CMakeFiles/NuklearQuickDraw_APPL.dir/progress.make
+++ /dev/null
@@ -1,3 +0,0 @@
-CMAKE_PROGRESS_1 = 5
-CMAKE_PROGRESS_2 = 6
-
diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt
deleted file mode 100644
index b4bcd82..0000000
--- a/build/CMakeFiles/TargetDirectories.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/rebuild_cache.dir
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/edit_cache.dir
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/NuklearQuickDraw_APPL.dir
-/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/NuklearQuickDraw.dir
diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache
deleted file mode 100644
index 3dccd73..0000000
--- a/build/CMakeFiles/cmake.check_cache
+++ /dev/null
@@ -1 +0,0 @@
-# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/build/CMakeFiles/progress.marks b/build/CMakeFiles/progress.marks
deleted file mode 100644
index 1e8b314..0000000
--- a/build/CMakeFiles/progress.marks
+++ /dev/null
@@ -1 +0,0 @@
-6
diff --git a/build/Makefile b/build/Makefile
deleted file mode 100644
index 367597f..0000000
--- a/build/Makefile
+++ /dev/null
@@ -1,252 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.16
-
-# Default target executed when no arguments are given to make.
-default_target: all
-
-.PHONY : default_target
-
-# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-.NOTPARALLEL:
-
-
-#=============================================================================
-# Special targets provided by cmake.
-
-# Disable implicit rules so canonical targets will work.
-.SUFFIXES:
-
-
-# Remove some rules from gmake that .SUFFIXES does not remove.
-SUFFIXES =
-
-.SUFFIXES: .hpux_make_needs_suffix_list
-
-
-# Suppress display of executed commands.
-$(VERBOSE).SILENT:
-
-
-# A target that is always out of date.
-cmake_force:
-
-.PHONY : cmake_force
-
-#=============================================================================
-# Set environment variables for the build.
-
-# The shell in which to execute make rules.
-SHELL = /bin/sh
-
-# The CMake executable.
-CMAKE_COMMAND = /usr/bin/cmake
-
-# The command to remove a file.
-RM = /usr/bin/cmake -E remove -f
-
-# Escaping for special characters.
-EQUALS = =
-
-# The top-level source directory on which CMake was run.
-CMAKE_SOURCE_DIR = /home/camh/Documents/Retro68kApps/NuklearQuickDraw
-
-# The top-level build directory on which CMake was run.
-CMAKE_BINARY_DIR = /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build
-
-#=============================================================================
-# Targets provided globally by CMake.
-
-# Special rule for the target rebuild_cache
-rebuild_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
- /usr/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-.PHONY : rebuild_cache
-
-# Special rule for the target rebuild_cache
-rebuild_cache/fast: rebuild_cache
-
-.PHONY : rebuild_cache/fast
-
-# Special rule for the target edit_cache
-edit_cache:
- @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
- /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
-.PHONY : edit_cache
-
-# Special rule for the target edit_cache
-edit_cache/fast: edit_cache
-
-.PHONY : edit_cache/fast
-
-# The main all target
-all: cmake_check_build_system
- $(CMAKE_COMMAND) -E cmake_progress_start /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles/progress.marks
- $(MAKE) -f CMakeFiles/Makefile2 all
- $(CMAKE_COMMAND) -E cmake_progress_start /home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/CMakeFiles 0
-.PHONY : all
-
-# The main clean target
-clean:
- $(MAKE) -f CMakeFiles/Makefile2 clean
-.PHONY : clean
-
-# The main clean target
-clean/fast: clean
-
-.PHONY : clean/fast
-
-# Prepare targets for installation.
-preinstall: all
- $(MAKE) -f CMakeFiles/Makefile2 preinstall
-.PHONY : preinstall
-
-# Prepare targets for installation.
-preinstall/fast:
- $(MAKE) -f CMakeFiles/Makefile2 preinstall
-.PHONY : preinstall/fast
-
-# clear depends
-depend:
- $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-.PHONY : depend
-
-#=============================================================================
-# Target rules for targets named NuklearQuickDraw_APPL
-
-# Build rule for target.
-NuklearQuickDraw_APPL: cmake_check_build_system
- $(MAKE) -f CMakeFiles/Makefile2 NuklearQuickDraw_APPL
-.PHONY : NuklearQuickDraw_APPL
-
-# fast build rule for target.
-NuklearQuickDraw_APPL/fast:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw_APPL.dir/build.make CMakeFiles/NuklearQuickDraw_APPL.dir/build
-.PHONY : NuklearQuickDraw_APPL/fast
-
-#=============================================================================
-# Target rules for targets named NuklearQuickDraw
-
-# Build rule for target.
-NuklearQuickDraw: cmake_check_build_system
- $(MAKE) -f CMakeFiles/Makefile2 NuklearQuickDraw
-.PHONY : NuklearQuickDraw
-
-# fast build rule for target.
-NuklearQuickDraw/fast:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/build
-.PHONY : NuklearQuickDraw/fast
-
-Sample.obj: Sample.c.obj
-
-.PHONY : Sample.obj
-
-# target to build an object file
-Sample.c.obj:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/Sample.c.obj
-.PHONY : Sample.c.obj
-
-Sample.i: Sample.c.i
-
-.PHONY : Sample.i
-
-# target to preprocess a source file
-Sample.c.i:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/Sample.c.i
-.PHONY : Sample.c.i
-
-Sample.s: Sample.c.s
-
-.PHONY : Sample.s
-
-# target to generate assembly for a file
-Sample.c.s:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/Sample.c.s
-.PHONY : Sample.c.s
-
-SerialHelper.obj: SerialHelper.c.obj
-
-.PHONY : SerialHelper.obj
-
-# target to build an object file
-SerialHelper.c.obj:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.obj
-.PHONY : SerialHelper.c.obj
-
-SerialHelper.i: SerialHelper.c.i
-
-.PHONY : SerialHelper.i
-
-# target to preprocess a source file
-SerialHelper.c.i:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.i
-.PHONY : SerialHelper.c.i
-
-SerialHelper.s: SerialHelper.c.s
-
-.PHONY : SerialHelper.s
-
-# target to generate assembly for a file
-SerialHelper.c.s:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/SerialHelper.c.s
-.PHONY : SerialHelper.c.s
-
-coprocessorjs.obj: coprocessorjs.c.obj
-
-.PHONY : coprocessorjs.obj
-
-# target to build an object file
-coprocessorjs.c.obj:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.obj
-.PHONY : coprocessorjs.c.obj
-
-coprocessorjs.i: coprocessorjs.c.i
-
-.PHONY : coprocessorjs.i
-
-# target to preprocess a source file
-coprocessorjs.c.i:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.i
-.PHONY : coprocessorjs.c.i
-
-coprocessorjs.s: coprocessorjs.c.s
-
-.PHONY : coprocessorjs.s
-
-# target to generate assembly for a file
-coprocessorjs.c.s:
- $(MAKE) -f CMakeFiles/NuklearQuickDraw.dir/build.make CMakeFiles/NuklearQuickDraw.dir/coprocessorjs.c.s
-.PHONY : coprocessorjs.c.s
-
-# Help Target
-help:
- @echo "The following are some of the valid targets for this Makefile:"
- @echo "... all (the default if no target is provided)"
- @echo "... clean"
- @echo "... depend"
- @echo "... rebuild_cache"
- @echo "... edit_cache"
- @echo "... NuklearQuickDraw_APPL"
- @echo "... NuklearQuickDraw"
- @echo "... Sample.obj"
- @echo "... Sample.i"
- @echo "... Sample.s"
- @echo "... SerialHelper.obj"
- @echo "... SerialHelper.i"
- @echo "... SerialHelper.s"
- @echo "... coprocessorjs.obj"
- @echo "... coprocessorjs.i"
- @echo "... coprocessorjs.s"
-.PHONY : help
-
-
-
-#=============================================================================
-# Special targets to cleanup operation of make.
-
-# Special rule to run CMake to check the build system integrity.
-# No rule that depends on this can have commands that come from listfiles
-# because they might be regenerated.
-cmake_check_build_system:
- $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-.PHONY : cmake_check_build_system
-
diff --git a/build/NuklearQuickDraw.APPL b/build/NuklearQuickDraw.APPL
deleted file mode 100644
index e69de29..0000000
diff --git a/build/NuklearQuickDraw.ad b/build/NuklearQuickDraw.ad
deleted file mode 100644
index e69de29..0000000
diff --git a/build/NuklearQuickDraw.bin b/build/NuklearQuickDraw.bin
deleted file mode 100644
index fd79194..0000000
Binary files a/build/NuklearQuickDraw.bin and /dev/null differ
diff --git a/build/NuklearQuickDraw.code.bin b/build/NuklearQuickDraw.code.bin
deleted file mode 100644
index 4cb267b..0000000
Binary files a/build/NuklearQuickDraw.code.bin and /dev/null differ
diff --git a/build/NuklearQuickDraw.code.bin.gdb b/build/NuklearQuickDraw.code.bin.gdb
deleted file mode 100755
index bc256dc..0000000
Binary files a/build/NuklearQuickDraw.code.bin.gdb and /dev/null differ
diff --git a/build/NuklearQuickDraw.dsk b/build/NuklearQuickDraw.dsk
deleted file mode 100644
index 922a2f0..0000000
Binary files a/build/NuklearQuickDraw.dsk and /dev/null differ
diff --git a/build/Sample.r.rsrc.bin b/build/Sample.r.rsrc.bin
deleted file mode 100644
index a8aefbf..0000000
Binary files a/build/Sample.r.rsrc.bin and /dev/null differ
diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake
deleted file mode 100644
index 0230a18..0000000
--- a/build/cmake_install.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
-# Install script for directory: /home/camh/Documents/Retro68kApps/NuklearQuickDraw
-
-# Set the install prefix
-if(NOT DEFINED CMAKE_INSTALL_PREFIX)
- set(CMAKE_INSTALL_PREFIX "/home/camh/Retro68-build/toolchain/m68k-apple-macos")
-endif()
-string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
-# Set the install configuration name.
-if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
- if(BUILD_TYPE)
- string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
- CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
- else()
- set(CMAKE_INSTALL_CONFIG_NAME "")
- endif()
- message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-endif()
-
-# Set the component getting installed.
-if(NOT CMAKE_INSTALL_COMPONENT)
- if(COMPONENT)
- message(STATUS "Install component: \"${COMPONENT}\"")
- set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
- else()
- set(CMAKE_INSTALL_COMPONENT)
- endif()
-endif()
-
-# Is this installation the result of a crosscompile?
-if(NOT DEFINED CMAKE_CROSSCOMPILING)
- set(CMAKE_CROSSCOMPILING "TRUE")
-endif()
-
-if(CMAKE_INSTALL_COMPONENT)
- set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
-else()
- set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
-endif()
-
-string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
- "${CMAKE_INSTALL_MANIFEST_FILES}")
-file(WRITE "/home/camh/Documents/Retro68kApps/NuklearQuickDraw/build/${CMAKE_INSTALL_MANIFEST}"
- "${CMAKE_INSTALL_MANIFEST_CONTENT}")
diff --git a/compile_commands.json b/compile_commands.json
deleted file mode 100644
index 0637a08..0000000
--- a/compile_commands.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/Sample.c b/mac_main.c
similarity index 95%
rename from Sample.c
rename to mac_main.c
index f26296c..b25df08 100644
--- a/Sample.c
+++ b/mac_main.c
@@ -20,7 +20,7 @@
#include
#include
#include
-#include "Sample.h"
+#include "mac_main.h"
//#define PROFILING 1
#ifdef PROFILING
@@ -90,8 +90,6 @@ void PROFILE_COMPLETE() {
#include "SerialHelper.h"
#include "Quickdraw.h"
-#include "output_js.h"
-#include "coprocessorjs.h"
#include "nuklear_app.c"
@@ -106,6 +104,7 @@ Boolean gHasWaitNextEvent; /* set up by Initialize */
/* GInBackground is maintained by our osEvent handling routines. Any part of
the program can check it to find out if it is currently in the background. */
Boolean gInBackground; /* maintained by Initialize and DoEvent */
+Boolean gotMouseEvent;
// #define MAC_APP_DEBUGGING
/* The following globals are the state of the window. If we supported more than
@@ -154,14 +153,6 @@ void main()
SysBeep(1);
- setupCoprocessor("nuklear", "modem"); // could also be "printer", modem is 0 in PCE settings - printer would be 1
- // we could build a nuklear window for selection
-
- char programResult[MAX_RECEIVE_SIZE];
- sendProgramToCoprocessor(OUTPUT_JS, programResult);
-
- coprocessorLoaded = 1;
-
EventLoop(ctx); /* call the main event loop */
}
@@ -179,6 +170,8 @@ void EventLoop(struct nk_context *ctx)
int lastMouseHPos = 0;
int lastMouseVPos = 0;
int lastUpdatedTickCount = 0;
+ Boolean firstOrMouseMove = true;
+ gotMouseEvent = false;
do {
@@ -188,21 +181,6 @@ void EventLoop(struct nk_context *ctx)
// PROFILE_START("eventloop");
// #endif
- // check for new stuff every 10 sec?
- // note! this is used by some of the functionality in our nuklear_app to trigger
- // new chat lookups
- if (TickCount() - lastUpdatedTickCount > 600) {
-
- // writeSerialPortDebug(boutRefNum, "update by tick count");
- lastUpdatedTickCount = TickCount();
-
- if (strcmp(activeChat, "no active chat")) {
-
- // writeSerialPortDebug(boutRefNum, "check chat");
- getHasNewMessagesInChat(activeChat);
- }
- }
-
Boolean beganInput = false;
GetGlobalMouse(&mouse);
@@ -236,9 +214,6 @@ void EventLoop(struct nk_context *ctx)
firstOrMouseMove = true;
beganInput = true;
- mouse_x = tempPoint.h;
- mouse_y = tempPoint.v;
-
lastUpdatedTickCount = TickCount();
lastMouseHPos = mouse.h;
lastMouseVPos = mouse.v;
@@ -247,7 +222,6 @@ void EventLoop(struct nk_context *ctx)
} else {
gotEvent = GetNextEvent(everyEvent, &event);
- gotMouseEvent = false;
// drain all events before rendering -- really this only applies to keyboard events and single mouse clicks now
while (gotEvent) {
@@ -315,7 +289,14 @@ void EventLoop(struct nk_context *ctx)
PROFILE_START("nk_quickdraw_render");
#endif
- nk_quickdraw_render(FrontWindow(), ctx);
+ GetGlobalMouse(&mouse);
+
+ // if the mouse is moving, don't try to render. we'll likely have more rendering to do when
+ // the user stops moving the mouse
+ if (lastMouseVPos == mouse.v || lastMouseHPos == mouse.h) {
+
+ nk_quickdraw_render(FrontWindow(), ctx);
+ }
#ifdef PROFILING
PROFILE_END("nk_quickdraw_render");
@@ -360,8 +341,6 @@ void DoEvent(EventRecord *event, struct nk_context *ctx) {
case mouseUp:
- gotMouseEvent = true;
-
#ifdef MAC_APP_DEBUGGING
writeSerialPortDebug(boutRefNum, "mouseup");
#endif
@@ -642,9 +621,7 @@ void DoMenuCommand(menuResult)
handledByDA = SystemEdit(menuItem-1); /* since we donÕt do any Editing */
break;
case mLight:
- // note this was co-opted to send new chats instead of the demo functionality. do the
- // same thing for other menu items as necessary
- sendNewChat = 1;
+ // example handling for menu item
break;
case mHelp:
diff --git a/Sample.h b/mac_main.h
similarity index 100%
rename from Sample.h
rename to mac_main.h
diff --git a/mac_main.r b/mac_main.r
new file mode 100644
index 0000000..7f1822b
--- /dev/null
+++ b/mac_main.r
@@ -0,0 +1,298 @@
+/*
+#
+# Apple Macintosh Developer Technical Support
+#
+# MultiFinder-Aware Simple Sample Application
+#
+# Sample
+#
+# Sample.r - Rez Source
+#
+# Copyright © 1989 Apple Computer, Inc.
+# All rights reserved.
+#
+# Versions:
+# 1.00 08/88
+# 1.01 11/88
+# 1.02 04/89 MPW 3.1
+#
+# Components:
+# Sample.p April 1, 1989
+# Sample.c April 1, 1989
+# Sample.a April 1, 1989
+# Sample.inc1.a April 1, 1989
+# SampleMisc.a April 1, 1989
+# Sample.r April 1, 1989
+# Sample.h April 1, 1989
+# [P]Sample.make April 1, 1989
+# [C]Sample.make April 1, 1989
+# [A]Sample.make April 1, 1989
+#
+# Sample is an example application that demonstrates how to
+# initialize the commonly used toolbox managers, operate
+# successfully under MultiFinder, handle desk accessories,
+# and create, grow, and zoom windows.
+#
+# It does not by any means demonstrate all the techniques
+# you need for a large application. In particular, Sample
+# does not cover exception handling, multiple windows/documents,
+# sophisticated memory management, printing, or undo. All of
+# these are vital parts of a normal full-sized application.
+#
+# This application is an example of the form of a Macintosh
+# application; it is NOT a template. It is NOT intended to be
+# used as a foundation for the next world-class, best-selling,
+# 600K application. A stick figure drawing of the human body may
+# be a good example of the form for a painting, but that does not
+# mean it should be used as the basis for the next Mona Lisa.
+#
+# We recommend that you review this program or TESample before
+# beginning a new application.
+*/
+
+#include "Types.r"
+#include "mac_main.h"
+
+/* this is a definition for a resource which contains only a rectangle */
+type 'RECT' {
+ rect;
+};
+
+
+/* we use an MBAR resource to conveniently load all the menus */
+
+resource 'MBAR' (rMenuBar, preload) {
+ { mApple, mFile, mEdit, mLight, mHelp }; /* five menus */
+};
+
+
+resource 'MENU' (mApple, preload) {
+ mApple, textMenuProc,
+ AllItems & ~MenuItem2, /* Disable dashed line, enable About and DAs */
+ enabled, apple,
+ {
+ "About Messages",
+ noicon, nokey, nomark, plain;
+ "-",
+ noicon, nokey, nomark, plain
+ }
+};
+
+resource 'MENU' (mFile, preload) {
+ mFile, textMenuProc,
+ MenuItem12, /* enable Quit only, program enables others */
+ enabled, "File",
+ {
+ "New",
+ noicon, "N", nomark, plain;
+ "Open",
+ noicon, "O", nomark, plain;
+ "-",
+ noicon, nokey, nomark, plain;
+ "Close",
+ noicon, "W", nomark, plain;
+ "Save",
+ noicon, "S", nomark, plain;
+ "Save As",
+ noicon, nokey, nomark, plain;
+ "Revert",
+ noicon, nokey, nomark, plain;
+ "-",
+ noicon, nokey, nomark, plain;
+ "Page Setup",
+ noicon, nokey, nomark, plain;
+ "Print",
+ noicon, nokey, nomark, plain;
+ "-",
+ noicon, nokey, nomark, plain;
+ "Quit",
+ noicon, "Q", nomark, plain
+ }
+};
+
+resource 'MENU' (mEdit, preload) {
+ mEdit, textMenuProc,
+ NoItems, /* disable everything, program does the enabling */
+ enabled, "Edit",
+ {
+ "Undo",
+ noicon, "Z", nomark, plain;
+ "-",
+ noicon, nokey, nomark, plain;
+ "Cut",
+ noicon, "X", nomark, plain;
+ "Copy",
+ noicon, "C", nomark, plain;
+ "Paste",
+ noicon, "V", nomark, plain;
+ "Clear",
+ noicon, nokey, nomark, plain
+ }
+};
+
+resource 'MENU' (mLight, preload) {
+ mLight, textMenuProc,
+ NoItems, /* disable everything, program does the enabling */
+ enabled, "Messages",
+ {
+ "New Message",
+ noicon, nokey, nomark, plain;
+ }
+};
+
+resource 'MENU' (mHelp, preload) {
+ mHelp, textMenuProc,
+ AllItems, /* disable everything, program does the enabling */
+ enabled, "Help",
+ {
+ "Quick Help",
+ noicon, nokey, nomark, plain;
+ "User Guide",
+ noicon, nokey, nomark, plain;
+ "Test Entry",
+ noicon, nokey, nomark, plain;
+ "Test Entry 2",
+ noicon, nokey, nomark, plain;
+ "Test Entry 3",
+ noicon, nokey, nomark, plain;
+ }
+};
+
+/* this ALRT and DITL are used as an About screen */
+resource 'ALRT' (rAboutAlert, purgeable) {
+ {40, 20, 160, 290},
+ rAboutAlert,
+ { /* array: 4 elements */
+ /* [1] */
+ OK, visible, silent,
+ /* [2] */
+ OK, visible, silent,
+ /* [3] */
+ OK, visible, silent,
+ /* [4] */
+ OK, visible, silent
+ },
+ centerMainScreen // Where to show the alert
+};
+
+resource 'DITL' (rAboutAlert, purgeable) {
+ { /* array DITLarray: 5 elements */
+ /* [1] */
+ {88, 180, 108, 260},
+ Button {
+ enabled,
+ "OK"
+ },
+ /* [2] */
+ {8, 8, 24, 214},
+ StaticText {
+ disabled,
+ "Messages for Macintosh"
+ },
+ /* [3] */
+ {32, 8, 48, 237},
+ StaticText {
+ disabled,
+ "Copyright © 2021 Cameron Henlin"
+ },
+ /* [4] */
+ {56, 8, 72, 136},
+ StaticText {
+ disabled,
+ "cam.henlin@gmail.com"
+ },
+ /* [5] */
+ {80, 24, 112, 167},
+ StaticText {
+ disabled,
+ "https://github.com/CamHenlin/MessagesForMacintosh"
+ }
+ }
+};
+
+
+/* this ALRT and DITL are used as an error screen */
+
+resource 'ALRT' (rUserAlert, purgeable) {
+ {40, 20, 120, 260},
+ rUserAlert,
+ { /* array: 4 elements */
+ /* [1] */
+ OK, visible, silent,
+ /* [2] */
+ OK, visible, silent,
+ /* [3] */
+ OK, visible, silent,
+ /* [4] */
+ OK, visible, silent
+ },
+ centerMainScreen // Where to show the alert
+};
+
+
+resource 'DITL' (rUserAlert, purgeable) {
+ { /* array DITLarray: 3 elements */
+ /* [1] */
+ {50, 150, 70, 230},
+ Button {
+ enabled,
+ "OK"
+ },
+ /* [2] */
+ {10, 60, 30, 230},
+ StaticText {
+ disabled,
+ "Sample - Error occurred!"
+ },
+ /* [3] */
+ {8, 8, 40, 40},
+ Icon {
+ disabled,
+ 2
+ }
+ }
+};
+
+
+resource 'WIND' (rWindow, preload, purgeable) {
+ {39, 1, 341, 511},
+ zoomDocProc, visible, noGoAway, 0x0, "Messages",
+ centerMainScreen // Where to show the alert
+};
+
+resource 'RECT' (rStopRect, preload, purgeable) {
+ {69, 69, 110, 110}
+};
+
+resource 'RECT' (rXRect, preload, purgeable) {
+ {32, 32, 69, 69}
+};
+
+resource 'RECT' (rGoRect, preload, purgeable) {
+ {120, 10, 220, 110}
+};
+
+
+/* here is the quintessential MultiFinder friendliness device, the SIZE resource */
+
+resource 'SIZE' (-1) {
+ dontSaveScreen,
+ acceptSuspendResumeEvents,
+ enableOptionSwitch,
+ canBackground, /* we can background; we don't currently, but our sleep value */
+ /* guarantees we don't hog the Mac while we are in the background */
+ multiFinderAware, /* this says we do our own activate/deactivate; don't fake us out */
+ backgroundAndForeground, /* this is definitely not a background-only application! */
+ dontGetFrontClicks, /* change this is if you want "do first click" behavior like the Finder */
+ ignoreChildDiedEvents, /* essentially, I'm not a debugger (sub-launching) */
+ not32BitCompatible, /* this app should not be run in 32-bit address space */
+ reserved,
+ reserved,
+ reserved,
+ reserved,
+ reserved,
+ reserved,
+ reserved,
+ kPrefSize * 1024,
+ kMinSize * 1024
+};
\ No newline at end of file
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
deleted file mode 100644
index 64c316a..0000000
--- a/node_modules/.package-lock.json
+++ /dev/null
@@ -1,254 +0,0 @@
-{
- "name": "NuklearQuickDraw",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "node_modules/@types/node": {
- "version": "16.9.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
- "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="
- },
- "node_modules/@types/zen-observable": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
- "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw=="
- },
- "node_modules/@wry/context": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz",
- "integrity": "sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==",
- "dependencies": {
- "@types/node": ">=6",
- "tslib": "^1.9.3"
- }
- },
- "node_modules/@wry/equality": {
- "version": "0.1.11",
- "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz",
- "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==",
- "dependencies": {
- "tslib": "^1.9.3"
- }
- },
- "node_modules/apollo-boost": {
- "version": "0.4.9",
- "resolved": "https://registry.npmjs.org/apollo-boost/-/apollo-boost-0.4.9.tgz",
- "integrity": "sha512-05y5BKcDaa8w47f8d81UVwKqrAjn8uKLv6QM9fNdldoNzQ+rnOHgFlnrySUZRz9QIT3vPftQkEz2UEASp1Mi5g==",
- "dependencies": {
- "apollo-cache": "^1.3.5",
- "apollo-cache-inmemory": "^1.6.6",
- "apollo-client": "^2.6.10",
- "apollo-link": "^1.0.6",
- "apollo-link-error": "^1.0.3",
- "apollo-link-http": "^1.3.1",
- "graphql-tag": "^2.4.2",
- "ts-invariant": "^0.4.0",
- "tslib": "^1.10.0"
- },
- "peerDependencies": {
- "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
- }
- },
- "node_modules/apollo-cache": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.5.tgz",
- "integrity": "sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==",
- "dependencies": {
- "apollo-utilities": "^1.3.4",
- "tslib": "^1.10.0"
- },
- "peerDependencies": {
- "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
- }
- },
- "node_modules/apollo-cache-inmemory": {
- "version": "1.6.6",
- "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz",
- "integrity": "sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==",
- "dependencies": {
- "apollo-cache": "^1.3.5",
- "apollo-utilities": "^1.3.4",
- "optimism": "^0.10.0",
- "ts-invariant": "^0.4.0",
- "tslib": "^1.10.0"
- },
- "peerDependencies": {
- "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
- }
- },
- "node_modules/apollo-client": {
- "version": "2.6.10",
- "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.10.tgz",
- "integrity": "sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==",
- "dependencies": {
- "@types/zen-observable": "^0.8.0",
- "apollo-cache": "1.3.5",
- "apollo-link": "^1.0.0",
- "apollo-utilities": "1.3.4",
- "symbol-observable": "^1.0.2",
- "ts-invariant": "^0.4.0",
- "tslib": "^1.10.0",
- "zen-observable": "^0.8.0"
- },
- "peerDependencies": {
- "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
- }
- },
- "node_modules/apollo-link": {
- "version": "1.2.14",
- "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz",
- "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==",
- "dependencies": {
- "apollo-utilities": "^1.3.0",
- "ts-invariant": "^0.4.0",
- "tslib": "^1.9.3",
- "zen-observable-ts": "^0.8.21"
- },
- "peerDependencies": {
- "graphql": "^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0"
- }
- },
- "node_modules/apollo-link-error": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.13.tgz",
- "integrity": "sha512-jAZOOahJU6bwSqb2ZyskEK1XdgUY9nkmeclCrW7Gddh1uasHVqmoYc4CKdb0/H0Y1J9lvaXKle2Wsw/Zx1AyUg==",
- "dependencies": {
- "apollo-link": "^1.2.14",
- "apollo-link-http-common": "^0.2.16",
- "tslib": "^1.9.3"
- }
- },
- "node_modules/apollo-link-http": {
- "version": "1.5.17",
- "resolved": "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.17.tgz",
- "integrity": "sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg==",
- "dependencies": {
- "apollo-link": "^1.2.14",
- "apollo-link-http-common": "^0.2.16",
- "tslib": "^1.9.3"
- },
- "peerDependencies": {
- "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
- }
- },
- "node_modules/apollo-link-http-common": {
- "version": "0.2.16",
- "resolved": "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz",
- "integrity": "sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==",
- "dependencies": {
- "apollo-link": "^1.2.14",
- "ts-invariant": "^0.4.0",
- "tslib": "^1.9.3"
- },
- "peerDependencies": {
- "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
- }
- },
- "node_modules/apollo-utilities": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz",
- "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==",
- "dependencies": {
- "@wry/equality": "^0.1.2",
- "fast-json-stable-stringify": "^2.0.0",
- "ts-invariant": "^0.4.0",
- "tslib": "^1.10.0"
- },
- "peerDependencies": {
- "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
- }
- },
- "node_modules/cross-fetch": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
- "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
- "dependencies": {
- "node-fetch": "2.6.1"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "node_modules/graphql": {
- "version": "15.5.3",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz",
- "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==",
- "peer": true,
- "engines": {
- "node": ">= 10.x"
- }
- },
- "node_modules/graphql-tag": {
- "version": "2.12.5",
- "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz",
- "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==",
- "dependencies": {
- "tslib": "^2.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
- }
- },
- "node_modules/graphql-tag/node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/node-fetch": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
- "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
- "engines": {
- "node": "4.x || >=6.0.0"
- }
- },
- "node_modules/optimism": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.10.3.tgz",
- "integrity": "sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==",
- "dependencies": {
- "@wry/context": "^0.4.0"
- }
- },
- "node_modules/symbol-observable": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
- "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ts-invariant": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
- "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
- "dependencies": {
- "tslib": "^1.9.3"
- }
- },
- "node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
- },
- "node_modules/zen-observable": {
- "version": "0.8.15",
- "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
- "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
- },
- "node_modules/zen-observable-ts": {
- "version": "0.8.21",
- "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz",
- "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==",
- "dependencies": {
- "tslib": "^1.9.3",
- "zen-observable": "^0.8.0"
- }
- }
- }
-}
diff --git a/node_modules/@types/node/LICENSE b/node_modules/@types/node/LICENSE
deleted file mode 100755
index 9e841e7..0000000
--- a/node_modules/@types/node/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
- MIT License
-
- Copyright (c) Microsoft Corporation.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
diff --git a/node_modules/@types/node/README.md b/node_modules/@types/node/README.md
deleted file mode 100755
index 48a83fc..0000000
--- a/node_modules/@types/node/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Installation
-> `npm install --save @types/node`
-
-# Summary
-This package contains type definitions for Node.js (https://nodejs.org/).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node.
-
-### Additional Details
- * Last updated: Thu, 09 Sep 2021 20:01:20 GMT
- * Dependencies: none
- * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`
-
-# Credits
-These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Minh Son Nguyen](https://github.com/nguymin4), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Surasak Chaisurin](https://github.com/Ryan-Willpower), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Jason Kwok](https://github.com/JasonHK), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), and [wafuwafu13](https://github.com/wafuwafu13).
diff --git a/node_modules/@types/node/assert.d.ts b/node_modules/@types/node/assert.d.ts
deleted file mode 100755
index 19f1e7d..0000000
--- a/node_modules/@types/node/assert.d.ts
+++ /dev/null
@@ -1,912 +0,0 @@
-/**
- * The `assert` module provides a set of assertion functions for verifying
- * invariants.
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/assert.js)
- */
-declare module 'assert' {
- /**
- * An alias of {@link ok}.
- * @since v0.5.9
- * @param value The input that is checked for being truthy.
- */
- function assert(value: unknown, message?: string | Error): asserts value;
- namespace assert {
- /**
- * Indicates the failure of an assertion. All errors thrown by the `assert` module
- * will be instances of the `AssertionError` class.
- */
- class AssertionError extends Error {
- actual: unknown;
- expected: unknown;
- operator: string;
- generatedMessage: boolean;
- code: 'ERR_ASSERTION';
- constructor(options?: {
- /** If provided, the error message is set to this value. */
- message?: string | undefined;
- /** The `actual` property on the error instance. */
- actual?: unknown | undefined;
- /** The `expected` property on the error instance. */
- expected?: unknown | undefined;
- /** The `operator` property on the error instance. */
- operator?: string | undefined;
- /** If provided, the generated stack trace omits frames before this function. */
- // tslint:disable-next-line:ban-types
- stackStartFn?: Function | undefined;
- });
- }
- /**
- * This feature is currently experimental and behavior might still change.
- * @since v14.2.0, v12.19.0
- * @experimental
- */
- class CallTracker {
- /**
- * The wrapper function is expected to be called exactly `exact` times. If the
- * function has not been called exactly `exact` times when `tracker.verify()` is called, then `tracker.verify()` will throw an
- * error.
- *
- * ```js
- * import assert from 'assert';
- *
- * // Creates call tracker.
- * const tracker = new assert.CallTracker();
- *
- * function func() {}
- *
- * // Returns a function that wraps func() that must be called exact times
- * // before tracker.verify().
- * const callsfunc = tracker.calls(func);
- * ```
- * @since v14.2.0, v12.19.0
- * @param [fn='A no-op function']
- * @param [exact=1]
- * @return that wraps `fn`.
- */
- calls(exact?: number): () => void;
- calls any>(fn?: Func, exact?: number): Func;
- /**
- * The arrays contains information about the expected and actual number of calls of
- * the functions that have not been called the expected number of times.
- *
- * ```js
- * import assert from 'assert';
- *
- * // Creates call tracker.
- * const tracker = new assert.CallTracker();
- *
- * function func() {}
- *
- * function foo() {}
- *
- * // Returns a function that wraps func() that must be called exact times
- * // before tracker.verify().
- * const callsfunc = tracker.calls(func, 2);
- *
- * // Returns an array containing information on callsfunc()
- * tracker.report();
- * // [
- * // {
- * // message: 'Expected the func function to be executed 2 time(s) but was
- * // executed 0 time(s).',
- * // actual: 0,
- * // expected: 2,
- * // operator: 'func',
- * // stack: stack trace
- * // }
- * // ]
- * ```
- * @since v14.2.0, v12.19.0
- * @return of objects containing information about the wrapper functions returned by `calls`.
- */
- report(): CallTrackerReportInformation[];
- /**
- * Iterates through the list of functions passed to `tracker.calls()` and will throw an error for functions that
- * have not been called the expected number of times.
- *
- * ```js
- * import assert from 'assert';
- *
- * // Creates call tracker.
- * const tracker = new assert.CallTracker();
- *
- * function func() {}
- *
- * // Returns a function that wraps func() that must be called exact times
- * // before tracker.verify().
- * const callsfunc = tracker.calls(func, 2);
- *
- * callsfunc();
- *
- * // Will throw an error since callsfunc() was only called once.
- * tracker.verify();
- * ```
- * @since v14.2.0, v12.19.0
- */
- verify(): void;
- }
- interface CallTrackerReportInformation {
- message: string;
- /** The actual number of times the function was called. */
- actual: number;
- /** The number of times the function was expected to be called. */
- expected: number;
- /** The name of the function that is wrapped. */
- operator: string;
- /** A stack trace of the function. */
- stack: object;
- }
- type AssertPredicate = RegExp | (new () => object) | ((thrown: unknown) => boolean) | object | Error;
- /**
- * Throws an `AssertionError` with the provided error message or a default
- * error message. If the `message` parameter is an instance of an `Error` then
- * it will be thrown instead of the `AssertionError`.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.fail();
- * // AssertionError [ERR_ASSERTION]: Failed
- *
- * assert.fail('boom');
- * // AssertionError [ERR_ASSERTION]: boom
- *
- * assert.fail(new TypeError('need array'));
- * // TypeError: need array
- * ```
- *
- * Using `assert.fail()` with more than two arguments is possible but deprecated.
- * See below for further details.
- * @since v0.1.21
- * @param [message='Failed']
- */
- function fail(message?: string | Error): never;
- /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */
- function fail(
- actual: unknown,
- expected: unknown,
- message?: string | Error,
- operator?: string,
- // tslint:disable-next-line:ban-types
- stackStartFn?: Function
- ): never;
- /**
- * Tests if `value` is truthy. It is equivalent to`assert.equal(!!value, true, message)`.
- *
- * If `value` is not truthy, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is `undefined`, a default
- * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`.
- * If no arguments are passed in at all `message` will be set to the string:`` 'No value argument passed to `assert.ok()`' ``.
- *
- * Be aware that in the `repl` the error message will be different to the one
- * thrown in a file! See below for further details.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.ok(true);
- * // OK
- * assert.ok(1);
- * // OK
- *
- * assert.ok();
- * // AssertionError: No value argument passed to `assert.ok()`
- *
- * assert.ok(false, 'it\'s false');
- * // AssertionError: it's false
- *
- * // In the repl:
- * assert.ok(typeof 123 === 'string');
- * // AssertionError: false == true
- *
- * // In a file (e.g. test.js):
- * assert.ok(typeof 123 === 'string');
- * // AssertionError: The expression evaluated to a falsy value:
- * //
- * // assert.ok(typeof 123 === 'string')
- *
- * assert.ok(false);
- * // AssertionError: The expression evaluated to a falsy value:
- * //
- * // assert.ok(false)
- *
- * assert.ok(0);
- * // AssertionError: The expression evaluated to a falsy value:
- * //
- * // assert.ok(0)
- * ```
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * // Using `assert()` works the same:
- * assert(0);
- * // AssertionError: The expression evaluated to a falsy value:
- * //
- * // assert(0)
- * ```
- * @since v0.1.21
- */
- function ok(value: unknown, message?: string | Error): asserts value;
- /**
- * **Strict assertion mode**
- *
- * An alias of {@link strictEqual}.
- *
- * **Legacy assertion mode**
- *
- * > Stability: 3 - Legacy: Use {@link strictEqual} instead.
- *
- * Tests shallow, coercive equality between the `actual` and `expected` parameters
- * using the [Abstract Equality Comparison](https://tc39.github.io/ecma262/#sec-abstract-equality-comparison) ( `==` ). `NaN` is special handled
- * and treated as being identical in case both sides are `NaN`.
- *
- * ```js
- * import assert from 'assert';
- *
- * assert.equal(1, 1);
- * // OK, 1 == 1
- * assert.equal(1, '1');
- * // OK, 1 == '1'
- * assert.equal(NaN, NaN);
- * // OK
- *
- * assert.equal(1, 2);
- * // AssertionError: 1 == 2
- * assert.equal({ a: { b: 1 } }, { a: { b: 1 } });
- * // AssertionError: { a: { b: 1 } } == { a: { b: 1 } }
- * ```
- *
- * If the values are not equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default
- * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`.
- * @since v0.1.21
- */
- function equal(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * **Strict assertion mode**
- *
- * An alias of {@link notStrictEqual}.
- *
- * **Legacy assertion mode**
- *
- * > Stability: 3 - Legacy: Use {@link notStrictEqual} instead.
- *
- * Tests shallow, coercive inequality with the [Abstract Equality Comparison](https://tc39.github.io/ecma262/#sec-abstract-equality-comparison)(`!=` ). `NaN` is special handled and treated as
- * being identical in case both
- * sides are `NaN`.
- *
- * ```js
- * import assert from 'assert';
- *
- * assert.notEqual(1, 2);
- * // OK
- *
- * assert.notEqual(1, 1);
- * // AssertionError: 1 != 1
- *
- * assert.notEqual(1, '1');
- * // AssertionError: 1 != '1'
- * ```
- *
- * If the values are equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default error
- * message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`.
- * @since v0.1.21
- */
- function notEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * **Strict assertion mode**
- *
- * An alias of {@link deepStrictEqual}.
- *
- * **Legacy assertion mode**
- *
- * > Stability: 3 - Legacy: Use {@link deepStrictEqual} instead.
- *
- * Tests for deep equality between the `actual` and `expected` parameters. Consider
- * using {@link deepStrictEqual} instead. {@link deepEqual} can have
- * surprising results.
- *
- * _Deep equality_ means that the enumerable "own" properties of child objects
- * are also recursively evaluated by the following rules.
- * @since v0.1.21
- */
- function deepEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * **Strict assertion mode**
- *
- * An alias of {@link notDeepStrictEqual}.
- *
- * **Legacy assertion mode**
- *
- * > Stability: 3 - Legacy: Use {@link notDeepStrictEqual} instead.
- *
- * Tests for any deep inequality. Opposite of {@link deepEqual}.
- *
- * ```js
- * import assert from 'assert';
- *
- * const obj1 = {
- * a: {
- * b: 1
- * }
- * };
- * const obj2 = {
- * a: {
- * b: 2
- * }
- * };
- * const obj3 = {
- * a: {
- * b: 1
- * }
- * };
- * const obj4 = Object.create(obj1);
- *
- * assert.notDeepEqual(obj1, obj1);
- * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }
- *
- * assert.notDeepEqual(obj1, obj2);
- * // OK
- *
- * assert.notDeepEqual(obj1, obj3);
- * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }
- *
- * assert.notDeepEqual(obj1, obj4);
- * // OK
- * ```
- *
- * If the values are deeply equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a default
- * error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown
- * instead of the `AssertionError`.
- * @since v0.1.21
- */
- function notDeepEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * Tests strict equality between the `actual` and `expected` parameters as
- * determined by the [SameValue Comparison](https://tc39.github.io/ecma262/#sec-samevalue).
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.strictEqual(1, 2);
- * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
- * //
- * // 1 !== 2
- *
- * assert.strictEqual(1, 1);
- * // OK
- *
- * assert.strictEqual('Hello foobar', 'Hello World!');
- * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal:
- * // + actual - expected
- * //
- * // + 'Hello foobar'
- * // - 'Hello World!'
- * // ^
- *
- * const apples = 1;
- * const oranges = 2;
- * assert.strictEqual(apples, oranges, `apples ${apples} !== oranges ${oranges}`);
- * // AssertionError [ERR_ASSERTION]: apples 1 !== oranges 2
- *
- * assert.strictEqual(1, '1', new TypeError('Inputs are not identical'));
- * // TypeError: Inputs are not identical
- * ```
- *
- * If the values are not strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a
- * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown
- * instead of the `AssertionError`.
- * @since v0.1.21
- */
- function strictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T;
- /**
- * Tests strict inequality between the `actual` and `expected` parameters as
- * determined by the [SameValue Comparison](https://tc39.github.io/ecma262/#sec-samevalue).
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.notStrictEqual(1, 2);
- * // OK
- *
- * assert.notStrictEqual(1, 1);
- * // AssertionError [ERR_ASSERTION]: Expected "actual" to be strictly unequal to:
- * //
- * // 1
- *
- * assert.notStrictEqual(1, '1');
- * // OK
- * ```
- *
- * If the values are strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a
- * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown
- * instead of the `AssertionError`.
- * @since v0.1.21
- */
- function notStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * Tests for deep equality between the `actual` and `expected` parameters.
- * "Deep" equality means that the enumerable "own" properties of child objects
- * are recursively evaluated also by the following rules.
- * @since v1.2.0
- */
- function deepStrictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T;
- /**
- * Tests for deep strict inequality. Opposite of {@link deepStrictEqual}.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.notDeepStrictEqual({ a: 1 }, { a: '1' });
- * // OK
- * ```
- *
- * If the values are deeply and strictly equal, an `AssertionError` is thrown
- * with a `message` property set equal to the value of the `message` parameter. If
- * the `message` parameter is undefined, a default error message is assigned. If
- * the `message` parameter is an instance of an `Error` then it will be thrown
- * instead of the `AssertionError`.
- * @since v1.2.0
- */
- function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void;
- /**
- * Expects the function `fn` to throw an error.
- *
- * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
- * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,
- * a validation object where each property will be tested for strict deep equality,
- * or an instance of error where each property will be tested for strict deep
- * equality including the non-enumerable `message` and `name` properties. When
- * using an object, it is also possible to use a regular expression, when
- * validating against a string property. See below for examples.
- *
- * If specified, `message` will be appended to the message provided by the`AssertionError` if the `fn` call fails to throw or in case the error validation
- * fails.
- *
- * Custom validation object/error instance:
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * const err = new TypeError('Wrong value');
- * err.code = 404;
- * err.foo = 'bar';
- * err.info = {
- * nested: true,
- * baz: 'text'
- * };
- * err.reg = /abc/i;
- *
- * assert.throws(
- * () => {
- * throw err;
- * },
- * {
- * name: 'TypeError',
- * message: 'Wrong value',
- * info: {
- * nested: true,
- * baz: 'text'
- * }
- * // Only properties on the validation object will be tested for.
- * // Using nested objects requires all properties to be present. Otherwise
- * // the validation is going to fail.
- * }
- * );
- *
- * // Using regular expressions to validate error properties:
- * throws(
- * () => {
- * throw err;
- * },
- * {
- * // The `name` and `message` properties are strings and using regular
- * // expressions on those will match against the string. If they fail, an
- * // error is thrown.
- * name: /^TypeError$/,
- * message: /Wrong/,
- * foo: 'bar',
- * info: {
- * nested: true,
- * // It is not possible to use regular expressions for nested properties!
- * baz: 'text'
- * },
- * // The `reg` property contains a regular expression and only if the
- * // validation object contains an identical regular expression, it is going
- * // to pass.
- * reg: /abc/i
- * }
- * );
- *
- * // Fails due to the different `message` and `name` properties:
- * throws(
- * () => {
- * const otherErr = new Error('Not found');
- * // Copy all enumerable properties from `err` to `otherErr`.
- * for (const [key, value] of Object.entries(err)) {
- * otherErr[key] = value;
- * }
- * throw otherErr;
- * },
- * // The error's `message` and `name` properties will also be checked when using
- * // an error as validation object.
- * err
- * );
- * ```
- *
- * Validate instanceof using constructor:
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.throws(
- * () => {
- * throw new Error('Wrong value');
- * },
- * Error
- * );
- * ```
- *
- * Validate error message using [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions):
- *
- * Using a regular expression runs `.toString` on the error object, and will
- * therefore also include the error name.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.throws(
- * () => {
- * throw new Error('Wrong value');
- * },
- * /^Error: Wrong value$/
- * );
- * ```
- *
- * Custom error validation:
- *
- * The function must return `true` to indicate all internal validations passed.
- * It will otherwise fail with an `AssertionError`.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.throws(
- * () => {
- * throw new Error('Wrong value');
- * },
- * (err) => {
- * assert(err instanceof Error);
- * assert(/value/.test(err));
- * // Avoid returning anything from validation functions besides `true`.
- * // Otherwise, it's not clear what part of the validation failed. Instead,
- * // throw an error about the specific validation that failed (as done in this
- * // example) and add as much helpful debugging information to that error as
- * // possible.
- * return true;
- * },
- * 'unexpected error'
- * );
- * ```
- *
- * `error` cannot be a string. If a string is provided as the second
- * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Using the same
- * message as the thrown error message is going to result in an`ERR_AMBIGUOUS_ARGUMENT` error. Please read the example below carefully if using
- * a string as the second argument gets considered:
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * function throwingFirst() {
- * throw new Error('First');
- * }
- *
- * function throwingSecond() {
- * throw new Error('Second');
- * }
- *
- * function notThrowing() {}
- *
- * // The second argument is a string and the input function threw an Error.
- * // The first case will not throw as it does not match for the error message
- * // thrown by the input function!
- * assert.throws(throwingFirst, 'Second');
- * // In the next example the message has no benefit over the message from the
- * // error and since it is not clear if the user intended to actually match
- * // against the error message, Node.js throws an `ERR_AMBIGUOUS_ARGUMENT` error.
- * assert.throws(throwingSecond, 'Second');
- * // TypeError [ERR_AMBIGUOUS_ARGUMENT]
- *
- * // The string is only used (as message) in case the function does not throw:
- * assert.throws(notThrowing, 'Second');
- * // AssertionError [ERR_ASSERTION]: Missing expected exception: Second
- *
- * // If it was intended to match for the error message do this instead:
- * // It does not throw because the error messages match.
- * assert.throws(throwingSecond, /Second$/);
- *
- * // If the error message does not match, an AssertionError is thrown.
- * assert.throws(throwingFirst, /Second$/);
- * // AssertionError [ERR_ASSERTION]
- * ```
- *
- * Due to the confusing error-prone notation, avoid a string as the second
- * argument.
- * @since v0.1.21
- */
- function throws(block: () => unknown, message?: string | Error): void;
- function throws(block: () => unknown, error: AssertPredicate, message?: string | Error): void;
- /**
- * Asserts that the function `fn` does not throw an error.
- *
- * Using `assert.doesNotThrow()` is actually not useful because there
- * is no benefit in catching an error and then rethrowing it. Instead, consider
- * adding a comment next to the specific code path that should not throw and keep
- * error messages as expressive as possible.
- *
- * When `assert.doesNotThrow()` is called, it will immediately call the `fn`function.
- *
- * If an error is thrown and it is the same type as that specified by the `error`parameter, then an `AssertionError` is thrown. If the error is of a
- * different type, or if the `error` parameter is undefined, the error is
- * propagated back to the caller.
- *
- * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
- * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) or a validation
- * function. See {@link throws} for more details.
- *
- * The following, for instance, will throw the `TypeError` because there is no
- * matching error type in the assertion:
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.doesNotThrow(
- * () => {
- * throw new TypeError('Wrong value');
- * },
- * SyntaxError
- * );
- * ```
- *
- * However, the following will result in an `AssertionError` with the message
- * 'Got unwanted exception...':
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.doesNotThrow(
- * () => {
- * throw new TypeError('Wrong value');
- * },
- * TypeError
- * );
- * ```
- *
- * If an `AssertionError` is thrown and a value is provided for the `message`parameter, the value of `message` will be appended to the `AssertionError` message:
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.doesNotThrow(
- * () => {
- * throw new TypeError('Wrong value');
- * },
- * /Wrong value/,
- * 'Whoops'
- * );
- * // Throws: AssertionError: Got unwanted exception: Whoops
- * ```
- * @since v0.1.21
- */
- function doesNotThrow(block: () => unknown, message?: string | Error): void;
- function doesNotThrow(block: () => unknown, error: AssertPredicate, message?: string | Error): void;
- /**
- * Throws `value` if `value` is not `undefined` or `null`. This is useful when
- * testing the `error` argument in callbacks. The stack trace contains all frames
- * from the error passed to `ifError()` including the potential new frames for`ifError()` itself.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.ifError(null);
- * // OK
- * assert.ifError(0);
- * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 0
- * assert.ifError('error');
- * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 'error'
- * assert.ifError(new Error());
- * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Error
- *
- * // Create some random error frames.
- * let err;
- * (function errorFrame() {
- * err = new Error('test error');
- * })();
- *
- * (function ifErrorFrame() {
- * assert.ifError(err);
- * })();
- * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error
- * // at ifErrorFrame
- * // at errorFrame
- * ```
- * @since v0.1.97
- */
- function ifError(value: unknown): asserts value is null | undefined;
- /**
- * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately
- * calls the function and awaits the returned promise to complete. It will then
- * check that the promise is rejected.
- *
- * If `asyncFn` is a function and it throws an error synchronously,`assert.rejects()` will return a rejected `Promise` with that error. If the
- * function does not return a promise, `assert.rejects()` will return a rejected`Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases the error
- * handler is skipped.
- *
- * Besides the async nature to await the completion behaves identically to {@link throws}.
- *
- * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
- * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function,
- * an object where each property will be tested for, or an instance of error where
- * each property will be tested for including the non-enumerable `message` and`name` properties.
- *
- * If specified, `message` will be the message provided by the `AssertionError` if the `asyncFn` fails to reject.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * await assert.rejects(
- * async () => {
- * throw new TypeError('Wrong value');
- * },
- * {
- * name: 'TypeError',
- * message: 'Wrong value'
- * }
- * );
- * ```
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * await assert.rejects(
- * async () => {
- * throw new TypeError('Wrong value');
- * },
- * (err) => {
- * assert.strictEqual(err.name, 'TypeError');
- * assert.strictEqual(err.message, 'Wrong value');
- * return true;
- * }
- * );
- * ```
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.rejects(
- * Promise.reject(new Error('Wrong value')),
- * Error
- * ).then(() => {
- * // ...
- * });
- * ```
- *
- * `error` cannot be a string. If a string is provided as the second
- * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Please read the
- * example in {@link throws} carefully if using a string as the second
- * argument gets considered.
- * @since v10.0.0
- */
- function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise;
- function rejects(block: (() => Promise) | Promise, error: AssertPredicate, message?: string | Error): Promise;
- /**
- * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately
- * calls the function and awaits the returned promise to complete. It will then
- * check that the promise is not rejected.
- *
- * If `asyncFn` is a function and it throws an error synchronously,`assert.doesNotReject()` will return a rejected `Promise` with that error. If
- * the function does not return a promise, `assert.doesNotReject()` will return a
- * rejected `Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases
- * the error handler is skipped.
- *
- * Using `assert.doesNotReject()` is actually not useful because there is little
- * benefit in catching a rejection and then rejecting it again. Instead, consider
- * adding a comment next to the specific code path that should not reject and keep
- * error messages as expressive as possible.
- *
- * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes),
- * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) or a validation
- * function. See {@link throws} for more details.
- *
- * Besides the async nature to await the completion behaves identically to {@link doesNotThrow}.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * await assert.doesNotReject(
- * async () => {
- * throw new TypeError('Wrong value');
- * },
- * SyntaxError
- * );
- * ```
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.doesNotReject(Promise.reject(new TypeError('Wrong value')))
- * .then(() => {
- * // ...
- * });
- * ```
- * @since v10.0.0
- */
- function doesNotReject(block: (() => Promise) | Promise, message?: string | Error): Promise;
- function doesNotReject(block: (() => Promise) | Promise, error: AssertPredicate, message?: string | Error): Promise;
- /**
- * Expects the `string` input to match the regular expression.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.match('I will fail', /pass/);
- * // AssertionError [ERR_ASSERTION]: The input did not match the regular ...
- *
- * assert.match(123, /pass/);
- * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string.
- *
- * assert.match('I will pass', /pass/);
- * // OK
- * ```
- *
- * If the values do not match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal
- * to the value of the `message` parameter. If the `message` parameter is
- * undefined, a default error message is assigned. If the `message` parameter is an
- * instance of an `Error` then it will be thrown instead of the `AssertionError`.
- * @since v13.6.0, v12.16.0
- */
- function match(value: string, regExp: RegExp, message?: string | Error): void;
- /**
- * Expects the `string` input not to match the regular expression.
- *
- * ```js
- * import assert from 'assert/strict';
- *
- * assert.doesNotMatch('I will fail', /fail/);
- * // AssertionError [ERR_ASSERTION]: The input was expected to not match the ...
- *
- * assert.doesNotMatch(123, /pass/);
- * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string.
- *
- * assert.doesNotMatch('I will pass', /different/);
- * // OK
- * ```
- *
- * If the values do match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal
- * to the value of the `message` parameter. If the `message` parameter is
- * undefined, a default error message is assigned. If the `message` parameter is an
- * instance of an `Error` then it will be thrown instead of the `AssertionError`.
- * @since v13.6.0, v12.16.0
- */
- function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void;
- const strict: Omit & {
- (value: unknown, message?: string | Error): asserts value;
- equal: typeof strictEqual;
- notEqual: typeof notStrictEqual;
- deepEqual: typeof deepStrictEqual;
- notDeepEqual: typeof notDeepStrictEqual;
- // Mapped types and assertion functions are incompatible?
- // TS2775: Assertions require every name in the call target
- // to be declared with an explicit type annotation.
- ok: typeof ok;
- strictEqual: typeof strictEqual;
- deepStrictEqual: typeof deepStrictEqual;
- ifError: typeof ifError;
- strict: typeof strict;
- };
- }
- export = assert;
-}
-declare module 'node:assert' {
- import assert = require('assert');
- export = assert;
-}
diff --git a/node_modules/@types/node/assert/strict.d.ts b/node_modules/@types/node/assert/strict.d.ts
deleted file mode 100755
index b4319b9..0000000
--- a/node_modules/@types/node/assert/strict.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-declare module 'assert/strict' {
- import { strict } from 'node:assert';
- export = strict;
-}
-declare module 'node:assert/strict' {
- import { strict } from 'node:assert';
- export = strict;
-}
diff --git a/node_modules/@types/node/async_hooks.d.ts b/node_modules/@types/node/async_hooks.d.ts
deleted file mode 100755
index 157bea9..0000000
--- a/node_modules/@types/node/async_hooks.d.ts
+++ /dev/null
@@ -1,497 +0,0 @@
-/**
- * The `async_hooks` module provides an API to track asynchronous resources. It
- * can be accessed using:
- *
- * ```js
- * import async_hooks from 'async_hooks';
- * ```
- * @experimental
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/async_hooks.js)
- */
-declare module 'async_hooks' {
- /**
- * ```js
- * import { executionAsyncId } from 'async_hooks';
- *
- * console.log(executionAsyncId()); // 1 - bootstrap
- * fs.open(path, 'r', (err, fd) => {
- * console.log(executionAsyncId()); // 6 - open()
- * });
- * ```
- *
- * The ID returned from `executionAsyncId()` is related to execution timing, not
- * causality (which is covered by `triggerAsyncId()`):
- *
- * ```js
- * const server = net.createServer((conn) => {
- * // Returns the ID of the server, not of the new connection, because the
- * // callback runs in the execution scope of the server's MakeCallback().
- * async_hooks.executionAsyncId();
- *
- * }).listen(port, () => {
- * // Returns the ID of a TickObject (process.nextTick()) because all
- * // callbacks passed to .listen() are wrapped in a nextTick().
- * async_hooks.executionAsyncId();
- * });
- * ```
- *
- * Promise contexts may not get precise `executionAsyncIds` by default.
- * See the section on `promise execution tracking`.
- * @since v8.1.0
- * @return The `asyncId` of the current execution context. Useful to track when something calls.
- */
- function executionAsyncId(): number;
- /**
- * Resource objects returned by `executionAsyncResource()` are most often internal
- * Node.js handle objects with undocumented APIs. Using any functions or properties
- * on the object is likely to crash your application and should be avoided.
- *
- * Using `executionAsyncResource()` in the top-level execution context will
- * return an empty object as there is no handle or request object to use,
- * but having an object representing the top-level can be helpful.
- *
- * ```js
- * import { open } from 'fs';
- * import { executionAsyncId, executionAsyncResource } from 'async_hooks';
- *
- * console.log(executionAsyncId(), executionAsyncResource()); // 1 {}
- * open(new URL(import.meta.url), 'r', (err, fd) => {
- * console.log(executionAsyncId(), executionAsyncResource()); // 7 FSReqWrap
- * });
- * ```
- *
- * This can be used to implement continuation local storage without the
- * use of a tracking `Map` to store the metadata:
- *
- * ```js
- * import { createServer } from 'http';
- * import {
- * executionAsyncId,
- * executionAsyncResource,
- * createHook
- * } from 'async_hooks';
- * const sym = Symbol('state'); // Private symbol to avoid pollution
- *
- * createHook({
- * init(asyncId, type, triggerAsyncId, resource) {
- * const cr = executionAsyncResource();
- * if (cr) {
- * resource[sym] = cr[sym];
- * }
- * }
- * }).enable();
- *
- * const server = createServer((req, res) => {
- * executionAsyncResource()[sym] = { state: req.url };
- * setTimeout(function() {
- * res.end(JSON.stringify(executionAsyncResource()[sym]));
- * }, 100);
- * }).listen(3000);
- * ```
- * @since v13.9.0, v12.17.0
- * @return The resource representing the current execution. Useful to store data within the resource.
- */
- function executionAsyncResource(): object;
- /**
- * ```js
- * const server = net.createServer((conn) => {
- * // The resource that caused (or triggered) this callback to be called
- * // was that of the new connection. Thus the return value of triggerAsyncId()
- * // is the asyncId of "conn".
- * async_hooks.triggerAsyncId();
- *
- * }).listen(port, () => {
- * // Even though all callbacks passed to .listen() are wrapped in a nextTick()
- * // the callback itself exists because the call to the server's .listen()
- * // was made. So the return value would be the ID of the server.
- * async_hooks.triggerAsyncId();
- * });
- * ```
- *
- * Promise contexts may not get valid `triggerAsyncId`s by default. See
- * the section on `promise execution tracking`.
- * @return The ID of the resource responsible for calling the callback that is currently being executed.
- */
- function triggerAsyncId(): number;
- interface HookCallbacks {
- /**
- * Called when a class is constructed that has the possibility to emit an asynchronous event.
- * @param asyncId a unique ID for the async resource
- * @param type the type of the async resource
- * @param triggerAsyncId the unique ID of the async resource in whose execution context this async resource was created
- * @param resource reference to the resource representing the async operation, needs to be released during destroy
- */
- init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void;
- /**
- * When an asynchronous operation is initiated or completes a callback is called to notify the user.
- * The before callback is called just before said callback is executed.
- * @param asyncId the unique identifier assigned to the resource about to execute the callback.
- */
- before?(asyncId: number): void;
- /**
- * Called immediately after the callback specified in before is completed.
- * @param asyncId the unique identifier assigned to the resource which has executed the callback.
- */
- after?(asyncId: number): void;
- /**
- * Called when a promise has resolve() called. This may not be in the same execution id
- * as the promise itself.
- * @param asyncId the unique id for the promise that was resolve()d.
- */
- promiseResolve?(asyncId: number): void;
- /**
- * Called after the resource corresponding to asyncId is destroyed
- * @param asyncId a unique ID for the async resource
- */
- destroy?(asyncId: number): void;
- }
- interface AsyncHook {
- /**
- * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop.
- */
- enable(): this;
- /**
- * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled.
- */
- disable(): this;
- }
- /**
- * Registers functions to be called for different lifetime events of each async
- * operation.
- *
- * The callbacks `init()`/`before()`/`after()`/`destroy()` are called for the
- * respective asynchronous event during a resource's lifetime.
- *
- * All callbacks are optional. For example, if only resource cleanup needs to
- * be tracked, then only the `destroy` callback needs to be passed. The
- * specifics of all functions that can be passed to `callbacks` is in the `Hook Callbacks` section.
- *
- * ```js
- * import { createHook } from 'async_hooks';
- *
- * const asyncHook = createHook({
- * init(asyncId, type, triggerAsyncId, resource) { },
- * destroy(asyncId) { }
- * });
- * ```
- *
- * The callbacks will be inherited via the prototype chain:
- *
- * ```js
- * class MyAsyncCallbacks {
- * init(asyncId, type, triggerAsyncId, resource) { }
- * destroy(asyncId) {}
- * }
- *
- * class MyAddedCallbacks extends MyAsyncCallbacks {
- * before(asyncId) { }
- * after(asyncId) { }
- * }
- *
- * const asyncHook = async_hooks.createHook(new MyAddedCallbacks());
- * ```
- *
- * Because promises are asynchronous resources whose lifecycle is tracked
- * via the async hooks mechanism, the `init()`, `before()`, `after()`, and`destroy()` callbacks _must not_ be async functions that return promises.
- * @since v8.1.0
- * @param callbacks The `Hook Callbacks` to register
- * @return Instance used for disabling and enabling hooks
- */
- function createHook(callbacks: HookCallbacks): AsyncHook;
- interface AsyncResourceOptions {
- /**
- * The ID of the execution context that created this async event.
- * @default executionAsyncId()
- */
- triggerAsyncId?: number | undefined;
- /**
- * Disables automatic `emitDestroy` when the object is garbage collected.
- * This usually does not need to be set (even if `emitDestroy` is called
- * manually), unless the resource's `asyncId` is retrieved and the
- * sensitive API's `emitDestroy` is called with it.
- * @default false
- */
- requireManualDestroy?: boolean | undefined;
- }
- /**
- * The class `AsyncResource` is designed to be extended by the embedder's async
- * resources. Using this, users can easily trigger the lifetime events of their
- * own resources.
- *
- * The `init` hook will trigger when an `AsyncResource` is instantiated.
- *
- * The following is an overview of the `AsyncResource` API.
- *
- * ```js
- * import { AsyncResource, executionAsyncId } from 'async_hooks';
- *
- * // AsyncResource() is meant to be extended. Instantiating a
- * // new AsyncResource() also triggers init. If triggerAsyncId is omitted then
- * // async_hook.executionAsyncId() is used.
- * const asyncResource = new AsyncResource(
- * type, { triggerAsyncId: executionAsyncId(), requireManualDestroy: false }
- * );
- *
- * // Run a function in the execution context of the resource. This will
- * // * establish the context of the resource
- * // * trigger the AsyncHooks before callbacks
- * // * call the provided function `fn` with the supplied arguments
- * // * trigger the AsyncHooks after callbacks
- * // * restore the original execution context
- * asyncResource.runInAsyncScope(fn, thisArg, ...args);
- *
- * // Call AsyncHooks destroy callbacks.
- * asyncResource.emitDestroy();
- *
- * // Return the unique ID assigned to the AsyncResource instance.
- * asyncResource.asyncId();
- *
- * // Return the trigger ID for the AsyncResource instance.
- * asyncResource.triggerAsyncId();
- * ```
- */
- class AsyncResource {
- /**
- * AsyncResource() is meant to be extended. Instantiating a
- * new AsyncResource() also triggers init. If triggerAsyncId is omitted then
- * async_hook.executionAsyncId() is used.
- * @param type The type of async event.
- * @param triggerAsyncId The ID of the execution context that created
- * this async event (default: `executionAsyncId()`), or an
- * AsyncResourceOptions object (since 9.3)
- */
- constructor(type: string, triggerAsyncId?: number | AsyncResourceOptions);
- /**
- * Binds the given function to the current execution context.
- *
- * The returned function will have an `asyncResource` property referencing
- * the `AsyncResource` to which the function is bound.
- * @since v14.8.0, v12.19.0
- * @param fn The function to bind to the current execution context.
- * @param type An optional name to associate with the underlying `AsyncResource`.
- */
- static bind any, ThisArg>(
- fn: Func,
- type?: string,
- thisArg?: ThisArg
- ): Func & {
- asyncResource: AsyncResource;
- };
- /**
- * Binds the given function to execute to this `AsyncResource`'s scope.
- *
- * The returned function will have an `asyncResource` property referencing
- * the `AsyncResource` to which the function is bound.
- * @since v14.8.0, v12.19.0
- * @param fn The function to bind to the current `AsyncResource`.
- */
- bind any>(
- fn: Func
- ): Func & {
- asyncResource: AsyncResource;
- };
- /**
- * Call the provided function with the provided arguments in the execution context
- * of the async resource. This will establish the context, trigger the AsyncHooks
- * before callbacks, call the function, trigger the AsyncHooks after callbacks, and
- * then restore the original execution context.
- * @since v9.6.0
- * @param fn The function to call in the execution context of this async resource.
- * @param thisArg The receiver to be used for the function call.
- * @param args Optional arguments to pass to the function.
- */
- runInAsyncScope(fn: (this: This, ...args: any[]) => Result, thisArg?: This, ...args: any[]): Result;
- /**
- * Call all `destroy` hooks. This should only ever be called once. An error will
- * be thrown if it is called more than once. This **must** be manually called. If
- * the resource is left to be collected by the GC then the `destroy` hooks will
- * never be called.
- * @return A reference to `asyncResource`.
- */
- emitDestroy(): this;
- /**
- * @return The unique `asyncId` assigned to the resource.
- */
- asyncId(): number;
- /**
- *
- * @return The same `triggerAsyncId` that is passed to the `AsyncResource` constructor.
- */
- triggerAsyncId(): number;
- }
- /**
- * This class creates stores that stay coherent through asynchronous operations.
- *
- * While you can create your own implementation on top of the `async_hooks` module,`AsyncLocalStorage` should be preferred as it is a performant and memory safe
- * implementation that involves significant optimizations that are non-obvious to
- * implement.
- *
- * The following example uses `AsyncLocalStorage` to build a simple logger
- * that assigns IDs to incoming HTTP requests and includes them in messages
- * logged within each request.
- *
- * ```js
- * import http from 'http';
- * import { AsyncLocalStorage } from 'async_hooks';
- *
- * const asyncLocalStorage = new AsyncLocalStorage();
- *
- * function logWithId(msg) {
- * const id = asyncLocalStorage.getStore();
- * console.log(`${id !== undefined ? id : '-'}:`, msg);
- * }
- *
- * let idSeq = 0;
- * http.createServer((req, res) => {
- * asyncLocalStorage.run(idSeq++, () => {
- * logWithId('start');
- * // Imagine any chain of async operations here
- * setImmediate(() => {
- * logWithId('finish');
- * res.end();
- * });
- * });
- * }).listen(8080);
- *
- * http.get('http://localhost:8080');
- * http.get('http://localhost:8080');
- * // Prints:
- * // 0: start
- * // 1: start
- * // 0: finish
- * // 1: finish
- * ```
- *
- * Each instance of `AsyncLocalStorage` maintains an independent storage context.
- * Multiple instances can safely exist simultaneously without risk of interfering
- * with each other data.
- * @since v13.10.0, v12.17.0
- */
- class AsyncLocalStorage {
- /**
- * Disables the instance of `AsyncLocalStorage`. All subsequent calls
- * to `asyncLocalStorage.getStore()` will return `undefined` until`asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()` is called again.
- *
- * When calling `asyncLocalStorage.disable()`, all current contexts linked to the
- * instance will be exited.
- *
- * Calling `asyncLocalStorage.disable()` is required before the`asyncLocalStorage` can be garbage collected. This does not apply to stores
- * provided by the `asyncLocalStorage`, as those objects are garbage collected
- * along with the corresponding async resources.
- *
- * Use this method when the `asyncLocalStorage` is not in use anymore
- * in the current process.
- * @since v13.10.0, v12.17.0
- * @experimental
- */
- disable(): void;
- /**
- * Returns the current store.
- * If called outside of an asynchronous context initialized by
- * calling `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()`, it
- * returns `undefined`.
- * @since v13.10.0, v12.17.0
- */
- getStore(): T | undefined;
- /**
- * Runs a function synchronously within a context and returns its
- * return value. The store is not accessible outside of the callback function or
- * the asynchronous operations created within the callback.
- *
- * The optional `args` are passed to the callback function.
- *
- * If the callback function throws an error, the error is thrown by `run()` too.
- * The stacktrace is not impacted by this call and the context is exited.
- *
- * Example:
- *
- * ```js
- * const store = { id: 2 };
- * try {
- * asyncLocalStorage.run(store, () => {
- * asyncLocalStorage.getStore(); // Returns the store object
- * throw new Error();
- * });
- * } catch (e) {
- * asyncLocalStorage.getStore(); // Returns undefined
- * // The error will be caught here
- * }
- * ```
- * @since v13.10.0, v12.17.0
- */
- run(store: T, callback: (...args: TArgs) => R, ...args: TArgs): R;
- /**
- * Runs a function synchronously outside of a context and returns its
- * return value. The store is not accessible within the callback function or
- * the asynchronous operations created within the callback. Any `getStore()`call done within the callback function will always return `undefined`.
- *
- * The optional `args` are passed to the callback function.
- *
- * If the callback function throws an error, the error is thrown by `exit()` too.
- * The stacktrace is not impacted by this call and the context is re-entered.
- *
- * Example:
- *
- * ```js
- * // Within a call to run
- * try {
- * asyncLocalStorage.getStore(); // Returns the store object or value
- * asyncLocalStorage.exit(() => {
- * asyncLocalStorage.getStore(); // Returns undefined
- * throw new Error();
- * });
- * } catch (e) {
- * asyncLocalStorage.getStore(); // Returns the same object or value
- * // The error will be caught here
- * }
- * ```
- * @since v13.10.0, v12.17.0
- * @experimental
- */
- exit(callback: (...args: TArgs) => R, ...args: TArgs): R;
- /**
- * Transitions into the context for the remainder of the current
- * synchronous execution and then persists the store through any following
- * asynchronous calls.
- *
- * Example:
- *
- * ```js
- * const store = { id: 1 };
- * // Replaces previous store with the given store object
- * asyncLocalStorage.enterWith(store);
- * asyncLocalStorage.getStore(); // Returns the store object
- * someAsyncOperation(() => {
- * asyncLocalStorage.getStore(); // Returns the same object
- * });
- * ```
- *
- * This transition will continue for the _entire_ synchronous execution.
- * This means that if, for example, the context is entered within an event
- * handler subsequent event handlers will also run within that context unless
- * specifically bound to another context with an `AsyncResource`. That is why`run()` should be preferred over `enterWith()` unless there are strong reasons
- * to use the latter method.
- *
- * ```js
- * const store = { id: 1 };
- *
- * emitter.on('my-event', () => {
- * asyncLocalStorage.enterWith(store);
- * });
- * emitter.on('my-event', () => {
- * asyncLocalStorage.getStore(); // Returns the same object
- * });
- *
- * asyncLocalStorage.getStore(); // Returns undefined
- * emitter.emit('my-event');
- * asyncLocalStorage.getStore(); // Returns the same object
- * ```
- * @since v13.11.0, v12.17.0
- * @experimental
- */
- enterWith(store: T): void;
- }
-}
-declare module 'node:async_hooks' {
- export * from 'async_hooks';
-}
diff --git a/node_modules/@types/node/buffer.d.ts b/node_modules/@types/node/buffer.d.ts
deleted file mode 100755
index 9bf8ff9..0000000
--- a/node_modules/@types/node/buffer.d.ts
+++ /dev/null
@@ -1,2142 +0,0 @@
-/**
- * `Buffer` objects are used to represent a fixed-length sequence of bytes. Many
- * Node.js APIs support `Buffer`s.
- *
- * The `Buffer` class is a subclass of JavaScript's [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) class and
- * extends it with methods that cover additional use cases. Node.js APIs accept
- * plain [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)s wherever `Buffer`s are supported as well.
- *
- * While the `Buffer` class is available within the global scope, it is still
- * recommended to explicitly reference it via an import or require statement.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Creates a zero-filled Buffer of length 10.
- * const buf1 = Buffer.alloc(10);
- *
- * // Creates a Buffer of length 10,
- * // filled with bytes which all have the value `1`.
- * const buf2 = Buffer.alloc(10, 1);
- *
- * // Creates an uninitialized buffer of length 10.
- * // This is faster than calling Buffer.alloc() but the returned
- * // Buffer instance might contain old data that needs to be
- * // overwritten using fill(), write(), or other functions that fill the Buffer's
- * // contents.
- * const buf3 = Buffer.allocUnsafe(10);
- *
- * // Creates a Buffer containing the bytes [1, 2, 3].
- * const buf4 = Buffer.from([1, 2, 3]);
- *
- * // Creates a Buffer containing the bytes [1, 1, 1, 1] – the entries
- * // are all truncated using `(value & 255)` to fit into the range 0–255.
- * const buf5 = Buffer.from([257, 257.5, -255, '1']);
- *
- * // Creates a Buffer containing the UTF-8-encoded bytes for the string 'tést':
- * // [0x74, 0xc3, 0xa9, 0x73, 0x74] (in hexadecimal notation)
- * // [116, 195, 169, 115, 116] (in decimal notation)
- * const buf6 = Buffer.from('tést');
- *
- * // Creates a Buffer containing the Latin-1 bytes [0x74, 0xe9, 0x73, 0x74].
- * const buf7 = Buffer.from('tést', 'latin1');
- * ```
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/buffer.js)
- */
-declare module 'buffer' {
- import { BinaryLike } from 'node:crypto';
- export const INSPECT_MAX_BYTES: number;
- export const kMaxLength: number;
- export const kStringMaxLength: number;
- export const constants: {
- MAX_LENGTH: number;
- MAX_STRING_LENGTH: number;
- };
- export type TranscodeEncoding = 'ascii' | 'utf8' | 'utf16le' | 'ucs2' | 'latin1' | 'binary';
- /**
- * Re-encodes the given `Buffer` or `Uint8Array` instance from one character
- * encoding to another. Returns a new `Buffer` instance.
- *
- * Throws if the `fromEnc` or `toEnc` specify invalid character encodings or if
- * conversion from `fromEnc` to `toEnc` is not permitted.
- *
- * Encodings supported by `buffer.transcode()` are: `'ascii'`, `'utf8'`,`'utf16le'`, `'ucs2'`, `'latin1'`, and `'binary'`.
- *
- * The transcoding process will use substitution characters if a given byte
- * sequence cannot be adequately represented in the target encoding. For instance:
- *
- * ```js
- * import { Buffer, transcode } from 'buffer';
- *
- * const newBuf = transcode(Buffer.from('€'), 'utf8', 'ascii');
- * console.log(newBuf.toString('ascii'));
- * // Prints: '?'
- * ```
- *
- * Because the Euro (`€`) sign is not representable in US-ASCII, it is replaced
- * with `?` in the transcoded `Buffer`.
- * @since v7.1.0
- * @param source A `Buffer` or `Uint8Array` instance.
- * @param fromEnc The current encoding.
- * @param toEnc To target encoding.
- */
- export function transcode(source: Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer;
- export const SlowBuffer: {
- /** @deprecated since v6.0.0, use `Buffer.allocUnsafeSlow()` */
- new (size: number): Buffer;
- prototype: Buffer;
- };
- /**
- * Resolves a `'blob:nodedata:...'` an associated `Blob` object registered using
- * a prior call to `URL.createObjectURL()`.
- * @since v16.7.0
- * @experimental
- * @param id A `'blob:nodedata:...` URL string returned by a prior call to `URL.createObjectURL()`.
- */
- export function resolveObjectURL(id: string): Blob | undefined;
- export { Buffer };
- /**
- * @experimental
- */
- export interface BlobOptions {
- /**
- * @default 'utf8'
- */
- encoding?: BufferEncoding | undefined;
- /**
- * The Blob content-type. The intent is for `type` to convey
- * the MIME media type of the data, however no validation of the type format
- * is performed.
- */
- type?: string | undefined;
- }
- /**
- * A [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) encapsulates immutable, raw data that can be safely shared across
- * multiple worker threads.
- * @since v15.7.0
- * @experimental
- */
- export class Blob {
- /**
- * The total size of the `Blob` in bytes.
- * @since v15.7.0
- */
- readonly size: number;
- /**
- * The content-type of the `Blob`.
- * @since v15.7.0
- */
- readonly type: string;
- /**
- * Creates a new `Blob` object containing a concatenation of the given sources.
- *
- * {ArrayBuffer}, {TypedArray}, {DataView}, and {Buffer} sources are copied into
- * the 'Blob' and can therefore be safely modified after the 'Blob' is created.
- *
- * String sources are also copied into the `Blob`.
- */
- constructor(sources: Array, options?: BlobOptions);
- /**
- * Returns a promise that fulfills with an [<ArrayBuffer>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) containing a copy of
- * the `Blob` data.
- * @since v15.7.0
- */
- arrayBuffer(): Promise;
- /**
- * Creates and returns a new `Blob` containing a subset of this `Blob` objects
- * data. The original `Blob` is not altered.
- * @since v15.7.0
- * @param start The starting index.
- * @param end The ending index.
- * @param type The content-type for the new `Blob`
- */
- slice(start?: number, end?: number, type?: string): Blob;
- /**
- * Returns a promise that fulfills with the contents of the `Blob` decoded as a
- * UTF-8 string.
- * @since v15.7.0
- */
- text(): Promise;
- /**
- * Returns a new `ReadableStream` that allows the content of the `Blob` to be read.
- * @since v16.7.0
- */
- stream(): unknown; // pending web streams types
- }
- export import atob = globalThis.atob;
- export import btoa = globalThis.btoa;
- global {
- // Buffer class
- type BufferEncoding = 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex';
- type WithImplicitCoercion =
- | T
- | {
- valueOf(): T;
- };
- /**
- * Raw data is stored in instances of the Buffer class.
- * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized.
- * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex'
- */
- interface BufferConstructor {
- /**
- * Allocates a new buffer containing the given {str}.
- *
- * @param str String to store in buffer.
- * @param encoding encoding to use, optional. Default is 'utf8'
- * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead.
- */
- new (str: string, encoding?: BufferEncoding): Buffer;
- /**
- * Allocates a new buffer of {size} octets.
- *
- * @param size count of octets to allocate.
- * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`).
- */
- new (size: number): Buffer;
- /**
- * Allocates a new buffer containing the given {array} of octets.
- *
- * @param array The octets to store.
- * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead.
- */
- new (array: Uint8Array): Buffer;
- /**
- * Produces a Buffer backed by the same allocated memory as
- * the given {ArrayBuffer}/{SharedArrayBuffer}.
- *
- *
- * @param arrayBuffer The ArrayBuffer with which to share memory.
- * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead.
- */
- new (arrayBuffer: ArrayBuffer | SharedArrayBuffer): Buffer;
- /**
- * Allocates a new buffer containing the given {array} of octets.
- *
- * @param array The octets to store.
- * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead.
- */
- new (array: ReadonlyArray): Buffer;
- /**
- * Copies the passed {buffer} data onto a new {Buffer} instance.
- *
- * @param buffer The buffer to copy.
- * @deprecated since v10.0.0 - Use `Buffer.from(buffer)` instead.
- */
- new (buffer: Buffer): Buffer;
- /**
- * Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`.
- * Array entries outside that range will be truncated to fit into it.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Creates a new Buffer containing the UTF-8 bytes of the string 'buffer'.
- * const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
- * ```
- *
- * A `TypeError` will be thrown if `array` is not an `Array` or another type
- * appropriate for `Buffer.from()` variants.
- *
- * `Buffer.from(array)` and `Buffer.from(string)` may also use the internal`Buffer` pool like `Buffer.allocUnsafe()` does.
- * @since v5.10.0
- */
- from(arrayBuffer: WithImplicitCoercion, byteOffset?: number, length?: number): Buffer;
- /**
- * Creates a new Buffer using the passed {data}
- * @param data data to create a new Buffer
- */
- from(data: Uint8Array | ReadonlyArray): Buffer;
- from(data: WithImplicitCoercion | string>): Buffer;
- /**
- * Creates a new Buffer containing the given JavaScript string {str}.
- * If provided, the {encoding} parameter identifies the character encoding.
- * If not provided, {encoding} defaults to 'utf8'.
- */
- from(
- str:
- | WithImplicitCoercion
- | {
- [Symbol.toPrimitive](hint: 'string'): string;
- },
- encoding?: BufferEncoding
- ): Buffer;
- /**
- * Creates a new Buffer using the passed {data}
- * @param values to create a new Buffer
- */
- of(...items: number[]): Buffer;
- /**
- * Returns `true` if `obj` is a `Buffer`, `false` otherwise.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * Buffer.isBuffer(Buffer.alloc(10)); // true
- * Buffer.isBuffer(Buffer.from('foo')); // true
- * Buffer.isBuffer('a string'); // false
- * Buffer.isBuffer([]); // false
- * Buffer.isBuffer(new Uint8Array(1024)); // false
- * ```
- * @since v0.1.101
- */
- isBuffer(obj: any): obj is Buffer;
- /**
- * Returns `true` if `encoding` is the name of a supported character encoding,
- * or `false` otherwise.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * console.log(Buffer.isEncoding('utf8'));
- * // Prints: true
- *
- * console.log(Buffer.isEncoding('hex'));
- * // Prints: true
- *
- * console.log(Buffer.isEncoding('utf/8'));
- * // Prints: false
- *
- * console.log(Buffer.isEncoding(''));
- * // Prints: false
- * ```
- * @since v0.9.1
- * @param encoding A character encoding name to check.
- */
- isEncoding(encoding: string): encoding is BufferEncoding;
- /**
- * Returns the byte length of a string when encoded using `encoding`.
- * This is not the same as [`String.prototype.length`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length), which does not account
- * for the encoding that is used to convert the string into bytes.
- *
- * For `'base64'`, `'base64url'`, and `'hex'`, this function assumes valid input.
- * For strings that contain non-base64/hex-encoded data (e.g. whitespace), the
- * return value might be greater than the length of a `Buffer` created from the
- * string.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const str = '\u00bd + \u00bc = \u00be';
- *
- * console.log(`${str}: ${str.length} characters, ` +
- * `${Buffer.byteLength(str, 'utf8')} bytes`);
- * // Prints: ½ + ¼ = ¾: 9 characters, 12 bytes
- * ```
- *
- * When `string` is a
- * `Buffer`/[`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView)/[`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/-
- * Reference/Global_Objects/TypedArray)/[`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)/[`SharedArrayBuffer`](https://develop-
- * er.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer), the byte length as reported by `.byteLength`is returned.
- * @since v0.1.90
- * @param string A value to calculate the length of.
- * @param [encoding='utf8'] If `string` is a string, this is its encoding.
- * @return The number of bytes contained within `string`.
- */
- byteLength(string: string | NodeJS.ArrayBufferView | ArrayBuffer | SharedArrayBuffer, encoding?: BufferEncoding): number;
- /**
- * Returns a new `Buffer` which is the result of concatenating all the `Buffer`instances in the `list` together.
- *
- * If the list has no items, or if the `totalLength` is 0, then a new zero-length`Buffer` is returned.
- *
- * If `totalLength` is not provided, it is calculated from the `Buffer` instances
- * in `list` by adding their lengths.
- *
- * If `totalLength` is provided, it is coerced to an unsigned integer. If the
- * combined length of the `Buffer`s in `list` exceeds `totalLength`, the result is
- * truncated to `totalLength`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Create a single `Buffer` from a list of three `Buffer` instances.
- *
- * const buf1 = Buffer.alloc(10);
- * const buf2 = Buffer.alloc(14);
- * const buf3 = Buffer.alloc(18);
- * const totalLength = buf1.length + buf2.length + buf3.length;
- *
- * console.log(totalLength);
- * // Prints: 42
- *
- * const bufA = Buffer.concat([buf1, buf2, buf3], totalLength);
- *
- * console.log(bufA);
- * // Prints:
- * console.log(bufA.length);
- * // Prints: 42
- * ```
- *
- * `Buffer.concat()` may also use the internal `Buffer` pool like `Buffer.allocUnsafe()` does.
- * @since v0.7.11
- * @param list List of `Buffer` or {@link Uint8Array} instances to concatenate.
- * @param totalLength Total length of the `Buffer` instances in `list` when concatenated.
- */
- concat(list: ReadonlyArray, totalLength?: number): Buffer;
- /**
- * Compares `buf1` to `buf2`, typically for the purpose of sorting arrays of`Buffer` instances. This is equivalent to calling `buf1.compare(buf2)`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf1 = Buffer.from('1234');
- * const buf2 = Buffer.from('0123');
- * const arr = [buf1, buf2];
- *
- * console.log(arr.sort(Buffer.compare));
- * // Prints: [ , ]
- * // (This result is equal to: [buf2, buf1].)
- * ```
- * @since v0.11.13
- * @return Either `-1`, `0`, or `1`, depending on the result of the comparison. See `compare` for details.
- */
- compare(buf1: Uint8Array, buf2: Uint8Array): number;
- /**
- * Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the`Buffer` will be zero-filled.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.alloc(5);
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown.
- *
- * If `fill` is specified, the allocated `Buffer` will be initialized by calling `buf.fill(fill)`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.alloc(5, 'a');
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * If both `fill` and `encoding` are specified, the allocated `Buffer` will be
- * initialized by calling `buf.fill(fill, encoding)`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * Calling `Buffer.alloc()` can be measurably slower than the alternative `Buffer.allocUnsafe()` but ensures that the newly created `Buffer` instance
- * contents will never contain sensitive data from previous allocations, including
- * data that might not have been allocated for `Buffer`s.
- *
- * A `TypeError` will be thrown if `size` is not a number.
- * @since v5.10.0
- * @param size The desired length of the new `Buffer`.
- * @param [fill=0] A value to pre-fill the new `Buffer` with.
- * @param [encoding='utf8'] If `fill` is a string, this is its encoding.
- */
- alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer;
- /**
- * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown.
- *
- * The underlying memory for `Buffer` instances created in this way is _not_
- * _initialized_. The contents of the newly created `Buffer` are unknown and_may contain sensitive data_. Use `Buffer.alloc()` instead to initialize`Buffer` instances with zeroes.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(10);
- *
- * console.log(buf);
- * // Prints (contents may vary):
- *
- * buf.fill(0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * A `TypeError` will be thrown if `size` is not a number.
- *
- * The `Buffer` module pre-allocates an internal `Buffer` instance of
- * size `Buffer.poolSize` that is used as a pool for the fast allocation of new`Buffer` instances created using `Buffer.allocUnsafe()`,`Buffer.from(array)`, `Buffer.concat()`, and the
- * deprecated`new Buffer(size)` constructor only when `size` is less than or equal
- * to `Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two).
- *
- * Use of this pre-allocated internal memory pool is a key difference between
- * calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`.
- * Specifically, `Buffer.alloc(size, fill)` will _never_ use the internal `Buffer`pool, while `Buffer.allocUnsafe(size).fill(fill)`_will_ use the internal`Buffer` pool if `size` is less
- * than or equal to half `Buffer.poolSize`. The
- * difference is subtle but can be important when an application requires the
- * additional performance that `Buffer.allocUnsafe()` provides.
- * @since v5.10.0
- * @param size The desired length of the new `Buffer`.
- */
- allocUnsafe(size: number): Buffer;
- /**
- * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown. A zero-length `Buffer` is created
- * if `size` is 0.
- *
- * The underlying memory for `Buffer` instances created in this way is _not_
- * _initialized_. The contents of the newly created `Buffer` are unknown and_may contain sensitive data_. Use `buf.fill(0)` to initialize
- * such `Buffer` instances with zeroes.
- *
- * When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances,
- * allocations under 4 KB are sliced from a single pre-allocated `Buffer`. This
- * allows applications to avoid the garbage collection overhead of creating many
- * individually allocated `Buffer` instances. This approach improves both
- * performance and memory usage by eliminating the need to track and clean up as
- * many individual `ArrayBuffer` objects.
- *
- * However, in the case where a developer may need to retain a small chunk of
- * memory from a pool for an indeterminate amount of time, it may be appropriate
- * to create an un-pooled `Buffer` instance using `Buffer.allocUnsafeSlow()` and
- * then copying out the relevant bits.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Need to keep around a few small chunks of memory.
- * const store = [];
- *
- * socket.on('readable', () => {
- * let data;
- * while (null !== (data = readable.read())) {
- * // Allocate for retained data.
- * const sb = Buffer.allocUnsafeSlow(10);
- *
- * // Copy the data into the new allocation.
- * data.copy(sb, 0, 0, 10);
- *
- * store.push(sb);
- * }
- * });
- * ```
- *
- * A `TypeError` will be thrown if `size` is not a number.
- * @since v5.12.0
- * @param size The desired length of the new `Buffer`.
- */
- allocUnsafeSlow(size: number): Buffer;
- /**
- * This is the size (in bytes) of pre-allocated internal `Buffer` instances used
- * for pooling. This value may be modified.
- * @since v0.11.3
- */
- poolSize: number;
- }
- interface Buffer extends Uint8Array {
- /**
- * Writes `string` to `buf` at `offset` according to the character encoding in`encoding`. The `length` parameter is the number of bytes to write. If `buf` did
- * not contain enough space to fit the entire string, only part of `string` will be
- * written. However, partially encoded characters will not be written.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.alloc(256);
- *
- * const len = buf.write('\u00bd + \u00bc = \u00be', 0);
- *
- * console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`);
- * // Prints: 12 bytes: ½ + ¼ = ¾
- *
- * const buffer = Buffer.alloc(10);
- *
- * const length = buffer.write('abcd', 8);
- *
- * console.log(`${length} bytes: ${buffer.toString('utf8', 8, 10)}`);
- * // Prints: 2 bytes : ab
- * ```
- * @since v0.1.90
- * @param string String to write to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write `string`.
- * @param [length=buf.length - offset] Maximum number of bytes to write (written bytes will not exceed `buf.length - offset`).
- * @param [encoding='utf8'] The character encoding of `string`.
- * @return Number of bytes written.
- */
- write(string: string, encoding?: BufferEncoding): number;
- write(string: string, offset: number, encoding?: BufferEncoding): number;
- write(string: string, offset: number, length: number, encoding?: BufferEncoding): number;
- /**
- * Decodes `buf` to a string according to the specified character encoding in`encoding`. `start` and `end` may be passed to decode only a subset of `buf`.
- *
- * If `encoding` is `'utf8'` and a byte sequence in the input is not valid UTF-8,
- * then each invalid byte is replaced with the replacement character `U+FFFD`.
- *
- * The maximum length of a string instance (in UTF-16 code units) is available
- * as {@link constants.MAX_STRING_LENGTH}.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf1 = Buffer.allocUnsafe(26);
- *
- * for (let i = 0; i < 26; i++) {
- * // 97 is the decimal ASCII value for 'a'.
- * buf1[i] = i + 97;
- * }
- *
- * console.log(buf1.toString('utf8'));
- * // Prints: abcdefghijklmnopqrstuvwxyz
- * console.log(buf1.toString('utf8', 0, 5));
- * // Prints: abcde
- *
- * const buf2 = Buffer.from('tést');
- *
- * console.log(buf2.toString('hex'));
- * // Prints: 74c3a97374
- * console.log(buf2.toString('utf8', 0, 3));
- * // Prints: té
- * console.log(buf2.toString(undefined, 0, 3));
- * // Prints: té
- * ```
- * @since v0.1.90
- * @param [encoding='utf8'] The character encoding to use.
- * @param [start=0] The byte offset to start decoding at.
- * @param [end=buf.length] The byte offset to stop decoding at (not inclusive).
- */
- toString(encoding?: BufferEncoding, start?: number, end?: number): string;
- /**
- * Returns a JSON representation of `buf`. [`JSON.stringify()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) implicitly calls
- * this function when stringifying a `Buffer` instance.
- *
- * `Buffer.from()` accepts objects in the format returned from this method.
- * In particular, `Buffer.from(buf.toJSON())` works like `Buffer.from(buf)`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
- * const json = JSON.stringify(buf);
- *
- * console.log(json);
- * // Prints: {"type":"Buffer","data":[1,2,3,4,5]}
- *
- * const copy = JSON.parse(json, (key, value) => {
- * return value && value.type === 'Buffer' ?
- * Buffer.from(value) :
- * value;
- * });
- *
- * console.log(copy);
- * // Prints:
- * ```
- * @since v0.9.2
- */
- toJSON(): {
- type: 'Buffer';
- data: number[];
- };
- /**
- * Returns `true` if both `buf` and `otherBuffer` have exactly the same bytes,`false` otherwise. Equivalent to `buf.compare(otherBuffer) === 0`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf1 = Buffer.from('ABC');
- * const buf2 = Buffer.from('414243', 'hex');
- * const buf3 = Buffer.from('ABCD');
- *
- * console.log(buf1.equals(buf2));
- * // Prints: true
- * console.log(buf1.equals(buf3));
- * // Prints: false
- * ```
- * @since v0.11.13
- * @param otherBuffer A `Buffer` or {@link Uint8Array} with which to compare `buf`.
- */
- equals(otherBuffer: Uint8Array): boolean;
- /**
- * Compares `buf` with `target` and returns a number indicating whether `buf`comes before, after, or is the same as `target` in sort order.
- * Comparison is based on the actual sequence of bytes in each `Buffer`.
- *
- * * `0` is returned if `target` is the same as `buf`
- * * `1` is returned if `target` should come _before_`buf` when sorted.
- * * `-1` is returned if `target` should come _after_`buf` when sorted.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf1 = Buffer.from('ABC');
- * const buf2 = Buffer.from('BCD');
- * const buf3 = Buffer.from('ABCD');
- *
- * console.log(buf1.compare(buf1));
- * // Prints: 0
- * console.log(buf1.compare(buf2));
- * // Prints: -1
- * console.log(buf1.compare(buf3));
- * // Prints: -1
- * console.log(buf2.compare(buf1));
- * // Prints: 1
- * console.log(buf2.compare(buf3));
- * // Prints: 1
- * console.log([buf1, buf2, buf3].sort(Buffer.compare));
- * // Prints: [ , , ]
- * // (This result is equal to: [buf1, buf3, buf2].)
- * ```
- *
- * The optional `targetStart`, `targetEnd`, `sourceStart`, and `sourceEnd`arguments can be used to limit the comparison to specific ranges within `target`and `buf` respectively.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf1 = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
- * const buf2 = Buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]);
- *
- * console.log(buf1.compare(buf2, 5, 9, 0, 4));
- * // Prints: 0
- * console.log(buf1.compare(buf2, 0, 6, 4));
- * // Prints: -1
- * console.log(buf1.compare(buf2, 5, 6, 5));
- * // Prints: 1
- * ```
- *
- * `ERR_OUT_OF_RANGE` is thrown if `targetStart < 0`, `sourceStart < 0`,`targetEnd > target.byteLength`, or `sourceEnd > source.byteLength`.
- * @since v0.11.13
- * @param target A `Buffer` or {@link Uint8Array} with which to compare `buf`.
- * @param [targetStart=0] The offset within `target` at which to begin comparison.
- * @param [targetEnd=target.length] The offset within `target` at which to end comparison (not inclusive).
- * @param [sourceStart=0] The offset within `buf` at which to begin comparison.
- * @param [sourceEnd=buf.length] The offset within `buf` at which to end comparison (not inclusive).
- */
- compare(target: Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number;
- /**
- * Copies data from a region of `buf` to a region in `target`, even if the `target`memory region overlaps with `buf`.
- *
- * [`TypedArray.prototype.set()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set) performs the same operation, and is available
- * for all TypedArrays, including Node.js `Buffer`s, although it takes
- * different function arguments.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Create two `Buffer` instances.
- * const buf1 = Buffer.allocUnsafe(26);
- * const buf2 = Buffer.allocUnsafe(26).fill('!');
- *
- * for (let i = 0; i < 26; i++) {
- * // 97 is the decimal ASCII value for 'a'.
- * buf1[i] = i + 97;
- * }
- *
- * // Copy `buf1` bytes 16 through 19 into `buf2` starting at byte 8 of `buf2`.
- * buf1.copy(buf2, 8, 16, 20);
- * // This is equivalent to:
- * // buf2.set(buf1.subarray(16, 20), 8);
- *
- * console.log(buf2.toString('ascii', 0, 25));
- * // Prints: !!!!!!!!qrst!!!!!!!!!!!!!
- * ```
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Create a `Buffer` and copy data from one region to an overlapping region
- * // within the same `Buffer`.
- *
- * const buf = Buffer.allocUnsafe(26);
- *
- * for (let i = 0; i < 26; i++) {
- * // 97 is the decimal ASCII value for 'a'.
- * buf[i] = i + 97;
- * }
- *
- * buf.copy(buf, 0, 4, 10);
- *
- * console.log(buf.toString());
- * // Prints: efghijghijklmnopqrstuvwxyz
- * ```
- * @since v0.1.90
- * @param target A `Buffer` or {@link Uint8Array} to copy into.
- * @param [targetStart=0] The offset within `target` at which to begin writing.
- * @param [sourceStart=0] The offset within `buf` from which to begin copying.
- * @param [sourceEnd=buf.length] The offset within `buf` at which to stop copying (not inclusive).
- * @return The number of bytes copied.
- */
- copy(target: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
- /**
- * Returns a new `Buffer` that references the same memory as the original, but
- * offset and cropped by the `start` and `end` indices.
- *
- * This is the same behavior as `buf.subarray()`.
- *
- * This method is not compatible with the `Uint8Array.prototype.slice()`,
- * which is a superclass of `Buffer`. To copy the slice, use`Uint8Array.prototype.slice()`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from('buffer');
- *
- * const copiedBuf = Uint8Array.prototype.slice.call(buf);
- * copiedBuf[0]++;
- * console.log(copiedBuf.toString());
- * // Prints: cuffer
- *
- * console.log(buf.toString());
- * // Prints: buffer
- * ```
- * @since v0.3.0
- * @param [start=0] Where the new `Buffer` will start.
- * @param [end=buf.length] Where the new `Buffer` will end (not inclusive).
- */
- slice(start?: number, end?: number): Buffer;
- /**
- * Returns a new `Buffer` that references the same memory as the original, but
- * offset and cropped by the `start` and `end` indices.
- *
- * Specifying `end` greater than `buf.length` will return the same result as
- * that of `end` equal to `buf.length`.
- *
- * This method is inherited from [`TypedArray.prototype.subarray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray).
- *
- * Modifying the new `Buffer` slice will modify the memory in the original `Buffer`because the allocated memory of the two objects overlap.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte
- * // from the original `Buffer`.
- *
- * const buf1 = Buffer.allocUnsafe(26);
- *
- * for (let i = 0; i < 26; i++) {
- * // 97 is the decimal ASCII value for 'a'.
- * buf1[i] = i + 97;
- * }
- *
- * const buf2 = buf1.subarray(0, 3);
- *
- * console.log(buf2.toString('ascii', 0, buf2.length));
- * // Prints: abc
- *
- * buf1[0] = 33;
- *
- * console.log(buf2.toString('ascii', 0, buf2.length));
- * // Prints: !bc
- * ```
- *
- * Specifying negative indexes causes the slice to be generated relative to the
- * end of `buf` rather than the beginning.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from('buffer');
- *
- * console.log(buf.subarray(-6, -1).toString());
- * // Prints: buffe
- * // (Equivalent to buf.subarray(0, 5).)
- *
- * console.log(buf.subarray(-6, -2).toString());
- * // Prints: buff
- * // (Equivalent to buf.subarray(0, 4).)
- *
- * console.log(buf.subarray(-5, -2).toString());
- * // Prints: uff
- * // (Equivalent to buf.subarray(1, 4).)
- * ```
- * @since v3.0.0
- * @param [start=0] Where the new `Buffer` will start.
- * @param [end=buf.length] Where the new `Buffer` will end (not inclusive).
- */
- subarray(start?: number, end?: number): Buffer;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian.
- *
- * `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeBigInt64BE(0x0102030405060708n, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v12.0.0, v10.20.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeBigInt64BE(value: bigint, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian.
- *
- * `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeBigInt64LE(0x0102030405060708n, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v12.0.0, v10.20.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeBigInt64LE(value: bigint, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian.
- *
- * This function is also available under the `writeBigUint64BE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeBigUInt64BE(0xdecafafecacefaden, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v12.0.0, v10.20.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeBigUInt64BE(value: bigint, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeBigUInt64LE(0xdecafafecacefaden, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- *
- * This function is also available under the `writeBigUint64LE` alias.
- * @since v12.0.0, v10.20.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeBigUInt64LE(value: bigint, offset?: number): number;
- /**
- * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined
- * when `value` is anything other than an unsigned integer.
- *
- * This function is also available under the `writeUintLE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(6);
- *
- * buf.writeUIntLE(0x1234567890ab, 0, 6);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.
- * @return `offset` plus the number of bytes written.
- */
- writeUIntLE(value: number, offset: number, byteLength: number): number;
- /**
- * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined
- * when `value` is anything other than an unsigned integer.
- *
- * This function is also available under the `writeUintBE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(6);
- *
- * buf.writeUIntBE(0x1234567890ab, 0, 6);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.
- * @return `offset` plus the number of bytes written.
- */
- writeUIntBE(value: number, offset: number, byteLength: number): number;
- /**
- * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined
- * when `value` is anything other than a signed integer.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(6);
- *
- * buf.writeIntLE(0x1234567890ab, 0, 6);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.
- * @return `offset` plus the number of bytes written.
- */
- writeIntLE(value: number, offset: number, byteLength: number): number;
- /**
- * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined when`value` is anything other than a
- * signed integer.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(6);
- *
- * buf.writeIntBE(0x1234567890ab, 0, 6);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`.
- * @return `offset` plus the number of bytes written.
- */
- writeIntBE(value: number, offset: number, byteLength: number): number;
- /**
- * Reads an unsigned, big-endian 64-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readBigUint64BE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]);
- *
- * console.log(buf.readBigUInt64BE(0));
- * // Prints: 4294967295n
- * ```
- * @since v12.0.0, v10.20.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.
- */
- readBigUInt64BE(offset?: number): bigint;
- /**
- * Reads an unsigned, little-endian 64-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readBigUint64LE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]);
- *
- * console.log(buf.readBigUInt64LE(0));
- * // Prints: 18446744069414584320n
- * ```
- * @since v12.0.0, v10.20.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.
- */
- readBigUInt64LE(offset?: number): bigint;
- /**
- * Reads a signed, big-endian 64-bit integer from `buf` at the specified `offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed
- * values.
- * @since v12.0.0, v10.20.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.
- */
- readBigInt64BE(offset?: number): bigint;
- /**
- * Reads a signed, little-endian 64-bit integer from `buf` at the specified`offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed
- * values.
- * @since v12.0.0, v10.20.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`.
- */
- readBigInt64LE(offset?: number): bigint;
- /**
- * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as an unsigned, little-endian integer supporting
- * up to 48 bits of accuracy.
- *
- * This function is also available under the `readUintLE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
- *
- * console.log(buf.readUIntLE(0, 6).toString(16));
- * // Prints: ab9078563412
- * ```
- * @since v0.11.15
- * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.
- */
- readUIntLE(offset: number, byteLength: number): number;
- /**
- * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as an unsigned big-endian integer supporting
- * up to 48 bits of accuracy.
- *
- * This function is also available under the `readUintBE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
- *
- * console.log(buf.readUIntBE(0, 6).toString(16));
- * // Prints: 1234567890ab
- * console.log(buf.readUIntBE(1, 6).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.11.15
- * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.
- */
- readUIntBE(offset: number, byteLength: number): number;
- /**
- * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as a little-endian, two's complement signed value
- * supporting up to 48 bits of accuracy.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
- *
- * console.log(buf.readIntLE(0, 6).toString(16));
- * // Prints: -546f87a9cbee
- * ```
- * @since v0.11.15
- * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.
- */
- readIntLE(offset: number, byteLength: number): number;
- /**
- * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as a big-endian, two's complement signed value
- * supporting up to 48 bits of accuracy.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]);
- *
- * console.log(buf.readIntBE(0, 6).toString(16));
- * // Prints: 1234567890ab
- * console.log(buf.readIntBE(1, 6).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * console.log(buf.readIntBE(1, 0).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.11.15
- * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`.
- * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`.
- */
- readIntBE(offset: number, byteLength: number): number;
- /**
- * Reads an unsigned 8-bit integer from `buf` at the specified `offset`.
- *
- * This function is also available under the `readUint8` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([1, -2]);
- *
- * console.log(buf.readUInt8(0));
- * // Prints: 1
- * console.log(buf.readUInt8(1));
- * // Prints: 254
- * console.log(buf.readUInt8(2));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`.
- */
- readUInt8(offset?: number): number;
- /**
- * Reads an unsigned, little-endian 16-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readUint16LE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56]);
- *
- * console.log(buf.readUInt16LE(0).toString(16));
- * // Prints: 3412
- * console.log(buf.readUInt16LE(1).toString(16));
- * // Prints: 5634
- * console.log(buf.readUInt16LE(2).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.
- */
- readUInt16LE(offset?: number): number;
- /**
- * Reads an unsigned, big-endian 16-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readUint16BE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56]);
- *
- * console.log(buf.readUInt16BE(0).toString(16));
- * // Prints: 1234
- * console.log(buf.readUInt16BE(1).toString(16));
- * // Prints: 3456
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.
- */
- readUInt16BE(offset?: number): number;
- /**
- * Reads an unsigned, little-endian 32-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readUint32LE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]);
- *
- * console.log(buf.readUInt32LE(0).toString(16));
- * // Prints: 78563412
- * console.log(buf.readUInt32LE(1).toString(16));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readUInt32LE(offset?: number): number;
- /**
- * Reads an unsigned, big-endian 32-bit integer from `buf` at the specified`offset`.
- *
- * This function is also available under the `readUint32BE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]);
- *
- * console.log(buf.readUInt32BE(0).toString(16));
- * // Prints: 12345678
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readUInt32BE(offset?: number): number;
- /**
- * Reads a signed 8-bit integer from `buf` at the specified `offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([-1, 5]);
- *
- * console.log(buf.readInt8(0));
- * // Prints: -1
- * console.log(buf.readInt8(1));
- * // Prints: 5
- * console.log(buf.readInt8(2));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.0
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`.
- */
- readInt8(offset?: number): number;
- /**
- * Reads a signed, little-endian 16-bit integer from `buf` at the specified`offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0, 5]);
- *
- * console.log(buf.readInt16LE(0));
- * // Prints: 1280
- * console.log(buf.readInt16LE(1));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.
- */
- readInt16LE(offset?: number): number;
- /**
- * Reads a signed, big-endian 16-bit integer from `buf` at the specified `offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0, 5]);
- *
- * console.log(buf.readInt16BE(0));
- * // Prints: 5
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`.
- */
- readInt16BE(offset?: number): number;
- /**
- * Reads a signed, little-endian 32-bit integer from `buf` at the specified`offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0, 0, 0, 5]);
- *
- * console.log(buf.readInt32LE(0));
- * // Prints: 83886080
- * console.log(buf.readInt32LE(1));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readInt32LE(offset?: number): number;
- /**
- * Reads a signed, big-endian 32-bit integer from `buf` at the specified `offset`.
- *
- * Integers read from a `Buffer` are interpreted as two's complement signed values.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([0, 0, 0, 5]);
- *
- * console.log(buf.readInt32BE(0));
- * // Prints: 5
- * ```
- * @since v0.5.5
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readInt32BE(offset?: number): number;
- /**
- * Reads a 32-bit, little-endian float from `buf` at the specified `offset`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([1, 2, 3, 4]);
- *
- * console.log(buf.readFloatLE(0));
- * // Prints: 1.539989614439558e-36
- * console.log(buf.readFloatLE(1));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.11.15
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readFloatLE(offset?: number): number;
- /**
- * Reads a 32-bit, big-endian float from `buf` at the specified `offset`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([1, 2, 3, 4]);
- *
- * console.log(buf.readFloatBE(0));
- * // Prints: 2.387939260590663e-38
- * ```
- * @since v0.11.15
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`.
- */
- readFloatBE(offset?: number): number;
- /**
- * Reads a 64-bit, little-endian double from `buf` at the specified `offset`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
- *
- * console.log(buf.readDoubleLE(0));
- * // Prints: 5.447603722011605e-270
- * console.log(buf.readDoubleLE(1));
- * // Throws ERR_OUT_OF_RANGE.
- * ```
- * @since v0.11.15
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`.
- */
- readDoubleLE(offset?: number): number;
- /**
- * Reads a 64-bit, big-endian double from `buf` at the specified `offset`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]);
- *
- * console.log(buf.readDoubleBE(0));
- * // Prints: 8.20788039913184e-304
- * ```
- * @since v0.11.15
- * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`.
- */
- readDoubleBE(offset?: number): number;
- reverse(): this;
- /**
- * Interprets `buf` as an array of unsigned 16-bit integers and swaps the
- * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 2.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
- *
- * console.log(buf1);
- * // Prints:
- *
- * buf1.swap16();
- *
- * console.log(buf1);
- * // Prints:
- *
- * const buf2 = Buffer.from([0x1, 0x2, 0x3]);
- *
- * buf2.swap16();
- * // Throws ERR_INVALID_BUFFER_SIZE.
- * ```
- *
- * One convenient use of `buf.swap16()` is to perform a fast in-place conversion
- * between UTF-16 little-endian and UTF-16 big-endian:
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from('This is little-endian UTF-16', 'utf16le');
- * buf.swap16(); // Convert to big-endian UTF-16 text.
- * ```
- * @since v5.10.0
- * @return A reference to `buf`.
- */
- swap16(): Buffer;
- /**
- * Interprets `buf` as an array of unsigned 32-bit integers and swaps the
- * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 4.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
- *
- * console.log(buf1);
- * // Prints:
- *
- * buf1.swap32();
- *
- * console.log(buf1);
- * // Prints:
- *
- * const buf2 = Buffer.from([0x1, 0x2, 0x3]);
- *
- * buf2.swap32();
- * // Throws ERR_INVALID_BUFFER_SIZE.
- * ```
- * @since v5.10.0
- * @return A reference to `buf`.
- */
- swap32(): Buffer;
- /**
- * Interprets `buf` as an array of 64-bit numbers and swaps byte order _in-place_.
- * Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 8.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]);
- *
- * console.log(buf1);
- * // Prints:
- *
- * buf1.swap64();
- *
- * console.log(buf1);
- * // Prints:
- *
- * const buf2 = Buffer.from([0x1, 0x2, 0x3]);
- *
- * buf2.swap64();
- * // Throws ERR_INVALID_BUFFER_SIZE.
- * ```
- * @since v6.3.0
- * @return A reference to `buf`.
- */
- swap64(): Buffer;
- /**
- * Writes `value` to `buf` at the specified `offset`. `value` must be a
- * valid unsigned 8-bit integer. Behavior is undefined when `value` is anything
- * other than an unsigned 8-bit integer.
- *
- * This function is also available under the `writeUint8` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt8(0x3, 0);
- * buf.writeUInt8(0x4, 1);
- * buf.writeUInt8(0x23, 2);
- * buf.writeUInt8(0x42, 3);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt8(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid unsigned 16-bit integer. Behavior is undefined when `value` is
- * anything other than an unsigned 16-bit integer.
- *
- * This function is also available under the `writeUint16LE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt16LE(0xdead, 0);
- * buf.writeUInt16LE(0xbeef, 2);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt16LE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid unsigned 16-bit integer. Behavior is undefined when `value`is anything other than an
- * unsigned 16-bit integer.
- *
- * This function is also available under the `writeUint16BE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt16BE(0xdead, 0);
- * buf.writeUInt16BE(0xbeef, 2);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt16BE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid unsigned 32-bit integer. Behavior is undefined when `value` is
- * anything other than an unsigned 32-bit integer.
- *
- * This function is also available under the `writeUint32LE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt32LE(0xfeedface, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt32LE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid unsigned 32-bit integer. Behavior is undefined when `value`is anything other than an
- * unsigned 32-bit integer.
- *
- * This function is also available under the `writeUint32BE` alias.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeUInt32BE(0xfeedface, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeUInt32BE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset`. `value` must be a valid
- * signed 8-bit integer. Behavior is undefined when `value` is anything other than
- * a signed 8-bit integer.
- *
- * `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(2);
- *
- * buf.writeInt8(2, 0);
- * buf.writeInt8(-2, 1);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.0
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt8(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid signed 16-bit integer. Behavior is undefined when `value` is
- * anything other than a signed 16-bit integer.
- *
- * The `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(2);
- *
- * buf.writeInt16LE(0x0304, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt16LE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid signed 16-bit integer. Behavior is undefined when `value` is
- * anything other than a signed 16-bit integer.
- *
- * The `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(2);
- *
- * buf.writeInt16BE(0x0102, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt16BE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid signed 32-bit integer. Behavior is undefined when `value` is
- * anything other than a signed 32-bit integer.
- *
- * The `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeInt32LE(0x05060708, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt32LE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid signed 32-bit integer. Behavior is undefined when `value` is
- * anything other than a signed 32-bit integer.
- *
- * The `value` is interpreted and written as a two's complement signed integer.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeInt32BE(0x01020304, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.5.5
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeInt32BE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. Behavior is
- * undefined when `value` is anything other than a JavaScript number.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeFloatLE(0xcafebabe, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeFloatLE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. Behavior is
- * undefined when `value` is anything other than a JavaScript number.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(4);
- *
- * buf.writeFloatBE(0xcafebabe, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`.
- * @return `offset` plus the number of bytes written.
- */
- writeFloatBE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a JavaScript number. Behavior is undefined when `value` is anything
- * other than a JavaScript number.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeDoubleLE(123.456, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeDoubleLE(value: number, offset?: number): number;
- /**
- * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a JavaScript number. Behavior is undefined when `value` is anything
- * other than a JavaScript number.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(8);
- *
- * buf.writeDoubleBE(123.456, 0);
- *
- * console.log(buf);
- * // Prints:
- * ```
- * @since v0.11.15
- * @param value Number to be written to `buf`.
- * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`.
- * @return `offset` plus the number of bytes written.
- */
- writeDoubleBE(value: number, offset?: number): number;
- /**
- * Fills `buf` with the specified `value`. If the `offset` and `end` are not given,
- * the entire `buf` will be filled:
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Fill a `Buffer` with the ASCII character 'h'.
- *
- * const b = Buffer.allocUnsafe(50).fill('h');
- *
- * console.log(b.toString());
- * // Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
- * ```
- *
- * `value` is coerced to a `uint32` value if it is not a string, `Buffer`, or
- * integer. If the resulting integer is greater than `255` (decimal), `buf` will be
- * filled with `value & 255`.
- *
- * If the final write of a `fill()` operation falls on a multi-byte character,
- * then only the bytes of that character that fit into `buf` are written:
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Fill a `Buffer` with character that takes up two bytes in UTF-8.
- *
- * console.log(Buffer.allocUnsafe(5).fill('\u0222'));
- * // Prints:
- * ```
- *
- * If `value` contains invalid characters, it is truncated; if no valid
- * fill data remains, an exception is thrown:
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.allocUnsafe(5);
- *
- * console.log(buf.fill('a'));
- * // Prints:
- * console.log(buf.fill('aazz', 'hex'));
- * // Prints:
- * console.log(buf.fill('zz', 'hex'));
- * // Throws an exception.
- * ```
- * @since v0.5.0
- * @param value The value with which to fill `buf`.
- * @param [offset=0] Number of bytes to skip before starting to fill `buf`.
- * @param [end=buf.length] Where to stop filling `buf` (not inclusive).
- * @param [encoding='utf8'] The encoding for `value` if `value` is a string.
- * @return A reference to `buf`.
- */
- fill(value: string | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): this;
- /**
- * If `value` is:
- *
- * * a string, `value` is interpreted according to the character encoding in`encoding`.
- * * a `Buffer` or [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), `value` will be used in its entirety.
- * To compare a partial `Buffer`, use `buf.slice()`.
- * * a number, `value` will be interpreted as an unsigned 8-bit integer
- * value between `0` and `255`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from('this is a buffer');
- *
- * console.log(buf.indexOf('this'));
- * // Prints: 0
- * console.log(buf.indexOf('is'));
- * // Prints: 2
- * console.log(buf.indexOf(Buffer.from('a buffer')));
- * // Prints: 8
- * console.log(buf.indexOf(97));
- * // Prints: 8 (97 is the decimal ASCII value for 'a')
- * console.log(buf.indexOf(Buffer.from('a buffer example')));
- * // Prints: -1
- * console.log(buf.indexOf(Buffer.from('a buffer example').slice(0, 8)));
- * // Prints: 8
- *
- * const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le');
- *
- * console.log(utf16Buffer.indexOf('\u03a3', 0, 'utf16le'));
- * // Prints: 4
- * console.log(utf16Buffer.indexOf('\u03a3', -4, 'utf16le'));
- * // Prints: 6
- * ```
- *
- * If `value` is not a string, number, or `Buffer`, this method will throw a`TypeError`. If `value` is a number, it will be coerced to a valid byte value,
- * an integer between 0 and 255.
- *
- * If `byteOffset` is not a number, it will be coerced to a number. If the result
- * of coercion is `NaN` or `0`, then the entire buffer will be searched. This
- * behavior matches [`String.prototype.indexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf).
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const b = Buffer.from('abcdef');
- *
- * // Passing a value that's a number, but not a valid byte.
- * // Prints: 2, equivalent to searching for 99 or 'c'.
- * console.log(b.indexOf(99.9));
- * console.log(b.indexOf(256 + 99));
- *
- * // Passing a byteOffset that coerces to NaN or 0.
- * // Prints: 1, searching the whole buffer.
- * console.log(b.indexOf('b', undefined));
- * console.log(b.indexOf('b', {}));
- * console.log(b.indexOf('b', null));
- * console.log(b.indexOf('b', []));
- * ```
- *
- * If `value` is an empty string or empty `Buffer` and `byteOffset` is less
- * than `buf.length`, `byteOffset` will be returned. If `value` is empty and`byteOffset` is at least `buf.length`, `buf.length` will be returned.
- * @since v1.5.0
- * @param value What to search for.
- * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.
- * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`.
- * @return The index of the first occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`.
- */
- indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;
- /**
- * Identical to `buf.indexOf()`, except the last occurrence of `value` is found
- * rather than the first occurrence.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from('this buffer is a buffer');
- *
- * console.log(buf.lastIndexOf('this'));
- * // Prints: 0
- * console.log(buf.lastIndexOf('buffer'));
- * // Prints: 17
- * console.log(buf.lastIndexOf(Buffer.from('buffer')));
- * // Prints: 17
- * console.log(buf.lastIndexOf(97));
- * // Prints: 15 (97 is the decimal ASCII value for 'a')
- * console.log(buf.lastIndexOf(Buffer.from('yolo')));
- * // Prints: -1
- * console.log(buf.lastIndexOf('buffer', 5));
- * // Prints: 5
- * console.log(buf.lastIndexOf('buffer', 4));
- * // Prints: -1
- *
- * const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le');
- *
- * console.log(utf16Buffer.lastIndexOf('\u03a3', undefined, 'utf16le'));
- * // Prints: 6
- * console.log(utf16Buffer.lastIndexOf('\u03a3', -5, 'utf16le'));
- * // Prints: 4
- * ```
- *
- * If `value` is not a string, number, or `Buffer`, this method will throw a`TypeError`. If `value` is a number, it will be coerced to a valid byte value,
- * an integer between 0 and 255.
- *
- * If `byteOffset` is not a number, it will be coerced to a number. Any arguments
- * that coerce to `NaN`, like `{}` or `undefined`, will search the whole buffer.
- * This behavior matches [`String.prototype.lastIndexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf).
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const b = Buffer.from('abcdef');
- *
- * // Passing a value that's a number, but not a valid byte.
- * // Prints: 2, equivalent to searching for 99 or 'c'.
- * console.log(b.lastIndexOf(99.9));
- * console.log(b.lastIndexOf(256 + 99));
- *
- * // Passing a byteOffset that coerces to NaN.
- * // Prints: 1, searching the whole buffer.
- * console.log(b.lastIndexOf('b', undefined));
- * console.log(b.lastIndexOf('b', {}));
- *
- * // Passing a byteOffset that coerces to 0.
- * // Prints: -1, equivalent to passing 0.
- * console.log(b.lastIndexOf('b', null));
- * console.log(b.lastIndexOf('b', []));
- * ```
- *
- * If `value` is an empty string or empty `Buffer`, `byteOffset` will be returned.
- * @since v6.0.0
- * @param value What to search for.
- * @param [byteOffset=buf.length - 1] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.
- * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`.
- * @return The index of the last occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`.
- */
- lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number;
- /**
- * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) of `[index, byte]` pairs from the contents
- * of `buf`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * // Log the entire contents of a `Buffer`.
- *
- * const buf = Buffer.from('buffer');
- *
- * for (const pair of buf.entries()) {
- * console.log(pair);
- * }
- * // Prints:
- * // [0, 98]
- * // [1, 117]
- * // [2, 102]
- * // [3, 102]
- * // [4, 101]
- * // [5, 114]
- * ```
- * @since v1.1.0
- */
- entries(): IterableIterator<[number, number]>;
- /**
- * Equivalent to `buf.indexOf() !== -1`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from('this is a buffer');
- *
- * console.log(buf.includes('this'));
- * // Prints: true
- * console.log(buf.includes('is'));
- * // Prints: true
- * console.log(buf.includes(Buffer.from('a buffer')));
- * // Prints: true
- * console.log(buf.includes(97));
- * // Prints: true (97 is the decimal ASCII value for 'a')
- * console.log(buf.includes(Buffer.from('a buffer example')));
- * // Prints: false
- * console.log(buf.includes(Buffer.from('a buffer example').slice(0, 8)));
- * // Prints: true
- * console.log(buf.includes('this', 4));
- * // Prints: false
- * ```
- * @since v5.3.0
- * @param value What to search for.
- * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`.
- * @param [encoding='utf8'] If `value` is a string, this is its encoding.
- * @return `true` if `value` was found in `buf`, `false` otherwise.
- */
- includes(value: string | number | Buffer, byteOffset?: number, encoding?: BufferEncoding): boolean;
- /**
- * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) of `buf` keys (indices).
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from('buffer');
- *
- * for (const key of buf.keys()) {
- * console.log(key);
- * }
- * // Prints:
- * // 0
- * // 1
- * // 2
- * // 3
- * // 4
- * // 5
- * ```
- * @since v1.1.0
- */
- keys(): IterableIterator;
- /**
- * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) for `buf` values (bytes). This function is
- * called automatically when a `Buffer` is used in a `for..of` statement.
- *
- * ```js
- * import { Buffer } from 'buffer';
- *
- * const buf = Buffer.from('buffer');
- *
- * for (const value of buf.values()) {
- * console.log(value);
- * }
- * // Prints:
- * // 98
- * // 117
- * // 102
- * // 102
- * // 101
- * // 114
- *
- * for (const value of buf) {
- * console.log(value);
- * }
- * // Prints:
- * // 98
- * // 117
- * // 102
- * // 102
- * // 101
- * // 114
- * ```
- * @since v1.1.0
- */
- values(): IterableIterator;
- }
- var Buffer: BufferConstructor;
- /**
- * Decodes a string of Base64-encoded data into bytes, and encodes those bytes
- * into a string using Latin-1 (ISO-8859-1).
- *
- * The `data` may be any JavaScript-value that can be coerced into a string.
- *
- * **This function is only provided for compatibility with legacy web platform APIs**
- * **and should never be used in new code, because they use strings to represent**
- * **binary data and predate the introduction of typed arrays in JavaScript.**
- * **For code running using Node.js APIs, converting between base64-encoded strings**
- * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.**
- * @since v15.13.0
- * @deprecated Use `Buffer.from(data, 'base64')` instead.
- * @param data The Base64-encoded input string.
- */
- function atob(data: string): string;
- /**
- * Decodes a string into bytes using Latin-1 (ISO-8859), and encodes those bytes
- * into a string using Base64.
- *
- * The `data` may be any JavaScript-value that can be coerced into a string.
- *
- * **This function is only provided for compatibility with legacy web platform APIs**
- * **and should never be used in new code, because they use strings to represent**
- * **binary data and predate the introduction of typed arrays in JavaScript.**
- * **For code running using Node.js APIs, converting between base64-encoded strings**
- * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.**
- * @since v15.13.0
- * @deprecated Use `buf.toString('base64')` instead.
- * @param data An ASCII (Latin1) string.
- */
- function btoa(data: string): string;
- }
-}
-declare module 'node:buffer' {
- export * from 'buffer';
-}
diff --git a/node_modules/@types/node/child_process.d.ts b/node_modules/@types/node/child_process.d.ts
deleted file mode 100755
index 66540c3..0000000
--- a/node_modules/@types/node/child_process.d.ts
+++ /dev/null
@@ -1,1355 +0,0 @@
-/**
- * The `child_process` module provides the ability to spawn subprocesses in
- * a manner that is similar, but not identical, to [`popen(3)`](http://man7.org/linux/man-pages/man3/popen.3.html). This capability
- * is primarily provided by the {@link spawn} function:
- *
- * ```js
- * const { spawn } = require('child_process');
- * const ls = spawn('ls', ['-lh', '/usr']);
- *
- * ls.stdout.on('data', (data) => {
- * console.log(`stdout: ${data}`);
- * });
- *
- * ls.stderr.on('data', (data) => {
- * console.error(`stderr: ${data}`);
- * });
- *
- * ls.on('close', (code) => {
- * console.log(`child process exited with code ${code}`);
- * });
- * ```
- *
- * By default, pipes for `stdin`, `stdout`, and `stderr` are established between
- * the parent Node.js process and the spawned subprocess. These pipes have
- * limited (and platform-specific) capacity. If the subprocess writes to
- * stdout in excess of that limit without the output being captured, the
- * subprocess blocks waiting for the pipe buffer to accept more data. This is
- * identical to the behavior of pipes in the shell. Use the `{ stdio: 'ignore' }`option if the output will not be consumed.
- *
- * The command lookup is performed using the `options.env.PATH` environment
- * variable if it is in the `options` object. Otherwise, `process.env.PATH` is
- * used.
- *
- * On Windows, environment variables are case-insensitive. Node.js
- * lexicographically sorts the `env` keys and uses the first one that
- * case-insensitively matches. Only first (in lexicographic order) entry will be
- * passed to the subprocess. This might lead to issues on Windows when passing
- * objects to the `env` option that have multiple variants of the same key, such as`PATH` and `Path`.
- *
- * The {@link spawn} method spawns the child process asynchronously,
- * without blocking the Node.js event loop. The {@link spawnSync} function provides equivalent functionality in a synchronous manner that blocks
- * the event loop until the spawned process either exits or is terminated.
- *
- * For convenience, the `child_process` module provides a handful of synchronous
- * and asynchronous alternatives to {@link spawn} and {@link spawnSync}. Each of these alternatives are implemented on
- * top of {@link spawn} or {@link spawnSync}.
- *
- * * {@link exec}: spawns a shell and runs a command within that
- * shell, passing the `stdout` and `stderr` to a callback function when
- * complete.
- * * {@link execFile}: similar to {@link exec} except
- * that it spawns the command directly without first spawning a shell by
- * default.
- * * {@link fork}: spawns a new Node.js process and invokes a
- * specified module with an IPC communication channel established that allows
- * sending messages between parent and child.
- * * {@link execSync}: a synchronous version of {@link exec} that will block the Node.js event loop.
- * * {@link execFileSync}: a synchronous version of {@link execFile} that will block the Node.js event loop.
- *
- * For certain use cases, such as automating shell scripts, the `synchronous counterparts` may be more convenient. In many cases, however,
- * the synchronous methods can have significant impact on performance due to
- * stalling the event loop while spawned processes complete.
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/child_process.js)
- */
-declare module 'child_process' {
- import { ObjectEncodingOptions } from 'node:fs';
- import { EventEmitter, Abortable } from 'node:events';
- import * as net from 'node:net';
- import { Writable, Readable, Stream, Pipe } from 'node:stream';
- import { URL } from 'node:url';
- type Serializable = string | object | number | boolean | bigint;
- type SendHandle = net.Socket | net.Server;
- class ChildProcess extends EventEmitter {
- /**
- * A `Writable Stream` that represents the child process's `stdin`.
- *
- * If a child process waits to read all of its input, the child will not continue
- * until this stream has been closed via `end()`.
- *
- * If the child was spawned with `stdio[0]` set to anything other than `'pipe'`,
- * then this will be `null`.
- *
- * `subprocess.stdin` is an alias for `subprocess.stdio[0]`. Both properties will
- * refer to the same value.
- *
- * The `subprocess.stdin` property can be `undefined` if the child process could
- * not be successfully spawned.
- * @since v0.1.90
- */
- stdin: Writable | null;
- /**
- * A `Readable Stream` that represents the child process's `stdout`.
- *
- * If the child was spawned with `stdio[1]` set to anything other than `'pipe'`,
- * then this will be `null`.
- *
- * `subprocess.stdout` is an alias for `subprocess.stdio[1]`. Both properties will
- * refer to the same value.
- *
- * ```js
- * const { spawn } = require('child_process');
- *
- * const subprocess = spawn('ls');
- *
- * subprocess.stdout.on('data', (data) => {
- * console.log(`Received chunk ${data}`);
- * });
- * ```
- *
- * The `subprocess.stdout` property can be `null` if the child process could
- * not be successfully spawned.
- * @since v0.1.90
- */
- stdout: Readable | null;
- /**
- * A `Readable Stream` that represents the child process's `stderr`.
- *
- * If the child was spawned with `stdio[2]` set to anything other than `'pipe'`,
- * then this will be `null`.
- *
- * `subprocess.stderr` is an alias for `subprocess.stdio[2]`. Both properties will
- * refer to the same value.
- *
- * The `subprocess.stderr` property can be `null` if the child process could
- * not be successfully spawned.
- * @since v0.1.90
- */
- stderr: Readable | null;
- /**
- * The `subprocess.channel` property is a reference to the child's IPC channel. If
- * no IPC channel currently exists, this property is `undefined`.
- * @since v7.1.0
- */
- readonly channel?: Pipe | null | undefined;
- /**
- * A sparse array of pipes to the child process, corresponding with positions in
- * the `stdio` option passed to {@link spawn} that have been set
- * to the value `'pipe'`. `subprocess.stdio[0]`, `subprocess.stdio[1]`, and`subprocess.stdio[2]` are also available as `subprocess.stdin`,`subprocess.stdout`, and `subprocess.stderr`,
- * respectively.
- *
- * In the following example, only the child's fd `1` (stdout) is configured as a
- * pipe, so only the parent's `subprocess.stdio[1]` is a stream, all other values
- * in the array are `null`.
- *
- * ```js
- * const assert = require('assert');
- * const fs = require('fs');
- * const child_process = require('child_process');
- *
- * const subprocess = child_process.spawn('ls', {
- * stdio: [
- * 0, // Use parent's stdin for child.
- * 'pipe', // Pipe child's stdout to parent.
- * fs.openSync('err.out', 'w'), // Direct child's stderr to a file.
- * ]
- * });
- *
- * assert.strictEqual(subprocess.stdio[0], null);
- * assert.strictEqual(subprocess.stdio[0], subprocess.stdin);
- *
- * assert(subprocess.stdout);
- * assert.strictEqual(subprocess.stdio[1], subprocess.stdout);
- *
- * assert.strictEqual(subprocess.stdio[2], null);
- * assert.strictEqual(subprocess.stdio[2], subprocess.stderr);
- * ```
- *
- * The `subprocess.stdio` property can be `undefined` if the child process could
- * not be successfully spawned.
- * @since v0.7.10
- */
- readonly stdio: [
- Writable | null,
- // stdin
- Readable | null,
- // stdout
- Readable | null,
- // stderr
- Readable | Writable | null | undefined,
- // extra
- Readable | Writable | null | undefined // extra
- ];
- /**
- * The `subprocess.killed` property indicates whether the child process
- * successfully received a signal from `subprocess.kill()`. The `killed` property
- * does not indicate that the child process has been terminated.
- * @since v0.5.10
- */
- readonly killed: boolean;
- /**
- * Returns the process identifier (PID) of the child process. If the child process
- * fails to spawn due to errors, then the value is `undefined` and `error` is
- * emitted.
- *
- * ```js
- * const { spawn } = require('child_process');
- * const grep = spawn('grep', ['ssh']);
- *
- * console.log(`Spawned child pid: ${grep.pid}`);
- * grep.stdin.end();
- * ```
- * @since v0.1.90
- */
- readonly pid?: number | undefined;
- /**
- * The `subprocess.connected` property indicates whether it is still possible to
- * send and receive messages from a child process. When `subprocess.connected` is`false`, it is no longer possible to send or receive messages.
- * @since v0.7.2
- */
- readonly connected: boolean;
- /**
- * The `subprocess.exitCode` property indicates the exit code of the child process.
- * If the child process is still running, the field will be `null`.
- */
- readonly exitCode: number | null;
- /**
- * The `subprocess.signalCode` property indicates the signal received by
- * the child process if any, else `null`.
- */
- readonly signalCode: NodeJS.Signals | null;
- /**
- * The `subprocess.spawnargs` property represents the full list of command-line
- * arguments the child process was launched with.
- */
- readonly spawnargs: string[];
- /**
- * The `subprocess.spawnfile` property indicates the executable file name of
- * the child process that is launched.
- *
- * For {@link fork}, its value will be equal to `process.execPath`.
- * For {@link spawn}, its value will be the name of
- * the executable file.
- * For {@link exec}, its value will be the name of the shell
- * in which the child process is launched.
- */
- readonly spawnfile: string;
- /**
- * The `subprocess.kill()` method sends a signal to the child process. If no
- * argument is given, the process will be sent the `'SIGTERM'` signal. See[`signal(7)`](http://man7.org/linux/man-pages/man7/signal.7.html) for a list of available signals. This function
- * returns `true` if[`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) succeeds, and `false` otherwise.
- *
- * ```js
- * const { spawn } = require('child_process');
- * const grep = spawn('grep', ['ssh']);
- *
- * grep.on('close', (code, signal) => {
- * console.log(
- * `child process terminated due to receipt of signal ${signal}`);
- * });
- *
- * // Send SIGHUP to process.
- * grep.kill('SIGHUP');
- * ```
- *
- * The `ChildProcess` object may emit an `'error'` event if the signal
- * cannot be delivered. Sending a signal to a child process that has already exited
- * is not an error but may have unforeseen consequences. Specifically, if the
- * process identifier (PID) has been reassigned to another process, the signal will
- * be delivered to that process instead which can have unexpected results.
- *
- * While the function is called `kill`, the signal delivered to the child process
- * may not actually terminate the process.
- *
- * See [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for reference.
- *
- * On Windows, where POSIX signals do not exist, the `signal` argument will be
- * ignored, and the process will be killed forcefully and abruptly (similar to`'SIGKILL'`).
- * See `Signal Events` for more details.
- *
- * On Linux, child processes of child processes will not be terminated
- * when attempting to kill their parent. This is likely to happen when running a
- * new process in a shell or with the use of the `shell` option of `ChildProcess`:
- *
- * ```js
- * 'use strict';
- * const { spawn } = require('child_process');
- *
- * const subprocess = spawn(
- * 'sh',
- * [
- * '-c',
- * `node -e "setInterval(() => {
- * console.log(process.pid, 'is alive')
- * }, 500);"`,
- * ], {
- * stdio: ['inherit', 'inherit', 'inherit']
- * }
- * );
- *
- * setTimeout(() => {
- * subprocess.kill(); // Does not terminate the Node.js process in the shell.
- * }, 2000);
- * ```
- * @since v0.1.90
- */
- kill(signal?: NodeJS.Signals | number): boolean;
- /**
- * When an IPC channel has been established between the parent and child (
- * i.e. when using {@link fork}), the `subprocess.send()` method can
- * be used to send messages to the child process. When the child process is a
- * Node.js instance, these messages can be received via the `'message'` event.
- *
- * The message goes through serialization and parsing. The resulting
- * message might not be the same as what is originally sent.
- *
- * For example, in the parent script:
- *
- * ```js
- * const cp = require('child_process');
- * const n = cp.fork(`${__dirname}/sub.js`);
- *
- * n.on('message', (m) => {
- * console.log('PARENT got message:', m);
- * });
- *
- * // Causes the child to print: CHILD got message: { hello: 'world' }
- * n.send({ hello: 'world' });
- * ```
- *
- * And then the child script, `'sub.js'` might look like this:
- *
- * ```js
- * process.on('message', (m) => {
- * console.log('CHILD got message:', m);
- * });
- *
- * // Causes the parent to print: PARENT got message: { foo: 'bar', baz: null }
- * process.send({ foo: 'bar', baz: NaN });
- * ```
- *
- * Child Node.js processes will have a `process.send()` method of their own
- * that allows the child to send messages back to the parent.
- *
- * There is a special case when sending a `{cmd: 'NODE_foo'}` message. Messages
- * containing a `NODE_` prefix in the `cmd` property are reserved for use within
- * Node.js core and will not be emitted in the child's `'message'` event. Rather, such messages are emitted using the`'internalMessage'` event and are consumed internally by Node.js.
- * Applications should avoid using such messages or listening for`'internalMessage'` events as it is subject to change without notice.
- *
- * The optional `sendHandle` argument that may be passed to `subprocess.send()` is
- * for passing a TCP server or socket object to the child process. The child will
- * receive the object as the second argument passed to the callback function
- * registered on the `'message'` event. Any data that is received
- * and buffered in the socket will not be sent to the child.
- *
- * The optional `callback` is a function that is invoked after the message is
- * sent but before the child may have received it. The function is called with a
- * single argument: `null` on success, or an `Error` object on failure.
- *
- * If no `callback` function is provided and the message cannot be sent, an`'error'` event will be emitted by the `ChildProcess` object. This can
- * happen, for instance, when the child process has already exited.
- *
- * `subprocess.send()` will return `false` if the channel has closed or when the
- * backlog of unsent messages exceeds a threshold that makes it unwise to send
- * more. Otherwise, the method returns `true`. The `callback` function can be
- * used to implement flow control.
- *
- * #### Example: sending a server object
- *
- * The `sendHandle` argument can be used, for instance, to pass the handle of
- * a TCP server object to the child process as illustrated in the example below:
- *
- * ```js
- * const subprocess = require('child_process').fork('subprocess.js');
- *
- * // Open up the server object and send the handle.
- * const server = require('net').createServer();
- * server.on('connection', (socket) => {
- * socket.end('handled by parent');
- * });
- * server.listen(1337, () => {
- * subprocess.send('server', server);
- * });
- * ```
- *
- * The child would then receive the server object as:
- *
- * ```js
- * process.on('message', (m, server) => {
- * if (m === 'server') {
- * server.on('connection', (socket) => {
- * socket.end('handled by child');
- * });
- * }
- * });
- * ```
- *
- * Once the server is now shared between the parent and child, some connections
- * can be handled by the parent and some by the child.
- *
- * While the example above uses a server created using the `net` module, `dgram`module servers use exactly the same workflow with the exceptions of listening on
- * a `'message'` event instead of `'connection'` and using `server.bind()` instead
- * of `server.listen()`. This is, however, currently only supported on Unix
- * platforms.
- *
- * #### Example: sending a socket object
- *
- * Similarly, the `sendHandler` argument can be used to pass the handle of a
- * socket to the child process. The example below spawns two children that each
- * handle connections with "normal" or "special" priority:
- *
- * ```js
- * const { fork } = require('child_process');
- * const normal = fork('subprocess.js', ['normal']);
- * const special = fork('subprocess.js', ['special']);
- *
- * // Open up the server and send sockets to child. Use pauseOnConnect to prevent
- * // the sockets from being read before they are sent to the child process.
- * const server = require('net').createServer({ pauseOnConnect: true });
- * server.on('connection', (socket) => {
- *
- * // If this is special priority...
- * if (socket.remoteAddress === '74.125.127.100') {
- * special.send('socket', socket);
- * return;
- * }
- * // This is normal priority.
- * normal.send('socket', socket);
- * });
- * server.listen(1337);
- * ```
- *
- * The `subprocess.js` would receive the socket handle as the second argument
- * passed to the event callback function:
- *
- * ```js
- * process.on('message', (m, socket) => {
- * if (m === 'socket') {
- * if (socket) {
- * // Check that the client socket exists.
- * // It is possible for the socket to be closed between the time it is
- * // sent and the time it is received in the child process.
- * socket.end(`Request handled with ${process.argv[2]} priority`);
- * }
- * }
- * });
- * ```
- *
- * Do not use `.maxConnections` on a socket that has been passed to a subprocess.
- * The parent cannot track when the socket is destroyed.
- *
- * Any `'message'` handlers in the subprocess should verify that `socket` exists,
- * as the connection may have been closed during the time it takes to send the
- * connection to the child.
- * @since v0.5.9
- * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties:
- */
- send(message: Serializable, callback?: (error: Error | null) => void): boolean;
- send(message: Serializable, sendHandle?: SendHandle, callback?: (error: Error | null) => void): boolean;
- send(message: Serializable, sendHandle?: SendHandle, options?: MessageOptions, callback?: (error: Error | null) => void): boolean;
- /**
- * Closes the IPC channel between parent and child, allowing the child to exit
- * gracefully once there are no other connections keeping it alive. After calling
- * this method the `subprocess.connected` and `process.connected` properties in
- * both the parent and child (respectively) will be set to `false`, and it will be
- * no longer possible to pass messages between the processes.
- *
- * The `'disconnect'` event will be emitted when there are no messages in the
- * process of being received. This will most often be triggered immediately after
- * calling `subprocess.disconnect()`.
- *
- * When the child process is a Node.js instance (e.g. spawned using {@link fork}), the `process.disconnect()` method can be invoked
- * within the child process to close the IPC channel as well.
- * @since v0.7.2
- */
- disconnect(): void;
- /**
- * By default, the parent will wait for the detached child to exit. To prevent the
- * parent from waiting for a given `subprocess` to exit, use the`subprocess.unref()` method. Doing so will cause the parent's event loop to not
- * include the child in its reference count, allowing the parent to exit
- * independently of the child, unless there is an established IPC channel between
- * the child and the parent.
- *
- * ```js
- * const { spawn } = require('child_process');
- *
- * const subprocess = spawn(process.argv[0], ['child_program.js'], {
- * detached: true,
- * stdio: 'ignore'
- * });
- *
- * subprocess.unref();
- * ```
- * @since v0.7.10
- */
- unref(): void;
- /**
- * Calling `subprocess.ref()` after making a call to `subprocess.unref()` will
- * restore the removed reference count for the child process, forcing the parent
- * to wait for the child to exit before exiting itself.
- *
- * ```js
- * const { spawn } = require('child_process');
- *
- * const subprocess = spawn(process.argv[0], ['child_program.js'], {
- * detached: true,
- * stdio: 'ignore'
- * });
- *
- * subprocess.unref();
- * subprocess.ref();
- * ```
- * @since v0.7.10
- */
- ref(): void;
- /**
- * events.EventEmitter
- * 1. close
- * 2. disconnect
- * 3. error
- * 4. exit
- * 5. message
- * 6. spawn
- */
- addListener(event: string, listener: (...args: any[]) => void): this;
- addListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- addListener(event: 'disconnect', listener: () => void): this;
- addListener(event: 'error', listener: (err: Error) => void): this;
- addListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- addListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;
- addListener(event: 'spawn', listener: () => void): this;
- emit(event: string | symbol, ...args: any[]): boolean;
- emit(event: 'close', code: number | null, signal: NodeJS.Signals | null): boolean;
- emit(event: 'disconnect'): boolean;
- emit(event: 'error', err: Error): boolean;
- emit(event: 'exit', code: number | null, signal: NodeJS.Signals | null): boolean;
- emit(event: 'message', message: Serializable, sendHandle: SendHandle): boolean;
- emit(event: 'spawn', listener: () => void): boolean;
- on(event: string, listener: (...args: any[]) => void): this;
- on(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- on(event: 'disconnect', listener: () => void): this;
- on(event: 'error', listener: (err: Error) => void): this;
- on(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- on(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;
- on(event: 'spawn', listener: () => void): this;
- once(event: string, listener: (...args: any[]) => void): this;
- once(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- once(event: 'disconnect', listener: () => void): this;
- once(event: 'error', listener: (err: Error) => void): this;
- once(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- once(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;
- once(event: 'spawn', listener: () => void): this;
- prependListener(event: string, listener: (...args: any[]) => void): this;
- prependListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- prependListener(event: 'disconnect', listener: () => void): this;
- prependListener(event: 'error', listener: (err: Error) => void): this;
- prependListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- prependListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;
- prependListener(event: 'spawn', listener: () => void): this;
- prependOnceListener(event: string, listener: (...args: any[]) => void): this;
- prependOnceListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- prependOnceListener(event: 'disconnect', listener: () => void): this;
- prependOnceListener(event: 'error', listener: (err: Error) => void): this;
- prependOnceListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
- prependOnceListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this;
- prependOnceListener(event: 'spawn', listener: () => void): this;
- }
- // return this object when stdio option is undefined or not specified
- interface ChildProcessWithoutNullStreams extends ChildProcess {
- stdin: Writable;
- stdout: Readable;
- stderr: Readable;
- readonly stdio: [
- Writable,
- Readable,
- Readable,
- // stderr
- Readable | Writable | null | undefined,
- // extra, no modification
- Readable | Writable | null | undefined // extra, no modification
- ];
- }
- // return this object when stdio option is a tuple of 3
- interface ChildProcessByStdio extends ChildProcess {
- stdin: I;
- stdout: O;
- stderr: E;
- readonly stdio: [
- I,
- O,
- E,
- Readable | Writable | null | undefined,
- // extra, no modification
- Readable | Writable | null | undefined // extra, no modification
- ];
- }
- interface MessageOptions {
- keepOpen?: boolean | undefined;
- }
- type IOType = 'overlapped' | 'pipe' | 'ignore' | 'inherit';
- type StdioOptions = IOType | Array;
- type SerializationType = 'json' | 'advanced';
- interface MessagingOptions extends Abortable {
- /**
- * Specify the kind of serialization used for sending messages between processes.
- * @default 'json'
- */
- serialization?: SerializationType | undefined;
- /**
- * The signal value to be used when the spawned process will be killed by the abort signal.
- * @default 'SIGTERM'
- */
- killSignal?: NodeJS.Signals | number | undefined;
- /**
- * In milliseconds the maximum amount of time the process is allowed to run.
- */
- timeout?: number | undefined;
- }
- interface ProcessEnvOptions {
- uid?: number | undefined;
- gid?: number | undefined;
- cwd?: string | URL | undefined;
- env?: NodeJS.ProcessEnv | undefined;
- }
- interface CommonOptions extends ProcessEnvOptions {
- /**
- * @default true
- */
- windowsHide?: boolean | undefined;
- /**
- * @default 0
- */
- timeout?: number | undefined;
- }
- interface CommonSpawnOptions extends CommonOptions, MessagingOptions, Abortable {
- argv0?: string | undefined;
- stdio?: StdioOptions | undefined;
- shell?: boolean | string | undefined;
- windowsVerbatimArguments?: boolean | undefined;
- }
- interface SpawnOptions extends CommonSpawnOptions {
- detached?: boolean | undefined;
- }
- interface SpawnOptionsWithoutStdio extends SpawnOptions {
- stdio?: StdioPipeNamed | StdioPipe[] | undefined;
- }
- type StdioNull = 'inherit' | 'ignore' | Stream;
- type StdioPipeNamed = 'pipe' | 'overlapped';
- type StdioPipe = undefined | null | StdioPipeNamed;
- interface SpawnOptionsWithStdioTuple extends SpawnOptions {
- stdio: [Stdin, Stdout, Stderr];
- }
- /**
- * The `child_process.spawn()` method spawns a new process using the given`command`, with command-line arguments in `args`. If omitted, `args` defaults
- * to an empty array.
- *
- * **If the `shell` option is enabled, do not pass unsanitized user input to this**
- * **function. Any input containing shell metacharacters may be used to trigger**
- * **arbitrary command execution.**
- *
- * A third argument may be used to specify additional options, with these defaults:
- *
- * ```js
- * const defaults = {
- * cwd: undefined,
- * env: process.env
- * };
- * ```
- *
- * Use `cwd` to specify the working directory from which the process is spawned.
- * If not given, the default is to inherit the current working directory. If given,
- * but the path does not exist, the child process emits an `ENOENT` error
- * and exits immediately. `ENOENT` is also emitted when the command
- * does not exist.
- *
- * Use `env` to specify environment variables that will be visible to the new
- * process, the default is `process.env`.
- *
- * `undefined` values in `env` will be ignored.
- *
- * Example of running `ls -lh /usr`, capturing `stdout`, `stderr`, and the
- * exit code:
- *
- * ```js
- * const { spawn } = require('child_process');
- * const ls = spawn('ls', ['-lh', '/usr']);
- *
- * ls.stdout.on('data', (data) => {
- * console.log(`stdout: ${data}`);
- * });
- *
- * ls.stderr.on('data', (data) => {
- * console.error(`stderr: ${data}`);
- * });
- *
- * ls.on('close', (code) => {
- * console.log(`child process exited with code ${code}`);
- * });
- * ```
- *
- * Example: A very elaborate way to run `ps ax | grep ssh`
- *
- * ```js
- * const { spawn } = require('child_process');
- * const ps = spawn('ps', ['ax']);
- * const grep = spawn('grep', ['ssh']);
- *
- * ps.stdout.on('data', (data) => {
- * grep.stdin.write(data);
- * });
- *
- * ps.stderr.on('data', (data) => {
- * console.error(`ps stderr: ${data}`);
- * });
- *
- * ps.on('close', (code) => {
- * if (code !== 0) {
- * console.log(`ps process exited with code ${code}`);
- * }
- * grep.stdin.end();
- * });
- *
- * grep.stdout.on('data', (data) => {
- * console.log(data.toString());
- * });
- *
- * grep.stderr.on('data', (data) => {
- * console.error(`grep stderr: ${data}`);
- * });
- *
- * grep.on('close', (code) => {
- * if (code !== 0) {
- * console.log(`grep process exited with code ${code}`);
- * }
- * });
- * ```
- *
- * Example of checking for failed `spawn`:
- *
- * ```js
- * const { spawn } = require('child_process');
- * const subprocess = spawn('bad_command');
- *
- * subprocess.on('error', (err) => {
- * console.error('Failed to start subprocess.');
- * });
- * ```
- *
- * Certain platforms (macOS, Linux) will use the value of `argv[0]` for the process
- * title while others (Windows, SunOS) will use `command`.
- *
- * Node.js currently overwrites `argv[0]` with `process.execPath` on startup, so`process.argv[0]` in a Node.js child process will not match the `argv0`parameter passed to `spawn` from the parent,
- * retrieve it with the`process.argv0` property instead.
- *
- * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except
- * the error passed to the callback will be an `AbortError`:
- *
- * ```js
- * const { spawn } = require('child_process');
- * const controller = new AbortController();
- * const { signal } = controller;
- * const grep = spawn('grep', ['ssh'], { signal });
- * grep.on('error', (err) => {
- * // This will be called with err being an AbortError if the controller aborts
- * });
- * controller.abort(); // Stops the child process
- * ```
- * @since v0.1.90
- * @param command The command to run.
- * @param args List of string arguments.
- */
- function spawn(command: string, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams;
- function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, options: SpawnOptions): ChildProcess;
- // overloads of spawn with 'args'
- function spawn(command: string, args?: ReadonlyArray, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams;
- function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio;
- function spawn(command: string, args: ReadonlyArray, options: SpawnOptions): ChildProcess;
- interface ExecOptions extends CommonOptions {
- shell?: string | undefined;
- maxBuffer?: number | undefined;
- killSignal?: NodeJS.Signals | number | undefined;
- }
- interface ExecOptionsWithStringEncoding extends ExecOptions {
- encoding: BufferEncoding;
- }
- interface ExecOptionsWithBufferEncoding extends ExecOptions {
- encoding: BufferEncoding | null; // specify `null`.
- }
- interface ExecException extends Error {
- cmd?: string | undefined;
- killed?: boolean | undefined;
- code?: number | undefined;
- signal?: NodeJS.Signals | undefined;
- }
- /**
- * Spawns a shell then executes the `command` within that shell, buffering any
- * generated output. The `command` string passed to the exec function is processed
- * directly by the shell and special characters (vary based on[shell](https://en.wikipedia.org/wiki/List_of_command-line_interpreters))
- * need to be dealt with accordingly:
- *
- * ```js
- * const { exec } = require('child_process');
- *
- * exec('"/path/to/test file/test.sh" arg1 arg2');
- * // Double quotes are used so that the space in the path is not interpreted as
- * // a delimiter of multiple arguments.
- *
- * exec('echo "The \\$HOME variable is $HOME"');
- * // The $HOME variable is escaped in the first instance, but not in the second.
- * ```
- *
- * **Never pass unsanitized user input to this function. Any input containing shell**
- * **metacharacters may be used to trigger arbitrary command execution.**
- *
- * If a `callback` function is provided, it is called with the arguments`(error, stdout, stderr)`. On success, `error` will be `null`. On error,`error` will be an instance of `Error`. The
- * `error.code` property will be
- * the exit code of the process. By convention, any exit code other than `0`indicates an error. `error.signal` will be the signal that terminated the
- * process.
- *
- * The `stdout` and `stderr` arguments passed to the callback will contain the
- * stdout and stderr output of the child process. By default, Node.js will decode
- * the output as UTF-8 and pass strings to the callback. The `encoding` option
- * can be used to specify the character encoding used to decode the stdout and
- * stderr output. If `encoding` is `'buffer'`, or an unrecognized character
- * encoding, `Buffer` objects will be passed to the callback instead.
- *
- * ```js
- * const { exec } = require('child_process');
- * exec('cat *.js missing_file | wc -l', (error, stdout, stderr) => {
- * if (error) {
- * console.error(`exec error: ${error}`);
- * return;
- * }
- * console.log(`stdout: ${stdout}`);
- * console.error(`stderr: ${stderr}`);
- * });
- * ```
- *
- * If `timeout` is greater than `0`, the parent will send the signal
- * identified by the `killSignal` property (the default is `'SIGTERM'`) if the
- * child runs longer than `timeout` milliseconds.
- *
- * Unlike the [`exec(3)`](http://man7.org/linux/man-pages/man3/exec.3.html) POSIX system call, `child_process.exec()` does not replace
- * the existing process and uses a shell to execute the command.
- *
- * If this method is invoked as its `util.promisify()` ed version, it returns
- * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned`ChildProcess` instance is attached to the `Promise` as a `child` property. In
- * case of an error (including any error resulting in an exit code other than 0), a
- * rejected promise is returned, with the same `error` object given in the
- * callback, but with two additional properties `stdout` and `stderr`.
- *
- * ```js
- * const util = require('util');
- * const exec = util.promisify(require('child_process').exec);
- *
- * async function lsExample() {
- * const { stdout, stderr } = await exec('ls');
- * console.log('stdout:', stdout);
- * console.error('stderr:', stderr);
- * }
- * lsExample();
- * ```
- *
- * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except
- * the error passed to the callback will be an `AbortError`:
- *
- * ```js
- * const { exec } = require('child_process');
- * const controller = new AbortController();
- * const { signal } = controller;
- * const child = exec('grep ssh', { signal }, (error) => {
- * console.log(error); // an AbortError
- * });
- * controller.abort();
- * ```
- * @since v0.1.90
- * @param command The command to run, with space-separated arguments.
- * @param callback called with the output when process terminates.
- */
- function exec(command: string, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;
- // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.
- function exec(
- command: string,
- options: {
- encoding: 'buffer' | null;
- } & ExecOptions,
- callback?: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void
- ): ChildProcess;
- // `options` with well known `encoding` means stdout/stderr are definitely `string`.
- function exec(
- command: string,
- options: {
- encoding: BufferEncoding;
- } & ExecOptions,
- callback?: (error: ExecException | null, stdout: string, stderr: string) => void
- ): ChildProcess;
- // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`.
- // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`.
- function exec(
- command: string,
- options: {
- encoding: BufferEncoding;
- } & ExecOptions,
- callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void
- ): ChildProcess;
- // `options` without an `encoding` means stdout/stderr are definitely `string`.
- function exec(command: string, options: ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;
- // fallback if nothing else matches. Worst case is always `string | Buffer`.
- function exec(
- command: string,
- options: (ObjectEncodingOptions & ExecOptions) | undefined | null,
- callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void
- ): ChildProcess;
- interface PromiseWithChild extends Promise {
- child: ChildProcess;
- }
- namespace exec {
- function __promisify__(command: string): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- command: string,
- options: {
- encoding: 'buffer' | null;
- } & ExecOptions
- ): PromiseWithChild<{
- stdout: Buffer;
- stderr: Buffer;
- }>;
- function __promisify__(
- command: string,
- options: {
- encoding: BufferEncoding;
- } & ExecOptions
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- command: string,
- options: ExecOptions
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- command: string,
- options?: (ObjectEncodingOptions & ExecOptions) | null
- ): PromiseWithChild<{
- stdout: string | Buffer;
- stderr: string | Buffer;
- }>;
- }
- interface ExecFileOptions extends CommonOptions, Abortable {
- maxBuffer?: number | undefined;
- killSignal?: NodeJS.Signals | number | undefined;
- windowsVerbatimArguments?: boolean | undefined;
- shell?: boolean | string | undefined;
- signal?: AbortSignal | undefined;
- }
- interface ExecFileOptionsWithStringEncoding extends ExecFileOptions {
- encoding: BufferEncoding;
- }
- interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions {
- encoding: 'buffer' | null;
- }
- interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions {
- encoding: BufferEncoding;
- }
- type ExecFileException = ExecException & NodeJS.ErrnoException;
- /**
- * The `child_process.execFile()` function is similar to {@link exec} except that it does not spawn a shell by default. Rather, the specified
- * executable `file` is spawned directly as a new process making it slightly more
- * efficient than {@link exec}.
- *
- * The same options as {@link exec} are supported. Since a shell is
- * not spawned, behaviors such as I/O redirection and file globbing are not
- * supported.
- *
- * ```js
- * const { execFile } = require('child_process');
- * const child = execFile('node', ['--version'], (error, stdout, stderr) => {
- * if (error) {
- * throw error;
- * }
- * console.log(stdout);
- * });
- * ```
- *
- * The `stdout` and `stderr` arguments passed to the callback will contain the
- * stdout and stderr output of the child process. By default, Node.js will decode
- * the output as UTF-8 and pass strings to the callback. The `encoding` option
- * can be used to specify the character encoding used to decode the stdout and
- * stderr output. If `encoding` is `'buffer'`, or an unrecognized character
- * encoding, `Buffer` objects will be passed to the callback instead.
- *
- * If this method is invoked as its `util.promisify()` ed version, it returns
- * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned`ChildProcess` instance is attached to the `Promise` as a `child` property. In
- * case of an error (including any error resulting in an exit code other than 0), a
- * rejected promise is returned, with the same `error` object given in the
- * callback, but with two additional properties `stdout` and `stderr`.
- *
- * ```js
- * const util = require('util');
- * const execFile = util.promisify(require('child_process').execFile);
- * async function getVersion() {
- * const { stdout } = await execFile('node', ['--version']);
- * console.log(stdout);
- * }
- * getVersion();
- * ```
- *
- * **If the `shell` option is enabled, do not pass unsanitized user input to this**
- * **function. Any input containing shell metacharacters may be used to trigger**
- * **arbitrary command execution.**
- *
- * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except
- * the error passed to the callback will be an `AbortError`:
- *
- * ```js
- * const { execFile } = require('child_process');
- * const controller = new AbortController();
- * const { signal } = controller;
- * const child = execFile('node', ['--version'], { signal }, (error) => {
- * console.log(error); // an AbortError
- * });
- * controller.abort();
- * ```
- * @since v0.1.91
- * @param file The name or path of the executable file to run.
- * @param args List of string arguments.
- * @param callback Called with the output when process terminates.
- */
- function execFile(file: string): ChildProcess;
- function execFile(file: string, options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess;
- function execFile(file: string, args?: ReadonlyArray | null): ChildProcess;
- function execFile(file: string, args: ReadonlyArray | undefined | null, options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess;
- // no `options` definitely means stdout/stderr are `string`.
- function execFile(file: string, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;
- function execFile(file: string, args: ReadonlyArray | undefined | null, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;
- // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.
- function execFile(file: string, options: ExecFileOptionsWithBufferEncoding, callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess;
- function execFile(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: ExecFileOptionsWithBufferEncoding,
- callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void
- ): ChildProcess;
- // `options` with well known `encoding` means stdout/stderr are definitely `string`.
- function execFile(file: string, options: ExecFileOptionsWithStringEncoding, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;
- function execFile(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: ExecFileOptionsWithStringEncoding,
- callback: (error: ExecFileException | null, stdout: string, stderr: string) => void
- ): ChildProcess;
- // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`.
- // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`.
- function execFile(file: string, options: ExecFileOptionsWithOtherEncoding, callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void): ChildProcess;
- function execFile(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: ExecFileOptionsWithOtherEncoding,
- callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void
- ): ChildProcess;
- // `options` without an `encoding` means stdout/stderr are definitely `string`.
- function execFile(file: string, options: ExecFileOptions, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;
- function execFile(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: ExecFileOptions,
- callback: (error: ExecFileException | null, stdout: string, stderr: string) => void
- ): ChildProcess;
- // fallback if nothing else matches. Worst case is always `string | Buffer`.
- function execFile(
- file: string,
- options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null,
- callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null
- ): ChildProcess;
- function execFile(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null,
- callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null
- ): ChildProcess;
- namespace execFile {
- function __promisify__(file: string): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- args: ReadonlyArray | undefined | null
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- options: ExecFileOptionsWithBufferEncoding
- ): PromiseWithChild<{
- stdout: Buffer;
- stderr: Buffer;
- }>;
- function __promisify__(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: ExecFileOptionsWithBufferEncoding
- ): PromiseWithChild<{
- stdout: Buffer;
- stderr: Buffer;
- }>;
- function __promisify__(
- file: string,
- options: ExecFileOptionsWithStringEncoding
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: ExecFileOptionsWithStringEncoding
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- options: ExecFileOptionsWithOtherEncoding
- ): PromiseWithChild<{
- stdout: string | Buffer;
- stderr: string | Buffer;
- }>;
- function __promisify__(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: ExecFileOptionsWithOtherEncoding
- ): PromiseWithChild<{
- stdout: string | Buffer;
- stderr: string | Buffer;
- }>;
- function __promisify__(
- file: string,
- options: ExecFileOptions
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: ExecFileOptions
- ): PromiseWithChild<{
- stdout: string;
- stderr: string;
- }>;
- function __promisify__(
- file: string,
- options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null
- ): PromiseWithChild<{
- stdout: string | Buffer;
- stderr: string | Buffer;
- }>;
- function __promisify__(
- file: string,
- args: ReadonlyArray | undefined | null,
- options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null
- ): PromiseWithChild<{
- stdout: string | Buffer;
- stderr: string | Buffer;
- }>;
- }
- interface ForkOptions extends ProcessEnvOptions, MessagingOptions, Abortable {
- execPath?: string | undefined;
- execArgv?: string[] | undefined;
- silent?: boolean | undefined;
- stdio?: StdioOptions | undefined;
- detached?: boolean | undefined;
- windowsVerbatimArguments?: boolean | undefined;
- }
- /**
- * The `child_process.fork()` method is a special case of {@link spawn} used specifically to spawn new Node.js processes.
- * Like {@link spawn}, a `ChildProcess` object is returned. The
- * returned `ChildProcess` will have an additional communication channel
- * built-in that allows messages to be passed back and forth between the parent and
- * child. See `subprocess.send()` for details.
- *
- * Keep in mind that spawned Node.js child processes are
- * independent of the parent with exception of the IPC communication channel
- * that is established between the two. Each process has its own memory, with
- * their own V8 instances. Because of the additional resource allocations
- * required, spawning a large number of child Node.js processes is not
- * recommended.
- *
- * By default, `child_process.fork()` will spawn new Node.js instances using the `process.execPath` of the parent process. The `execPath` property in the`options` object allows for an alternative
- * execution path to be used.
- *
- * Node.js processes launched with a custom `execPath` will communicate with the
- * parent process using the file descriptor (fd) identified using the
- * environment variable `NODE_CHANNEL_FD` on the child process.
- *
- * Unlike the [`fork(2)`](http://man7.org/linux/man-pages/man2/fork.2.html) POSIX system call, `child_process.fork()` does not clone the
- * current process.
- *
- * The `shell` option available in {@link spawn} is not supported by`child_process.fork()` and will be ignored if set.
- *
- * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except
- * the error passed to the callback will be an `AbortError`:
- *
- * ```js
- * if (process.argv[2] === 'child') {
- * setTimeout(() => {
- * console.log(`Hello from ${process.argv[2]}!`);
- * }, 1_000);
- * } else {
- * const { fork } = require('child_process');
- * const controller = new AbortController();
- * const { signal } = controller;
- * const child = fork(__filename, ['child'], { signal });
- * child.on('error', (err) => {
- * // This will be called with err being an AbortError if the controller aborts
- * });
- * controller.abort(); // Stops the child process
- * }
- * ```
- * @since v0.5.0
- * @param modulePath The module to run in the child.
- * @param args List of string arguments.
- */
- function fork(modulePath: string, options?: ForkOptions): ChildProcess;
- function fork(modulePath: string, args?: ReadonlyArray, options?: ForkOptions): ChildProcess;
- interface SpawnSyncOptions extends CommonSpawnOptions {
- input?: string | NodeJS.ArrayBufferView | undefined;
- maxBuffer?: number | undefined;
- encoding?: BufferEncoding | 'buffer' | null | undefined;
- }
- interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions {
- encoding: BufferEncoding;
- }
- interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions {
- encoding?: 'buffer' | null | undefined;
- }
- interface SpawnSyncReturns {
- pid: number;
- output: Array;
- stdout: T;
- stderr: T;
- status: number | null;
- signal: NodeJS.Signals | null;
- error?: Error | undefined;
- }
- /**
- * The `child_process.spawnSync()` method is generally identical to {@link spawn} with the exception that the function will not return
- * until the child process has fully closed. When a timeout has been encountered
- * and `killSignal` is sent, the method won't return until the process has
- * completely exited. If the process intercepts and handles the `SIGTERM` signal
- * and doesn't exit, the parent process will wait until the child process has
- * exited.
- *
- * **If the `shell` option is enabled, do not pass unsanitized user input to this**
- * **function. Any input containing shell metacharacters may be used to trigger**
- * **arbitrary command execution.**
- * @since v0.11.12
- * @param command The command to run.
- * @param args List of string arguments.
- */
- function spawnSync(command: string): SpawnSyncReturns;
- function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns;
- function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns;
- function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns;
- function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns;
- function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns;
- function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptions): SpawnSyncReturns;
- interface CommonExecOptions extends CommonOptions {
- input?: string | NodeJS.ArrayBufferView | undefined;
- stdio?: StdioOptions | undefined;
- killSignal?: NodeJS.Signals | number | undefined;
- maxBuffer?: number | undefined;
- encoding?: BufferEncoding | 'buffer' | null | undefined;
- }
- interface ExecSyncOptions extends CommonExecOptions {
- shell?: string | undefined;
- }
- interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions {
- encoding: BufferEncoding;
- }
- interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions {
- encoding?: 'buffer' | null | undefined;
- }
- /**
- * The `child_process.execSync()` method is generally identical to {@link exec} with the exception that the method will not return
- * until the child process has fully closed. When a timeout has been encountered
- * and `killSignal` is sent, the method won't return until the process has
- * completely exited. If the child process intercepts and handles the `SIGTERM`signal and doesn't exit, the parent process will wait until the child process
- * has exited.
- *
- * If the process times out or has a non-zero exit code, this method will throw.
- * The `Error` object will contain the entire result from {@link spawnSync}.
- *
- * **Never pass unsanitized user input to this function. Any input containing shell**
- * **metacharacters may be used to trigger arbitrary command execution.**
- * @since v0.11.12
- * @param command The command to run.
- * @return The stdout from the command.
- */
- function execSync(command: string): Buffer;
- function execSync(command: string, options?: ExecSyncOptionsWithStringEncoding): string;
- function execSync(command: string, options?: ExecSyncOptionsWithBufferEncoding): Buffer;
- function execSync(command: string, options?: ExecSyncOptions): Buffer;
- interface ExecFileSyncOptions extends CommonExecOptions {
- shell?: boolean | string | undefined;
- }
- interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions {
- encoding: BufferEncoding;
- }
- interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions {
- encoding: BufferEncoding; // specify `null`.
- }
- /**
- * The `child_process.execFileSync()` method is generally identical to {@link execFile} with the exception that the method will not
- * return until the child process has fully closed. When a timeout has been
- * encountered and `killSignal` is sent, the method won't return until the process
- * has completely exited.
- *
- * If the child process intercepts and handles the `SIGTERM` signal and
- * does not exit, the parent process will still wait until the child process has
- * exited.
- *
- * If the process times out or has a non-zero exit code, this method will throw an `Error` that will include the full result of the underlying {@link spawnSync}.
- *
- * **If the `shell` option is enabled, do not pass unsanitized user input to this**
- * **function. Any input containing shell metacharacters may be used to trigger**
- * **arbitrary command execution.**
- * @since v0.11.12
- * @param file The name or path of the executable file to run.
- * @param args List of string arguments.
- * @return The stdout from the command.
- */
- function execFileSync(file: string): Buffer;
- function execFileSync(file: string, options?: ExecFileSyncOptionsWithStringEncoding): string;
- function execFileSync(file: string, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;
- function execFileSync(file: string, options?: ExecFileSyncOptions): Buffer;
- function execFileSync(file: string, args?: ReadonlyArray, options?: ExecFileSyncOptionsWithStringEncoding): string;
- function execFileSync(file: string, args?: ReadonlyArray, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;
- function execFileSync(file: string, args?: ReadonlyArray, options?: ExecFileSyncOptions): Buffer;
-}
-declare module 'node:child_process' {
- export * from 'child_process';
-}
diff --git a/node_modules/@types/node/cluster.d.ts b/node_modules/@types/node/cluster.d.ts
deleted file mode 100755
index 8c4203b..0000000
--- a/node_modules/@types/node/cluster.d.ts
+++ /dev/null
@@ -1,414 +0,0 @@
-/**
- * A single instance of Node.js runs in a single thread. To take advantage of
- * multi-core systems, the user will sometimes want to launch a cluster of Node.js
- * processes to handle the load.
- *
- * The cluster module allows easy creation of child processes that all share
- * server ports.
- *
- * ```js
- * import cluster from 'cluster';
- * import http from 'http';
- * import { cpus } from 'os';
- * import process from 'process';
- *
- * const numCPUs = cpus().length;
- *
- * if (cluster.isPrimary) {
- * console.log(`Primary ${process.pid} is running`);
- *
- * // Fork workers.
- * for (let i = 0; i < numCPUs; i++) {
- * cluster.fork();
- * }
- *
- * cluster.on('exit', (worker, code, signal) => {
- * console.log(`worker ${worker.process.pid} died`);
- * });
- * } else {
- * // Workers can share any TCP connection
- * // In this case it is an HTTP server
- * http.createServer((req, res) => {
- * res.writeHead(200);
- * res.end('hello world\n');
- * }).listen(8000);
- *
- * console.log(`Worker ${process.pid} started`);
- * }
- * ```
- *
- * Running Node.js will now share port 8000 between the workers:
- *
- * ```console
- * $ node server.js
- * Primary 3596 is running
- * Worker 4324 started
- * Worker 4520 started
- * Worker 6056 started
- * Worker 5644 started
- * ```
- *
- * On Windows, it is not yet possible to set up a named pipe server in a worker.
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/cluster.js)
- */
-declare module 'cluster' {
- import * as child from 'node:child_process';
- import EventEmitter = require('node:events');
- import * as net from 'node:net';
- export interface ClusterSettings {
- execArgv?: string[] | undefined; // default: process.execArgv
- exec?: string | undefined;
- args?: string[] | undefined;
- silent?: boolean | undefined;
- stdio?: any[] | undefined;
- uid?: number | undefined;
- gid?: number | undefined;
- inspectPort?: number | (() => number) | undefined;
- }
- export interface Address {
- address: string;
- port: number;
- addressType: number | 'udp4' | 'udp6'; // 4, 6, -1, "udp4", "udp6"
- }
- /**
- * A `Worker` object contains all public information and method about a worker.
- * In the primary it can be obtained using `cluster.workers`. In a worker
- * it can be obtained using `cluster.worker`.
- * @since v0.7.0
- */
- export class Worker extends EventEmitter {
- /**
- * Each new worker is given its own unique id, this id is stored in the`id`.
- *
- * While a worker is alive, this is the key that indexes it in`cluster.workers`.
- * @since v0.8.0
- */
- id: number;
- /**
- * All workers are created using `child_process.fork()`, the returned object
- * from this function is stored as `.process`. In a worker, the global `process`is stored.
- *
- * See: `Child Process module`.
- *
- * Workers will call `process.exit(0)` if the `'disconnect'` event occurs
- * on `process` and `.exitedAfterDisconnect` is not `true`. This protects against
- * accidental disconnection.
- * @since v0.7.0
- */
- process: child.ChildProcess;
- /**
- * Send a message to a worker or primary, optionally with a handle.
- *
- * In the primary this sends a message to a specific worker. It is identical to `ChildProcess.send()`.
- *
- * In a worker this sends a message to the primary. It is identical to`process.send()`.
- *
- * This example will echo back all messages from the primary:
- *
- * ```js
- * if (cluster.isPrimary) {
- * const worker = cluster.fork();
- * worker.send('hi there');
- *
- * } else if (cluster.isWorker) {
- * process.on('message', (msg) => {
- * process.send(msg);
- * });
- * }
- * ```
- * @since v0.7.0
- * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties:
- */
- send(message: child.Serializable, callback?: (error: Error | null) => void): boolean;
- send(message: child.Serializable, sendHandle: child.SendHandle, callback?: (error: Error | null) => void): boolean;
- send(message: child.Serializable, sendHandle: child.SendHandle, options?: child.MessageOptions, callback?: (error: Error | null) => void): boolean;
- /**
- * This function will kill the worker. In the primary, it does this
- * by disconnecting the `worker.process`, and once disconnected, killing
- * with `signal`. In the worker, it does it by disconnecting the channel,
- * and then exiting with code `0`.
- *
- * Because `kill()` attempts to gracefully disconnect the worker process, it is
- * susceptible to waiting indefinitely for the disconnect to complete. For example,
- * if the worker enters an infinite loop, a graceful disconnect will never occur.
- * If the graceful disconnect behavior is not needed, use `worker.process.kill()`.
- *
- * Causes `.exitedAfterDisconnect` to be set.
- *
- * This method is aliased as `worker.destroy()` for backward compatibility.
- *
- * In a worker, `process.kill()` exists, but it is not this function;
- * it is `kill()`.
- * @since v0.9.12
- * @param [signal='SIGTERM'] Name of the kill signal to send to the worker process.
- */
- kill(signal?: string): void;
- destroy(signal?: string): void;
- /**
- * In a worker, this function will close all servers, wait for the `'close'` event
- * on those servers, and then disconnect the IPC channel.
- *
- * In the primary, an internal message is sent to the worker causing it to call`.disconnect()` on itself.
- *
- * Causes `.exitedAfterDisconnect` to be set.
- *
- * After a server is closed, it will no longer accept new connections,
- * but connections may be accepted by any other listening worker. Existing
- * connections will be allowed to close as usual. When no more connections exist,
- * see `server.close()`, the IPC channel to the worker will close allowing it
- * to die gracefully.
- *
- * The above applies _only_ to server connections, client connections are not
- * automatically closed by workers, and disconnect does not wait for them to close
- * before exiting.
- *
- * In a worker, `process.disconnect` exists, but it is not this function;
- * it is `disconnect()`.
- *
- * Because long living server connections may block workers from disconnecting, it
- * may be useful to send a message, so application specific actions may be taken to
- * close them. It also may be useful to implement a timeout, killing a worker if
- * the `'disconnect'` event has not been emitted after some time.
- *
- * ```js
- * if (cluster.isPrimary) {
- * const worker = cluster.fork();
- * let timeout;
- *
- * worker.on('listening', (address) => {
- * worker.send('shutdown');
- * worker.disconnect();
- * timeout = setTimeout(() => {
- * worker.kill();
- * }, 2000);
- * });
- *
- * worker.on('disconnect', () => {
- * clearTimeout(timeout);
- * });
- *
- * } else if (cluster.isWorker) {
- * const net = require('net');
- * const server = net.createServer((socket) => {
- * // Connections never end
- * });
- *
- * server.listen(8000);
- *
- * process.on('message', (msg) => {
- * if (msg === 'shutdown') {
- * // Initiate graceful close of any connections to server
- * }
- * });
- * }
- * ```
- * @since v0.7.7
- * @return A reference to `worker`.
- */
- disconnect(): void;
- /**
- * This function returns `true` if the worker is connected to its primary via its
- * IPC channel, `false` otherwise. A worker is connected to its primary after it
- * has been created. It is disconnected after the `'disconnect'` event is emitted.
- * @since v0.11.14
- */
- isConnected(): boolean;
- /**
- * This function returns `true` if the worker's process has terminated (either
- * because of exiting or being signaled). Otherwise, it returns `false`.
- *
- * ```js
- * import cluster from 'cluster';
- * import http from 'http';
- * import { cpus } from 'os';
- * import process from 'process';
- *
- * const numCPUs = cpus().length;
- *
- * if (cluster.isPrimary) {
- * console.log(`Primary ${process.pid} is running`);
- *
- * // Fork workers.
- * for (let i = 0; i < numCPUs; i++) {
- * cluster.fork();
- * }
- *
- * cluster.on('fork', (worker) => {
- * console.log('worker is dead:', worker.isDead());
- * });
- *
- * cluster.on('exit', (worker, code, signal) => {
- * console.log('worker is dead:', worker.isDead());
- * });
- * } else {
- * // Workers can share any TCP connection. In this case, it is an HTTP server.
- * http.createServer((req, res) => {
- * res.writeHead(200);
- * res.end(`Current process\n ${process.pid}`);
- * process.kill(process.pid);
- * }).listen(8000);
- * }
- * ```
- * @since v0.11.14
- */
- isDead(): boolean;
- /**
- * This property is `true` if the worker exited due to `.kill()` or`.disconnect()`. If the worker exited any other way, it is `false`. If the
- * worker has not exited, it is `undefined`.
- *
- * The boolean `worker.exitedAfterDisconnect` allows distinguishing between
- * voluntary and accidental exit, the primary may choose not to respawn a worker
- * based on this value.
- *
- * ```js
- * cluster.on('exit', (worker, code, signal) => {
- * if (worker.exitedAfterDisconnect === true) {
- * console.log('Oh, it was just voluntary – no need to worry');
- * }
- * });
- *
- * // kill worker
- * worker.kill();
- * ```
- * @since v6.0.0
- */
- exitedAfterDisconnect: boolean;
- /**
- * events.EventEmitter
- * 1. disconnect
- * 2. error
- * 3. exit
- * 4. listening
- * 5. message
- * 6. online
- */
- addListener(event: string, listener: (...args: any[]) => void): this;
- addListener(event: 'disconnect', listener: () => void): this;
- addListener(event: 'error', listener: (error: Error) => void): this;
- addListener(event: 'exit', listener: (code: number, signal: string) => void): this;
- addListener(event: 'listening', listener: (address: Address) => void): this;
- addListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
- addListener(event: 'online', listener: () => void): this;
- emit(event: string | symbol, ...args: any[]): boolean;
- emit(event: 'disconnect'): boolean;
- emit(event: 'error', error: Error): boolean;
- emit(event: 'exit', code: number, signal: string): boolean;
- emit(event: 'listening', address: Address): boolean;
- emit(event: 'message', message: any, handle: net.Socket | net.Server): boolean;
- emit(event: 'online'): boolean;
- on(event: string, listener: (...args: any[]) => void): this;
- on(event: 'disconnect', listener: () => void): this;
- on(event: 'error', listener: (error: Error) => void): this;
- on(event: 'exit', listener: (code: number, signal: string) => void): this;
- on(event: 'listening', listener: (address: Address) => void): this;
- on(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
- on(event: 'online', listener: () => void): this;
- once(event: string, listener: (...args: any[]) => void): this;
- once(event: 'disconnect', listener: () => void): this;
- once(event: 'error', listener: (error: Error) => void): this;
- once(event: 'exit', listener: (code: number, signal: string) => void): this;
- once(event: 'listening', listener: (address: Address) => void): this;
- once(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
- once(event: 'online', listener: () => void): this;
- prependListener(event: string, listener: (...args: any[]) => void): this;
- prependListener(event: 'disconnect', listener: () => void): this;
- prependListener(event: 'error', listener: (error: Error) => void): this;
- prependListener(event: 'exit', listener: (code: number, signal: string) => void): this;
- prependListener(event: 'listening', listener: (address: Address) => void): this;
- prependListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
- prependListener(event: 'online', listener: () => void): this;
- prependOnceListener(event: string, listener: (...args: any[]) => void): this;
- prependOnceListener(event: 'disconnect', listener: () => void): this;
- prependOnceListener(event: 'error', listener: (error: Error) => void): this;
- prependOnceListener(event: 'exit', listener: (code: number, signal: string) => void): this;
- prependOnceListener(event: 'listening', listener: (address: Address) => void): this;
- prependOnceListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
- prependOnceListener(event: 'online', listener: () => void): this;
- }
- export interface Cluster extends EventEmitter {
- disconnect(callback?: () => void): void;
- fork(env?: any): Worker;
- /** @deprecated since v16.0.0 - use isPrimary. */
- readonly isMaster: boolean;
- readonly isPrimary: boolean;
- readonly isWorker: boolean;
- schedulingPolicy: number;
- readonly settings: ClusterSettings;
- /** @deprecated since v16.0.0 - use setupPrimary. */
- setupMaster(settings?: ClusterSettings): void;
- /**
- * `setupPrimary` is used to change the default 'fork' behavior. Once called, the settings will be present in cluster.settings.
- */
- setupPrimary(settings?: ClusterSettings): void;
- readonly worker?: Worker | undefined;
- readonly workers?: NodeJS.Dict | undefined;
- readonly SCHED_NONE: number;
- readonly SCHED_RR: number;
- /**
- * events.EventEmitter
- * 1. disconnect
- * 2. exit
- * 3. fork
- * 4. listening
- * 5. message
- * 6. online
- * 7. setup
- */
- addListener(event: string, listener: (...args: any[]) => void): this;
- addListener(event: 'disconnect', listener: (worker: Worker) => void): this;
- addListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;
- addListener(event: 'fork', listener: (worker: Worker) => void): this;
- addListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this;
- addListener(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
- addListener(event: 'online', listener: (worker: Worker) => void): this;
- addListener(event: 'setup', listener: (settings: ClusterSettings) => void): this;
- emit(event: string | symbol, ...args: any[]): boolean;
- emit(event: 'disconnect', worker: Worker): boolean;
- emit(event: 'exit', worker: Worker, code: number, signal: string): boolean;
- emit(event: 'fork', worker: Worker): boolean;
- emit(event: 'listening', worker: Worker, address: Address): boolean;
- emit(event: 'message', worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
- emit(event: 'online', worker: Worker): boolean;
- emit(event: 'setup', settings: ClusterSettings): boolean;
- on(event: string, listener: (...args: any[]) => void): this;
- on(event: 'disconnect', listener: (worker: Worker) => void): this;
- on(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;
- on(event: 'fork', listener: (worker: Worker) => void): this;
- on(event: 'listening', listener: (worker: Worker, address: Address) => void): this;
- on(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
- on(event: 'online', listener: (worker: Worker) => void): this;
- on(event: 'setup', listener: (settings: ClusterSettings) => void): this;
- once(event: string, listener: (...args: any[]) => void): this;
- once(event: 'disconnect', listener: (worker: Worker) => void): this;
- once(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;
- once(event: 'fork', listener: (worker: Worker) => void): this;
- once(event: 'listening', listener: (worker: Worker, address: Address) => void): this;
- once(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined.
- once(event: 'online', listener: (worker: Worker) => void): this;
- once(event: 'setup', listener: (settings: ClusterSettings) => void): this;
- prependListener(event: string, listener: (...args: any[]) => void): this;
- prependListener(event: 'disconnect', listener: (worker: Worker) => void): this;
- prependListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;
- prependListener(event: 'fork', listener: (worker: Worker) => void): this;
- prependListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this;
- // the handle is a net.Socket or net.Server object, or undefined.
- prependListener(event: 'message', listener: (worker: Worker, message: any, handle?: net.Socket | net.Server) => void): this;
- prependListener(event: 'online', listener: (worker: Worker) => void): this;
- prependListener(event: 'setup', listener: (settings: ClusterSettings) => void): this;
- prependOnceListener(event: string, listener: (...args: any[]) => void): this;
- prependOnceListener(event: 'disconnect', listener: (worker: Worker) => void): this;
- prependOnceListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this;
- prependOnceListener(event: 'fork', listener: (worker: Worker) => void): this;
- prependOnceListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this;
- // the handle is a net.Socket or net.Server object, or undefined.
- prependOnceListener(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;
- prependOnceListener(event: 'online', listener: (worker: Worker) => void): this;
- prependOnceListener(event: 'setup', listener: (settings: ClusterSettings) => void): this;
- }
- const cluster: Cluster;
- export default cluster;
-}
-declare module 'node:cluster' {
- export * from 'cluster';
- export { default as default } from 'cluster';
-}
diff --git a/node_modules/@types/node/console.d.ts b/node_modules/@types/node/console.d.ts
deleted file mode 100755
index 60a5294..0000000
--- a/node_modules/@types/node/console.d.ts
+++ /dev/null
@@ -1,407 +0,0 @@
-/**
- * The `console` module provides a simple debugging console that is similar to the
- * JavaScript console mechanism provided by web browsers.
- *
- * The module exports two specific components:
- *
- * * A `Console` class with methods such as `console.log()`, `console.error()` and`console.warn()` that can be used to write to any Node.js stream.
- * * A global `console` instance configured to write to `process.stdout` and `process.stderr`. The global `console` can be used without calling`require('console')`.
- *
- * _**Warning**_: The global console object's methods are neither consistently
- * synchronous like the browser APIs they resemble, nor are they consistently
- * asynchronous like all other Node.js streams. See the `note on process I/O` for
- * more information.
- *
- * Example using the global `console`:
- *
- * ```js
- * console.log('hello world');
- * // Prints: hello world, to stdout
- * console.log('hello %s', 'world');
- * // Prints: hello world, to stdout
- * console.error(new Error('Whoops, something bad happened'));
- * // Prints error message and stack trace to stderr:
- * // Error: Whoops, something bad happened
- * // at [eval]:5:15
- * // at Script.runInThisContext (node:vm:132:18)
- * // at Object.runInThisContext (node:vm:309:38)
- * // at node:internal/process/execution:77:19
- * // at [eval]-wrapper:6:22
- * // at evalScript (node:internal/process/execution:76:60)
- * // at node:internal/main/eval_string:23:3
- *
- * const name = 'Will Robinson';
- * console.warn(`Danger ${name}! Danger!`);
- * // Prints: Danger Will Robinson! Danger!, to stderr
- * ```
- *
- * Example using the `Console` class:
- *
- * ```js
- * const out = getStreamSomehow();
- * const err = getStreamSomehow();
- * const myConsole = new console.Console(out, err);
- *
- * myConsole.log('hello world');
- * // Prints: hello world, to out
- * myConsole.log('hello %s', 'world');
- * // Prints: hello world, to out
- * myConsole.error(new Error('Whoops, something bad happened'));
- * // Prints: [Error: Whoops, something bad happened], to err
- *
- * const name = 'Will Robinson';
- * myConsole.warn(`Danger ${name}! Danger!`);
- * // Prints: Danger Will Robinson! Danger!, to err
- * ```
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/console.js)
- */
-declare module 'console' {
- import console = require('node:console');
- export = console;
-}
-declare module 'node:console' {
- import { InspectOptions } from 'node:util';
- global {
- // This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build
- interface Console {
- Console: console.ConsoleConstructor;
- /**
- * `console.assert()` writes a message if `value` is [falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) or omitted. It only
- * writes a message and does not otherwise affect execution. The output always
- * starts with `"Assertion failed"`. If provided, `message` is formatted using `util.format()`.
- *
- * If `value` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), nothing happens.
- *
- * ```js
- * console.assert(true, 'does nothing');
- *
- * console.assert(false, 'Whoops %s work', 'didn\'t');
- * // Assertion failed: Whoops didn't work
- *
- * console.assert();
- * // Assertion failed
- * ```
- * @since v0.1.101
- * @param value The value tested for being truthy.
- * @param message All arguments besides `value` are used as error message.
- */
- assert(value: any, message?: string, ...optionalParams: any[]): void;
- /**
- * When `stdout` is a TTY, calling `console.clear()` will attempt to clear the
- * TTY. When `stdout` is not a TTY, this method does nothing.
- *
- * The specific operation of `console.clear()` can vary across operating systems
- * and terminal types. For most Linux operating systems, `console.clear()`operates similarly to the `clear` shell command. On Windows, `console.clear()`will clear only the output in the
- * current terminal viewport for the Node.js
- * binary.
- * @since v8.3.0
- */
- clear(): void;
- /**
- * Maintains an internal counter specific to `label` and outputs to `stdout` the
- * number of times `console.count()` has been called with the given `label`.
- *
- * ```js
- * > console.count()
- * default: 1
- * undefined
- * > console.count('default')
- * default: 2
- * undefined
- * > console.count('abc')
- * abc: 1
- * undefined
- * > console.count('xyz')
- * xyz: 1
- * undefined
- * > console.count('abc')
- * abc: 2
- * undefined
- * > console.count()
- * default: 3
- * undefined
- * >
- * ```
- * @since v8.3.0
- * @param label The display label for the counter.
- */
- count(label?: string): void;
- /**
- * Resets the internal counter specific to `label`.
- *
- * ```js
- * > console.count('abc');
- * abc: 1
- * undefined
- * > console.countReset('abc');
- * undefined
- * > console.count('abc');
- * abc: 1
- * undefined
- * >
- * ```
- * @since v8.3.0
- * @param label The display label for the counter.
- */
- countReset(label?: string): void;
- /**
- * The `console.debug()` function is an alias for {@link log}.
- * @since v8.0.0
- */
- debug(message?: any, ...optionalParams: any[]): void;
- /**
- * Uses `util.inspect()` on `obj` and prints the resulting string to `stdout`.
- * This function bypasses any custom `inspect()` function defined on `obj`.
- * @since v0.1.101
- */
- dir(obj: any, options?: InspectOptions): void;
- /**
- * This method calls `console.log()` passing it the arguments received.
- * This method does not produce any XML formatting.
- * @since v8.0.0
- */
- dirxml(...data: any[]): void;
- /**
- * Prints to `stderr` with newline. Multiple arguments can be passed, with the
- * first used as the primary message and all additional used as substitution
- * values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to `util.format()`).
- *
- * ```js
- * const code = 5;
- * console.error('error #%d', code);
- * // Prints: error #5, to stderr
- * console.error('error', code);
- * // Prints: error 5, to stderr
- * ```
- *
- * If formatting elements (e.g. `%d`) are not found in the first string then `util.inspect()` is called on each argument and the resulting string
- * values are concatenated. See `util.format()` for more information.
- * @since v0.1.100
- */
- error(message?: any, ...optionalParams: any[]): void;
- /**
- * Increases indentation of subsequent lines by spaces for `groupIndentation`length.
- *
- * If one or more `label`s are provided, those are printed first without the
- * additional indentation.
- * @since v8.5.0
- */
- group(...label: any[]): void;
- /**
- * An alias for {@link group}.
- * @since v8.5.0
- */
- groupCollapsed(...label: any[]): void;
- /**
- * Decreases indentation of subsequent lines by spaces for `groupIndentation`length.
- * @since v8.5.0
- */
- groupEnd(): void;
- /**
- * The `console.info()` function is an alias for {@link log}.
- * @since v0.1.100
- */
- info(message?: any, ...optionalParams: any[]): void;
- /**
- * Prints to `stdout` with newline. Multiple arguments can be passed, with the
- * first used as the primary message and all additional used as substitution
- * values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to `util.format()`).
- *
- * ```js
- * const count = 5;
- * console.log('count: %d', count);
- * // Prints: count: 5, to stdout
- * console.log('count:', count);
- * // Prints: count: 5, to stdout
- * ```
- *
- * See `util.format()` for more information.
- * @since v0.1.100
- */
- log(message?: any, ...optionalParams: any[]): void;
- /**
- * Try to construct a table with the columns of the properties of `tabularData`(or use `properties`) and rows of `tabularData` and log it. Falls back to just
- * logging the argument if it can’t be parsed as tabular.
- *
- * ```js
- * // These can't be parsed as tabular data
- * console.table(Symbol());
- * // Symbol()
- *
- * console.table(undefined);
- * // undefined
- *
- * console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);
- * // ┌─────────┬─────┬─────┐
- * // │ (index) │ a │ b │
- * // ├─────────┼─────┼─────┤
- * // │ 0 │ 1 │ 'Y' │
- * // │ 1 │ 'Z' │ 2 │
- * // └─────────┴─────┴─────┘
- *
- * console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']);
- * // ┌─────────┬─────┐
- * // │ (index) │ a │
- * // ├─────────┼─────┤
- * // │ 0 │ 1 │
- * // │ 1 │ 'Z' │
- * // └─────────┴─────┘
- * ```
- * @since v10.0.0
- * @param properties Alternate properties for constructing the table.
- */
- table(tabularData: any, properties?: ReadonlyArray): void;
- /**
- * Starts a timer that can be used to compute the duration of an operation. Timers
- * are identified by a unique `label`. Use the same `label` when calling {@link timeEnd} to stop the timer and output the elapsed time in
- * suitable time units to `stdout`. For example, if the elapsed
- * time is 3869ms, `console.timeEnd()` displays "3.869s".
- * @since v0.1.104
- */
- time(label?: string): void;
- /**
- * Stops a timer that was previously started by calling {@link time} and
- * prints the result to `stdout`:
- *
- * ```js
- * console.time('100-elements');
- * for (let i = 0; i < 100; i++) {}
- * console.timeEnd('100-elements');
- * // prints 100-elements: 225.438ms
- * ```
- * @since v0.1.104
- */
- timeEnd(label?: string): void;
- /**
- * For a timer that was previously started by calling {@link time}, prints
- * the elapsed time and other `data` arguments to `stdout`:
- *
- * ```js
- * console.time('process');
- * const value = expensiveProcess1(); // Returns 42
- * console.timeLog('process', value);
- * // Prints "process: 365.227ms 42".
- * doExpensiveProcess2(value);
- * console.timeEnd('process');
- * ```
- * @since v10.7.0
- */
- timeLog(label?: string, ...data: any[]): void;
- /**
- * Prints to `stderr` the string `'Trace: '`, followed by the `util.format()` formatted message and stack trace to the current position in the code.
- *
- * ```js
- * console.trace('Show me');
- * // Prints: (stack trace will vary based on where trace is called)
- * // Trace: Show me
- * // at repl:2:9
- * // at REPLServer.defaultEval (repl.js:248:27)
- * // at bound (domain.js:287:14)
- * // at REPLServer.runBound [as eval] (domain.js:300:12)
- * // at REPLServer. (repl.js:412:12)
- * // at emitOne (events.js:82:20)
- * // at REPLServer.emit (events.js:169:7)
- * // at REPLServer.Interface._onLine (readline.js:210:10)
- * // at REPLServer.Interface._line (readline.js:549:8)
- * // at REPLServer.Interface._ttyWrite (readline.js:826:14)
- * ```
- * @since v0.1.104
- */
- trace(message?: any, ...optionalParams: any[]): void;
- /**
- * The `console.warn()` function is an alias for {@link error}.
- * @since v0.1.100
- */
- warn(message?: any, ...optionalParams: any[]): void;
- // --- Inspector mode only ---
- /**
- * This method does not display anything unless used in the inspector.
- * Starts a JavaScript CPU profile with an optional label.
- */
- profile(label?: string): void;
- /**
- * This method does not display anything unless used in the inspector.
- * Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector.
- */
- profileEnd(label?: string): void;
- /**
- * This method does not display anything unless used in the inspector.
- * Adds an event with the label `label` to the Timeline panel of the inspector.
- */
- timeStamp(label?: string): void;
- }
- /**
- * The `console` module provides a simple debugging console that is similar to the
- * JavaScript console mechanism provided by web browsers.
- *
- * The module exports two specific components:
- *
- * * A `Console` class with methods such as `console.log()`, `console.error()` and`console.warn()` that can be used to write to any Node.js stream.
- * * A global `console` instance configured to write to `process.stdout` and `process.stderr`. The global `console` can be used without calling`require('console')`.
- *
- * _**Warning**_: The global console object's methods are neither consistently
- * synchronous like the browser APIs they resemble, nor are they consistently
- * asynchronous like all other Node.js streams. See the `note on process I/O` for
- * more information.
- *
- * Example using the global `console`:
- *
- * ```js
- * console.log('hello world');
- * // Prints: hello world, to stdout
- * console.log('hello %s', 'world');
- * // Prints: hello world, to stdout
- * console.error(new Error('Whoops, something bad happened'));
- * // Prints error message and stack trace to stderr:
- * // Error: Whoops, something bad happened
- * // at [eval]:5:15
- * // at Script.runInThisContext (node:vm:132:18)
- * // at Object.runInThisContext (node:vm:309:38)
- * // at node:internal/process/execution:77:19
- * // at [eval]-wrapper:6:22
- * // at evalScript (node:internal/process/execution:76:60)
- * // at node:internal/main/eval_string:23:3
- *
- * const name = 'Will Robinson';
- * console.warn(`Danger ${name}! Danger!`);
- * // Prints: Danger Will Robinson! Danger!, to stderr
- * ```
- *
- * Example using the `Console` class:
- *
- * ```js
- * const out = getStreamSomehow();
- * const err = getStreamSomehow();
- * const myConsole = new console.Console(out, err);
- *
- * myConsole.log('hello world');
- * // Prints: hello world, to out
- * myConsole.log('hello %s', 'world');
- * // Prints: hello world, to out
- * myConsole.error(new Error('Whoops, something bad happened'));
- * // Prints: [Error: Whoops, something bad happened], to err
- *
- * const name = 'Will Robinson';
- * myConsole.warn(`Danger ${name}! Danger!`);
- * // Prints: Danger Will Robinson! Danger!, to err
- * ```
- * @see [source](https://github.com/nodejs/node/blob/v16.4.2/lib/console.js)
- */
- namespace console {
- interface ConsoleConstructorOptions {
- stdout: NodeJS.WritableStream;
- stderr?: NodeJS.WritableStream | undefined;
- ignoreErrors?: boolean | undefined;
- colorMode?: boolean | 'auto' | undefined;
- inspectOptions?: InspectOptions | undefined;
- }
- interface ConsoleConstructor {
- prototype: Console;
- new (stdout: NodeJS.WritableStream, stderr?: NodeJS.WritableStream, ignoreErrors?: boolean): Console;
- new (options: ConsoleConstructorOptions): Console;
- }
- }
- var console: Console;
- }
- export = globalThis.console;
-}
diff --git a/node_modules/@types/node/constants.d.ts b/node_modules/@types/node/constants.d.ts
deleted file mode 100755
index 208020d..0000000
--- a/node_modules/@types/node/constants.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-/** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */
-declare module 'constants' {
- import { constants as osConstants, SignalConstants } from 'node:os';
- import { constants as cryptoConstants } from 'node:crypto';
- import { constants as fsConstants } from 'node:fs';
-
- const exp: typeof osConstants.errno &
- typeof osConstants.priority &
- SignalConstants &
- typeof cryptoConstants &
- typeof fsConstants;
- export = exp;
-}
-
-declare module 'node:constants' {
- import constants = require('constants');
- export = constants;
-}
diff --git a/node_modules/@types/node/crypto.d.ts b/node_modules/@types/node/crypto.d.ts
deleted file mode 100755
index 8b7c1a3..0000000
--- a/node_modules/@types/node/crypto.d.ts
+++ /dev/null
@@ -1,3243 +0,0 @@
-/**
- * The `crypto` module provides cryptographic functionality that includes a set of
- * wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions.
- *
- * ```js
- * const { createHmac } = await import('crypto');
- *
- * const secret = 'abcdefg';
- * const hash = createHmac('sha256', secret)
- * .update('I love cupcakes')
- * .digest('hex');
- * console.log(hash);
- * // Prints:
- * // c0fa1bc00531bd78ef38c628449c5102aeabd49b5dc3a2a516ea6ea959d6658e
- * ```
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/crypto.js)
- */
-declare module 'crypto' {
- import * as stream from 'node:stream';
- import { PeerCertificate } from 'node:tls';
- interface Certificate {
- /**
- * @deprecated
- * @param spkac
- * @returns The challenge component of the `spkac` data structure,
- * which includes a public key and a challenge.
- */
- exportChallenge(spkac: BinaryLike): Buffer;
- /**
- * @deprecated
- * @param spkac
- * @param encoding The encoding of the spkac string.
- * @returns The public key component of the `spkac` data structure,
- * which includes a public key and a challenge.
- */
- exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer;
- /**
- * @deprecated
- * @param spkac
- * @returns `true` if the given `spkac` data structure is valid,
- * `false` otherwise.
- */
- verifySpkac(spkac: NodeJS.ArrayBufferView): boolean;
- }
- const Certificate: Certificate & {
- /** @deprecated since v14.9.0 - Use static methods of `crypto.Certificate` instead. */
- new (): Certificate;
- /** @deprecated since v14.9.0 - Use static methods of `crypto.Certificate` instead. */
- (): Certificate;
- /**
- * @param spkac
- * @returns The challenge component of the `spkac` data structure,
- * which includes a public key and a challenge.
- */
- exportChallenge(spkac: BinaryLike): Buffer;
- /**
- * @param spkac
- * @param encoding The encoding of the spkac string.
- * @returns The public key component of the `spkac` data structure,
- * which includes a public key and a challenge.
- */
- exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer;
- /**
- * @param spkac
- * @returns `true` if the given `spkac` data structure is valid,
- * `false` otherwise.
- */
- verifySpkac(spkac: NodeJS.ArrayBufferView): boolean;
- };
- namespace constants {
- // https://nodejs.org/dist/latest-v10.x/docs/api/crypto.html#crypto_crypto_constants
- const OPENSSL_VERSION_NUMBER: number;
- /** Applies multiple bug workarounds within OpenSSL. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html for detail. */
- const SSL_OP_ALL: number;
- /** Allows legacy insecure renegotiation between OpenSSL and unpatched clients or servers. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */
- const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number;
- /** Attempts to use the server's preferences instead of the client's when selecting a cipher. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */
- const SSL_OP_CIPHER_SERVER_PREFERENCE: number;
- /** Instructs OpenSSL to use Cisco's "speshul" version of DTLS_BAD_VER. */
- const SSL_OP_CISCO_ANYCONNECT: number;
- /** Instructs OpenSSL to turn on cookie exchange. */
- const SSL_OP_COOKIE_EXCHANGE: number;
- /** Instructs OpenSSL to add server-hello extension from an early version of the cryptopro draft. */
- const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number;
- /** Instructs OpenSSL to disable a SSL 3.0/TLS 1.0 vulnerability workaround added in OpenSSL 0.9.6d. */
- const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number;
- /** Instructs OpenSSL to always use the tmp_rsa key when performing RSA operations. */
- const SSL_OP_EPHEMERAL_RSA: number;
- /** Allows initial connection to servers that do not support RI. */
- const SSL_OP_LEGACY_SERVER_CONNECT: number;
- const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number;
- const SSL_OP_MICROSOFT_SESS_ID_BUG: number;
- /** Instructs OpenSSL to disable the workaround for a man-in-the-middle protocol-version vulnerability in the SSL 2.0 server implementation. */
- const SSL_OP_MSIE_SSLV2_RSA_PADDING: number;
- const SSL_OP_NETSCAPE_CA_DN_BUG: number;
- const SSL_OP_NETSCAPE_CHALLENGE_BUG: number;
- const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number;
- const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number;
- /** Instructs OpenSSL to disable support for SSL/TLS compression. */
- const SSL_OP_NO_COMPRESSION: number;
- const SSL_OP_NO_QUERY_MTU: number;
- /** Instructs OpenSSL to always start a new session when performing renegotiation. */
- const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number;
- const SSL_OP_NO_SSLv2: number;
- const SSL_OP_NO_SSLv3: number;
- const SSL_OP_NO_TICKET: number;
- const SSL_OP_NO_TLSv1: number;
- const SSL_OP_NO_TLSv1_1: number;
- const SSL_OP_NO_TLSv1_2: number;
- const SSL_OP_PKCS1_CHECK_1: number;
- const SSL_OP_PKCS1_CHECK_2: number;
- /** Instructs OpenSSL to always create a new key when using temporary/ephemeral DH parameters. */
- const SSL_OP_SINGLE_DH_USE: number;
- /** Instructs OpenSSL to always create a new key when using temporary/ephemeral ECDH parameters. */
- const SSL_OP_SINGLE_ECDH_USE: number;
- const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number;
- const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number;
- const SSL_OP_TLS_BLOCK_PADDING_BUG: number;
- const SSL_OP_TLS_D5_BUG: number;
- /** Instructs OpenSSL to disable version rollback attack detection. */
- const SSL_OP_TLS_ROLLBACK_BUG: number;
- const ENGINE_METHOD_RSA: number;
- const ENGINE_METHOD_DSA: number;
- const ENGINE_METHOD_DH: number;
- const ENGINE_METHOD_RAND: number;
- const ENGINE_METHOD_EC: number;
- const ENGINE_METHOD_CIPHERS: number;
- const ENGINE_METHOD_DIGESTS: number;
- const ENGINE_METHOD_PKEY_METHS: number;
- const ENGINE_METHOD_PKEY_ASN1_METHS: number;
- const ENGINE_METHOD_ALL: number;
- const ENGINE_METHOD_NONE: number;
- const DH_CHECK_P_NOT_SAFE_PRIME: number;
- const DH_CHECK_P_NOT_PRIME: number;
- const DH_UNABLE_TO_CHECK_GENERATOR: number;
- const DH_NOT_SUITABLE_GENERATOR: number;
- const ALPN_ENABLED: number;
- const RSA_PKCS1_PADDING: number;
- const RSA_SSLV23_PADDING: number;
- const RSA_NO_PADDING: number;
- const RSA_PKCS1_OAEP_PADDING: number;
- const RSA_X931_PADDING: number;
- const RSA_PKCS1_PSS_PADDING: number;
- /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the digest size when signing or verifying. */
- const RSA_PSS_SALTLEN_DIGEST: number;
- /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the maximum permissible value when signing data. */
- const RSA_PSS_SALTLEN_MAX_SIGN: number;
- /** Causes the salt length for RSA_PKCS1_PSS_PADDING to be determined automatically when verifying a signature. */
- const RSA_PSS_SALTLEN_AUTO: number;
- const POINT_CONVERSION_COMPRESSED: number;
- const POINT_CONVERSION_UNCOMPRESSED: number;
- const POINT_CONVERSION_HYBRID: number;
- /** Specifies the built-in default cipher list used by Node.js (colon-separated values). */
- const defaultCoreCipherList: string;
- /** Specifies the active default cipher list used by the current Node.js process (colon-separated values). */
- const defaultCipherList: string;
- }
- interface HashOptions extends stream.TransformOptions {
- /**
- * For XOF hash functions such as `shake256`, the
- * outputLength option can be used to specify the desired output length in bytes.
- */
- outputLength?: number | undefined;
- }
- /** @deprecated since v10.0.0 */
- const fips: boolean;
- /**
- * Creates and returns a `Hash` object that can be used to generate hash digests
- * using the given `algorithm`. Optional `options` argument controls stream
- * behavior. For XOF hash functions such as `'shake256'`, the `outputLength` option
- * can be used to specify the desired output length in bytes.
- *
- * The `algorithm` is dependent on the available algorithms supported by the
- * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc.
- * On recent releases of OpenSSL, `openssl list -digest-algorithms`(`openssl list-message-digest-algorithms` for older versions of OpenSSL) will
- * display the available digest algorithms.
- *
- * Example: generating the sha256 sum of a file
- *
- * ```js
- * import {
- * createReadStream
- * } from 'fs';
- * import { argv } from 'process';
- * const {
- * createHash
- * } = await import('crypto');
- *
- * const filename = argv[2];
- *
- * const hash = createHash('sha256');
- *
- * const input = createReadStream(filename);
- * input.on('readable', () => {
- * // Only one element is going to be produced by the
- * // hash stream.
- * const data = input.read();
- * if (data)
- * hash.update(data);
- * else {
- * console.log(`${hash.digest('hex')} ${filename}`);
- * }
- * });
- * ```
- * @since v0.1.92
- * @param options `stream.transform` options
- */
- function createHash(algorithm: string, options?: HashOptions): Hash;
- /**
- * Creates and returns an `Hmac` object that uses the given `algorithm` and `key`.
- * Optional `options` argument controls stream behavior.
- *
- * The `algorithm` is dependent on the available algorithms supported by the
- * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc.
- * On recent releases of OpenSSL, `openssl list -digest-algorithms`(`openssl list-message-digest-algorithms` for older versions of OpenSSL) will
- * display the available digest algorithms.
- *
- * The `key` is the HMAC key used to generate the cryptographic HMAC hash. If it is
- * a `KeyObject`, its type must be `secret`.
- *
- * Example: generating the sha256 HMAC of a file
- *
- * ```js
- * import {
- * createReadStream
- * } from 'fs';
- * import { argv } from 'process';
- * const {
- * createHmac
- * } = await import('crypto');
- *
- * const filename = argv[2];
- *
- * const hmac = createHmac('sha256', 'a secret');
- *
- * const input = createReadStream(filename);
- * input.on('readable', () => {
- * // Only one element is going to be produced by the
- * // hash stream.
- * const data = input.read();
- * if (data)
- * hmac.update(data);
- * else {
- * console.log(`${hmac.digest('hex')} ${filename}`);
- * }
- * });
- * ```
- * @since v0.1.94
- * @param options `stream.transform` options
- */
- function createHmac(algorithm: string, key: BinaryLike | KeyObject, options?: stream.TransformOptions): Hmac;
- // https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings
- type BinaryToTextEncoding = 'base64' | 'hex';
- type CharacterEncoding = 'utf8' | 'utf-8' | 'utf16le' | 'latin1';
- type LegacyCharacterEncoding = 'ascii' | 'binary' | 'ucs2' | 'ucs-2';
- type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding;
- type ECDHKeyFormat = 'compressed' | 'uncompressed' | 'hybrid';
- /**
- * The `Hash` class is a utility for creating hash digests of data. It can be
- * used in one of two ways:
- *
- * * As a `stream` that is both readable and writable, where data is written
- * to produce a computed hash digest on the readable side, or
- * * Using the `hash.update()` and `hash.digest()` methods to produce the
- * computed hash.
- *
- * The {@link createHash} method is used to create `Hash` instances. `Hash`objects are not to be created directly using the `new` keyword.
- *
- * Example: Using `Hash` objects as streams:
- *
- * ```js
- * const {
- * createHash
- * } = await import('crypto');
- *
- * const hash = createHash('sha256');
- *
- * hash.on('readable', () => {
- * // Only one element is going to be produced by the
- * // hash stream.
- * const data = hash.read();
- * if (data) {
- * console.log(data.toString('hex'));
- * // Prints:
- * // 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50
- * }
- * });
- *
- * hash.write('some data to hash');
- * hash.end();
- * ```
- *
- * Example: Using `Hash` and piped streams:
- *
- * ```js
- * import { createReadStream } from 'fs';
- * import { stdout } from 'process';
- * const { createHash } = await import('crypto');
- *
- * const hash = createHash('sha256');
- *
- * const input = createReadStream('test.js');
- * input.pipe(hash).setEncoding('hex').pipe(stdout);
- * ```
- *
- * Example: Using the `hash.update()` and `hash.digest()` methods:
- *
- * ```js
- * const {
- * createHash
- * } = await import('crypto');
- *
- * const hash = createHash('sha256');
- *
- * hash.update('some data to hash');
- * console.log(hash.digest('hex'));
- * // Prints:
- * // 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50
- * ```
- * @since v0.1.92
- */
- class Hash extends stream.Transform {
- private constructor();
- /**
- * Creates a new `Hash` object that contains a deep copy of the internal state
- * of the current `Hash` object.
- *
- * The optional `options` argument controls stream behavior. For XOF hash
- * functions such as `'shake256'`, the `outputLength` option can be used to
- * specify the desired output length in bytes.
- *
- * An error is thrown when an attempt is made to copy the `Hash` object after
- * its `hash.digest()` method has been called.
- *
- * ```js
- * // Calculate a rolling hash.
- * const {
- * createHash
- * } = await import('crypto');
- *
- * const hash = createHash('sha256');
- *
- * hash.update('one');
- * console.log(hash.copy().digest('hex'));
- *
- * hash.update('two');
- * console.log(hash.copy().digest('hex'));
- *
- * hash.update('three');
- * console.log(hash.copy().digest('hex'));
- *
- * // Etc.
- * ```
- * @since v13.1.0
- * @param options `stream.transform` options
- */
- copy(options?: stream.TransformOptions): Hash;
- /**
- * Updates the hash content with the given `data`, the encoding of which
- * is given in `inputEncoding`.
- * If `encoding` is not provided, and the `data` is a string, an
- * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.
- *
- * This can be called many times with new data as it is streamed.
- * @since v0.1.92
- * @param inputEncoding The `encoding` of the `data` string.
- */
- update(data: BinaryLike): Hash;
- update(data: string, inputEncoding: Encoding): Hash;
- /**
- * Calculates the digest of all of the data passed to be hashed (using the `hash.update()` method).
- * If `encoding` is provided a string will be returned; otherwise
- * a `Buffer` is returned.
- *
- * The `Hash` object can not be used again after `hash.digest()` method has been
- * called. Multiple calls will cause an error to be thrown.
- * @since v0.1.92
- * @param encoding The `encoding` of the return value.
- */
- digest(): Buffer;
- digest(encoding: BinaryToTextEncoding): string;
- }
- /**
- * The `Hmac` class is a utility for creating cryptographic HMAC digests. It can
- * be used in one of two ways:
- *
- * * As a `stream` that is both readable and writable, where data is written
- * to produce a computed HMAC digest on the readable side, or
- * * Using the `hmac.update()` and `hmac.digest()` methods to produce the
- * computed HMAC digest.
- *
- * The {@link createHmac} method is used to create `Hmac` instances. `Hmac`objects are not to be created directly using the `new` keyword.
- *
- * Example: Using `Hmac` objects as streams:
- *
- * ```js
- * const {
- * createHmac
- * } = await import('crypto');
- *
- * const hmac = createHmac('sha256', 'a secret');
- *
- * hmac.on('readable', () => {
- * // Only one element is going to be produced by the
- * // hash stream.
- * const data = hmac.read();
- * if (data) {
- * console.log(data.toString('hex'));
- * // Prints:
- * // 7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e
- * }
- * });
- *
- * hmac.write('some data to hash');
- * hmac.end();
- * ```
- *
- * Example: Using `Hmac` and piped streams:
- *
- * ```js
- * import { createReadStream } from 'fs';
- * import { stdout } from 'process';
- * const {
- * createHmac
- * } = await import('crypto');
- *
- * const hmac = createHmac('sha256', 'a secret');
- *
- * const input = createReadStream('test.js');
- * input.pipe(hmac).pipe(stdout);
- * ```
- *
- * Example: Using the `hmac.update()` and `hmac.digest()` methods:
- *
- * ```js
- * const {
- * createHmac
- * } = await import('crypto');
- *
- * const hmac = createHmac('sha256', 'a secret');
- *
- * hmac.update('some data to hash');
- * console.log(hmac.digest('hex'));
- * // Prints:
- * // 7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e
- * ```
- * @since v0.1.94
- */
- class Hmac extends stream.Transform {
- private constructor();
- /**
- * Updates the `Hmac` content with the given `data`, the encoding of which
- * is given in `inputEncoding`.
- * If `encoding` is not provided, and the `data` is a string, an
- * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.
- *
- * This can be called many times with new data as it is streamed.
- * @since v0.1.94
- * @param inputEncoding The `encoding` of the `data` string.
- */
- update(data: BinaryLike): Hmac;
- update(data: string, inputEncoding: Encoding): Hmac;
- /**
- * Calculates the HMAC digest of all of the data passed using `hmac.update()`.
- * If `encoding` is
- * provided a string is returned; otherwise a `Buffer` is returned;
- *
- * The `Hmac` object can not be used again after `hmac.digest()` has been
- * called. Multiple calls to `hmac.digest()` will result in an error being thrown.
- * @since v0.1.94
- * @param encoding The `encoding` of the return value.
- */
- digest(): Buffer;
- digest(encoding: BinaryToTextEncoding): string;
- }
- type KeyObjectType = 'secret' | 'public' | 'private';
- interface KeyExportOptions {
- type: 'pkcs1' | 'spki' | 'pkcs8' | 'sec1';
- format: T;
- cipher?: string | undefined;
- passphrase?: string | Buffer | undefined;
- }
- interface JwkKeyExportOptions {
- format: 'jwk';
- }
- interface JsonWebKey {
- crv?: string | undefined;
- d?: string | undefined;
- dp?: string | undefined;
- dq?: string | undefined;
- e?: string | undefined;
- k?: string | undefined;
- kty?: string | undefined;
- n?: string | undefined;
- p?: string | undefined;
- q?: string | undefined;
- qi?: string | undefined;
- x?: string | undefined;
- y?: string | undefined;
- [key: string]: unknown;
- }
- interface AsymmetricKeyDetails {
- /**
- * Key size in bits (RSA, DSA).
- */
- modulusLength?: number | undefined;
- /**
- * Public exponent (RSA).
- */
- publicExponent?: bigint | undefined;
- /**
- * Name of the message digest (RSA-PSS).
- */
- hashAlgorithm?: string | undefined;
- /**
- * Name of the message digest used by MGF1 (RSA-PSS).
- */
- mgf1HashAlgorithm?: string | undefined;
- /**
- * Minimal salt length in bytes (RSA-PSS).
- */
- saltLength?: number | undefined;
- /**
- * Size of q in bits (DSA).
- */
- divisorLength?: number | undefined;
- /**
- * Name of the curve (EC).
- */
- namedCurve?: string | undefined;
- }
- interface JwkKeyExportOptions {
- format: 'jwk';
- }
- /**
- * Node.js uses a `KeyObject` class to represent a symmetric or asymmetric key,
- * and each kind of key exposes different functions. The {@link createSecretKey}, {@link createPublicKey} and {@link createPrivateKey} methods are used to create `KeyObject`instances. `KeyObject`
- * objects are not to be created directly using the `new`keyword.
- *
- * Most applications should consider using the new `KeyObject` API instead of
- * passing keys as strings or `Buffer`s due to improved security features.
- *
- * `KeyObject` instances can be passed to other threads via `postMessage()`.
- * The receiver obtains a cloned `KeyObject`, and the `KeyObject` does not need to
- * be listed in the `transferList` argument.
- * @since v11.6.0
- */
- class KeyObject {
- private constructor();
- /**
- * @since v15.0.0
- */
- static from(key: webcrypto.CryptoKey): KeyObject;
- /**
- * For asymmetric keys, this property represents the type of the key. Supported key
- * types are:
- *
- * * `'rsa'` (OID 1.2.840.113549.1.1.1)
- * * `'rsa-pss'` (OID 1.2.840.113549.1.1.10)
- * * `'dsa'` (OID 1.2.840.10040.4.1)
- * * `'ec'` (OID 1.2.840.10045.2.1)
- * * `'x25519'` (OID 1.3.101.110)
- * * `'x448'` (OID 1.3.101.111)
- * * `'ed25519'` (OID 1.3.101.112)
- * * `'ed448'` (OID 1.3.101.113)
- * * `'dh'` (OID 1.2.840.113549.1.3.1)
- *
- * This property is `undefined` for unrecognized `KeyObject` types and symmetric
- * keys.
- * @since v11.6.0
- */
- asymmetricKeyType?: KeyType | undefined;
- /**
- * For asymmetric keys, this property represents the size of the embedded key in
- * bytes. This property is `undefined` for symmetric keys.
- */
- asymmetricKeySize?: number | undefined;
- /**
- * This property exists only on asymmetric keys. Depending on the type of the key,
- * this object contains information about the key. None of the information obtained
- * through this property can be used to uniquely identify a key or to compromise
- * the security of the key.
- *
- * For RSA-PSS keys, if the key material contains a `RSASSA-PSS-params` sequence,
- * the `hashAlgorithm`, `mgf1HashAlgorithm`, and `saltLength` properties will be
- * set.
- *
- * Other key details might be exposed via this API using additional attributes.
- * @since v15.7.0
- */
- asymmetricKeyDetails?: AsymmetricKeyDetails | undefined;
- /**
- * For symmetric keys, the following encoding options can be used:
- *
- * For public keys, the following encoding options can be used:
- *
- * For private keys, the following encoding options can be used:
- *
- * The result type depends on the selected encoding format, when PEM the
- * result is a string, when DER it will be a buffer containing the data
- * encoded as DER, when [JWK](https://tools.ietf.org/html/rfc7517) it will be an object.
- *
- * When [JWK](https://tools.ietf.org/html/rfc7517) encoding format was selected, all other encoding options are
- * ignored.
- *
- * PKCS#1, SEC1, and PKCS#8 type keys can be encrypted by using a combination of
- * the `cipher` and `format` options. The PKCS#8 `type` can be used with any`format` to encrypt any key algorithm (RSA, EC, or DH) by specifying a`cipher`. PKCS#1 and SEC1 can only be
- * encrypted by specifying a `cipher`when the PEM `format` is used. For maximum compatibility, use PKCS#8 for
- * encrypted private keys. Since PKCS#8 defines its own
- * encryption mechanism, PEM-level encryption is not supported when encrypting
- * a PKCS#8 key. See [RFC 5208](https://www.rfc-editor.org/rfc/rfc5208.txt) for PKCS#8 encryption and [RFC 1421](https://www.rfc-editor.org/rfc/rfc1421.txt) for
- * PKCS#1 and SEC1 encryption.
- * @since v11.6.0
- */
- export(options: KeyExportOptions<'pem'>): string | Buffer;
- export(options?: KeyExportOptions<'der'>): Buffer;
- export(options?: JwkKeyExportOptions): JsonWebKey;
- /**
- * For secret keys, this property represents the size of the key in bytes. This
- * property is `undefined` for asymmetric keys.
- * @since v11.6.0
- */
- symmetricKeySize?: number | undefined;
- /**
- * Depending on the type of this `KeyObject`, this property is either`'secret'` for secret (symmetric) keys, `'public'` for public (asymmetric) keys
- * or `'private'` for private (asymmetric) keys.
- * @since v11.6.0
- */
- type: KeyObjectType;
- }
- type CipherCCMTypes = 'aes-128-ccm' | 'aes-192-ccm' | 'aes-256-ccm' | 'chacha20-poly1305';
- type CipherGCMTypes = 'aes-128-gcm' | 'aes-192-gcm' | 'aes-256-gcm';
- type BinaryLike = string | NodeJS.ArrayBufferView;
- type CipherKey = BinaryLike | KeyObject;
- interface CipherCCMOptions extends stream.TransformOptions {
- authTagLength: number;
- }
- interface CipherGCMOptions extends stream.TransformOptions {
- authTagLength?: number | undefined;
- }
- /**
- * Creates and returns a `Cipher` object that uses the given `algorithm` and`password`.
- *
- * The `options` argument controls stream behavior and is optional except when a
- * cipher in CCM or OCB mode is used (e.g. `'aes-128-ccm'`). In that case, the`authTagLength` option is required and specifies the length of the
- * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to set the length of the authentication
- * tag that will be returned by `getAuthTag()` and defaults to 16 bytes.
- *
- * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On
- * recent OpenSSL releases, `openssl list -cipher-algorithms`(`openssl list-cipher-algorithms` for older versions of OpenSSL) will
- * display the available cipher algorithms.
- *
- * The `password` is used to derive the cipher key and initialization vector (IV).
- * The value must be either a `'latin1'` encoded string, a `Buffer`, a`TypedArray`, or a `DataView`.
- *
- * The implementation of `crypto.createCipher()` derives keys using the OpenSSL
- * function [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) with the digest algorithm set to MD5, one
- * iteration, and no salt. The lack of salt allows dictionary attacks as the same
- * password always creates the same key. The low iteration count and
- * non-cryptographically secure hash algorithm allow passwords to be tested very
- * rapidly.
- *
- * In line with OpenSSL's recommendation to use a more modern algorithm instead of[`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) it is recommended that
- * developers derive a key and IV on
- * their own using {@link scrypt} and to use {@link createCipheriv} to create the `Cipher` object. Users should not use ciphers with counter mode
- * (e.g. CTR, GCM, or CCM) in `crypto.createCipher()`. A warning is emitted when
- * they are used in order to avoid the risk of IV reuse that causes
- * vulnerabilities. For the case when IV is reused in GCM, see [Nonce-Disrespecting Adversaries](https://github.com/nonce-disrespect/nonce-disrespect) for details.
- * @since v0.1.94
- * @deprecated Since v10.0.0 - Use {@link createCipheriv} instead.
- * @param options `stream.transform` options
- */
- function createCipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): CipherCCM;
- /** @deprecated since v10.0.0 use `createCipheriv()` */
- function createCipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): CipherGCM;
- /** @deprecated since v10.0.0 use `createCipheriv()` */
- function createCipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Cipher;
- /**
- * Creates and returns a `Cipher` object, with the given `algorithm`, `key` and
- * initialization vector (`iv`).
- *
- * The `options` argument controls stream behavior and is optional except when a
- * cipher in CCM or OCB mode is used (e.g. `'aes-128-ccm'`). In that case, the`authTagLength` option is required and specifies the length of the
- * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to set the length of the authentication
- * tag that will be returned by `getAuthTag()` and defaults to 16 bytes.
- *
- * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On
- * recent OpenSSL releases, `openssl list -cipher-algorithms`(`openssl list-cipher-algorithms` for older versions of OpenSSL) will
- * display the available cipher algorithms.
- *
- * The `key` is the raw key used by the `algorithm` and `iv` is an[initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded
- * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be
- * a `KeyObject` of type `secret`. If the cipher does not need
- * an initialization vector, `iv` may be `null`.
- *
- * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * Initialization vectors should be unpredictable and unique; ideally, they will be
- * cryptographically random. They do not have to be secret: IVs are typically just
- * added to ciphertext messages unencrypted. It may sound contradictory that
- * something has to be unpredictable and unique, but does not have to be secret;
- * remember that an attacker must not be able to predict ahead of time what a
- * given IV will be.
- * @since v0.1.94
- * @param options `stream.transform` options
- */
- function createCipheriv(algorithm: CipherCCMTypes, key: CipherKey, iv: BinaryLike | null, options: CipherCCMOptions): CipherCCM;
- function createCipheriv(algorithm: CipherGCMTypes, key: CipherKey, iv: BinaryLike | null, options?: CipherGCMOptions): CipherGCM;
- function createCipheriv(algorithm: string, key: CipherKey, iv: BinaryLike | null, options?: stream.TransformOptions): Cipher;
- /**
- * Instances of the `Cipher` class are used to encrypt data. The class can be
- * used in one of two ways:
- *
- * * As a `stream` that is both readable and writable, where plain unencrypted
- * data is written to produce encrypted data on the readable side, or
- * * Using the `cipher.update()` and `cipher.final()` methods to produce
- * the encrypted data.
- *
- * The {@link createCipher} or {@link createCipheriv} methods are
- * used to create `Cipher` instances. `Cipher` objects are not to be created
- * directly using the `new` keyword.
- *
- * Example: Using `Cipher` objects as streams:
- *
- * ```js
- * const {
- * scrypt,
- * randomFill,
- * createCipheriv
- * } = await import('crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- *
- * // First, we'll generate the key. The key length is dependent on the algorithm.
- * // In this case for aes192, it is 24 bytes (192 bits).
- * scrypt(password, 'salt', 24, (err, key) => {
- * if (err) throw err;
- * // Then, we'll generate a random initialization vector
- * randomFill(new Uint8Array(16), (err, iv) => {
- * if (err) throw err;
- *
- * // Once we have the key and iv, we can create and use the cipher...
- * const cipher = createCipheriv(algorithm, key, iv);
- *
- * let encrypted = '';
- * cipher.setEncoding('hex');
- *
- * cipher.on('data', (chunk) => encrypted += chunk);
- * cipher.on('end', () => console.log(encrypted));
- *
- * cipher.write('some clear text data');
- * cipher.end();
- * });
- * });
- * ```
- *
- * Example: Using `Cipher` and piped streams:
- *
- * ```js
- * import {
- * createReadStream,
- * createWriteStream,
- * } from 'fs';
- *
- * import {
- * pipeline
- * } from 'stream';
- *
- * const {
- * scrypt,
- * randomFill,
- * createCipheriv
- * } = await import('crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- *
- * // First, we'll generate the key. The key length is dependent on the algorithm.
- * // In this case for aes192, it is 24 bytes (192 bits).
- * scrypt(password, 'salt', 24, (err, key) => {
- * if (err) throw err;
- * // Then, we'll generate a random initialization vector
- * randomFill(new Uint8Array(16), (err, iv) => {
- * if (err) throw err;
- *
- * const cipher = createCipheriv(algorithm, key, iv);
- *
- * const input = createReadStream('test.js');
- * const output = createWriteStream('test.enc');
- *
- * pipeline(input, cipher, output, (err) => {
- * if (err) throw err;
- * });
- * });
- * });
- * ```
- *
- * Example: Using the `cipher.update()` and `cipher.final()` methods:
- *
- * ```js
- * const {
- * scrypt,
- * randomFill,
- * createCipheriv
- * } = await import('crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- *
- * // First, we'll generate the key. The key length is dependent on the algorithm.
- * // In this case for aes192, it is 24 bytes (192 bits).
- * scrypt(password, 'salt', 24, (err, key) => {
- * if (err) throw err;
- * // Then, we'll generate a random initialization vector
- * randomFill(new Uint8Array(16), (err, iv) => {
- * if (err) throw err;
- *
- * const cipher = createCipheriv(algorithm, key, iv);
- *
- * let encrypted = cipher.update('some clear text data', 'utf8', 'hex');
- * encrypted += cipher.final('hex');
- * console.log(encrypted);
- * });
- * });
- * ```
- * @since v0.1.94
- */
- class Cipher extends stream.Transform {
- private constructor();
- /**
- * Updates the cipher with `data`. If the `inputEncoding` argument is given,
- * the `data`argument is a string using the specified encoding. If the `inputEncoding`argument is not given, `data` must be a `Buffer`, `TypedArray`, or`DataView`. If `data` is a `Buffer`,
- * `TypedArray`, or `DataView`, then`inputEncoding` is ignored.
- *
- * The `outputEncoding` specifies the output format of the enciphered
- * data. If the `outputEncoding`is specified, a string using the specified encoding is returned. If no`outputEncoding` is provided, a `Buffer` is returned.
- *
- * The `cipher.update()` method can be called multiple times with new data until `cipher.final()` is called. Calling `cipher.update()` after `cipher.final()` will result in an error being
- * thrown.
- * @since v0.1.94
- * @param inputEncoding The `encoding` of the data.
- * @param outputEncoding The `encoding` of the return value.
- */
- update(data: BinaryLike): Buffer;
- update(data: string, inputEncoding: Encoding): Buffer;
- update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string;
- update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string;
- /**
- * Once the `cipher.final()` method has been called, the `Cipher` object can no
- * longer be used to encrypt data. Attempts to call `cipher.final()` more than
- * once will result in an error being thrown.
- * @since v0.1.94
- * @param outputEncoding The `encoding` of the return value.
- * @return Any remaining enciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned.
- */
- final(): Buffer;
- final(outputEncoding: BufferEncoding): string;
- /**
- * When using block encryption algorithms, the `Cipher` class will automatically
- * add padding to the input data to the appropriate block size. To disable the
- * default padding call `cipher.setAutoPadding(false)`.
- *
- * When `autoPadding` is `false`, the length of the entire input data must be a
- * multiple of the cipher's block size or `cipher.final()` will throw an error.
- * Disabling automatic padding is useful for non-standard padding, for instance
- * using `0x0` instead of PKCS padding.
- *
- * The `cipher.setAutoPadding()` method must be called before `cipher.final()`.
- * @since v0.7.1
- * @param [autoPadding=true]
- * @return for method chaining.
- */
- setAutoPadding(autoPadding?: boolean): this;
- }
- interface CipherCCM extends Cipher {
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options: {
- plaintextLength: number;
- }
- ): this;
- getAuthTag(): Buffer;
- }
- interface CipherGCM extends Cipher {
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options?: {
- plaintextLength: number;
- }
- ): this;
- getAuthTag(): Buffer;
- }
- /**
- * Creates and returns a `Decipher` object that uses the given `algorithm` and`password` (key).
- *
- * The `options` argument controls stream behavior and is optional except when a
- * cipher in CCM or OCB mode is used (e.g. `'aes-128-ccm'`). In that case, the`authTagLength` option is required and specifies the length of the
- * authentication tag in bytes, see `CCM mode`.
- *
- * The implementation of `crypto.createDecipher()` derives keys using the OpenSSL
- * function [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) with the digest algorithm set to MD5, one
- * iteration, and no salt. The lack of salt allows dictionary attacks as the same
- * password always creates the same key. The low iteration count and
- * non-cryptographically secure hash algorithm allow passwords to be tested very
- * rapidly.
- *
- * In line with OpenSSL's recommendation to use a more modern algorithm instead of[`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) it is recommended that
- * developers derive a key and IV on
- * their own using {@link scrypt} and to use {@link createDecipheriv} to create the `Decipher` object.
- * @since v0.1.94
- * @deprecated Since v10.0.0 - Use {@link createDecipheriv} instead.
- * @param options `stream.transform` options
- */
- function createDecipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): DecipherCCM;
- /** @deprecated since v10.0.0 use `createDecipheriv()` */
- function createDecipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): DecipherGCM;
- /** @deprecated since v10.0.0 use `createDecipheriv()` */
- function createDecipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Decipher;
- /**
- * Creates and returns a `Decipher` object that uses the given `algorithm`, `key`and initialization vector (`iv`).
- *
- * The `options` argument controls stream behavior and is optional except when a
- * cipher in CCM or OCB mode is used (e.g. `'aes-128-ccm'`). In that case, the`authTagLength` option is required and specifies the length of the
- * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to restrict accepted authentication tags
- * to those with the specified length.
- *
- * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On
- * recent OpenSSL releases, `openssl list -cipher-algorithms`(`openssl list-cipher-algorithms` for older versions of OpenSSL) will
- * display the available cipher algorithms.
- *
- * The `key` is the raw key used by the `algorithm` and `iv` is an[initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded
- * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be
- * a `KeyObject` of type `secret`. If the cipher does not need
- * an initialization vector, `iv` may be `null`.
- *
- * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * Initialization vectors should be unpredictable and unique; ideally, they will be
- * cryptographically random. They do not have to be secret: IVs are typically just
- * added to ciphertext messages unencrypted. It may sound contradictory that
- * something has to be unpredictable and unique, but does not have to be secret;
- * remember that an attacker must not be able to predict ahead of time what a given
- * IV will be.
- * @since v0.1.94
- * @param options `stream.transform` options
- */
- function createDecipheriv(algorithm: CipherCCMTypes, key: CipherKey, iv: BinaryLike | null, options: CipherCCMOptions): DecipherCCM;
- function createDecipheriv(algorithm: CipherGCMTypes, key: CipherKey, iv: BinaryLike | null, options?: CipherGCMOptions): DecipherGCM;
- function createDecipheriv(algorithm: string, key: CipherKey, iv: BinaryLike | null, options?: stream.TransformOptions): Decipher;
- /**
- * Instances of the `Decipher` class are used to decrypt data. The class can be
- * used in one of two ways:
- *
- * * As a `stream` that is both readable and writable, where plain encrypted
- * data is written to produce unencrypted data on the readable side, or
- * * Using the `decipher.update()` and `decipher.final()` methods to
- * produce the unencrypted data.
- *
- * The {@link createDecipher} or {@link createDecipheriv} methods are
- * used to create `Decipher` instances. `Decipher` objects are not to be created
- * directly using the `new` keyword.
- *
- * Example: Using `Decipher` objects as streams:
- *
- * ```js
- * import { Buffer } from 'buffer';
- * const {
- * scryptSync,
- * createDecipheriv
- * } = await import('crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- * // Key length is dependent on the algorithm. In this case for aes192, it is
- * // 24 bytes (192 bits).
- * // Use the async `crypto.scrypt()` instead.
- * const key = scryptSync(password, 'salt', 24);
- * // The IV is usually passed along with the ciphertext.
- * const iv = Buffer.alloc(16, 0); // Initialization vector.
- *
- * const decipher = createDecipheriv(algorithm, key, iv);
- *
- * let decrypted = '';
- * decipher.on('readable', () => {
- * while (null !== (chunk = decipher.read())) {
- * decrypted += chunk.toString('utf8');
- * }
- * });
- * decipher.on('end', () => {
- * console.log(decrypted);
- * // Prints: some clear text data
- * });
- *
- * // Encrypted with same algorithm, key and iv.
- * const encrypted =
- * 'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa';
- * decipher.write(encrypted, 'hex');
- * decipher.end();
- * ```
- *
- * Example: Using `Decipher` and piped streams:
- *
- * ```js
- * import {
- * createReadStream,
- * createWriteStream,
- * } from 'fs';
- * import { Buffer } from 'buffer';
- * const {
- * scryptSync,
- * createDecipheriv
- * } = await import('crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- * // Use the async `crypto.scrypt()` instead.
- * const key = scryptSync(password, 'salt', 24);
- * // The IV is usually passed along with the ciphertext.
- * const iv = Buffer.alloc(16, 0); // Initialization vector.
- *
- * const decipher = createDecipheriv(algorithm, key, iv);
- *
- * const input = createReadStream('test.enc');
- * const output = createWriteStream('test.js');
- *
- * input.pipe(decipher).pipe(output);
- * ```
- *
- * Example: Using the `decipher.update()` and `decipher.final()` methods:
- *
- * ```js
- * import { Buffer } from 'buffer';
- * const {
- * scryptSync,
- * createDecipheriv
- * } = await import('crypto');
- *
- * const algorithm = 'aes-192-cbc';
- * const password = 'Password used to generate key';
- * // Use the async `crypto.scrypt()` instead.
- * const key = scryptSync(password, 'salt', 24);
- * // The IV is usually passed along with the ciphertext.
- * const iv = Buffer.alloc(16, 0); // Initialization vector.
- *
- * const decipher = createDecipheriv(algorithm, key, iv);
- *
- * // Encrypted using same algorithm, key and iv.
- * const encrypted =
- * 'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa';
- * let decrypted = decipher.update(encrypted, 'hex', 'utf8');
- * decrypted += decipher.final('utf8');
- * console.log(decrypted);
- * // Prints: some clear text data
- * ```
- * @since v0.1.94
- */
- class Decipher extends stream.Transform {
- private constructor();
- /**
- * Updates the decipher with `data`. If the `inputEncoding` argument is given,
- * the `data`argument is a string using the specified encoding. If the `inputEncoding`argument is not given, `data` must be a `Buffer`. If `data` is a `Buffer` then `inputEncoding` is
- * ignored.
- *
- * The `outputEncoding` specifies the output format of the enciphered
- * data. If the `outputEncoding`is specified, a string using the specified encoding is returned. If no`outputEncoding` is provided, a `Buffer` is returned.
- *
- * The `decipher.update()` method can be called multiple times with new data until `decipher.final()` is called. Calling `decipher.update()` after `decipher.final()` will result in an error
- * being thrown.
- * @since v0.1.94
- * @param inputEncoding The `encoding` of the `data` string.
- * @param outputEncoding The `encoding` of the return value.
- */
- update(data: NodeJS.ArrayBufferView): Buffer;
- update(data: string, inputEncoding: Encoding): Buffer;
- update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string;
- update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string;
- /**
- * Once the `decipher.final()` method has been called, the `Decipher` object can
- * no longer be used to decrypt data. Attempts to call `decipher.final()` more
- * than once will result in an error being thrown.
- * @since v0.1.94
- * @param outputEncoding The `encoding` of the return value.
- * @return Any remaining deciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned.
- */
- final(): Buffer;
- final(outputEncoding: BufferEncoding): string;
- /**
- * When data has been encrypted without standard block padding, calling`decipher.setAutoPadding(false)` will disable automatic padding to prevent `decipher.final()` from checking for and
- * removing padding.
- *
- * Turning auto padding off will only work if the input data's length is a
- * multiple of the ciphers block size.
- *
- * The `decipher.setAutoPadding()` method must be called before `decipher.final()`.
- * @since v0.7.1
- * @param [autoPadding=true]
- * @return for method chaining.
- */
- setAutoPadding(auto_padding?: boolean): this;
- }
- interface DecipherCCM extends Decipher {
- setAuthTag(buffer: NodeJS.ArrayBufferView): this;
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options: {
- plaintextLength: number;
- }
- ): this;
- }
- interface DecipherGCM extends Decipher {
- setAuthTag(buffer: NodeJS.ArrayBufferView): this;
- setAAD(
- buffer: NodeJS.ArrayBufferView,
- options?: {
- plaintextLength: number;
- }
- ): this;
- }
- interface PrivateKeyInput {
- key: string | Buffer;
- format?: KeyFormat | undefined;
- type?: 'pkcs1' | 'pkcs8' | 'sec1' | undefined;
- passphrase?: string | Buffer | undefined;
- }
- interface PublicKeyInput {
- key: string | Buffer;
- format?: KeyFormat | undefined;
- type?: 'pkcs1' | 'spki' | undefined;
- }
- /**
- * Asynchronously generates a new random secret key of the given `length`. The`type` will determine which validations will be performed on the `length`.
- *
- * ```js
- * const {
- * generateKey
- * } = await import('crypto');
- *
- * generateKey('hmac', { length: 64 }, (err, key) => {
- * if (err) throw err;
- * console.log(key.export().toString('hex')); // 46e..........620
- * });
- * ```
- * @since v15.0.0
- * @param type The intended use of the generated secret key. Currently accepted values are `'hmac'` and `'aes'`.
- */
- function generateKey(
- type: 'hmac' | 'aes',
- options: {
- length: number;
- },
- callback: (err: Error | null, key: KeyObject) => void
- ): void;
- interface JsonWebKeyInput {
- key: JsonWebKey;
- format: 'jwk';
- }
- /**
- * Creates and returns a new key object containing a private key. If `key` is a
- * string or `Buffer`, `format` is assumed to be `'pem'`; otherwise, `key`must be an object with the properties described above.
- *
- * If the private key is encrypted, a `passphrase` must be specified. The length
- * of the passphrase is limited to 1024 bytes.
- * @since v11.6.0
- */
- function createPrivateKey(key: PrivateKeyInput | string | Buffer | JsonWebKeyInput): KeyObject;
- /**
- * Creates and returns a new key object containing a public key. If `key` is a
- * string or `Buffer`, `format` is assumed to be `'pem'`; if `key` is a `KeyObject`with type `'private'`, the public key is derived from the given private key;
- * otherwise, `key` must be an object with the properties described above.
- *
- * If the format is `'pem'`, the `'key'` may also be an X.509 certificate.
- *
- * Because public keys can be derived from private keys, a private key may be
- * passed instead of a public key. In that case, this function behaves as if {@link createPrivateKey} had been called, except that the type of the
- * returned `KeyObject` will be `'public'` and that the private key cannot be
- * extracted from the returned `KeyObject`. Similarly, if a `KeyObject` with type`'private'` is given, a new `KeyObject` with type `'public'` will be returned
- * and it will be impossible to extract the private key from the returned object.
- * @since v11.6.0
- */
- function createPublicKey(key: PublicKeyInput | string | Buffer | KeyObject | JsonWebKeyInput): KeyObject;
- /**
- * Creates and returns a new key object containing a secret key for symmetric
- * encryption or `Hmac`.
- * @since v11.6.0
- * @param encoding The string encoding when `key` is a string.
- */
- function createSecretKey(key: NodeJS.ArrayBufferView): KeyObject;
- function createSecretKey(key: string, encoding: BufferEncoding): KeyObject;
- /**
- * Creates and returns a `Sign` object that uses the given `algorithm`. Use {@link getHashes} to obtain the names of the available digest algorithms.
- * Optional `options` argument controls the `stream.Writable` behavior.
- *
- * In some cases, a `Sign` instance can be created using the name of a signature
- * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use
- * the corresponding digest algorithm. This does not work for all signature
- * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest
- * algorithm names.
- * @since v0.1.92
- * @param options `stream.Writable` options
- */
- function createSign(algorithm: string, options?: stream.WritableOptions): Sign;
- type DSAEncoding = 'der' | 'ieee-p1363';
- interface SigningOptions {
- /**
- * @See crypto.constants.RSA_PKCS1_PADDING
- */
- padding?: number | undefined;
- saltLength?: number | undefined;
- dsaEncoding?: DSAEncoding | undefined;
- }
- interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions {}
- interface SignKeyObjectInput extends SigningOptions {
- key: KeyObject;
- }
- interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions {}
- interface VerifyKeyObjectInput extends SigningOptions {
- key: KeyObject;
- }
- type KeyLike = string | Buffer | KeyObject;
- /**
- * The `Sign` class is a utility for generating signatures. It can be used in one
- * of two ways:
- *
- * * As a writable `stream`, where data to be signed is written and the `sign.sign()` method is used to generate and return the signature, or
- * * Using the `sign.update()` and `sign.sign()` methods to produce the
- * signature.
- *
- * The {@link createSign} method is used to create `Sign` instances. The
- * argument is the string name of the hash function to use. `Sign` objects are not
- * to be created directly using the `new` keyword.
- *
- * Example: Using `Sign` and `Verify` objects as streams:
- *
- * ```js
- * const {
- * generateKeyPairSync,
- * createSign,
- * createVerify
- * } = await import('crypto');
- *
- * const { privateKey, publicKey } = generateKeyPairSync('ec', {
- * namedCurve: 'sect239k1'
- * });
- *
- * const sign = createSign('SHA256');
- * sign.write('some data to sign');
- * sign.end();
- * const signature = sign.sign(privateKey, 'hex');
- *
- * const verify = createVerify('SHA256');
- * verify.write('some data to sign');
- * verify.end();
- * console.log(verify.verify(publicKey, signature, 'hex'));
- * // Prints: true
- * ```
- *
- * Example: Using the `sign.update()` and `verify.update()` methods:
- *
- * ```js
- * const {
- * generateKeyPairSync,
- * createSign,
- * createVerify
- * } = await import('crypto');
- *
- * const { privateKey, publicKey } = generateKeyPairSync('rsa', {
- * modulusLength: 2048,
- * });
- *
- * const sign = createSign('SHA256');
- * sign.update('some data to sign');
- * sign.end();
- * const signature = sign.sign(privateKey);
- *
- * const verify = createVerify('SHA256');
- * verify.update('some data to sign');
- * verify.end();
- * console.log(verify.verify(publicKey, signature));
- * // Prints: true
- * ```
- * @since v0.1.92
- */
- class Sign extends stream.Writable {
- private constructor();
- /**
- * Updates the `Sign` content with the given `data`, the encoding of which
- * is given in `inputEncoding`.
- * If `encoding` is not provided, and the `data` is a string, an
- * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.
- *
- * This can be called many times with new data as it is streamed.
- * @since v0.1.92
- * @param inputEncoding The `encoding` of the `data` string.
- */
- update(data: BinaryLike): this;
- update(data: string, inputEncoding: Encoding): this;
- /**
- * Calculates the signature on all the data passed through using either `sign.update()` or `sign.write()`.
- *
- * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an
- * object, the following additional properties can be passed:
- *
- * If `outputEncoding` is provided a string is returned; otherwise a `Buffer` is returned.
- *
- * The `Sign` object can not be again used after `sign.sign()` method has been
- * called. Multiple calls to `sign.sign()` will result in an error being thrown.
- * @since v0.1.92
- */
- sign(privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer;
- sign(privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput, outputFormat: BinaryToTextEncoding): string;
- }
- /**
- * Creates and returns a `Verify` object that uses the given algorithm.
- * Use {@link getHashes} to obtain an array of names of the available
- * signing algorithms. Optional `options` argument controls the`stream.Writable` behavior.
- *
- * In some cases, a `Verify` instance can be created using the name of a signature
- * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use
- * the corresponding digest algorithm. This does not work for all signature
- * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest
- * algorithm names.
- * @since v0.1.92
- * @param options `stream.Writable` options
- */
- function createVerify(algorithm: string, options?: stream.WritableOptions): Verify;
- /**
- * The `Verify` class is a utility for verifying signatures. It can be used in one
- * of two ways:
- *
- * * As a writable `stream` where written data is used to validate against the
- * supplied signature, or
- * * Using the `verify.update()` and `verify.verify()` methods to verify
- * the signature.
- *
- * The {@link createVerify} method is used to create `Verify` instances.`Verify` objects are not to be created directly using the `new` keyword.
- *
- * See `Sign` for examples.
- * @since v0.1.92
- */
- class Verify extends stream.Writable {
- private constructor();
- /**
- * Updates the `Verify` content with the given `data`, the encoding of which
- * is given in `inputEncoding`.
- * If `inputEncoding` is not provided, and the `data` is a string, an
- * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored.
- *
- * This can be called many times with new data as it is streamed.
- * @since v0.1.92
- * @param inputEncoding The `encoding` of the `data` string.
- */
- update(data: BinaryLike): Verify;
- update(data: string, inputEncoding: Encoding): Verify;
- /**
- * Verifies the provided data using the given `object` and `signature`.
- *
- * If `object` is not a `KeyObject`, this function behaves as if`object` had been passed to {@link createPublicKey}. If it is an
- * object, the following additional properties can be passed:
- *
- * The `signature` argument is the previously calculated signature for the data, in
- * the `signatureEncoding`.
- * If a `signatureEncoding` is specified, the `signature` is expected to be a
- * string; otherwise `signature` is expected to be a `Buffer`,`TypedArray`, or `DataView`.
- *
- * The `verify` object can not be used again after `verify.verify()` has been
- * called. Multiple calls to `verify.verify()` will result in an error being
- * thrown.
- *
- * Because public keys can be derived from private keys, a private key may
- * be passed instead of a public key.
- * @since v0.1.92
- */
- verify(object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView): boolean;
- verify(object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: string, signature_format?: BinaryToTextEncoding): boolean;
- }
- /**
- * Creates a `DiffieHellman` key exchange object using the supplied `prime` and an
- * optional specific `generator`.
- *
- * The `generator` argument can be a number, string, or `Buffer`. If`generator` is not specified, the value `2` is used.
- *
- * If `primeEncoding` is specified, `prime` is expected to be a string; otherwise
- * a `Buffer`, `TypedArray`, or `DataView` is expected.
- *
- * If `generatorEncoding` is specified, `generator` is expected to be a string;
- * otherwise a number, `Buffer`, `TypedArray`, or `DataView` is expected.
- * @since v0.11.12
- * @param primeEncoding The `encoding` of the `prime` string.
- * @param [generator=2]
- * @param generatorEncoding The `encoding` of the `generator` string.
- */
- function createDiffieHellman(primeLength: number, generator?: number | NodeJS.ArrayBufferView): DiffieHellman;
- function createDiffieHellman(prime: NodeJS.ArrayBufferView): DiffieHellman;
- function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding): DiffieHellman;
- function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding, generator: number | NodeJS.ArrayBufferView): DiffieHellman;
- function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding, generator: string, generatorEncoding: BinaryToTextEncoding): DiffieHellman;
- /**
- * The `DiffieHellman` class is a utility for creating Diffie-Hellman key
- * exchanges.
- *
- * Instances of the `DiffieHellman` class can be created using the {@link createDiffieHellman} function.
- *
- * ```js
- * import assert from 'assert';
- *
- * const {
- * createDiffieHellman
- * } = await import('crypto');
- *
- * // Generate Alice's keys...
- * const alice = createDiffieHellman(2048);
- * const aliceKey = alice.generateKeys();
- *
- * // Generate Bob's keys...
- * const bob = createDiffieHellman(alice.getPrime(), alice.getGenerator());
- * const bobKey = bob.generateKeys();
- *
- * // Exchange and generate the secret...
- * const aliceSecret = alice.computeSecret(bobKey);
- * const bobSecret = bob.computeSecret(aliceKey);
- *
- * // OK
- * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex'));
- * ```
- * @since v0.5.0
- */
- class DiffieHellman {
- private constructor();
- /**
- * Generates private and public Diffie-Hellman key values, and returns
- * the public key in the specified `encoding`. This key should be
- * transferred to the other party.
- * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- generateKeys(): Buffer;
- generateKeys(encoding: BinaryToTextEncoding): string;
- /**
- * Computes the shared secret using `otherPublicKey` as the other
- * party's public key and returns the computed shared secret. The supplied
- * key is interpreted using the specified `inputEncoding`, and secret is
- * encoded using specified `outputEncoding`.
- * If the `inputEncoding` is not
- * provided, `otherPublicKey` is expected to be a `Buffer`,`TypedArray`, or `DataView`.
- *
- * If `outputEncoding` is given a string is returned; otherwise, a `Buffer` is returned.
- * @since v0.5.0
- * @param inputEncoding The `encoding` of an `otherPublicKey` string.
- * @param outputEncoding The `encoding` of the return value.
- */
- computeSecret(otherPublicKey: NodeJS.ArrayBufferView): Buffer;
- computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding): Buffer;
- computeSecret(otherPublicKey: NodeJS.ArrayBufferView, outputEncoding: BinaryToTextEncoding): string;
- computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding: BinaryToTextEncoding): string;
- /**
- * Returns the Diffie-Hellman prime in the specified `encoding`.
- * If `encoding` is provided a string is
- * returned; otherwise a `Buffer` is returned.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- getPrime(): Buffer;
- getPrime(encoding: BinaryToTextEncoding): string;
- /**
- * Returns the Diffie-Hellman generator in the specified `encoding`.
- * If `encoding` is provided a string is
- * returned; otherwise a `Buffer` is returned.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- getGenerator(): Buffer;
- getGenerator(encoding: BinaryToTextEncoding): string;
- /**
- * Returns the Diffie-Hellman public key in the specified `encoding`.
- * If `encoding` is provided a
- * string is returned; otherwise a `Buffer` is returned.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- getPublicKey(): Buffer;
- getPublicKey(encoding: BinaryToTextEncoding): string;
- /**
- * Returns the Diffie-Hellman private key in the specified `encoding`.
- * If `encoding` is provided a
- * string is returned; otherwise a `Buffer` is returned.
- * @since v0.5.0
- * @param encoding The `encoding` of the return value.
- */
- getPrivateKey(): Buffer;
- getPrivateKey(encoding: BinaryToTextEncoding): string;
- /**
- * Sets the Diffie-Hellman public key. If the `encoding` argument is provided,`publicKey` is expected
- * to be a string. If no `encoding` is provided, `publicKey` is expected
- * to be a `Buffer`, `TypedArray`, or `DataView`.
- * @since v0.5.0
- * @param encoding The `encoding` of the `publicKey` string.
- */
- setPublicKey(publicKey: NodeJS.ArrayBufferView): void;
- setPublicKey(publicKey: string, encoding: BufferEncoding): void;
- /**
- * Sets the Diffie-Hellman private key. If the `encoding` argument is provided,`privateKey` is expected
- * to be a string. If no `encoding` is provided, `privateKey` is expected
- * to be a `Buffer`, `TypedArray`, or `DataView`.
- * @since v0.5.0
- * @param encoding The `encoding` of the `privateKey` string.
- */
- setPrivateKey(privateKey: NodeJS.ArrayBufferView): void;
- setPrivateKey(privateKey: string, encoding: BufferEncoding): void;
- /**
- * A bit field containing any warnings and/or errors resulting from a check
- * performed during initialization of the `DiffieHellman` object.
- *
- * The following values are valid for this property (as defined in `constants`module):
- *
- * * `DH_CHECK_P_NOT_SAFE_PRIME`
- * * `DH_CHECK_P_NOT_PRIME`
- * * `DH_UNABLE_TO_CHECK_GENERATOR`
- * * `DH_NOT_SUITABLE_GENERATOR`
- * @since v0.11.12
- */
- verifyError: number;
- }
- /**
- * Creates a predefined `DiffieHellmanGroup` key exchange object. The
- * supported groups are: `'modp1'`, `'modp2'`, `'modp5'` (defined in[RFC 2412](https://www.rfc-editor.org/rfc/rfc2412.txt), but see `Caveats`) and `'modp14'`, `'modp15'`,`'modp16'`, `'modp17'`,
- * `'modp18'` (defined in [RFC 3526](https://www.rfc-editor.org/rfc/rfc3526.txt)). The
- * returned object mimics the interface of objects created by {@link createDiffieHellman}, but will not allow changing
- * the keys (with `diffieHellman.setPublicKey()`, for example). The
- * advantage of using this method is that the parties do not have to
- * generate nor exchange a group modulus beforehand, saving both processor
- * and communication time.
- *
- * Example (obtaining a shared secret):
- *
- * ```js
- * const {
- * getDiffieHellman
- * } = await import('crypto');
- * const alice = getDiffieHellman('modp14');
- * const bob = getDiffieHellman('modp14');
- *
- * alice.generateKeys();
- * bob.generateKeys();
- *
- * const aliceSecret = alice.computeSecret(bob.getPublicKey(), null, 'hex');
- * const bobSecret = bob.computeSecret(alice.getPublicKey(), null, 'hex');
- *
- * // aliceSecret and bobSecret should be the same
- * console.log(aliceSecret === bobSecret);
- * ```
- * @since v0.7.5
- */
- function getDiffieHellman(groupName: string): DiffieHellman;
- /**
- * Provides an asynchronous Password-Based Key Derivation Function 2 (PBKDF2)
- * implementation. A selected HMAC digest algorithm specified by `digest` is
- * applied to derive a key of the requested byte length (`keylen`) from the`password`, `salt` and `iterations`.
- *
- * The supplied `callback` function is called with two arguments: `err` and`derivedKey`. If an error occurs while deriving the key, `err` will be set;
- * otherwise `err` will be `null`. By default, the successfully generated`derivedKey` will be passed to the callback as a `Buffer`. An error will be
- * thrown if any of the input arguments specify invalid values or types.
- *
- * If `digest` is `null`, `'sha1'` will be used. This behavior is deprecated,
- * please specify a `digest` explicitly.
- *
- * The `iterations` argument must be a number set as high as possible. The
- * higher the number of iterations, the more secure the derived key will be,
- * but will take a longer amount of time to complete.
- *
- * The `salt` should be as unique as possible. It is recommended that a salt is
- * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.
- *
- * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * ```js
- * const {
- * pbkdf2
- * } = await import('crypto');
- *
- * pbkdf2('secret', 'salt', 100000, 64, 'sha512', (err, derivedKey) => {
- * if (err) throw err;
- * console.log(derivedKey.toString('hex')); // '3745e48...08d59ae'
- * });
- * ```
- *
- * The `crypto.DEFAULT_ENCODING` property can be used to change the way the`derivedKey` is passed to the callback. This property, however, has been
- * deprecated and use should be avoided.
- *
- * ```js
- * import crypto from 'crypto';
- * crypto.DEFAULT_ENCODING = 'hex';
- * crypto.pbkdf2('secret', 'salt', 100000, 512, 'sha512', (err, derivedKey) => {
- * if (err) throw err;
- * console.log(derivedKey); // '3745e48...aa39b34'
- * });
- * ```
- *
- * An array of supported digest functions can be retrieved using {@link getHashes}.
- *
- * This API uses libuv's threadpool, which can have surprising and
- * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information.
- * @since v0.5.5
- */
- function pbkdf2(password: BinaryLike, salt: BinaryLike, iterations: number, keylen: number, digest: string, callback: (err: Error | null, derivedKey: Buffer) => void): void;
- /**
- * Provides a synchronous Password-Based Key Derivation Function 2 (PBKDF2)
- * implementation. A selected HMAC digest algorithm specified by `digest` is
- * applied to derive a key of the requested byte length (`keylen`) from the`password`, `salt` and `iterations`.
- *
- * If an error occurs an `Error` will be thrown, otherwise the derived key will be
- * returned as a `Buffer`.
- *
- * If `digest` is `null`, `'sha1'` will be used. This behavior is deprecated,
- * please specify a `digest` explicitly.
- *
- * The `iterations` argument must be a number set as high as possible. The
- * higher the number of iterations, the more secure the derived key will be,
- * but will take a longer amount of time to complete.
- *
- * The `salt` should be as unique as possible. It is recommended that a salt is
- * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.
- *
- * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * ```js
- * const {
- * pbkdf2Sync
- * } = await import('crypto');
- *
- * const key = pbkdf2Sync('secret', 'salt', 100000, 64, 'sha512');
- * console.log(key.toString('hex')); // '3745e48...08d59ae'
- * ```
- *
- * The `crypto.DEFAULT_ENCODING` property may be used to change the way the`derivedKey` is returned. This property, however, is deprecated and use
- * should be avoided.
- *
- * ```js
- * import crypto from 'crypto';
- * crypto.DEFAULT_ENCODING = 'hex';
- * const key = crypto.pbkdf2Sync('secret', 'salt', 100000, 512, 'sha512');
- * console.log(key); // '3745e48...aa39b34'
- * ```
- *
- * An array of supported digest functions can be retrieved using {@link getHashes}.
- * @since v0.9.3
- */
- function pbkdf2Sync(password: BinaryLike, salt: BinaryLike, iterations: number, keylen: number, digest: string): Buffer;
- /**
- * Generates cryptographically strong pseudorandom data. The `size` argument
- * is a number indicating the number of bytes to generate.
- *
- * If a `callback` function is provided, the bytes are generated asynchronously
- * and the `callback` function is invoked with two arguments: `err` and `buf`.
- * If an error occurs, `err` will be an `Error` object; otherwise it is `null`. The`buf` argument is a `Buffer` containing the generated bytes.
- *
- * ```js
- * // Asynchronous
- * const {
- * randomBytes
- * } = await import('crypto');
- *
- * randomBytes(256, (err, buf) => {
- * if (err) throw err;
- * console.log(`${buf.length} bytes of random data: ${buf.toString('hex')}`);
- * });
- * ```
- *
- * If the `callback` function is not provided, the random bytes are generated
- * synchronously and returned as a `Buffer`. An error will be thrown if
- * there is a problem generating the bytes.
- *
- * ```js
- * // Synchronous
- * const {
- * randomBytes
- * } = await import('crypto');
- *
- * const buf = randomBytes(256);
- * console.log(
- * `${buf.length} bytes of random data: ${buf.toString('hex')}`);
- * ```
- *
- * The `crypto.randomBytes()` method will not complete until there is
- * sufficient entropy available.
- * This should normally never take longer than a few milliseconds. The only time
- * when generating the random bytes may conceivably block for a longer period of
- * time is right after boot, when the whole system is still low on entropy.
- *
- * This API uses libuv's threadpool, which can have surprising and
- * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information.
- *
- * The asynchronous version of `crypto.randomBytes()` is carried out in a single
- * threadpool request. To minimize threadpool task length variation, partition
- * large `randomBytes` requests when doing so as part of fulfilling a client
- * request.
- * @since v0.5.8
- * @param size The number of bytes to generate. The `size` must not be larger than `2**31 - 1`.
- * @return if the `callback` function is not provided.
- */
- function randomBytes(size: number): Buffer;
- function randomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void;
- function pseudoRandomBytes(size: number): Buffer;
- function pseudoRandomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void;
- /**
- * Return a random integer `n` such that `min <= n < max`. This
- * implementation avoids [modulo bias](https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Modulo_bias).
- *
- * The range (`max - min`) must be less than 248. `min` and `max` must
- * be [safe integers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger).
- *
- * If the `callback` function is not provided, the random integer is
- * generated synchronously.
- *
- * ```js
- * // Asynchronous
- * const {
- * randomInt
- * } = await import('crypto');
- *
- * randomInt(3, (err, n) => {
- * if (err) throw err;
- * console.log(`Random number chosen from (0, 1, 2): ${n}`);
- * });
- * ```
- *
- * ```js
- * // Synchronous
- * const {
- * randomInt
- * } = await import('crypto');
- *
- * const n = randomInt(3);
- * console.log(`Random number chosen from (0, 1, 2): ${n}`);
- * ```
- *
- * ```js
- * // With `min` argument
- * const {
- * randomInt
- * } = await import('crypto');
- *
- * const n = randomInt(1, 7);
- * console.log(`The dice rolled: ${n}`);
- * ```
- * @since v14.10.0, v12.19.0
- * @param [min=0] Start of random range (inclusive).
- * @param max End of random range (exclusive).
- * @param callback `function(err, n) {}`.
- */
- function randomInt(max: number): number;
- function randomInt(min: number, max: number): number;
- function randomInt(max: number, callback: (err: Error | null, value: number) => void): void;
- function randomInt(min: number, max: number, callback: (err: Error | null, value: number) => void): void;
- /**
- * Synchronous version of {@link randomFill}.
- *
- * ```js
- * import { Buffer } from 'buffer';
- * const { randomFillSync } = await import('crypto');
- *
- * const buf = Buffer.alloc(10);
- * console.log(randomFillSync(buf).toString('hex'));
- *
- * randomFillSync(buf, 5);
- * console.log(buf.toString('hex'));
- *
- * // The above is equivalent to the following:
- * randomFillSync(buf, 5, 5);
- * console.log(buf.toString('hex'));
- * ```
- *
- * Any `ArrayBuffer`, `TypedArray` or `DataView` instance may be passed as`buffer`.
- *
- * ```js
- * import { Buffer } from 'buffer';
- * const { randomFillSync } = await import('crypto');
- *
- * const a = new Uint32Array(10);
- * console.log(Buffer.from(randomFillSync(a).buffer,
- * a.byteOffset, a.byteLength).toString('hex'));
- *
- * const b = new DataView(new ArrayBuffer(10));
- * console.log(Buffer.from(randomFillSync(b).buffer,
- * b.byteOffset, b.byteLength).toString('hex'));
- *
- * const c = new ArrayBuffer(10);
- * console.log(Buffer.from(randomFillSync(c)).toString('hex'));
- * ```
- * @since v7.10.0, v6.13.0
- * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`.
- * @param [offset=0]
- * @param [size=buffer.length - offset]
- * @return The object passed as `buffer` argument.
- */
- function randomFillSync(buffer: T, offset?: number, size?: number): T;
- /**
- * This function is similar to {@link randomBytes} but requires the first
- * argument to be a `Buffer` that will be filled. It also
- * requires that a callback is passed in.
- *
- * If the `callback` function is not provided, an error will be thrown.
- *
- * ```js
- * import { Buffer } from 'buffer';
- * const { randomFill } = await import('crypto');
- *
- * const buf = Buffer.alloc(10);
- * randomFill(buf, (err, buf) => {
- * if (err) throw err;
- * console.log(buf.toString('hex'));
- * });
- *
- * randomFill(buf, 5, (err, buf) => {
- * if (err) throw err;
- * console.log(buf.toString('hex'));
- * });
- *
- * // The above is equivalent to the following:
- * randomFill(buf, 5, 5, (err, buf) => {
- * if (err) throw err;
- * console.log(buf.toString('hex'));
- * });
- * ```
- *
- * Any `ArrayBuffer`, `TypedArray`, or `DataView` instance may be passed as`buffer`.
- *
- * While this includes instances of `Float32Array` and `Float64Array`, this
- * function should not be used to generate random floating-point numbers. The
- * result may contain `+Infinity`, `-Infinity`, and `NaN`, and even if the array
- * contains finite numbers only, they are not drawn from a uniform random
- * distribution and have no meaningful lower or upper bounds.
- *
- * ```js
- * import { Buffer } from 'buffer';
- * const { randomFill } = await import('crypto');
- *
- * const a = new Uint32Array(10);
- * randomFill(a, (err, buf) => {
- * if (err) throw err;
- * console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength)
- * .toString('hex'));
- * });
- *
- * const b = new DataView(new ArrayBuffer(10));
- * randomFill(b, (err, buf) => {
- * if (err) throw err;
- * console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength)
- * .toString('hex'));
- * });
- *
- * const c = new ArrayBuffer(10);
- * randomFill(c, (err, buf) => {
- * if (err) throw err;
- * console.log(Buffer.from(buf).toString('hex'));
- * });
- * ```
- *
- * This API uses libuv's threadpool, which can have surprising and
- * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information.
- *
- * The asynchronous version of `crypto.randomFill()` is carried out in a single
- * threadpool request. To minimize threadpool task length variation, partition
- * large `randomFill` requests when doing so as part of fulfilling a client
- * request.
- * @since v7.10.0, v6.13.0
- * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`.
- * @param [offset=0]
- * @param [size=buffer.length - offset]
- * @param callback `function(err, buf) {}`.
- */
- function randomFill(buffer: T, callback: (err: Error | null, buf: T) => void): void;
- function randomFill(buffer: T, offset: number, callback: (err: Error | null, buf: T) => void): void;
- function randomFill(buffer: T, offset: number, size: number, callback: (err: Error | null, buf: T) => void): void;
- interface ScryptOptions {
- cost?: number | undefined;
- blockSize?: number | undefined;
- parallelization?: number | undefined;
- N?: number | undefined;
- r?: number | undefined;
- p?: number | undefined;
- maxmem?: number | undefined;
- }
- /**
- * Provides an asynchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based
- * key derivation function that is designed to be expensive computationally and
- * memory-wise in order to make brute-force attacks unrewarding.
- *
- * The `salt` should be as unique as possible. It is recommended that a salt is
- * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.
- *
- * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * The `callback` function is called with two arguments: `err` and `derivedKey`.`err` is an exception object when key derivation fails, otherwise `err` is`null`. `derivedKey` is passed to the
- * callback as a `Buffer`.
- *
- * An exception is thrown when any of the input arguments specify invalid values
- * or types.
- *
- * ```js
- * const {
- * scrypt
- * } = await import('crypto');
- *
- * // Using the factory defaults.
- * scrypt('password', 'salt', 64, (err, derivedKey) => {
- * if (err) throw err;
- * console.log(derivedKey.toString('hex')); // '3745e48...08d59ae'
- * });
- * // Using a custom N parameter. Must be a power of two.
- * scrypt('password', 'salt', 64, { N: 1024 }, (err, derivedKey) => {
- * if (err) throw err;
- * console.log(derivedKey.toString('hex')); // '3745e48...aa39b34'
- * });
- * ```
- * @since v10.5.0
- */
- function scrypt(password: BinaryLike, salt: BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: Buffer) => void): void;
- function scrypt(password: BinaryLike, salt: BinaryLike, keylen: number, options: ScryptOptions, callback: (err: Error | null, derivedKey: Buffer) => void): void;
- /**
- * Provides a synchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based
- * key derivation function that is designed to be expensive computationally and
- * memory-wise in order to make brute-force attacks unrewarding.
- *
- * The `salt` should be as unique as possible. It is recommended that a salt is
- * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details.
- *
- * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`.
- *
- * An exception is thrown when key derivation fails, otherwise the derived key is
- * returned as a `Buffer`.
- *
- * An exception is thrown when any of the input arguments specify invalid values
- * or types.
- *
- * ```js
- * const {
- * scryptSync
- * } = await import('crypto');
- * // Using the factory defaults.
- *
- * const key1 = scryptSync('password', 'salt', 64);
- * console.log(key1.toString('hex')); // '3745e48...08d59ae'
- * // Using a custom N parameter. Must be a power of two.
- * const key2 = scryptSync('password', 'salt', 64, { N: 1024 });
- * console.log(key2.toString('hex')); // '3745e48...aa39b34'
- * ```
- * @since v10.5.0
- */
- function scryptSync(password: BinaryLike, salt: BinaryLike, keylen: number, options?: ScryptOptions): Buffer;
- interface RsaPublicKey {
- key: KeyLike;
- padding?: number | undefined;
- }
- interface RsaPrivateKey {
- key: KeyLike;
- passphrase?: string | undefined;
- /**
- * @default 'sha1'
- */
- oaepHash?: string | undefined;
- oaepLabel?: NodeJS.TypedArray | undefined;
- padding?: number | undefined;
- }
- /**
- * Encrypts the content of `buffer` with `key` and returns a new `Buffer` with encrypted content. The returned data can be decrypted using
- * the corresponding private key, for example using {@link privateDecrypt}.
- *
- * If `key` is not a `KeyObject`, this function behaves as if`key` had been passed to {@link createPublicKey}. If it is an
- * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_OAEP_PADDING`.
- *
- * Because RSA public keys can be derived from private keys, a private key may
- * be passed instead of a public key.
- * @since v0.11.14
- */
- function publicEncrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;
- /**
- * Decrypts `buffer` with `key`.`buffer` was previously encrypted using
- * the corresponding private key, for example using {@link privateEncrypt}.
- *
- * If `key` is not a `KeyObject`, this function behaves as if`key` had been passed to {@link createPublicKey}. If it is an
- * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_PADDING`.
- *
- * Because RSA public keys can be derived from private keys, a private key may
- * be passed instead of a public key.
- * @since v1.1.0
- */
- function publicDecrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;
- /**
- * Decrypts `buffer` with `privateKey`. `buffer` was previously encrypted using
- * the corresponding public key, for example using {@link publicEncrypt}.
- *
- * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an
- * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_OAEP_PADDING`.
- * @since v0.11.14
- */
- function privateDecrypt(privateKey: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;
- /**
- * Encrypts `buffer` with `privateKey`. The returned data can be decrypted using
- * the corresponding public key, for example using {@link publicDecrypt}.
- *
- * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an
- * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_PADDING`.
- * @since v1.1.0
- */
- function privateEncrypt(privateKey: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer;
- /**
- * ```js
- * const {
- * getCiphers
- * } = await import('crypto');
- *
- * console.log(getCiphers()); // ['aes-128-cbc', 'aes-128-ccm', ...]
- * ```
- * @since v0.9.3
- * @return An array with the names of the supported cipher algorithms.
- */
- function getCiphers(): string[];
- /**
- * ```js
- * const {
- * getCurves
- * } = await import('crypto');
- *
- * console.log(getCurves()); // ['Oakley-EC2N-3', 'Oakley-EC2N-4', ...]
- * ```
- * @since v2.3.0
- * @return An array with the names of the supported elliptic curves.
- */
- function getCurves(): string[];
- /**
- * @since v10.0.0
- * @return `1` if and only if a FIPS compliant crypto provider is currently in use, `0` otherwise. A future semver-major release may change the return type of this API to a {boolean}.
- */
- function getFips(): 1 | 0;
- /**
- * ```js
- * const {
- * getHashes
- * } = await import('crypto');
- *
- * console.log(getHashes()); // ['DSA', 'DSA-SHA', 'DSA-SHA1', ...]
- * ```
- * @since v0.9.3
- * @return An array of the names of the supported hash algorithms, such as `'RSA-SHA256'`. Hash algorithms are also called "digest" algorithms.
- */
- function getHashes(): string[];
- /**
- * The `ECDH` class is a utility for creating Elliptic Curve Diffie-Hellman (ECDH)
- * key exchanges.
- *
- * Instances of the `ECDH` class can be created using the {@link createECDH} function.
- *
- * ```js
- * import assert from 'assert';
- *
- * const {
- * createECDH
- * } = await import('crypto');
- *
- * // Generate Alice's keys...
- * const alice = createECDH('secp521r1');
- * const aliceKey = alice.generateKeys();
- *
- * // Generate Bob's keys...
- * const bob = createECDH('secp521r1');
- * const bobKey = bob.generateKeys();
- *
- * // Exchange and generate the secret...
- * const aliceSecret = alice.computeSecret(bobKey);
- * const bobSecret = bob.computeSecret(aliceKey);
- *
- * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex'));
- * // OK
- * ```
- * @since v0.11.14
- */
- class ECDH {
- private constructor();
- /**
- * Converts the EC Diffie-Hellman public key specified by `key` and `curve` to the
- * format specified by `format`. The `format` argument specifies point encoding
- * and can be `'compressed'`, `'uncompressed'` or `'hybrid'`. The supplied key is
- * interpreted using the specified `inputEncoding`, and the returned key is encoded
- * using the specified `outputEncoding`.
- *
- * Use {@link getCurves} to obtain a list of available curve names.
- * On recent OpenSSL releases, `openssl ecparam -list_curves` will also display
- * the name and description of each available elliptic curve.
- *
- * If `format` is not specified the point will be returned in `'uncompressed'`format.
- *
- * If the `inputEncoding` is not provided, `key` is expected to be a `Buffer`,`TypedArray`, or `DataView`.
- *
- * Example (uncompressing a key):
- *
- * ```js
- * const {
- * createECDH,
- * ECDH
- * } = await import('crypto');
- *
- * const ecdh = createECDH('secp256k1');
- * ecdh.generateKeys();
- *
- * const compressedKey = ecdh.getPublicKey('hex', 'compressed');
- *
- * const uncompressedKey = ECDH.convertKey(compressedKey,
- * 'secp256k1',
- * 'hex',
- * 'hex',
- * 'uncompressed');
- *
- * // The converted key and the uncompressed public key should be the same
- * console.log(uncompressedKey === ecdh.getPublicKey('hex'));
- * ```
- * @since v10.0.0
- * @param inputEncoding The `encoding` of the `key` string.
- * @param outputEncoding The `encoding` of the return value.
- * @param [format='uncompressed']
- */
- static convertKey(
- key: BinaryLike,
- curve: string,
- inputEncoding?: BinaryToTextEncoding,
- outputEncoding?: 'latin1' | 'hex' | 'base64',
- format?: 'uncompressed' | 'compressed' | 'hybrid'
- ): Buffer | string;
- /**
- * Generates private and public EC Diffie-Hellman key values, and returns
- * the public key in the specified `format` and `encoding`. This key should be
- * transferred to the other party.
- *
- * The `format` argument specifies point encoding and can be `'compressed'` or`'uncompressed'`. If `format` is not specified, the point will be returned in`'uncompressed'` format.
- *
- * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned.
- * @since v0.11.14
- * @param encoding The `encoding` of the return value.
- * @param [format='uncompressed']
- */
- generateKeys(): Buffer;
- generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
- /**
- * Computes the shared secret using `otherPublicKey` as the other
- * party's public key and returns the computed shared secret. The supplied
- * key is interpreted using specified `inputEncoding`, and the returned secret
- * is encoded using the specified `outputEncoding`.
- * If the `inputEncoding` is not
- * provided, `otherPublicKey` is expected to be a `Buffer`, `TypedArray`, or`DataView`.
- *
- * If `outputEncoding` is given a string will be returned; otherwise a `Buffer` is returned.
- *
- * `ecdh.computeSecret` will throw an`ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY` error when `otherPublicKey`lies outside of the elliptic curve. Since `otherPublicKey` is
- * usually supplied from a remote user over an insecure network,
- * be sure to handle this exception accordingly.
- * @since v0.11.14
- * @param inputEncoding The `encoding` of the `otherPublicKey` string.
- * @param outputEncoding The `encoding` of the return value.
- */
- computeSecret(otherPublicKey: NodeJS.ArrayBufferView): Buffer;
- computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding): Buffer;
- computeSecret(otherPublicKey: NodeJS.ArrayBufferView, outputEncoding: BinaryToTextEncoding): string;
- computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding: BinaryToTextEncoding): string;
- /**
- * If `encoding` is specified, a string is returned; otherwise a `Buffer` is
- * returned.
- * @since v0.11.14
- * @param encoding The `encoding` of the return value.
- * @return The EC Diffie-Hellman in the specified `encoding`.
- */
- getPrivateKey(): Buffer;
- getPrivateKey(encoding: BinaryToTextEncoding): string;
- /**
- * The `format` argument specifies point encoding and can be `'compressed'` or`'uncompressed'`. If `format` is not specified the point will be returned in`'uncompressed'` format.
- *
- * If `encoding` is specified, a string is returned; otherwise a `Buffer` is
- * returned.
- * @since v0.11.14
- * @param encoding The `encoding` of the return value.
- * @param [format='uncompressed']
- * @return The EC Diffie-Hellman public key in the specified `encoding` and `format`.
- */
- getPublicKey(): Buffer;
- getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string;
- /**
- * Sets the EC Diffie-Hellman private key.
- * If `encoding` is provided, `privateKey` is expected
- * to be a string; otherwise `privateKey` is expected to be a `Buffer`,`TypedArray`, or `DataView`.
- *
- * If `privateKey` is not valid for the curve specified when the `ECDH` object was
- * created, an error is thrown. Upon setting the private key, the associated
- * public point (key) is also generated and set in the `ECDH` object.
- * @since v0.11.14
- * @param encoding The `encoding` of the `privateKey` string.
- */
- setPrivateKey(privateKey: NodeJS.ArrayBufferView): void;
- setPrivateKey(privateKey: string, encoding: BinaryToTextEncoding): void;
- }
- /**
- * Creates an Elliptic Curve Diffie-Hellman (`ECDH`) key exchange object using a
- * predefined curve specified by the `curveName` string. Use {@link getCurves} to obtain a list of available curve names. On recent
- * OpenSSL releases, `openssl ecparam -list_curves` will also display the name
- * and description of each available elliptic curve.
- * @since v0.11.14
- */
- function createECDH(curveName: string): ECDH;
- /**
- * This function is based on a constant-time algorithm.
- * Returns true if `a` is equal to `b`, without leaking timing information that
- * would allow an attacker to guess one of the values. This is suitable for
- * comparing HMAC digests or secret values like authentication cookies or[capability urls](https://www.w3.org/TR/capability-urls/).
- *
- * `a` and `b` must both be `Buffer`s, `TypedArray`s, or `DataView`s, and they
- * must have the same byte length.
- *
- * If at least one of `a` and `b` is a `TypedArray` with more than one byte per
- * entry, such as `Uint16Array`, the result will be computed using the platform
- * byte order.
- *
- * Use of `crypto.timingSafeEqual` does not guarantee that the _surrounding_ code
- * is timing-safe. Care should be taken to ensure that the surrounding code does
- * not introduce timing vulnerabilities.
- * @since v6.6.0
- */
- function timingSafeEqual(a: NodeJS.ArrayBufferView, b: NodeJS.ArrayBufferView): boolean;
- /** @deprecated since v10.0.0 */
- const DEFAULT_ENCODING: BufferEncoding;
- type KeyType = 'rsa' | 'rsa-pss' | 'dsa' | 'ec' | 'ed25519' | 'ed448' | 'x25519' | 'x448';
- type KeyFormat = 'pem' | 'der';
- interface BasePrivateKeyEncodingOptions {
- format: T;
- cipher?: string | undefined;
- passphrase?: string | undefined;
- }
- interface KeyPairKeyObjectResult {
- publicKey: KeyObject;
- privateKey: KeyObject;
- }
- interface ED25519KeyPairKeyObjectOptions {}
- interface ED448KeyPairKeyObjectOptions {}
- interface X25519KeyPairKeyObjectOptions {}
- interface X448KeyPairKeyObjectOptions {}
- interface ECKeyPairKeyObjectOptions {
- /**
- * Name of the curve to use.
- */
- namedCurve: string;
- }
- interface RSAKeyPairKeyObjectOptions {
- /**
- * Key size in bits
- */
- modulusLength: number;
- /**
- * @default 0x10001
- */
- publicExponent?: number | undefined;
- }
- interface RSAPSSKeyPairKeyObjectOptions {
- /**
- * Key size in bits
- */
- modulusLength: number;
- /**
- * @default 0x10001
- */
- publicExponent?: number | undefined;
- }
- interface DSAKeyPairKeyObjectOptions {
- /**
- * Key size in bits
- */
- modulusLength: number;
- /**
- * Size of q in bits
- */
- divisorLength: number;
- }
- interface RSAKeyPairOptions {
- /**
- * Key size in bits
- */
- modulusLength: number;
- /**
- * @default 0x10001
- */
- publicExponent?: number | undefined;
- publicKeyEncoding: {
- type: 'pkcs1' | 'spki';
- format: PubF;
- };
- privateKeyEncoding: BasePrivateKeyEncodingOptions & {
- type: 'pkcs1' | 'pkcs8';
- };
- }
- interface RSAPSSKeyPairOptions {
- /**
- * Key size in bits
- */
- modulusLength: number;
- /**
- * @default 0x10001
- */
- publicExponent?: number | undefined;
- publicKeyEncoding: {
- type: 'spki';
- format: PubF;
- };
- privateKeyEncoding: BasePrivateKeyEncodingOptions & {
- type: 'pkcs8';
- };
- }
- interface DSAKeyPairOptions {
- /**
- * Key size in bits
- */
- modulusLength: number;
- /**
- * Size of q in bits
- */
- divisorLength: number;
- publicKeyEncoding: {
- type: 'spki';
- format: PubF;
- };
- privateKeyEncoding: BasePrivateKeyEncodingOptions & {
- type: 'pkcs8';
- };
- }
- interface ECKeyPairOptions {
- /**
- * Name of the curve to use.
- */
- namedCurve: string;
- publicKeyEncoding: {
- type: 'pkcs1' | 'spki';
- format: PubF;
- };
- privateKeyEncoding: BasePrivateKeyEncodingOptions & {
- type: 'sec1' | 'pkcs8';
- };
- }
- interface ED25519KeyPairOptions {
- publicKeyEncoding: {
- type: 'spki';
- format: PubF;
- };
- privateKeyEncoding: BasePrivateKeyEncodingOptions & {
- type: 'pkcs8';
- };
- }
- interface ED448KeyPairOptions {
- publicKeyEncoding: {
- type: 'spki';
- format: PubF;
- };
- privateKeyEncoding: BasePrivateKeyEncodingOptions & {
- type: 'pkcs8';
- };
- }
- interface X25519KeyPairOptions {
- publicKeyEncoding: {
- type: 'spki';
- format: PubF;
- };
- privateKeyEncoding: BasePrivateKeyEncodingOptions & {
- type: 'pkcs8';
- };
- }
- interface X448KeyPairOptions {
- publicKeyEncoding: {
- type: 'spki';
- format: PubF;
- };
- privateKeyEncoding: BasePrivateKeyEncodingOptions & {
- type: 'pkcs8';
- };
- }
- interface KeyPairSyncResult {
- publicKey: T1;
- privateKey: T2;
- }
- /**
- * Generates a new asymmetric key pair of the given `type`. RSA, DSA, EC, Ed25519,
- * Ed448, X25519, X448, and DH are currently supported.
- *
- * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function
- * behaves as if `keyObject.export()` had been called on its result. Otherwise,
- * the respective part of the key is returned as a `KeyObject`.
- *
- * When encoding public keys, it is recommended to use `'spki'`. When encoding
- * private keys, it is recommended to use `'pkcs8'` with a strong passphrase,
- * and to keep the passphrase confidential.
- *
- * ```js
- * const {
- * generateKeyPairSync
- * } = await import('crypto');
- *
- * const {
- * publicKey,
- * privateKey,
- * } = generateKeyPairSync('rsa', {
- * modulusLength: 4096,
- * publicKeyEncoding: {
- * type: 'spki',
- * format: 'pem'
- * },
- * privateKeyEncoding: {
- * type: 'pkcs8',
- * format: 'pem',
- * cipher: 'aes-256-cbc',
- * passphrase: 'top secret'
- * }
- * });
- * ```
- *
- * The return value `{ publicKey, privateKey }` represents the generated key pair.
- * When PEM encoding was selected, the respective key will be a string, otherwise
- * it will be a buffer containing the data encoded as DER.
- * @since v10.12.0
- * @param type Must be `'rsa'`, `'rsa-pss'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`, `'x25519'`, `'x448'`, or `'dh'`.
- */
- function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'rsa', options: RSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult;
- function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions): KeyPairKeyObjectResult;
- function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'dsa', options: DSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult;
- function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ec', options: ECKeyPairKeyObjectOptions): KeyPairKeyObjectResult;
- function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
- function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
- function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
- function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'der'>): KeyPairSyncResult;
- function generateKeyPairSync(type: 'x448', options?: X448KeyPairKeyObjectOptions): KeyPairKeyObjectResult;
- /**
- * Generates a new asymmetric key pair of the given `type`. RSA, DSA, EC, Ed25519,
- * Ed448, X25519, X448, and DH are currently supported.
- *
- * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function
- * behaves as if `keyObject.export()` had been called on its result. Otherwise,
- * the respective part of the key is returned as a `KeyObject`.
- *
- * It is recommended to encode public keys as `'spki'` and private keys as`'pkcs8'` with encryption for long-term storage:
- *
- * ```js
- * const {
- * generateKeyPair
- * } = await import('crypto');
- *
- * generateKeyPair('rsa', {
- * modulusLength: 4096,
- * publicKeyEncoding: {
- * type: 'spki',
- * format: 'pem'
- * },
- * privateKeyEncoding: {
- * type: 'pkcs8',
- * format: 'pem',
- * cipher: 'aes-256-cbc',
- * passphrase: 'top secret'
- * }
- * }, (err, publicKey, privateKey) => {
- * // Handle errors and use the generated key pair.
- * });
- * ```
- *
- * On completion, `callback` will be called with `err` set to `undefined` and`publicKey` / `privateKey` representing the generated key pair.
- *
- * If this method is invoked as its `util.promisify()` ed version, it returns
- * a `Promise` for an `Object` with `publicKey` and `privateKey` properties.
- * @since v10.12.0
- * @param type Must be `'rsa'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`, `'x25519'`, `'x448'`, or `'dh'`.
- */
- function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
- function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
- function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'rsa', options: RSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
- function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
- function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
- function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
- function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
- function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
- function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'dsa', options: DSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
- function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
- function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
- function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'ec', options: ECKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
- function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
- function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
- function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'ed25519', options: ED25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
- function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
- function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
- function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'ed448', options: ED448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
- function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
- function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
- function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'x25519', options: X25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
- function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void;
- function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void;
- function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void;
- function generateKeyPair(type: 'x448', options: X448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void;
- namespace generateKeyPair {
- function __promisify__(
- type: 'rsa',
- options: RSAKeyPairOptions<'pem', 'pem'>
- ): Promise<{
- publicKey: string;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'rsa',
- options: RSAKeyPairOptions<'pem', 'der'>
- ): Promise<{
- publicKey: string;
- privateKey: Buffer;
- }>;
- function __promisify__(
- type: 'rsa',
- options: RSAKeyPairOptions<'der', 'pem'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'rsa',
- options: RSAKeyPairOptions<'der', 'der'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: Buffer;
- }>;
- function __promisify__(type: 'rsa', options: RSAKeyPairKeyObjectOptions): Promise;
- function __promisify__(
- type: 'rsa-pss',
- options: RSAPSSKeyPairOptions<'pem', 'pem'>
- ): Promise<{
- publicKey: string;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'rsa-pss',
- options: RSAPSSKeyPairOptions<'pem', 'der'>
- ): Promise<{
- publicKey: string;
- privateKey: Buffer;
- }>;
- function __promisify__(
- type: 'rsa-pss',
- options: RSAPSSKeyPairOptions<'der', 'pem'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'rsa-pss',
- options: RSAPSSKeyPairOptions<'der', 'der'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: Buffer;
- }>;
- function __promisify__(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions): Promise;
- function __promisify__(
- type: 'dsa',
- options: DSAKeyPairOptions<'pem', 'pem'>
- ): Promise<{
- publicKey: string;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'dsa',
- options: DSAKeyPairOptions<'pem', 'der'>
- ): Promise<{
- publicKey: string;
- privateKey: Buffer;
- }>;
- function __promisify__(
- type: 'dsa',
- options: DSAKeyPairOptions<'der', 'pem'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'dsa',
- options: DSAKeyPairOptions<'der', 'der'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: Buffer;
- }>;
- function __promisify__(type: 'dsa', options: DSAKeyPairKeyObjectOptions): Promise;
- function __promisify__(
- type: 'ec',
- options: ECKeyPairOptions<'pem', 'pem'>
- ): Promise<{
- publicKey: string;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'ec',
- options: ECKeyPairOptions<'pem', 'der'>
- ): Promise<{
- publicKey: string;
- privateKey: Buffer;
- }>;
- function __promisify__(
- type: 'ec',
- options: ECKeyPairOptions<'der', 'pem'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'ec',
- options: ECKeyPairOptions<'der', 'der'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: Buffer;
- }>;
- function __promisify__(type: 'ec', options: ECKeyPairKeyObjectOptions): Promise;
- function __promisify__(
- type: 'ed25519',
- options: ED25519KeyPairOptions<'pem', 'pem'>
- ): Promise<{
- publicKey: string;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'ed25519',
- options: ED25519KeyPairOptions<'pem', 'der'>
- ): Promise<{
- publicKey: string;
- privateKey: Buffer;
- }>;
- function __promisify__(
- type: 'ed25519',
- options: ED25519KeyPairOptions<'der', 'pem'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'ed25519',
- options: ED25519KeyPairOptions<'der', 'der'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: Buffer;
- }>;
- function __promisify__(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): Promise;
- function __promisify__(
- type: 'ed448',
- options: ED448KeyPairOptions<'pem', 'pem'>
- ): Promise<{
- publicKey: string;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'ed448',
- options: ED448KeyPairOptions<'pem', 'der'>
- ): Promise<{
- publicKey: string;
- privateKey: Buffer;
- }>;
- function __promisify__(
- type: 'ed448',
- options: ED448KeyPairOptions<'der', 'pem'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'ed448',
- options: ED448KeyPairOptions<'der', 'der'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: Buffer;
- }>;
- function __promisify__(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): Promise;
- function __promisify__(
- type: 'x25519',
- options: X25519KeyPairOptions<'pem', 'pem'>
- ): Promise<{
- publicKey: string;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'x25519',
- options: X25519KeyPairOptions<'pem', 'der'>
- ): Promise<{
- publicKey: string;
- privateKey: Buffer;
- }>;
- function __promisify__(
- type: 'x25519',
- options: X25519KeyPairOptions<'der', 'pem'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'x25519',
- options: X25519KeyPairOptions<'der', 'der'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: Buffer;
- }>;
- function __promisify__(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): Promise;
- function __promisify__(
- type: 'x448',
- options: X448KeyPairOptions<'pem', 'pem'>
- ): Promise<{
- publicKey: string;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'x448',
- options: X448KeyPairOptions<'pem', 'der'>
- ): Promise<{
- publicKey: string;
- privateKey: Buffer;
- }>;
- function __promisify__(
- type: 'x448',
- options: X448KeyPairOptions<'der', 'pem'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: string;
- }>;
- function __promisify__(
- type: 'x448',
- options: X448KeyPairOptions<'der', 'der'>
- ): Promise<{
- publicKey: Buffer;
- privateKey: Buffer;
- }>;
- function __promisify__(type: 'x448', options?: X448KeyPairKeyObjectOptions): Promise;
- }
- /**
- * Calculates and returns the signature for `data` using the given private key and
- * algorithm. If `algorithm` is `null` or `undefined`, then the algorithm is
- * dependent upon the key type (especially Ed25519 and Ed448).
- *
- * If `key` is not a `KeyObject`, this function behaves as if `key` had been
- * passed to {@link createPrivateKey}. If it is an object, the following
- * additional properties can be passed:
- *
- * If the `callback` function is provided this function uses libuv's threadpool.
- * @since v12.0.0
- */
- function sign(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer;
- function sign(
- algorithm: string | null | undefined,
- data: NodeJS.ArrayBufferView,
- key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput,
- callback: (error: Error | null, data: Buffer) => void
- ): void;
- /**
- * Verifies the given signature for `data` using the given key and algorithm. If`algorithm` is `null` or `undefined`, then the algorithm is dependent upon the
- * key type (especially Ed25519 and Ed448).
- *
- * If `key` is not a `KeyObject`, this function behaves as if `key` had been
- * passed to {@link createPublicKey}. If it is an object, the following
- * additional properties can be passed:
- *
- * The `signature` argument is the previously calculated signature for the `data`.
- *
- * Because public keys can be derived from private keys, a private key or a public
- * key may be passed for `key`.
- *
- * If the `callback` function is provided this function uses libuv's threadpool.
- * @since v12.0.0
- */
- function verify(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView): boolean;
- function verify(
- algorithm: string | null | undefined,
- data: NodeJS.ArrayBufferView,
- key: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput,
- signature: NodeJS.ArrayBufferView,
- callback: (error: Error | null, result: boolean) => void
- ): void;
- /**
- * Computes the Diffie-Hellman secret based on a `privateKey` and a `publicKey`.
- * Both keys must have the same `asymmetricKeyType`, which must be one of `'dh'`(for Diffie-Hellman), `'ec'` (for ECDH), `'x448'`, or `'x25519'` (for ECDH-ES).
- * @since v13.9.0, v12.17.0
- */
- function diffieHellman(options: { privateKey: KeyObject; publicKey: KeyObject }): Buffer;
- type CipherMode = 'cbc' | 'ccm' | 'cfb' | 'ctr' | 'ecb' | 'gcm' | 'ocb' | 'ofb' | 'stream' | 'wrap' | 'xts';
- interface CipherInfoOptions {
- /**
- * A test key length.
- */
- keyLength?: number | undefined;
- /**
- * A test IV length.
- */
- ivLength?: number | undefined;
- }
- interface CipherInfo {
- /**
- * The name of the cipher.
- */
- name: string;
- /**
- * The nid of the cipher.
- */
- nid: number;
- /**
- * The block size of the cipher in bytes.
- * This property is omitted when mode is 'stream'.
- */
- blockSize?: number | undefined;
- /**
- * The expected or default initialization vector length in bytes.
- * This property is omitted if the cipher does not use an initialization vector.
- */
- ivLength?: number | undefined;
- /**
- * The expected or default key length in bytes.
- */
- keyLength: number;
- /**
- * The cipher mode.
- */
- mode: CipherMode;
- }
- /**
- * Returns information about a given cipher.
- *
- * Some ciphers accept variable length keys and initialization vectors. By default,
- * the `crypto.getCipherInfo()` method will return the default values for these
- * ciphers. To test if a given key length or iv length is acceptable for given
- * cipher, use the `keyLength` and `ivLength` options. If the given values are
- * unacceptable, `undefined` will be returned.
- * @since v15.0.0
- * @param nameOrNid The name or nid of the cipher to query.
- */
- function getCipherInfo(nameOrNid: string | number, options?: CipherInfoOptions): CipherInfo | undefined;
- /**
- * HKDF is a simple key derivation function defined in RFC 5869\. The given `ikm`,`salt` and `info` are used with the `digest` to derive a key of `keylen` bytes.
- *
- * The supplied `callback` function is called with two arguments: `err` and`derivedKey`. If an errors occurs while deriving the key, `err` will be set;
- * otherwise `err` will be `null`. The successfully generated `derivedKey` will
- * be passed to the callback as an [<ArrayBuffer>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). An error will be thrown if any
- * of the input arguments specify invalid values or types.
- *
- * ```js
- * import { Buffer } from 'buffer';
- * const {
- * hkdf
- * } = await import('crypto');
- *
- * hkdf('sha512', 'key', 'salt', 'info', 64, (err, derivedKey) => {
- * if (err) throw err;
- * console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653'
- * });
- * ```
- * @since v15.0.0
- * @param digest The digest algorithm to use.
- * @param ikm The input keying material. It must be at least one byte in length.
- * @param salt The salt value. Must be provided but can be zero-length.
- * @param info Additional info value. Must be provided but can be zero-length, and cannot be more than 1024 bytes.
- * @param keylen The length of the key to generate. Must be greater than 0. The maximum allowable value is `255` times the number of bytes produced by the selected digest function (e.g. `sha512`
- * generates 64-byte hashes, making the maximum HKDF output 16320 bytes).
- */
- function hkdf(digest: string, irm: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: ArrayBuffer) => void): void;
- /**
- * Provides a synchronous HKDF key derivation function as defined in RFC 5869\. The
- * given `ikm`, `salt` and `info` are used with the `digest` to derive a key of`keylen` bytes.
- *
- * The successfully generated `derivedKey` will be returned as an [<ArrayBuffer>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer).
- *
- * An error will be thrown if any of the input arguments specify invalid values or
- * types, or if the derived key cannot be generated.
- *
- * ```js
- * import { Buffer } from 'buffer';
- * const {
- * hkdfSync
- * } = await import('crypto');
- *
- * const derivedKey = hkdfSync('sha512', 'key', 'salt', 'info', 64);
- * console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653'
- * ```
- * @since v15.0.0
- * @param digest The digest algorithm to use.
- * @param ikm The input keying material. It must be at least one byte in length.
- * @param salt The salt value. Must be provided but can be zero-length.
- * @param info Additional info value. Must be provided but can be zero-length, and cannot be more than 1024 bytes.
- * @param keylen The length of the key to generate. Must be greater than 0. The maximum allowable value is `255` times the number of bytes produced by the selected digest function (e.g. `sha512`
- * generates 64-byte hashes, making the maximum HKDF output 16320 bytes).
- */
- function hkdfSync(digest: string, ikm: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number): ArrayBuffer;
- interface SecureHeapUsage {
- /**
- * The total allocated secure heap size as specified using the `--secure-heap=n` command-line flag.
- */
- total: number;
- /**
- * The minimum allocation from the secure heap as specified using the `--secure-heap-min` command-line flag.
- */
- min: number;
- /**
- * The total number of bytes currently allocated from the secure heap.
- */
- used: number;
- /**
- * The calculated ratio of `used` to `total` allocated bytes.
- */
- utilization: number;
- }
- /**
- * @since v15.6.0
- */
- function secureHeapUsed(): SecureHeapUsage;
- interface RandomUUIDOptions {
- /**
- * By default, to improve performance,
- * Node.js will pre-emptively generate and persistently cache enough
- * random data to generate up to 128 random UUIDs. To generate a UUID
- * without using the cache, set `disableEntropyCache` to `true`.
- *
- * @default `false`
- */
- disableEntropyCache?: boolean | undefined;
- }
- /**
- * Generates a random [RFC 4122](https://www.rfc-editor.org/rfc/rfc4122.txt) version 4 UUID. The UUID is generated using a
- * cryptographic pseudorandom number generator.
- * @since v15.6.0
- */
- function randomUUID(options?: RandomUUIDOptions): string;
- interface X509CheckOptions {
- /**
- * @default 'always'
- */
- subject: 'always' | 'never';
- /**
- * @default true
- */
- wildcards: boolean;
- /**
- * @default true
- */
- partialWildcards: boolean;
- /**
- * @default false
- */
- multiLabelWildcards: boolean;
- /**
- * @default false
- */
- singleLabelSubdomains: boolean;
- }
- /**
- * Encapsulates an X509 certificate and provides read-only access to
- * its information.
- *
- * ```js
- * const { X509Certificate } = await import('crypto');
- *
- * const x509 = new X509Certificate('{... pem encoded cert ...}');
- *
- * console.log(x509.subject);
- * ```
- * @since v15.6.0
- */
- class X509Certificate {
- /**
- * Will be \`true\` if this is a Certificate Authority (ca) certificate.
- * @since v15.6.0
- */
- readonly ca: boolean;
- /**
- * The SHA-1 fingerprint of this certificate.
- * @since v15.6.0
- */
- readonly fingerprint: string;
- /**
- * The SHA-256 fingerprint of this certificate.
- * @since v15.6.0
- */
- readonly fingerprint256: string;
- /**
- * The complete subject of this certificate.
- * @since v15.6.0
- */
- readonly subject: string;
- /**
- * The subject alternative name specified for this certificate.
- * @since v15.6.0
- */
- readonly subjectAltName: string;
- /**
- * The information access content of this certificate.
- * @since v15.6.0
- */
- readonly infoAccess: string;
- /**
- * An array detailing the key usages for this certificate.
- * @since v15.6.0
- */
- readonly keyUsage: string[];
- /**
- * The issuer identification included in this certificate.
- * @since v15.6.0
- */
- readonly issuer: string;
- /**
- * The issuer certificate or `undefined` if the issuer certificate is not
- * available.
- * @since v15.9.0
- */
- readonly issuerCertificate?: X509Certificate | undefined;
- /**
- * The public key `KeyObject` for this certificate.
- * @since v15.6.0
- */
- readonly publicKey: KeyObject;
- /**
- * A `Buffer` containing the DER encoding of this certificate.
- * @since v15.6.0
- */
- readonly raw: Buffer;
- /**
- * The serial number of this certificate.
- * @since v15.6.0
- */
- readonly serialNumber: string;
- /**
- * The date/time from which this certificate is considered valid.
- * @since v15.6.0
- */
- readonly validFrom: string;
- /**
- * The date/time until which this certificate is considered valid.
- * @since v15.6.0
- */
- readonly validTo: string;
- constructor(buffer: BinaryLike);
- /**
- * Checks whether the certificate matches the given email address.
- * @since v15.6.0
- * @return Returns `email` if the certificate matches, `undefined` if it does not.
- */
- checkEmail(email: string, options?: X509CheckOptions): string | undefined;
- /**
- * Checks whether the certificate matches the given host name.
- * @since v15.6.0
- * @return Returns `name` if the certificate matches, `undefined` if it does not.
- */
- checkHost(name: string, options?: X509CheckOptions): string | undefined;
- /**
- * Checks whether the certificate matches the given IP address (IPv4 or IPv6).
- * @since v15.6.0
- * @return Returns `ip` if the certificate matches, `undefined` if it does not.
- */
- checkIP(ip: string, options?: X509CheckOptions): string | undefined;
- /**
- * Checks whether this certificate was issued by the given `otherCert`.
- * @since v15.6.0
- */
- checkIssued(otherCert: X509Certificate): boolean;
- /**
- * Checks whether the public key for this certificate is consistent with
- * the given private key.
- * @since v15.6.0
- * @param privateKey A private key.
- */
- checkPrivateKey(privateKey: KeyObject): boolean;
- /**
- * There is no standard JSON encoding for X509 certificates. The`toJSON()` method returns a string containing the PEM encoded
- * certificate.
- * @since v15.6.0
- */
- toJSON(): string;
- /**
- * Returns information about this certificate using the legacy `certificate object` encoding.
- * @since v15.6.0
- */
- toLegacyObject(): PeerCertificate;
- /**
- * Returns the PEM-encoded certificate.
- * @since v15.6.0
- */
- toString(): string;
- /**
- * Verifies that this certificate was signed by the given public key.
- * Does not perform any other validation checks on the certificate.
- * @since v15.6.0
- * @param publicKey A public key.
- */
- verify(publicKey: KeyObject): boolean;
- }
- type LargeNumberLike = NodeJS.ArrayBufferView | SharedArrayBuffer | ArrayBuffer | bigint;
- interface GeneratePrimeOptions {
- add?: LargeNumberLike | undefined;
- rem?: LargeNumberLike | undefined;
- /**
- * @default false
- */
- safe?: boolean | undefined;
- bigint?: boolean | undefined;
- }
- interface GeneratePrimeOptionsBigInt extends GeneratePrimeOptions {
- bigint: true;
- }
- interface GeneratePrimeOptionsArrayBuffer extends GeneratePrimeOptions {
- bigint?: false | undefined;
- }
- /**
- * Generates a pseudorandom prime of `size` bits.
- *
- * If `options.safe` is `true`, the prime will be a safe prime -- that is,`(prime - 1) / 2` will also be a prime.
- *
- * The `options.add` and `options.rem` parameters can be used to enforce additional
- * requirements, e.g., for Diffie-Hellman:
- *
- * * If `options.add` and `options.rem` are both set, the prime will satisfy the
- * condition that `prime % add = rem`.
- * * If only `options.add` is set and `options.safe` is not `true`, the prime will
- * satisfy the condition that `prime % add = 1`.
- * * If only `options.add` is set and `options.safe` is set to `true`, the prime
- * will instead satisfy the condition that `prime % add = 3`. This is necessary
- * because `prime % add = 1` for `options.add > 2` would contradict the condition
- * enforced by `options.safe`.
- * * `options.rem` is ignored if `options.add` is not given.
- *
- * Both `options.add` and `options.rem` must be encoded as big-endian sequences
- * if given as an `ArrayBuffer`, `SharedArrayBuffer`, `TypedArray`, `Buffer`, or`DataView`.
- *
- * By default, the prime is encoded as a big-endian sequence of octets
- * in an [<ArrayBuffer>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). If the `bigint` option is `true`, then a
- * [<bigint>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt)is provided.
- * @since v15.8.0
- * @param size The size (in bits) of the prime to generate.
- */
- function generatePrime(size: number, callback: (err: Error | null, prime: ArrayBuffer) => void): void;
- function generatePrime(size: number, options: GeneratePrimeOptionsBigInt, callback: (err: Error | null, prime: bigint) => void): void;
- function generatePrime(size: number, options: GeneratePrimeOptionsArrayBuffer, callback: (err: Error | null, prime: ArrayBuffer) => void): void;
- function generatePrime(size: number, options: GeneratePrimeOptions, callback: (err: Error | null, prime: ArrayBuffer | bigint) => void): void;
- /**
- * Generates a pseudorandom prime of `size` bits.
- *
- * If `options.safe` is `true`, the prime will be a safe prime -- that is,`(prime - 1) / 2` will also be a prime.
- *
- * The `options.add` and `options.rem` parameters can be used to enforce additional
- * requirements, e.g., for Diffie-Hellman:
- *
- * * If `options.add` and `options.rem` are both set, the prime will satisfy the
- * condition that `prime % add = rem`.
- * * If only `options.add` is set and `options.safe` is not `true`, the prime will
- * satisfy the condition that `prime % add = 1`.
- * * If only `options.add` is set and `options.safe` is set to `true`, the prime
- * will instead satisfy the condition that `prime % add = 3`. This is necessary
- * because `prime % add = 1` for `options.add > 2` would contradict the condition
- * enforced by `options.safe`.
- * * `options.rem` is ignored if `options.add` is not given.
- *
- * Both `options.add` and `options.rem` must be encoded as big-endian sequences
- * if given as an `ArrayBuffer`, `SharedArrayBuffer`, `TypedArray`, `Buffer`, or`DataView`.
- *
- * By default, the prime is encoded as a big-endian sequence of octets
- * in an [<ArrayBuffer>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). If the `bigint` option is `true`, then a
- * [<bigint>](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt)is provided.
- * @since v15.8.0
- * @param size The size (in bits) of the prime to generate.
- */
- function generatePrimeSync(size: number): ArrayBuffer;
- function generatePrimeSync(size: number, options: GeneratePrimeOptionsBigInt): bigint;
- function generatePrimeSync(size: number, options: GeneratePrimeOptionsArrayBuffer): ArrayBuffer;
- function generatePrimeSync(size: number, options: GeneratePrimeOptions): ArrayBuffer | bigint;
- interface CheckPrimeOptions {
- /**
- * The number of Miller-Rabin probabilistic primality iterations to perform.
- * When the value is 0 (zero), a number of checks is used that yields a false positive rate of at most 2-64 for random input.
- * Care must be used when selecting a number of checks.
- * Refer to the OpenSSL documentation for the BN_is_prime_ex function nchecks options for more details.
- *
- * @default 0
- */
- checks?: number | undefined;
- }
- /**
- * Checks the primality of the `candidate`.
- * @since v15.8.0
- * @param candidate A possible prime encoded as a sequence of big endian octets of arbitrary length.
- */
- function checkPrime(value: LargeNumberLike, callback: (err: Error | null, result: boolean) => void): void;
- function checkPrime(value: LargeNumberLike, options: CheckPrimeOptions, callback: (err: Error | null, result: boolean) => void): void;
- /**
- * Checks the primality of the `candidate`.
- * @since v15.8.0
- * @param candidate A possible prime encoded as a sequence of big endian octets of arbitrary length.
- * @return `true` if the candidate is a prime with an error probability less than `0.25 ** options.checks`.
- */
- function checkPrimeSync(candidate: LargeNumberLike, options?: CheckPrimeOptions): boolean;
- namespace webcrypto {
- class CryptoKey {} // placeholder
- }
-}
-declare module 'node:crypto' {
- export * from 'crypto';
-}
diff --git a/node_modules/@types/node/dgram.d.ts b/node_modules/@types/node/dgram.d.ts
deleted file mode 100755
index 72751d6..0000000
--- a/node_modules/@types/node/dgram.d.ts
+++ /dev/null
@@ -1,545 +0,0 @@
-/**
- * The `dgram` module provides an implementation of UDP datagram sockets.
- *
- * ```js
- * import dgram from 'dgram';
- *
- * const server = dgram.createSocket('udp4');
- *
- * server.on('error', (err) => {
- * console.log(`server error:\n${err.stack}`);
- * server.close();
- * });
- *
- * server.on('message', (msg, rinfo) => {
- * console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
- * });
- *
- * server.on('listening', () => {
- * const address = server.address();
- * console.log(`server listening ${address.address}:${address.port}`);
- * });
- *
- * server.bind(41234);
- * // Prints: server listening 0.0.0.0:41234
- * ```
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/dgram.js)
- */
-declare module 'dgram' {
- import { AddressInfo } from 'node:net';
- import * as dns from 'node:dns';
- import { EventEmitter, Abortable } from 'node:events';
- interface RemoteInfo {
- address: string;
- family: 'IPv4' | 'IPv6';
- port: number;
- size: number;
- }
- interface BindOptions {
- port?: number | undefined;
- address?: string | undefined;
- exclusive?: boolean | undefined;
- fd?: number | undefined;
- }
- type SocketType = 'udp4' | 'udp6';
- interface SocketOptions extends Abortable {
- type: SocketType;
- reuseAddr?: boolean | undefined;
- /**
- * @default false
- */
- ipv6Only?: boolean | undefined;
- recvBufferSize?: number | undefined;
- sendBufferSize?: number | undefined;
- lookup?: ((hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void) | undefined;
- }
- /**
- * Creates a `dgram.Socket` object. Once the socket is created, calling `socket.bind()` will instruct the socket to begin listening for datagram
- * messages. When `address` and `port` are not passed to `socket.bind()` the
- * method will bind the socket to the "all interfaces" address on a random port
- * (it does the right thing for both `udp4` and `udp6` sockets). The bound address
- * and port can be retrieved using `socket.address().address` and `socket.address().port`.
- *
- * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.close()` on the socket:
- *
- * ```js
- * const controller = new AbortController();
- * const { signal } = controller;
- * const server = dgram.createSocket({ type: 'udp4', signal });
- * server.on('message', (msg, rinfo) => {
- * console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
- * });
- * // Later, when you want to close the server.
- * controller.abort();
- * ```
- * @since v0.11.13
- * @param options Available options are:
- * @param callback Attached as a listener for `'message'` events. Optional.
- */
- function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;
- function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket;
- /**
- * Encapsulates the datagram functionality.
- *
- * New instances of `dgram.Socket` are created using {@link createSocket}.
- * The `new` keyword is not to be used to create `dgram.Socket` instances.
- * @since v0.1.99
- */
- class Socket extends EventEmitter {
- /**
- * Tells the kernel to join a multicast group at the given `multicastAddress` and`multicastInterface` using the `IP_ADD_MEMBERSHIP` socket option. If the`multicastInterface` argument is not
- * specified, the operating system will choose
- * one interface and will add membership to it. To add membership to every
- * available interface, call `addMembership` multiple times, once per interface.
- *
- * When called on an unbound socket, this method will implicitly bind to a random
- * port, listening on all interfaces.
- *
- * When sharing a UDP socket across multiple `cluster` workers, the`socket.addMembership()` function must be called only once or an`EADDRINUSE` error will occur:
- *
- * ```js
- * import cluster from 'cluster';
- * import dgram from 'dgram';
- *
- * if (cluster.isPrimary) {
- * cluster.fork(); // Works ok.
- * cluster.fork(); // Fails with EADDRINUSE.
- * } else {
- * const s = dgram.createSocket('udp4');
- * s.bind(1234, () => {
- * s.addMembership('224.0.0.114');
- * });
- * }
- * ```
- * @since v0.6.9
- */
- addMembership(multicastAddress: string, multicastInterface?: string): void;
- /**
- * Returns an object containing the address information for a socket.
- * For UDP sockets, this object will contain `address`, `family` and `port`properties.
- *
- * This method throws `EBADF` if called on an unbound socket.
- * @since v0.1.99
- */
- address(): AddressInfo;
- /**
- * For UDP sockets, causes the `dgram.Socket` to listen for datagram
- * messages on a named `port` and optional `address`. If `port` is not
- * specified or is `0`, the operating system will attempt to bind to a
- * random port. If `address` is not specified, the operating system will
- * attempt to listen on all addresses. Once binding is complete, a`'listening'` event is emitted and the optional `callback` function is
- * called.
- *
- * Specifying both a `'listening'` event listener and passing a`callback` to the `socket.bind()` method is not harmful but not very
- * useful.
- *
- * A bound datagram socket keeps the Node.js process running to receive
- * datagram messages.
- *
- * If binding fails, an `'error'` event is generated. In rare case (e.g.
- * attempting to bind with a closed socket), an `Error` may be thrown.
- *
- * Example of a UDP server listening on port 41234:
- *
- * ```js
- * import dgram from 'dgram';
- *
- * const server = dgram.createSocket('udp4');
- *
- * server.on('error', (err) => {
- * console.log(`server error:\n${err.stack}`);
- * server.close();
- * });
- *
- * server.on('message', (msg, rinfo) => {
- * console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
- * });
- *
- * server.on('listening', () => {
- * const address = server.address();
- * console.log(`server listening ${address.address}:${address.port}`);
- * });
- *
- * server.bind(41234);
- * // Prints: server listening 0.0.0.0:41234
- * ```
- * @since v0.1.99
- * @param callback with no parameters. Called when binding is complete.
- */
- bind(port?: number, address?: string, callback?: () => void): void;
- bind(port?: number, callback?: () => void): void;
- bind(callback?: () => void): void;
- bind(options: BindOptions, callback?: () => void): void;
- /**
- * Close the underlying socket and stop listening for data on it. If a callback is
- * provided, it is added as a listener for the `'close'` event.
- * @since v0.1.99
- * @param callback Called when the socket has been closed.
- */
- close(callback?: () => void): void;
- /**
- * Associates the `dgram.Socket` to a remote address and port. Every
- * message sent by this handle is automatically sent to that destination. Also,
- * the socket will only receive messages from that remote peer.
- * Trying to call `connect()` on an already connected socket will result
- * in an `ERR_SOCKET_DGRAM_IS_CONNECTED` exception. If `address` is not
- * provided, `'127.0.0.1'` (for `udp4` sockets) or `'::1'` (for `udp6` sockets)
- * will be used by default. Once the connection is complete, a `'connect'` event
- * is emitted and the optional `callback` function is called. In case of failure,
- * the `callback` is called or, failing this, an `'error'` event is emitted.
- * @since v12.0.0
- * @param callback Called when the connection is completed or on error.
- */
- connect(port: number, address?: string, callback?: () => void): void;
- connect(port: number, callback: () => void): void;
- /**
- * A synchronous function that disassociates a connected `dgram.Socket` from
- * its remote address. Trying to call `disconnect()` on an unbound or already
- * disconnected socket will result in an `ERR_SOCKET_DGRAM_NOT_CONNECTED` exception.
- * @since v12.0.0
- */
- disconnect(): void;
- /**
- * Instructs the kernel to leave a multicast group at `multicastAddress` using the`IP_DROP_MEMBERSHIP` socket option. This method is automatically called by the
- * kernel when the socket is closed or the process terminates, so most apps will
- * never have reason to call this.
- *
- * If `multicastInterface` is not specified, the operating system will attempt to
- * drop membership on all valid interfaces.
- * @since v0.6.9
- */
- dropMembership(multicastAddress: string, multicastInterface?: string): void;
- /**
- * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket.
- * @since v8.7.0
- * @return the `SO_RCVBUF` socket receive buffer size in bytes.
- */
- getRecvBufferSize(): number;
- /**
- * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket.
- * @since v8.7.0
- * @return the `SO_SNDBUF` socket send buffer size in bytes.
- */
- getSendBufferSize(): number;
- /**
- * By default, binding a socket will cause it to block the Node.js process from
- * exiting as long as the socket is open. The `socket.unref()` method can be used
- * to exclude the socket from the reference counting that keeps the Node.js
- * process active. The `socket.ref()` method adds the socket back to the reference
- * counting and restores the default behavior.
- *
- * Calling `socket.ref()` multiples times will have no additional effect.
- *
- * The `socket.ref()` method returns a reference to the socket so calls can be
- * chained.
- * @since v0.9.1
- */
- ref(): this;
- /**
- * Returns an object containing the `address`, `family`, and `port` of the remote
- * endpoint. This method throws an `ERR_SOCKET_DGRAM_NOT_CONNECTED` exception
- * if the socket is not connected.
- * @since v12.0.0
- */
- remoteAddress(): AddressInfo;
- /**
- * Broadcasts a datagram on the socket.
- * For connectionless sockets, the destination `port` and `address` must be
- * specified. Connected sockets, on the other hand, will use their associated
- * remote endpoint, so the `port` and `address` arguments must not be set.
- *
- * The `msg` argument contains the message to be sent.
- * Depending on its type, different behavior can apply. If `msg` is a `Buffer`,
- * any `TypedArray` or a `DataView`,
- * the `offset` and `length` specify the offset within the `Buffer` where the
- * message begins and the number of bytes in the message, respectively.
- * If `msg` is a `String`, then it is automatically converted to a `Buffer`with `'utf8'` encoding. With messages that
- * contain multi-byte characters, `offset` and `length` will be calculated with
- * respect to `byte length` and not the character position.
- * If `msg` is an array, `offset` and `length` must not be specified.
- *
- * The `address` argument is a string. If the value of `address` is a host name,
- * DNS will be used to resolve the address of the host. If `address` is not
- * provided or otherwise falsy, `'127.0.0.1'` (for `udp4` sockets) or `'::1'`(for `udp6` sockets) will be used by default.
- *
- * If the socket has not been previously bound with a call to `bind`, the socket
- * is assigned a random port number and is bound to the "all interfaces" address
- * (`'0.0.0.0'` for `udp4` sockets, `'::0'` for `udp6` sockets.)
- *
- * An optional `callback` function may be specified to as a way of reporting
- * DNS errors or for determining when it is safe to reuse the `buf` object.
- * DNS lookups delay the time to send for at least one tick of the
- * Node.js event loop.
- *
- * The only way to know for sure that the datagram has been sent is by using a`callback`. If an error occurs and a `callback` is given, the error will be
- * passed as the first argument to the `callback`. If a `callback` is not given,
- * the error is emitted as an `'error'` event on the `socket` object.
- *
- * Offset and length are optional but both _must_ be set if either are used.
- * They are supported only when the first argument is a `Buffer`, a `TypedArray`,
- * or a `DataView`.
- *
- * This method throws `ERR_SOCKET_BAD_PORT` if called on an unbound socket.
- *
- * Example of sending a UDP packet to a port on `localhost`;
- *
- * ```js
- * import dgram from 'dgram';
- * import { Buffer } from 'buffer';
- *
- * const message = Buffer.from('Some bytes');
- * const client = dgram.createSocket('udp4');
- * client.send(message, 41234, 'localhost', (err) => {
- * client.close();
- * });
- * ```
- *
- * Example of sending a UDP packet composed of multiple buffers to a port on`127.0.0.1`;
- *
- * ```js
- * import dgram from 'dgram';
- * import { Buffer } from 'buffer';
- *
- * const buf1 = Buffer.from('Some ');
- * const buf2 = Buffer.from('bytes');
- * const client = dgram.createSocket('udp4');
- * client.send([buf1, buf2], 41234, (err) => {
- * client.close();
- * });
- * ```
- *
- * Sending multiple buffers might be faster or slower depending on the
- * application and operating system. Run benchmarks to
- * determine the optimal strategy on a case-by-case basis. Generally speaking,
- * however, sending multiple buffers is faster.
- *
- * Example of sending a UDP packet using a socket connected to a port on`localhost`:
- *
- * ```js
- * import dgram from 'dgram';
- * import { Buffer } from 'buffer';
- *
- * const message = Buffer.from('Some bytes');
- * const client = dgram.createSocket('udp4');
- * client.connect(41234, 'localhost', (err) => {
- * client.send(message, (err) => {
- * client.close();
- * });
- * });
- * ```
- * @since v0.1.99
- * @param msg Message to be sent.
- * @param offset Offset in the buffer where the message starts.
- * @param length Number of bytes in the message.
- * @param port Destination port.
- * @param address Destination host name or IP address.
- * @param callback Called when the message has been sent.
- */
- send(msg: string | Uint8Array | ReadonlyArray, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;
- send(msg: string | Uint8Array | ReadonlyArray, port?: number, callback?: (error: Error | null, bytes: number) => void): void;
- send(msg: string | Uint8Array | ReadonlyArray, callback?: (error: Error | null, bytes: number) => void): void;
- send(msg: string | Uint8Array, offset: number, length: number, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void;
- send(msg: string | Uint8Array, offset: number, length: number, port?: number, callback?: (error: Error | null, bytes: number) => void): void;
- send(msg: string | Uint8Array, offset: number, length: number, callback?: (error: Error | null, bytes: number) => void): void;
- /**
- * Sets or clears the `SO_BROADCAST` socket option. When set to `true`, UDP
- * packets may be sent to a local interface's broadcast address.
- *
- * This method throws `EBADF` if called on an unbound socket.
- * @since v0.6.9
- */
- setBroadcast(flag: boolean): void;
- /**
- * _All references to scope in this section are referring to[IPv6 Zone Indices](https://en.wikipedia.org/wiki/IPv6_address#Scoped_literal_IPv6_addresses), which are defined by [RFC
- * 4007](https://tools.ietf.org/html/rfc4007). In string form, an IP_
- * _with a scope index is written as `'IP%scope'` where scope is an interface name_
- * _or interface number._
- *
- * Sets the default outgoing multicast interface of the socket to a chosen
- * interface or back to system interface selection. The `multicastInterface` must
- * be a valid string representation of an IP from the socket's family.
- *
- * For IPv4 sockets, this should be the IP configured for the desired physical
- * interface. All packets sent to multicast on the socket will be sent on the
- * interface determined by the most recent successful use of this call.
- *
- * For IPv6 sockets, `multicastInterface` should include a scope to indicate the
- * interface as in the examples that follow. In IPv6, individual `send` calls can
- * also use explicit scope in addresses, so only packets sent to a multicast
- * address without specifying an explicit scope are affected by the most recent
- * successful use of this call.
- *
- * This method throws `EBADF` if called on an unbound socket.
- *
- * #### Example: IPv6 outgoing multicast interface
- *
- * On most systems, where scope format uses the interface name:
- *
- * ```js
- * const socket = dgram.createSocket('udp6');
- *
- * socket.bind(1234, () => {
- * socket.setMulticastInterface('::%eth1');
- * });
- * ```
- *
- * On Windows, where scope format uses an interface number:
- *
- * ```js
- * const socket = dgram.createSocket('udp6');
- *
- * socket.bind(1234, () => {
- * socket.setMulticastInterface('::%2');
- * });
- * ```
- *
- * #### Example: IPv4 outgoing multicast interface
- *
- * All systems use an IP of the host on the desired physical interface:
- *
- * ```js
- * const socket = dgram.createSocket('udp4');
- *
- * socket.bind(1234, () => {
- * socket.setMulticastInterface('10.0.0.2');
- * });
- * ```
- * @since v8.6.0
- */
- setMulticastInterface(multicastInterface: string): void;
- /**
- * Sets or clears the `IP_MULTICAST_LOOP` socket option. When set to `true`,
- * multicast packets will also be received on the local interface.
- *
- * This method throws `EBADF` if called on an unbound socket.
- * @since v0.3.8
- */
- setMulticastLoopback(flag: boolean): void;
- /**
- * Sets the `IP_MULTICAST_TTL` socket option. While TTL generally stands for
- * "Time to Live", in this context it specifies the number of IP hops that a
- * packet is allowed to travel through, specifically for multicast traffic. Each
- * router or gateway that forwards a packet decrements the TTL. If the TTL is
- * decremented to 0 by a router, it will not be forwarded.
- *
- * The `ttl` argument may be between 0 and 255\. The default on most systems is `1`.
- *
- * This method throws `EBADF` if called on an unbound socket.
- * @since v0.3.8
- */
- setMulticastTTL(ttl: number): void;
- /**
- * Sets the `SO_RCVBUF` socket option. Sets the maximum socket receive buffer
- * in bytes.
- *
- * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket.
- * @since v8.7.0
- */
- setRecvBufferSize(size: number): void;
- /**
- * Sets the `SO_SNDBUF` socket option. Sets the maximum socket send buffer
- * in bytes.
- *
- * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket.
- * @since v8.7.0
- */
- setSendBufferSize(size: number): void;
- /**
- * Sets the `IP_TTL` socket option. While TTL generally stands for "Time to Live",
- * in this context it specifies the number of IP hops that a packet is allowed to
- * travel through. Each router or gateway that forwards a packet decrements the
- * TTL. If the TTL is decremented to 0 by a router, it will not be forwarded.
- * Changing TTL values is typically done for network probes or when multicasting.
- *
- * The `ttl` argument may be between between 1 and 255\. The default on most systems
- * is 64.
- *
- * This method throws `EBADF` if called on an unbound socket.
- * @since v0.1.101
- */
- setTTL(ttl: number): void;
- /**
- * By default, binding a socket will cause it to block the Node.js process from
- * exiting as long as the socket is open. The `socket.unref()` method can be used
- * to exclude the socket from the reference counting that keeps the Node.js
- * process active, allowing the process to exit even if the socket is still
- * listening.
- *
- * Calling `socket.unref()` multiple times will have no addition effect.
- *
- * The `socket.unref()` method returns a reference to the socket so calls can be
- * chained.
- * @since v0.9.1
- */
- unref(): this;
- /**
- * Tells the kernel to join a source-specific multicast channel at the given`sourceAddress` and `groupAddress`, using the `multicastInterface` with the`IP_ADD_SOURCE_MEMBERSHIP` socket
- * option. If the `multicastInterface` argument
- * is not specified, the operating system will choose one interface and will add
- * membership to it. To add membership to every available interface, call`socket.addSourceSpecificMembership()` multiple times, once per interface.
- *
- * When called on an unbound socket, this method will implicitly bind to a random
- * port, listening on all interfaces.
- * @since v13.1.0, v12.16.0
- */
- addSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void;
- /**
- * Instructs the kernel to leave a source-specific multicast channel at the given`sourceAddress` and `groupAddress` using the `IP_DROP_SOURCE_MEMBERSHIP`socket option. This method is
- * automatically called by the kernel when the
- * socket is closed or the process terminates, so most apps will never have
- * reason to call this.
- *
- * If `multicastInterface` is not specified, the operating system will attempt to
- * drop membership on all valid interfaces.
- * @since v13.1.0, v12.16.0
- */
- dropSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void;
- /**
- * events.EventEmitter
- * 1. close
- * 2. connect
- * 3. error
- * 4. listening
- * 5. message
- */
- addListener(event: string, listener: (...args: any[]) => void): this;
- addListener(event: 'close', listener: () => void): this;
- addListener(event: 'connect', listener: () => void): this;
- addListener(event: 'error', listener: (err: Error) => void): this;
- addListener(event: 'listening', listener: () => void): this;
- addListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
- emit(event: string | symbol, ...args: any[]): boolean;
- emit(event: 'close'): boolean;
- emit(event: 'connect'): boolean;
- emit(event: 'error', err: Error): boolean;
- emit(event: 'listening'): boolean;
- emit(event: 'message', msg: Buffer, rinfo: RemoteInfo): boolean;
- on(event: string, listener: (...args: any[]) => void): this;
- on(event: 'close', listener: () => void): this;
- on(event: 'connect', listener: () => void): this;
- on(event: 'error', listener: (err: Error) => void): this;
- on(event: 'listening', listener: () => void): this;
- on(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
- once(event: string, listener: (...args: any[]) => void): this;
- once(event: 'close', listener: () => void): this;
- once(event: 'connect', listener: () => void): this;
- once(event: 'error', listener: (err: Error) => void): this;
- once(event: 'listening', listener: () => void): this;
- once(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
- prependListener(event: string, listener: (...args: any[]) => void): this;
- prependListener(event: 'close', listener: () => void): this;
- prependListener(event: 'connect', listener: () => void): this;
- prependListener(event: 'error', listener: (err: Error) => void): this;
- prependListener(event: 'listening', listener: () => void): this;
- prependListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
- prependOnceListener(event: string, listener: (...args: any[]) => void): this;
- prependOnceListener(event: 'close', listener: () => void): this;
- prependOnceListener(event: 'connect', listener: () => void): this;
- prependOnceListener(event: 'error', listener: (err: Error) => void): this;
- prependOnceListener(event: 'listening', listener: () => void): this;
- prependOnceListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this;
- }
-}
-declare module 'node:dgram' {
- export * from 'dgram';
-}
diff --git a/node_modules/@types/node/diagnostics_channel.d.ts b/node_modules/@types/node/diagnostics_channel.d.ts
deleted file mode 100755
index c27846b..0000000
--- a/node_modules/@types/node/diagnostics_channel.d.ts
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- * The `diagnostics_channel` module provides an API to create named channels
- * to report arbitrary message data for diagnostics purposes.
- *
- * It can be accessed using:
- *
- * ```js
- * import diagnostics_channel from 'diagnostics_channel';
- * ```
- *
- * It is intended that a module writer wanting to report diagnostics messages
- * will create one or many top-level channels to report messages through.
- * Channels may also be acquired at runtime but it is not encouraged
- * due to the additional overhead of doing so. Channels may be exported for
- * convenience, but as long as the name is known it can be acquired anywhere.
- *
- * If you intend for your module to produce diagnostics data for others to
- * consume it is recommended that you include documentation of what named
- * channels are used along with the shape of the message data. Channel names
- * should generally include the module name to avoid collisions with data from
- * other modules.
- * @experimental
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/diagnostics_channel.js)
- */
-declare module 'diagnostics_channel' {
- /**
- * Check if there are active subscribers to the named channel. This is helpful if
- * the message you want to send might be expensive to prepare.
- *
- * This API is optional but helpful when trying to publish messages from very
- * performance-sensitive code.
- *
- * ```js
- * import diagnostics_channel from 'diagnostics_channel';
- *
- * if (diagnostics_channel.hasSubscribers('my-channel')) {
- * // There are subscribers, prepare and publish message
- * }
- * ```
- * @param name The channel name
- * @return If there are active subscribers
- */
- function hasSubscribers(name: string): boolean;
- /**
- * This is the primary entry-point for anyone wanting to interact with a named
- * channel. It produces a channel object which is optimized to reduce overhead at
- * publish time as much as possible.
- *
- * ```js
- * import diagnostics_channel from 'diagnostics_channel';
- *
- * const channel = diagnostics_channel.channel('my-channel');
- * ```
- * @param name The channel name
- * @return The named channel object
- */
- function channel(name: string): Channel;
- type ChannelListener = (name: string, message: unknown) => void;
- /**
- * The class `Channel` represents an individual named channel within the data
- * pipeline. It is use to track subscribers and to publish messages when there
- * are subscribers present. It exists as a separate object to avoid channel
- * lookups at publish time, enabling very fast publish speeds and allowing
- * for heavy use while incurring very minimal cost. Channels are created with {@link channel}, constructing a channel directly
- * with `new Channel(name)` is not supported.
- */
- class Channel {
- readonly name: string;
- /**
- * Check if there are active subscribers to this channel. This is helpful if
- * the message you want to send might be expensive to prepare.
- *
- * This API is optional but helpful when trying to publish messages from very
- * performance-sensitive code.
- *
- * ```js
- * import diagnostics_channel from 'diagnostics_channel';
- *
- * const channel = diagnostics_channel.channel('my-channel');
- *
- * if (channel.hasSubscribers) {
- * // There are subscribers, prepare and publish message
- * }
- * ```
- */
- readonly hasSubscribers: boolean;
- private constructor(name: string);
- /**
- * Register a message handler to subscribe to this channel. This message handler
- * will be run synchronously whenever a message is published to the channel. Any
- * errors thrown in the message handler will trigger an `'uncaughtException'`.
- *
- * ```js
- * import diagnostics_channel from 'diagnostics_channel';
- *
- * const channel = diagnostics_channel.channel('my-channel');
- *
- * channel.subscribe((message, name) => {
- * // Received data
- * });
- * ```
- * @param onMessage The handler to receive channel messages
- */
- subscribe(onMessage: ChannelListener): void;
- /**
- * Remove a message handler previously registered to this channel with `channel.subscribe(onMessage)`.
- *
- * ```js
- * import diagnostics_channel from 'diagnostics_channel';
- *
- * const channel = diagnostics_channel.channel('my-channel');
- *
- * function onMessage(message, name) {
- * // Received data
- * }
- *
- * channel.subscribe(onMessage);
- *
- * channel.unsubscribe(onMessage);
- * ```
- * @param onMessage The previous subscribed handler to remove
- */
- unsubscribe(onMessage: ChannelListener): void;
- }
-}
-declare module 'node:diagnostics_channel' {
- export * from 'diagnostics_channel';
-}
diff --git a/node_modules/@types/node/dns.d.ts b/node_modules/@types/node/dns.d.ts
deleted file mode 100755
index c34f4c1..0000000
--- a/node_modules/@types/node/dns.d.ts
+++ /dev/null
@@ -1,643 +0,0 @@
-/**
- * The `dns` module enables name resolution. For example, use it to look up IP
- * addresses of host names.
- *
- * Although named for the [Domain Name System (DNS)](https://en.wikipedia.org/wiki/Domain_Name_System), it does not always use the
- * DNS protocol for lookups. {@link lookup} uses the operating system
- * facilities to perform name resolution. It may not need to perform any network
- * communication. To perform name resolution the way other applications on the same
- * system do, use {@link lookup}.
- *
- * ```js
- * const dns = require('dns');
- *
- * dns.lookup('example.org', (err, address, family) => {
- * console.log('address: %j family: IPv%s', address, family);
- * });
- * // address: "93.184.216.34" family: IPv4
- * ```
- *
- * All other functions in the `dns` module connect to an actual DNS server to
- * perform name resolution. They will always use the network to perform DNS
- * queries. These functions do not use the same set of configuration files used by {@link lookup} (e.g. `/etc/hosts`). Use these functions to always perform
- * DNS queries, bypassing other name-resolution facilities.
- *
- * ```js
- * const dns = require('dns');
- *
- * dns.resolve4('archive.org', (err, addresses) => {
- * if (err) throw err;
- *
- * console.log(`addresses: ${JSON.stringify(addresses)}`);
- *
- * addresses.forEach((a) => {
- * dns.reverse(a, (err, hostnames) => {
- * if (err) {
- * throw err;
- * }
- * console.log(`reverse for ${a}: ${JSON.stringify(hostnames)}`);
- * });
- * });
- * });
- * ```
- *
- * See the `Implementation considerations section` for more information.
- * @see [source](https://github.com/nodejs/node/blob/v16.7.0/lib/dns.js)
- */
-declare module 'dns' {
- import * as dnsPromises from 'node:dns/promises';
- // Supported getaddrinfo flags.
- export const ADDRCONFIG: number;
- export const V4MAPPED: number;
- /**
- * If `dns.V4MAPPED` is specified, return resolved IPv6 addresses as
- * well as IPv4 mapped IPv6 addresses.
- */
- export const ALL: number;
- export interface LookupOptions {
- family?: number | undefined;
- hints?: number | undefined;
- all?: boolean | undefined;
- verbatim?: boolean | undefined;
- }
- export interface LookupOneOptions extends LookupOptions {
- all?: false | undefined;
- }
- export interface LookupAllOptions extends LookupOptions {
- all: true;
- }
- export interface LookupAddress {
- address: string;
- family: number;
- }
- /**
- * Resolves a host name (e.g. `'nodejs.org'`) into the first found A (IPv4) or
- * AAAA (IPv6) record. All `option` properties are optional. If `options` is an
- * integer, then it must be `4` or `6` – if `options` is not provided, then IPv4
- * and IPv6 addresses are both returned if found.
- *
- * With the `all` option set to `true`, the arguments for `callback` change to`(err, addresses)`, with `addresses` being an array of objects with the
- * properties `address` and `family`.
- *
- * On error, `err` is an `Error` object, where `err.code` is the error code.
- * Keep in mind that `err.code` will be set to `'ENOTFOUND'` not only when
- * the host name does not exist but also when the lookup fails in other ways
- * such as no available file descriptors.
- *
- * `dns.lookup()` does not necessarily have anything to do with the DNS protocol.
- * The implementation uses an operating system facility that can associate names
- * with addresses, and vice versa. This implementation can have subtle but
- * important consequences on the behavior of any Node.js program. Please take some
- * time to consult the `Implementation considerations section` before using`dns.lookup()`.
- *
- * Example usage:
- *
- * ```js
- * const dns = require('dns');
- * const options = {
- * family: 6,
- * hints: dns.ADDRCONFIG | dns.V4MAPPED,
- * };
- * dns.lookup('example.com', options, (err, address, family) =>
- * console.log('address: %j family: IPv%s', address, family));
- * // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6
- *
- * // When options.all is true, the result will be an Array.
- * options.all = true;
- * dns.lookup('example.com', options, (err, addresses) =>
- * console.log('addresses: %j', addresses));
- * // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}]
- * ```
- *
- * If this method is invoked as its `util.promisify()` ed version, and `all`is not set to `true`, it returns a `Promise` for an `Object` with `address` and`family` properties.
- * @since v0.1.90
- */
- export function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;
- export function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;
- export function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void;
- export function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void;
- export function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;
- export namespace lookup {
- function __promisify__(hostname: string, options: LookupAllOptions): Promise;
- function __promisify__(hostname: string, options?: LookupOneOptions | number): Promise;
- function __promisify__(hostname: string, options: LookupOptions): Promise;
- }
- /**
- * Resolves the given `address` and `port` into a host name and service using
- * the operating system's underlying `getnameinfo` implementation.
- *
- * If `address` is not a valid IP address, a `TypeError` will be thrown.
- * The `port` will be coerced to a number. If it is not a legal port, a `TypeError`will be thrown.
- *
- * On an error, `err` is an `Error` object, where `err.code` is the error code.
- *
- * ```js
- * const dns = require('dns');
- * dns.lookupService('127.0.0.1', 22, (err, hostname, service) => {
- * console.log(hostname, service);
- * // Prints: localhost ssh
- * });
- * ```
- *
- * If this method is invoked as its `util.promisify()` ed version, it returns a`Promise` for an `Object` with `hostname` and `service` properties.
- * @since v0.11.14
- */
- export function lookupService(address: string, port: number, callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void): void;
- export namespace lookupService {
- function __promisify__(
- address: string,
- port: number
- ): Promise<{
- hostname: string;
- service: string;
- }>;
- }
- export interface ResolveOptions {
- ttl: boolean;
- }
- export interface ResolveWithTtlOptions extends ResolveOptions {
- ttl: true;
- }
- export interface RecordWithTtl {
- address: string;
- ttl: number;
- }
- /** @deprecated Use `AnyARecord` or `AnyAaaaRecord` instead. */
- export type AnyRecordWithTtl = AnyARecord | AnyAaaaRecord;
- export interface AnyARecord extends RecordWithTtl {
- type: 'A';
- }
- export interface AnyAaaaRecord extends RecordWithTtl {
- type: 'AAAA';
- }
- export interface CaaRecord {
- critial: number;
- issue?: string | undefined;
- issuewild?: string | undefined;
- iodef?: string | undefined;
- contactemail?: string | undefined;
- contactphone?: string | undefined;
- }
- export interface MxRecord {
- priority: number;
- exchange: string;
- }
- export interface AnyMxRecord extends MxRecord {
- type: 'MX';
- }
- export interface NaptrRecord {
- flags: string;
- service: string;
- regexp: string;
- replacement: string;
- order: number;
- preference: number;
- }
- export interface AnyNaptrRecord extends NaptrRecord {
- type: 'NAPTR';
- }
- export interface SoaRecord {
- nsname: string;
- hostmaster: string;
- serial: number;
- refresh: number;
- retry: number;
- expire: number;
- minttl: number;
- }
- export interface AnySoaRecord extends SoaRecord {
- type: 'SOA';
- }
- export interface SrvRecord {
- priority: number;
- weight: number;
- port: number;
- name: string;
- }
- export interface AnySrvRecord extends SrvRecord {
- type: 'SRV';
- }
- export interface AnyTxtRecord {
- type: 'TXT';
- entries: string[];
- }
- export interface AnyNsRecord {
- type: 'NS';
- value: string;
- }
- export interface AnyPtrRecord {
- type: 'PTR';
- value: string;
- }
- export interface AnyCnameRecord {
- type: 'CNAME';
- value: string;
- }
- export type AnyRecord = AnyARecord | AnyAaaaRecord | AnyCnameRecord | AnyMxRecord | AnyNaptrRecord | AnyNsRecord | AnyPtrRecord | AnySoaRecord | AnySrvRecord | AnyTxtRecord;
- /**
- * Uses the DNS protocol to resolve a host name (e.g. `'nodejs.org'`) into an array
- * of the resource records. The `callback` function has arguments`(err, records)`. When successful, `records` will be an array of resource
- * records. The type and structure of individual results varies based on `rrtype`:
- *
- *
- *
- * On error, `err` is an `Error` object, where `err.code` is one of the `DNS error codes`.
- * @since v0.1.27
- * @param hostname Host name to resolve.
- * @param [rrtype='A'] Resource record type.
- */
- export function resolve(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export function resolve(hostname: string, rrtype: 'A', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export function resolve(hostname: string, rrtype: 'AAAA', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export function resolve(hostname: string, rrtype: 'ANY', callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void;
- export function resolve(hostname: string, rrtype: 'CNAME', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export function resolve(hostname: string, rrtype: 'MX', callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void;
- export function resolve(hostname: string, rrtype: 'NAPTR', callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void;
- export function resolve(hostname: string, rrtype: 'NS', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export function resolve(hostname: string, rrtype: 'PTR', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export function resolve(hostname: string, rrtype: 'SOA', callback: (err: NodeJS.ErrnoException | null, addresses: SoaRecord) => void): void;
- export function resolve(hostname: string, rrtype: 'SRV', callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void;
- export function resolve(hostname: string, rrtype: 'TXT', callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void;
- export function resolve(
- hostname: string,
- rrtype: string,
- callback: (err: NodeJS.ErrnoException | null, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]) => void
- ): void;
- export namespace resolve {
- function __promisify__(hostname: string, rrtype?: 'A' | 'AAAA' | 'CNAME' | 'NS' | 'PTR'): Promise;
- function __promisify__(hostname: string, rrtype: 'ANY'): Promise;
- function __promisify__(hostname: string, rrtype: 'MX'): Promise;
- function __promisify__(hostname: string, rrtype: 'NAPTR'): Promise;
- function __promisify__(hostname: string, rrtype: 'SOA'): Promise;
- function __promisify__(hostname: string, rrtype: 'SRV'): Promise;
- function __promisify__(hostname: string, rrtype: 'TXT'): Promise;
- function __promisify__(hostname: string, rrtype: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve a IPv4 addresses (`A` records) for the`hostname`. The `addresses` argument passed to the `callback` function
- * will contain an array of IPv4 addresses (e.g.`['74.125.79.104', '74.125.79.105', '74.125.79.106']`).
- * @since v0.1.16
- * @param hostname Host name to resolve.
- */
- export function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export function resolve4(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void;
- export function resolve4(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void;
- export namespace resolve4 {
- function __promisify__(hostname: string): Promise;
- function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise;
- function __promisify__(hostname: string, options?: ResolveOptions): Promise;
- }
- /**
- * Uses the DNS protocol to resolve a IPv6 addresses (`AAAA` records) for the`hostname`. The `addresses` argument passed to the `callback` function
- * will contain an array of IPv6 addresses.
- * @since v0.1.16
- * @param hostname Host name to resolve.
- */
- export function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export function resolve6(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void;
- export function resolve6(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void;
- export namespace resolve6 {
- function __promisify__(hostname: string): Promise;
- function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise;
- function __promisify__(hostname: string, options?: ResolveOptions): Promise;
- }
- /**
- * Uses the DNS protocol to resolve `CNAME` records for the `hostname`. The`addresses` argument passed to the `callback` function
- * will contain an array of canonical name records available for the `hostname`(e.g. `['bar.example.com']`).
- * @since v0.3.2
- */
- export function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export namespace resolveCname {
- function __promisify__(hostname: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve `CAA` records for the `hostname`. The`addresses` argument passed to the `callback` function
- * will contain an array of certification authority authorization records
- * available for the `hostname` (e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'}, {critical: 128, issue: 'pki.example.com'}]`).
- * @since v15.0.0
- */
- export function resolveCaa(hostname: string, callback: (err: NodeJS.ErrnoException | null, records: CaaRecord[]) => void): void;
- export namespace resolveCaa {
- function __promisify__(hostname: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve mail exchange records (`MX` records) for the`hostname`. The `addresses` argument passed to the `callback` function will
- * contain an array of objects containing both a `priority` and `exchange`property (e.g. `[{priority: 10, exchange: 'mx.example.com'}, ...]`).
- * @since v0.1.27
- */
- export function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void;
- export namespace resolveMx {
- function __promisify__(hostname: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve regular expression based records (`NAPTR`records) for the `hostname`. The `addresses` argument passed to the `callback`function will contain an array of
- * objects with the following properties:
- *
- * * `flags`
- * * `service`
- * * `regexp`
- * * `replacement`
- * * `order`
- * * `preference`
- *
- * ```js
- * {
- * flags: 's',
- * service: 'SIP+D2U',
- * regexp: '',
- * replacement: '_sip._udp.example.com',
- * order: 30,
- * preference: 100
- * }
- * ```
- * @since v0.9.12
- */
- export function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void;
- export namespace resolveNaptr {
- function __promisify__(hostname: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve name server records (`NS` records) for the`hostname`. The `addresses` argument passed to the `callback` function will
- * contain an array of name server records available for `hostname`(e.g. `['ns1.example.com', 'ns2.example.com']`).
- * @since v0.1.90
- */
- export function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export namespace resolveNs {
- function __promisify__(hostname: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve pointer records (`PTR` records) for the`hostname`. The `addresses` argument passed to the `callback` function will
- * be an array of strings containing the reply records.
- * @since v6.0.0
- */
- export function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void;
- export namespace resolvePtr {
- function __promisify__(hostname: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve a start of authority record (`SOA` record) for
- * the `hostname`. The `address` argument passed to the `callback` function will
- * be an object with the following properties:
- *
- * * `nsname`
- * * `hostmaster`
- * * `serial`
- * * `refresh`
- * * `retry`
- * * `expire`
- * * `minttl`
- *
- * ```js
- * {
- * nsname: 'ns.example.com',
- * hostmaster: 'root.example.com',
- * serial: 2013101809,
- * refresh: 10000,
- * retry: 2400,
- * expire: 604800,
- * minttl: 3600
- * }
- * ```
- * @since v0.11.10
- */
- export function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: SoaRecord) => void): void;
- export namespace resolveSoa {
- function __promisify__(hostname: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve service records (`SRV` records) for the`hostname`. The `addresses` argument passed to the `callback` function will
- * be an array of objects with the following properties:
- *
- * * `priority`
- * * `weight`
- * * `port`
- * * `name`
- *
- * ```js
- * {
- * priority: 10,
- * weight: 5,
- * port: 21223,
- * name: 'service.example.com'
- * }
- * ```
- * @since v0.1.27
- */
- export function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void;
- export namespace resolveSrv {
- function __promisify__(hostname: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve text queries (`TXT` records) for the`hostname`. The `records` argument passed to the `callback` function is a
- * two-dimensional array of the text records available for `hostname` (e.g.`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of
- * one record. Depending on the use case, these could be either joined together or
- * treated separately.
- * @since v0.1.27
- */
- export function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void;
- export namespace resolveTxt {
- function __promisify__(hostname: string): Promise;
- }
- /**
- * Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query).
- * The `ret` argument passed to the `callback` function will be an array containing
- * various types of records. Each object has a property `type` that indicates the
- * type of the current record. And depending on the `type`, additional properties
- * will be present on the object:
- *
- *
- *
- * Here is an example of the `ret` object passed to the callback:
- *
- * ```js
- * [ { type: 'A', address: '127.0.0.1', ttl: 299 },
- * { type: 'CNAME', value: 'example.com' },
- * { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 },
- * { type: 'NS', value: 'ns1.example.com' },
- * { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] },
- * { type: 'SOA',
- * nsname: 'ns1.example.com',
- * hostmaster: 'admin.example.com',
- * serial: 156696742,
- * refresh: 900,
- * retry: 900,
- * expire: 1800,
- * minttl: 60 } ]
- * ```
- *
- * DNS server operators may choose not to respond to `ANY`queries. It may be better to call individual methods like {@link resolve4},{@link resolveMx}, and so on. For more details, see [RFC
- * 8482](https://tools.ietf.org/html/rfc8482).
- */
- export function resolveAny(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void;
- export namespace resolveAny {
- function __promisify__(hostname: string): Promise