Merge pull request #348 from gnh1201/dev

Release 0.2.7.56 Ready
This commit is contained in:
Namhyeon Go 2025-11-24 00:05:12 +09:00 committed by GitHub
commit 28d66fd30f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 180 additions and 167 deletions

View File

@ -78,6 +78,7 @@ WelsonJS is tailored for developers who need a reliable, lightweight JavaScript
* Aviation Data integrations: [AviationStack](https://aviationstack.com?utm_source=FirstPromoter&utm_medium=Affiliate&fpr=namhyeon71), [SerpApi Google Flights API](https://serpapi.com/google-flights-api?utm_source=welsonjs) * Aviation Data integrations: [AviationStack](https://aviationstack.com?utm_source=FirstPromoter&utm_medium=Affiliate&fpr=namhyeon71), [SerpApi Google Flights API](https://serpapi.com/google-flights-api?utm_source=welsonjs)
* VM infrastructure tool integrations: [OVFTool for Broadcom/VMware infrastructures](https://developer.broadcom.com/tools/open-virtualization-format-ovf-tool/latest) * VM infrastructure tool integrations: [OVFTool for Broadcom/VMware infrastructures](https://developer.broadcom.com/tools/open-virtualization-format-ovf-tool/latest)
* ***:fire: NEW!*** Windows bulit-in database engine AKA. [ESENT (ESE) database](https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/database-overview) interface library (WelsonJS.Esent) * ***:fire: NEW!*** Windows bulit-in database engine AKA. [ESENT (ESE) database](https://learn.microsoft.com/en-us/windows/win32/extensible-storage-engine/database-overview) interface library (WelsonJS.Esent)
* ***:fire: NEW!*** WelsonJS JCTG(JavaScript-Click-To-Go): Run WelsonJS script files written in JavaScript directly from Windows File Explorer with a (double) click. Just like an `.exe` file.
* Everything you can imagine. * Everything you can imagine.
## Quick start ## Quick start

View File

@ -39,63 +39,63 @@
"tests": [ "tests": [
{ {
"id": "es5_polyfills", "id": "es5_polyfills",
"description": "Indicates Whether Polyfill higher than ES5 level has successfully performed (Perform pollyfill higher than ES5 level in Windows built-in Engine)", "description": "Checks whether polyfills above the ES5 level run successfully (using Windows' built-in engine).",
"tags": [ "tags": [
"Javascript engine", "JavaScript Engine",
"ECMAScript Polyfills" "ECMAScript Polyfills"
] ]
}, },
{ {
"id": "registry_find_provider", "id": "registry_find_provider",
"description": "find registry provider", "description": "Find registry provider",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Control Registry" "Registry Control"
] ]
}, },
{ {
"id": "registry_write", "id": "registry_write",
"description": "writing Registry", "description": "Write registry values",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"control Registry" "Registry Control"
] ]
}, },
{ {
"id": "registry_read", "id": "registry_read",
"description": "reading Registry", "description": "Read registry values",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"control Registry" "Registry Control"
] ]
}, },
{ {
"id": "wmi_create_object", "id": "wmi_create_object",
"description": "create WMI object", "description": "Create WMI object",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"control WMI(Windows Management Instrumentation) " "WMI (Windows Management Instrumentation)"
] ]
}, },
{ {
"id": "wmi_execute_query", "id": "wmi_execute_query",
"description": "executing WMI query", "description": "Execute WMI query",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"control WMI(Windows Management Instrumentation) " "WMI (Windows Management Instrumentation)"
] ]
}, },
{ {
"id": "wmi_result_query", "id": "wmi_result_query",
"description": "the result of WMI query", "description": "Retrieve WMI query results",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"control WMI(Windows Management Instrumentation) " "WMI (Windows Management Instrumentation)"
] ]
}, },
{ {
"id": "shell_create_object", "id": "shell_create_object",
"description": "create Shell object", "description": "Create Shell object",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Shell" "Windows Shell"
@ -103,7 +103,7 @@
}, },
{ {
"id": "shell_build_command_line", "id": "shell_build_command_line",
"description": "building command line (input: Array Object, output: Unescaped Command String)", "description": "Build command line (input: Array, output: unescaped command string)",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Shell" "Windows Shell"
@ -111,7 +111,7 @@
}, },
{ {
"id": "shell_set_charset", "id": "shell_set_charset",
"description": "set Charset", "description": "Set character encoding",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Shell" "Windows Shell"
@ -119,7 +119,7 @@
}, },
{ {
"id": "shell_working_directory", "id": "shell_working_directory",
"description": "set Working Directory", "description": "Set working directory",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Shell" "Windows Shell"
@ -127,7 +127,7 @@
}, },
{ {
"id": "shell_create_process", "id": "shell_create_process",
"description": "creating process", "description": "Create a new process",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Shell" "Windows Shell"
@ -135,7 +135,7 @@
}, },
{ {
"id": "shell_execute", "id": "shell_execute",
"description": "execute shell command (receive results(stdout, stderr))", "description": "Execute shell command (returns stdout/stderr)",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Shell" "Windows Shell"
@ -143,12 +143,15 @@
}, },
{ {
"id": "shell_run", "id": "shell_run",
"description": "run shell command (fork)regardless of result", "description": "Run shell command (fork, does not wait for output)",
"tags": "run shell command (fork) regardless of result" "tags": [
"Windows Systems",
"Windows Shell"
]
}, },
{ {
"id": "shell_run_as", "id": "shell_run_as",
"description": "run shell command (run with administrator's authority)", "description": "Run shell command with administrator privileges",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Shell" "Windows Shell"
@ -156,7 +159,7 @@
}, },
{ {
"id": "shell_find_my_documents", "id": "shell_find_my_documents",
"description": "bring (My Documents) location", "description": "Retrieve 'My Documents' path",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Shell" "Windows Shell"
@ -164,7 +167,7 @@
}, },
{ {
"id": "shell_release", "id": "shell_release",
"description": "release created shell object", "description": "Release shell object",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Shell" "Windows Shell"
@ -172,47 +175,47 @@
}, },
{ {
"id": "powershell_set_command", "id": "powershell_set_command",
"description": "Set command line to execute", "description": "Set PowerShell command to execute",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Powershell" "Windows PowerShell"
] ]
}, },
{ {
"id": "powershell_set_file", "id": "powershell_set_file",
"description": "set files(*.ps1)to execute", "description": "Set PowerShell script file (*.ps1) to execute",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Powershell" "Windows PowerShell"
] ]
}, },
{ {
"id": "powershell_set_uri", "id": "powershell_set_uri",
"description": "Use URI to set commands", "description": "Set command using a URI",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Powershell" "Windows PowerShell"
] ]
}, },
{ {
"id": "powershell_execute", "id": "powershell_execute",
"description": "Execute command (user mode)", "description": "Execute PowerShell command (user mode)",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Powershell" "Windows PowerShell"
] ]
}, },
{ {
"id": "powershell_run_as", "id": "powershell_run_as",
"description": "Execute command (administrator mode)", "description": "Execute PowerShell command (administrator mode)",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Windows Powershell" "Windows PowerShell"
] ]
}, },
{ {
"id": "system_resolve_env", "id": "system_resolve_env",
"description": "Verify if the environment variable resolver interprets environment variables correctly", "description": "Verify whether environment variables are resolved correctly",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -220,7 +223,7 @@
}, },
{ {
"id": "system_check_as", "id": "system_check_as",
"description": "Check if the current process is in administrator mode", "description": "Check if the current process is running as administrator",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -228,7 +231,7 @@
}, },
{ {
"id": "system_get_os_version", "id": "system_get_os_version",
"description": "Get current OS version", "description": "Get OS version",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -236,7 +239,7 @@
}, },
{ {
"id": "system_get_architecture", "id": "system_get_architecture",
"description": "Get current system architecture", "description": "Get system architecture",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -244,7 +247,7 @@
}, },
{ {
"id": "system_get_uuid", "id": "system_get_uuid",
"description": "bringing the UUID of current device", "description": "Retrieve UUID of current device",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -252,7 +255,7 @@
}, },
{ {
"id": "system_get_working_directory", "id": "system_get_working_directory",
"description": "bringing current working directory", "description": "Retrieve current working directory",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -260,7 +263,7 @@
}, },
{ {
"id": "system_get_script_directory", "id": "system_get_script_directory",
"description": "bringing current script directory", "description": "Retrieve script directory",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -268,7 +271,7 @@
}, },
{ {
"id": "system_get_network_interfaces", "id": "system_get_network_interfaces",
"description": "bringing network interface information", "description": "Retrieve network interface information",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -276,7 +279,7 @@
}, },
{ {
"id": "system_get_process_list", "id": "system_get_process_list",
"description": "get activated ", "description": "Retrieve active process list",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -284,7 +287,7 @@
}, },
{ {
"id": "system_get_process_list_by_name", "id": "system_get_process_list_by_name",
"description": "find certain active process by process name", "description": "Find active process by name",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"System Information" "System Information"
@ -292,161 +295,161 @@
}, },
{ {
"id": "system_register_uri", "id": "system_register_uri",
"description": "Register URI and carry out command as URI has requested", "description": "Register URI and execute command associated with it",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"Register URI(Uniform Resource Identifier)" "URI Registration"
] ]
}, },
{ {
"id": "system_pipe_ipc", "id": "system_pipe_ipc",
"description": "Interprocess communication between more than 2 processes", "description": "Inter-process communication between two or more processes",
"tags": [ "tags": [
"Windows Systems", "Windows Systems",
"IPC(Inter Process Communication)" "IPC (Inter-Process Communication)"
] ]
}, },
{ {
"id": "vhid_find_window", "id": "vhid_find_window",
"description": "find active window handle", "description": "Find active window handle",
"tags": [ "tags": [
"human interface", "Human Interface",
"virtual human interface" "Virtual Human Interface"
] ]
}, },
{ {
"id": "vhid_send_click", "id": "vhid_send_click",
"description": "send virtual click", "description": "Send virtual click",
"tags": [ "tags": [
"human interface", "Human Interface",
"virtual human interface" "Virtual Human Interface"
] ]
}, },
{ {
"id": "vhid_send_keys", "id": "vhid_send_keys",
"description": "Send virtual text key (a-zA-Z0-9)", "description": "Send virtual text input (az, AZ, 09)",
"tags": [ "tags": [
"human interface", "Human Interface",
"virtual human interface" "Virtual Human Interface"
] ]
}, },
{ {
"id": "vhid_send_key_enter", "id": "vhid_send_key_enter",
"description": "send virtual enter key", "description": "Send virtual Enter key",
"tags": [ "tags": [
"human interface", "Human Interface",
"virtual human interface" "Virtual Human Interface"
] ]
}, },
{ {
"id": "vhid_send_key_functions", "id": "vhid_send_key_functions",
"description": "Send virtual FN key", "description": "Send virtual function key",
"tags": [ "tags": [
"human interface", "Human Interface",
"virtual human interface" "Virtual Human Interface"
] ]
}, },
{ {
"id": "vhid_alert", "id": "vhid_alert",
"description": "Alert whether message output will be provided when API is called", "description": "Show alert message when API is called",
"tags": [ "tags": [
"human interface", "Human Interface",
"virtual human interface" "Virtual Human Interface"
] ]
}, },
{ {
"id": "vhid_confirm", "id": "vhid_confirm",
"description": "Confirm() message output when API is called and choose between Yes/No", "description": "Show confirm dialog when API is called (Yes/No)",
"tags": [ "tags": [
"human interface", "Human Interface",
"virtual human interface" "Virtual Human Interface"
] ]
}, },
{ {
"id": "vhid_prompt", "id": "vhid_prompt",
"description": "Prompt() When calling API, can receive descriptive response", "description": "Show prompt dialog and receive user input",
"tags": [ "tags": [
"human interface", "Human Interface",
"virtual human interface" "Virtual Human Interface"
] ]
}, },
{ {
"id": "network_http_get", "id": "network_http_get",
"description": "Send HTTP GET", "description": "Send HTTP GET request",
"tags": [ "tags": [
"network", "Network",
"Send HTTP and handle HTTP" "HTTP Communication"
] ]
}, },
{ {
"id": "network_http_post", "id": "network_http_post",
"description": "Send HTTP POST", "description": "Send HTTP POST request",
"tags": [ "tags": [
"network", "Network",
"send HTTP and handle HTTP" "HTTP Communication"
] ]
}, },
{ {
"id": "network_http_extended", "id": "network_http_extended",
"description": "send HTTP extension methods(FETCH, PUT, etc)", "description": "Send HTTP extended methods (FETCH, PUT, etc.)",
"tags": [ "tags": [
"network", "Network",
"send HTTP and handle HTTP" "HTTP Communication"
] ]
}, },
{ {
"id": "network_attach_debugger", "id": "network_attach_debugger",
"description": "support attaching HTTP debugger(Fiddler, etc)", "description": "Attach HTTP debugger (e.g., Fiddler)",
"tags": [ "tags": [
"network", "Network",
"send HTTP and handle HTTP" "HTTP Communication"
] ]
}, },
{ {
"id": "network_detect_charset", "id": "network_detect_charset",
"description": "detect Charset in HTTP response body", "description": "Detect charset from HTTP response body",
"tags": [ "tags": [
"network", "Network",
"send HTTP and handle HTTP" "HTTP Communication"
] ]
}, },
{ {
"id": "network_detect_http_ssl", "id": "network_detect_http_ssl",
"description": "detect whether SSL is running in the website to access ", "description": "Detect whether SSL is enabled on a target website",
"tags": [ "tags": [
"network", "Network",
"send HTTP and handle HTTP" "HTTP Communication"
] ]
}, },
{ {
"id": "network_send_icmp", "id": "network_send_icmp",
"description": "send PING(ICMP)", "description": "Send ICMP (PING)",
"tags": [ "tags": [
"network", "Network",
"send PING(ICMP)" "ICMP"
] ]
}, },
{ {
"id": "extramath_dtm", "id": "extramath_dtm",
"description": "create DTM (Document-Term Matrix) from more than 2 sentences that are provided", "description": "Create a Document-Term Matrix (DTM) from two or more sentences",
"tags": [ "tags": [
"advanced string manipulation", "Advanced String Manipulation",
"natural language processing" "Natural Language Processing"
] ]
}, },
{ {
"id": "extramath_cosine_similarity", "id": "extramath_cosine_similarity",
"description": "compare the similarity of 2 given sentences with cosine similarity", "description": "Calculate cosine similarity between two sentences",
"tags": [ "tags": [
"advanced string manipulation", "Advanced String Manipulation",
"natural language processing" "Natural Language Processing"
] ]
}, },
{ {
"id": "base64_encode", "id": "base64_encode",
"description": "BASE64 encoding", "description": "BASE64 encoding",
"tags": [ "tags": [
"advanced string manipulation", "Advanced String Manipulation",
"BASE64" "BASE64"
] ]
}, },
@ -454,150 +457,150 @@
"id": "base64_decode", "id": "base64_decode",
"description": "BASE64 decoding", "description": "BASE64 decoding",
"tags": [ "tags": [
"advanced string manipulation", "Advanced String Manipulation",
"BASE64" "BASE64"
] ]
}, },
{ {
"id": "chromium_run", "id": "chromium_run",
"description": "run web browser", "description": "Run Chromium-based browser",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_create_profile", "id": "chromium_create_profile",
"description": "create profile", "description": "Create browser profile",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_run_incognito", "id": "chromium_run_incognito",
"description": "run web browser in incognito mode", "description": "Run browser in incognito mode",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_navigate", "id": "chromium_navigate",
"description": "move to another address through URL", "description": "Navigate to a given URL",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_get_active_pages", "id": "chromium_get_active_pages",
"description": "bringing active page list", "description": "Retrieve list of active pages",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_find_page_by_id", "id": "chromium_find_page_by_id",
"description": "finding page by original ID", "description": "Find page by its original ID",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_find_pages_by_title", "id": "chromium_find_pages_by_title",
"description": "finding pages by title of the pages", "description": "Find pages by their title",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_move_focused", "id": "chromium_move_focused",
"description": "move focus of the window", "description": "Change window focus",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_adjust_window_size", "id": "chromium_adjust_window_size",
"description": "adjust size of the window", "description": "Adjust window size",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_get_element_position", "id": "chromium_get_element_position",
"description": "finding single element position that matches with provided CSS Selector", "description": "Find position of element matching CSS selector",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_get_mapreduced_element_position", "id": "chromium_get_mapreduced_element_position",
"description": "finding position of the element that meets requirement among multiple elements that match with CSS selector", "description": "Find best-matching element position among multiple CSS selector matches (map-reduce)",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_set_value_to_textbox", "id": "chromium_set_value_to_textbox",
"description": "setting the value in case the object of the action is input by users(TextArea or TextInput)", "description": "Set value in text-based input element (textarea/input)",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_send_click", "id": "chromium_send_click",
"description": "send virtual click", "description": "Send virtual click",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_send_keys", "id": "chromium_send_keys",
"description": "send virtual key", "description": "Send virtual keystrokes",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based browser)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "chromium_auto_scroll_until_end", "id": "chromium_auto_scroll_until_end",
"description": "exploring the screen automatically until the scrolling finishes, in case of vertical scrolling", "description": "Automatically scroll until reaching the bottom (vertical scroll)",
"tags": [ "tags": [
"control web browser", "Web Browser Control",
"control web browser (Chromium-based browser)" "Chromium-Based Browser"
] ]
}, },
{ {
"id": "grpc_run_server", "id": "grpc_run_server",
"description": "run gRPC server", "description": "Run gRPC server",
"tags": [ "tags": [
"gRPC" "gRPC"
] ]
}, },
{ {
"id": "grpc_receive_command", "id": "grpc_receive_command",
"description": "receive command that is sent to grpc in script", "description": "Receive commands sent to the gRPC script",
"tags": [ "tags": [
"gRPC" "gRPC"
] ]
}, },
{ {
"id": "gui_check", "id": "gui_check",
"description": "Even in WebView (GUI) environment, (1)Windows Systems/Windows Shell, (2)(Windows Systems/WMI control functions work.", "description": "Verify that Windows Shell and WMI functions operate correctly in a WebView (GUI) environment.",
"tags": [ "tags": [
"WebView" "WebView"
] ]
} }
] ]
} }

View File

@ -71,9 +71,15 @@ function GetResource(ResourceName) {
}; };
// compatible under version 0.2.7.55 // compatible under version 0.2.7.55
Enumerator.prototype.toArray = Array.from;
})(); })();
// @deprecated Enumerator.toArray() is deprecated since version 0.2.7.56. Use Array.from()
if (typeof Enumerator !== "undefined" && !Enumerator.prototype.toArray) {
Enumerator.prototype.toArray = function() {
return Array.from(this);
};
}
// [lib/std] the time of `sleep()' function is not accuracy #34 // [lib/std] the time of `sleep()' function is not accuracy #34
function sleep(ms, callback) { function sleep(ms, callback) {
var handler = null; var handler = null;

View File

@ -58,7 +58,7 @@ var WMIQueryObject = function() {
}; };
this.fetchAll = function() { this.fetchAll = function() {
return this.cursor.toArray(); return Array.from(this.cursor);
}; };
this.get = function(key) { this.get = function(key) {
@ -161,6 +161,6 @@ exports.create = create;
exports.execQuery = execQuery; exports.execQuery = execQuery;
exports.setClass = setClass; exports.setClass = setClass;
exports.VERSIONINFO = "WMI interface (wmi.js) version 0.1.3"; exports.VERSIONINFO = "WMI interface (wmi.js) version 0.1.4";
exports.global = global; exports.global = global;
exports.require = global.require; exports.require = global.require;

View File

@ -1,5 +1,5 @@
; @created_on 2020-06-26 ; @created_on 2020-06-26
; @updated_on 2025-11-21 ; @updated_on 2025-11-23
; @author Namhyeon Go <gnh1201@catswords.re.kr> ; @author Namhyeon Go <gnh1201@catswords.re.kr>
[Setup] [Setup]
@ -27,6 +27,12 @@ DisableProgramGroupPage=yes
LicenseFile=SECURITY.MD LicenseFile=SECURITY.MD
ChangesAssociations=yes ChangesAssociations=yes
[Components]
; Add an optional component for the user to select during installation
Name: "fileassoc"; Description: "Associate .js files to run with WelsonJS"; Types: full compact custom;
Name: "winservice"; Description: "Install the Windows Service module for WelsonJS"; Types: full;
Name: "downloadtools"; Description: "Download additional tools for WelsonJS"; Types: full;
[Registry] [Registry]
; Root: HKCR; Subkey: "welsonjs"; ValueType: "string"; ValueData: "URL:{cm:AppName}"; Flags: uninsdeletekey ; Root: HKCR; Subkey: "welsonjs"; ValueType: "string"; ValueData: "URL:{cm:AppName}"; Flags: uninsdeletekey
; Root: HKCR; Subkey: "welsonjs"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: "" ; Root: HKCR; Subkey: "welsonjs"; ValueType: "string"; ValueName: "URL Protocol"; ValueData: ""
@ -37,12 +43,9 @@ Root: HKCR; Subkey: "{cm:AppName}.Script\DefaultIcon"; ValueType: string; ValueD
Root: HKCR; Subkey: "{cm:AppName}.Script\shell"; ValueType: string; ValueData: "open"; Flags: uninsdeletevalue Root: HKCR; Subkey: "{cm:AppName}.Script\shell"; ValueType: string; ValueData: "open"; Flags: uninsdeletevalue
Root: HKCR; Subkey: "{cm:AppName}.Script\shell\open"; ValueType: string; ValueData: "Run with {cm:AppName}"; Flags: uninsdeletevalue Root: HKCR; Subkey: "{cm:AppName}.Script\shell\open"; ValueType: string; ValueData: "Run with {cm:AppName}"; Flags: uninsdeletevalue
Root: HKCR; Subkey: "{cm:AppName}.Script\shell\open\command"; ValueType: string; ValueData: """{userappdata}\{cm:AppName}\bin\WelsonJS.Launcher.exe"" --file ""%1"""; Flags: uninsdeletevalue Root: HKCR; Subkey: "{cm:AppName}.Script\shell\open\command"; ValueType: string; ValueData: """{userappdata}\{cm:AppName}\bin\WelsonJS.Launcher.exe"" --file ""%1"""; Flags: uninsdeletevalue
Root: HKCR; Subkey: ".js"; ValueType: string; ValueData: "{cm:AppName}.Script"; Flags: uninsdeletevalue Root: HKCR; Subkey: "{cm:AppName}.Script\ScriptEngine"; ValueType: string; ValueData: "JScript"; Flags: uninsdeletevalue
Root: HKCR; Subkey: ".ts"; ValueType: string; ValueData: "{cm:AppName}.Script"; Flags: uninsdeletevalue Root: HKCR; Subkey: "{cm:AppName}.Script\ScriptHostEncode"; ValueType: string; ValueData: "{{85131630-480C-11D2-B1F9-00C04F86C324}}"; Flags: uninsdeletevalue
Root: HKCR; Subkey: ".re"; ValueType: string; ValueData: "{cm:AppName}.Script"; Flags: uninsdeletevalue Root: HKCR; Subkey: ".js"; ValueType: string; ValueData: "{cm:AppName}.Script"; Components: fileassoc; Flags: uninsdeletevalue;
Root: HKCR; Subkey: ".res"; ValueType: string; ValueData: "{cm:AppName}.Script"; Flags: uninsdeletevalue
Root: HKCR; Subkey: ".ls"; ValueType: string; ValueData: "{cm:AppName}.Script"; Flags: uninsdeletevalue
Root: HKCR; Subkey: ".coffee"; ValueType: string; ValueData: "{cm:AppName}.Script"; Flags: uninsdeletevalue
[Files] [Files]
Source: "app.js"; DestDir: "{app}"; Source: "app.js"; DestDir: "{app}";
@ -72,9 +75,9 @@ Source: "data\*"; Excludes: "*-apikey.txt"; DestDir: "{app}/data"; Flags: ignore
[Dirs] [Dirs]
Name: "{app}\tmp"; Name: "{app}\tmp";
[InstallDelete] ; [InstallDelete]
Type: files; Name: "{app}\settings.ini" ; Type: files; Name: "{app}\settings.ini"
Type: files; Name: "{app}\defaultService.js" ; Type: files; Name: "{app}\defaultService.js"
[Icons] [Icons]
Name: "{group}\Start {cm:AppName} Launcher"; Filename: "{userappdata}\{cm:AppName}\bin\WelsonJS.Launcher.exe"; AfterInstall: SetElevationBit('{group}\Start {cm:AppName} Launcher.lnk'); Name: "{group}\Start {cm:AppName} Launcher"; Filename: "{userappdata}\{cm:AppName}\bin\WelsonJS.Launcher.exe"; AfterInstall: SetElevationBit('{group}\Start {cm:AppName} Launcher.lnk');
@ -85,12 +88,12 @@ Name: "{group}\Uninstall {cm:AppName}"; Filename: "{uninstallexe}"; AfterInstall
; Filename: {app}\bin\gtk2-runtime-2.24.33-2021-01-30-ts-win64.exe; ; Filename: {app}\bin\gtk2-runtime-2.24.33-2021-01-30-ts-win64.exe;
; Filename: {app}\bin\nmap-7.92\VC_redist.x86.exe; ; Filename: {app}\bin\nmap-7.92\VC_redist.x86.exe;
; Filename: {app}\bin\nmap-7.92\npcap-1.50.exe; ; Filename: {app}\bin\nmap-7.92\npcap-1.50.exe;
Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -NoProfile -File ""{app}\afterInstall.ps1"""; WorkingDir: "{app}"; Flags: waituntilterminated Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -NoProfile -File ""{app}\afterInstall.ps1"""; WorkingDir: "{app}"; Components: downloadtools; Flags: waituntilterminated
Filename: {app}\installService.bat; Flags: nowait Filename: {app}\installService.bat; Components: winservice; Flags: nowait
Filename: "{userappdata}\{cm:AppName}\bin\WelsonJS.Launcher.exe"; Flags: nowait Filename: "{userappdata}\{cm:AppName}\bin\WelsonJS.Launcher.exe"; Flags: nowait
[UninstallRun] [UninstallRun]
Filename: {app}\uninstallService.bat; Filename: {app}\uninstallService.bat; Components: winservice;
; Filename: {code:GetProgramFiles}\GTK2-Runtime Win64\gtk2_runtime_uninst.exe; ; Filename: {code:GetProgramFiles}\GTK2-Runtime Win64\gtk2_runtime_uninst.exe;
; Filename: {code:GetProgramFiles}\Npcap\Uninstall.exe; ; Filename: {code:GetProgramFiles}\Npcap\Uninstall.exe;
; Filename: {app}\bin\nmap-7.92\VC_redist.x86.exe; ; Filename: {app}\bin\nmap-7.92\VC_redist.x86.exe;