mirror of
				https://github.com/gnh1201/welsonjs.git
				synced 2025-10-30 20:41:18 +00:00 
			
		
		
		
	Merge pull request #269 from gnh1201/dev
	
		
			
	
		
	
	
		
	
		
			Some checks are pending
		
		
	
	
		
			
				
	
				CodeQL / Analyze (javascript) (push) Waiting to run
				
			
		
		
	
	
				
					
				
			
		
			Some checks are pending
		
		
	
	CodeQL / Analyze (javascript) (push) Waiting to run
				
			Update license headers, contact email, and fix broken files
This commit is contained in:
		
						commit
						3e4bf1d1ed
					
				|  | @ -41,7 +41,7 @@ deploy: | |||
| notifications: | ||||
|   - provider: Email | ||||
|     to: | ||||
|       - abuse@catswords.net | ||||
|       - gnh1201@catswords.re.kr | ||||
|     subject: 'Build #{{build}} {{status}}' | ||||
|     on_build_success: false | ||||
|     on_build_failure: true | ||||
|  |  | |||
|  | @ -90,7 +90,7 @@ function say() { | |||
| exports.say = say; | ||||
| 
 | ||||
| exports.VERSIONINFO = "SayHello (sayhello.js) version 0.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
| ``` | ||||
|  |  | |||
							
								
								
									
										2
									
								
								app.hta
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								app.hta
									
									
									
									
									
								
							|  | @ -51,7 +51,7 @@ | |||
|         <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> | ||||
|         <meta name="description" content="WelsonJS, Build a Windows app on the Windows built-in JavaScript engine" /> | ||||
|         <meta name="keywords" content="webapp" /> | ||||
|         <meta name="author" content="abuse@catswords.net" /> | ||||
|         <meta name="author" content="gnh1201@catswords.re.kr" /> | ||||
|         <meta name="generator" content="welsonjs" /> | ||||
|         <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
|         <link type="image/x-icon" rel="icon" href="app/favicon.ico" /> | ||||
|  |  | |||
							
								
								
									
										4
									
								
								app.js
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								app.js
									
									
									
									
									
								
							|  | @ -1,6 +1,6 @@ | |||
| // app.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // SPDX-FileCopyrightText: 2025 Catswords OSS and WelsonJS Contributors
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // Bootstrap code for running a javascript app in windows.  Run as:
 | ||||
|  | @ -693,7 +693,7 @@ function __main__() { | |||
|     console.log(" WelsonJS - Build a Windows app on the Windows built-in JavaScript engine"); | ||||
|     console.log(" C-2021-000237 (cros.or.kr), 10.5281/zenodo.11382385 (doi.org), 2023-A0562 (oss.kr), Codename Macadamia"); | ||||
|     console.log(" This software is distributed as open source under the GPL 3.0 or MS-RL licenses."); | ||||
|     console.log(" Please support this project: https://gnh1201.link"); | ||||
|     console.log(" Please support this project: https://github.com/sponsors/gnh1201"); | ||||
|     console.log(" Source code available: https://github.com/gnh1201/welsonjs"); | ||||
|     console.log(""); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| # WelsonJS-WebRequest.ps1 | ||||
| # Namhyeon Go <abuse@catswords.net> | ||||
| # Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors. | ||||
| # SPDX-License-Identifier: GPL-3.0-or-later | ||||
| # https://github.com/gnh1201/welsonjs | ||||
| param( | ||||
|     [string]$url, | ||||
|  |  | |||
|  | @ -1,6 +1,10 @@ | |||
| // index.js - The entrypoint on WelsonJS GUI envionment
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // index.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // The entrypoint on WelsonJS GUI envionment
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| var SHELL = require("lib/shell"); | ||||
| var Browser = require("lib/browser"); | ||||
|  |  | |||
|  | @ -1,3 +1,8 @@ | |||
| // bgloader.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| if (!Array.prototype.map) { | ||||
|     Array.prototype.map = function(fn) { | ||||
|         var rv = []; | ||||
|  |  | |||
							
								
								
									
										11
									
								
								bootstrap.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								bootstrap.js
									
									
									
									
										vendored
									
									
								
							|  | @ -1,9 +1,8 @@ | |||
| //////////////////////////////////////////////////////////////////////////////////
 | ||||
| //
 | ||||
| //    bootstrap.js
 | ||||
| //
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // bootstrap.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var STD = require("lib/std"); | ||||
| var PS = require("lib/powershell"); | ||||
| var REG = require("lib/registry"); | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
|         "welsonjs": "0.2.7" | ||||
|     }, | ||||
|     "authors": [ | ||||
|         "Namhyeon Go <abuse@catswords.net>" | ||||
|         "Namhyeon Go <gnh1201@catswords.re.kr>" | ||||
|     ], | ||||
|     "references": [ | ||||
|         "https://github.com/gnh1201/welsonjs", | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
|         "welsonjs": "0.2.7" | ||||
|     }, | ||||
|     "authors": [ | ||||
|         "Namhyeon Go <abuse@catswords.net>" | ||||
|         "Namhyeon Go <gnh1201@catswords.re.kr>" | ||||
|     ], | ||||
|     "references": [ | ||||
|         "https://github.com/gnh1201/welsonjs", | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // defaultService.example.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var SYS = require("lib/system"); | ||||
| 
 | ||||
| // Examples of class (prototype) and instance referencing .env values
 | ||||
|  |  | |||
|  | @ -1,8 +1,10 @@ | |||
| // encryptor.js
 | ||||
| // HIGHT(ISO/IEC 18033-3) encryption and decryption tool for WelsonJS
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // 
 | ||||
| // HIGHT(ISO/IEC 18033-3) encryption and decryption tool for WelsonJS framework
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| var Toolkit = require("lib/toolkit"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| // certchecker.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| 
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| var HTTP = require("lib/http"); | ||||
| var RAND = require("lib/rand"); | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| // virustotal.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| 
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| var HTTP = require("lib/http"); | ||||
| var Chrome = require("lib/chrome"); | ||||
|  |  | |||
							
								
								
									
										10
									
								
								lib/adb.js
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								lib/adb.js
									
									
									
									
									
								
							|  | @ -1,6 +1,10 @@ | |||
| // Android Debug Bridge API
 | ||||
| // Namhyeon Go (Catswords Research) <abuse@catswords.net>
 | ||||
| // adb.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // Android Debug Bridge API
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var SYS = require("lib/system"); | ||||
| 
 | ||||
|  | @ -130,6 +134,6 @@ exports.createEmulator = function(binPath) { | |||
| }; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Android Debug Bridge Interface (adb.js) version 0.2.2"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| // anthropic.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // Anthropic/Claude requires an internet connection, and data may be transmitted externally. Users must adhere to the terms of use and privacy policy.
 | ||||
| // - Privacy Policy: https://www.anthropic.com/legal/privacy
 | ||||
| //
 | ||||
| // SECURITY NOTICE
 | ||||
| // Anthropic requires an internet connection, and data may be transmitted externally. Please check the terms of use and privacy policy.
 | ||||
| // https://www.anthropic.com/legal/privacy
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| var HTTP = require("lib/http"); | ||||
| var CRED = require("lib/credentials"); | ||||
|  | @ -55,6 +56,6 @@ function chat(content) { | |||
| exports.chat = chat; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Anthropic (Claude) interface (anthropic.js) version 0.1.4"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,9 @@ | |||
| // archive.js
 | ||||
| // File archiver library for WelsonJS framework
 | ||||
| // Namhyeon Go (Catswords Research) <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // File archiver library for WelsonJS framework
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var FILE = require("lib/file"); | ||||
|  | @ -119,6 +121,6 @@ exports.create = function(engine) { | |||
| }; | ||||
| 
 | ||||
| exports.VERSIONINFO = "File archiver library (archive.js) version 0.1-dev"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // autohotkey.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // AutoHotKey API
 | ||||
| ///////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
| exports.VERSIONINFO = "AutoHotKey (autohotkey.js) version 0.1"; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // autoit.js
 | ||||
| // AutoIt (AutoIt3, AutoItX) API interface for WelsonJS framework
 | ||||
| // Namhyeon Go (Catswords Research) <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // AutoIt (AutoIt3, AutoItX) API interface for WelsonJS framework
 | ||||
| // 
 | ||||
| function AutoItObject() { | ||||
|     this._interface = null; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| // aviation.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // Aviation Data Integration requires an internet connection, and data may be transmitted externally. Users must adhere to the terms of use and privacy policy.
 | ||||
| // - AviationStack website: https://aviationstack.com/?utm_source=FirstPromoter&utm_medium=Affiliate&fpr=namhyeon71
 | ||||
| // - SearchApi website: https://www.searchapi.io/?via=namhyeon
 | ||||
| // SECURITY NOTICE
 | ||||
| // AviationStack, SearchApi requires an internet connection, and data may be transmitted externally. Please check the terms of use and privacy policy.
 | ||||
| // https://aviationstack.com/?utm_source=FirstPromoter&utm_medium=Affiliate&fpr=namhyeon71
 | ||||
| // https://www.searchapi.io/?via=namhyeon
 | ||||
| // 
 | ||||
| var HTTP = require("lib/http"); | ||||
| var CRED = require("lib/credentials"); | ||||
|  | @ -114,6 +115,6 @@ exports.getRoundTrip = getRoundTrip; | |||
| exports.getOneWay = getOneWay; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Aviation Data Integration (aviation.js) version 0.1.3"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // base64.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Base64 API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| //var XML = require("lib/xml");
 | ||||
| var PS = require("lib/powershell"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // browser.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| //
 | ||||
| // Browser Compatibility Layer
 | ||||
| // 
 | ||||
| // only less than IE 9
 | ||||
| if (!window.addEventListener) { | ||||
|     global.Element = function() {}; | ||||
|  | @ -285,6 +288,6 @@ exports.reload = reload; | |||
| exports.close = close; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Browser Compatibility Layer (browser.js) version 0.1.7"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,6 +1,10 @@ | |||
| // catproxy.js
 | ||||
| // Caterpillar Proxy Integration for WelsonJS framework
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // Caterpillar Proxy Integration for WelsonJS framework
 | ||||
| // 
 | ||||
| var JSONRPC2 = require("lib/jsonrpc2"); | ||||
| 
 | ||||
| function CatProxyClient(url) { | ||||
|  | @ -70,6 +74,6 @@ exports.create = create; | |||
| exports.CatProxyClient = CatProxyClient; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Caterpillar Proxy Integration (caterpillar.js) version 0.1.5"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,11 +1,12 @@ | |||
| // chatgpt.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // ChatGPT requires an internet connection, and data may be transmitted externally. Users must adhere to the terms of use and privacy policy.
 | ||||
| // - Privacy Policy: https://openai.com/policies/row-privacy-policy/
 | ||||
| //
 | ||||
| // SECURITY NOTICE
 | ||||
| // ChatGPT requires an internet connection, and data may be transmitted externally. Please check the terms of use and privacy policy.
 | ||||
| // https://openai.com/policies/row-privacy-policy/
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| var HTTP = require("lib/http"); | ||||
| var CRED = require("lib/credentials"); | ||||
|  | @ -53,6 +54,6 @@ function chat(content) { | |||
| exports.chat = chat; | ||||
| 
 | ||||
| exports.VERSIONINFO = "OpenAI (ChatGPT) interface version 0.1.2"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,8 +1,10 @@ | |||
| // chrome.js
 | ||||
| // Chrome Web Browser Debugging Interface for WelsonJS framework
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Chrome Web Browser Debugging Interface for WelsonJS framework
 | ||||
| // 
 | ||||
| var STD = require("lib/std"); | ||||
| var RAND = require("lib/rand"); | ||||
| var SHELL = require("lib/shell"); | ||||
|  |  | |||
|  | @ -1,11 +1,14 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // cloudflare.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Cloudflare API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var SYS = require("lib/system"); | ||||
| 
 | ||||
| exports.VERSIONINFO = "Cloudflare Lib (cloudflare.js) version 0.1"; | ||||
| exports.VERSIONINFO = "Cloudflare(d) Integration (cloudflare.js) version 0.1"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // Config API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // config.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var XML = require("lib/xml"); | ||||
| 
 | ||||
| exports.getValue = function(key) { | ||||
|  |  | |||
|  | @ -1,3 +1,8 @@ | |||
| // cookie.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var CookieObject = function() { | ||||
|     this.expireDays = 90; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,8 +1,9 @@ | |||
| // coupang.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // SECURITY NOTICE
 | ||||
| // Due to potential security issues, the Public API URL is not provided. If you need to request access, please refer to the project's contact information.
 | ||||
| // You can download the server-side script that implements this functionality from the link below:
 | ||||
| // https://github.com/gnh1201/caterpillar
 | ||||
|  | @ -27,6 +28,6 @@ function search(s) { | |||
| exports.search = search; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Coupang Product Search Client (coupang.js) version 0.1.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| // credentials.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
|  | @ -64,6 +65,6 @@ exports.push = push; | |||
| exports.get = get; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Credential store (credentials.js) version 0.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // db.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // Example Database API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var LIB = require("lib/std"); | ||||
| 
 | ||||
| exports.VERSIONINFO = "Database Lib (db.js) version 1.0"; | ||||
|  |  | |||
|  | @ -1,8 +1,10 @@ | |||
| // extramath.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // https://app.rdbl.io/T0AB411UHDW9/S0VLKP4HKVGC/P0TL9IQZOUFT
 | ||||
| 
 | ||||
| // 
 | ||||
| // Documentation: https://app.rdbl.io/T0AB411UHDW9/S0VLKP4HKVGC/P0TL9IQZOUFT
 | ||||
| // 
 | ||||
| // DTM(Document-term Matrix): https://en.wikipedia.org/wiki/Document-term_matrix
 | ||||
| function DTM() { | ||||
|     this.data = []; | ||||
|  | @ -75,6 +77,6 @@ exports.export_measureSimilarity = export_measureSimilarity; | |||
| exports.cartesianProduct = cartesianProduct; | ||||
| 
 | ||||
| exports.VERSIONINFO = "ExtraMath module (extramath.js) version 0.0.5"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,3 +1,8 @@ | |||
| // fakeworker.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var BASE64 = require("lib/base64"); | ||||
| 
 | ||||
| function FakeWorker() { | ||||
|  | @ -168,6 +173,6 @@ exports.repeat = function(target, worker, onError) { | |||
| }; | ||||
| 
 | ||||
| exports.VERSIONINFO = "FakeWorker module (fakeworker.js) version 0.0.6"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
							
								
								
									
										16
									
								
								lib/file.js
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								lib/file.js
									
									
									
									
									
								
							|  | @ -1,10 +1,10 @@ | |||
| //////////////////////////////////////////////////////////////////////////////////
 | ||||
| //
 | ||||
| //    file.js
 | ||||
| //    with the PIPE based IPC (lib/pipe-ipc.js)
 | ||||
| //
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // file.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // FILE IO Library with the PIPE based IPC (lib/pipe-ipc.js)
 | ||||
| // 
 | ||||
| var STD = require("lib/std"); | ||||
| var PipeIPC = require("lib/pipe-ipc"); | ||||
| 
 | ||||
|  | @ -254,6 +254,6 @@ exports.loadEnvFromArgs = loadEnvFromArgs; | |||
| exports.CdoCharset = PipeIPC.CdoCharset; | ||||
| 
 | ||||
| exports.VERSIONINFO = "File IO Library (file.js) version 0.2.13"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,8 @@ | |||
| // msoffice.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // filetypes.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| 
 | ||||
| // https://support.microsoft.com/en-au/office/file-formats-that-are-supported-in-excel-0943ff2c-6014-4e8d-aaea-b83d51d46247
 | ||||
|  | @ -21,6 +22,6 @@ function getExtensionsByOpenWith(openwith) { | |||
| exports.getExtensionsByOpenWith = getExtensionsByOpenWith; | ||||
| 
 | ||||
| exports.VERSIONINFO = "FileTypes version 0.0.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
							
								
								
									
										10
									
								
								lib/fsm.js
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								lib/fsm.js
									
									
									
									
									
								
							|  | @ -1,8 +1,10 @@ | |||
| // fsm.js
 | ||||
| // FSM(Finite State Machine) library for WelsonJS framework
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // 
 | ||||
| // FSM(Finite State Machine) library for WelsonJS framework
 | ||||
| // 
 | ||||
| // State constructor function
 | ||||
| function State(name) { | ||||
|     this.name = name; | ||||
|  | @ -81,6 +83,6 @@ exports.State = State; | |||
| exports.FSM = FSM; | ||||
| 
 | ||||
| exports.VERSIONINFO = "FSM(Finite State Machine) library (fsm.js) version 0.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
							
								
								
									
										13
									
								
								lib/grok.js
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								lib/grok.js
									
									
									
									
									
								
							|  | @ -1,11 +1,12 @@ | |||
| // grok.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // Grok (x.ai) requires an internet connection, and data may be transmitted externally. Users must adhere to the terms of use and privacy policy.
 | ||||
| // - Privacy Policy: https://x.ai/legal/privacy-policy
 | ||||
| //
 | ||||
| // SECURITY NOTICE
 | ||||
| // Grok requires an internet connection, and data may be transmitted externally. Please check the terms of use and privacy policy.
 | ||||
| // https://x.ai/legal/privacy-policy
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| var HTTP = require("lib/http"); | ||||
| var CRED = require("lib/credentials"); | ||||
|  | @ -48,6 +49,6 @@ function chat(content) { | |||
| exports.chat = chat; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Grok (x.ai) interface version 0.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
							
								
								
									
										11
									
								
								lib/groq.js
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								lib/groq.js
									
									
									
									
									
								
							|  | @ -1,10 +1,11 @@ | |||
| // groq.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // Groq requires an internet connection, and data may be transmitted externally. Users must adhere to the terms of use and privacy policy.
 | ||||
| // - Privacy Policy: https://groq.com/privacy-policy/
 | ||||
| // SECURITY NOTICE
 | ||||
| // Groq requires an internet connection, and data may be transmitted externally. Please check the terms of use and privacy policy.
 | ||||
| // https://groq.com/privacy-policy/
 | ||||
| //
 | ||||
| var FILE = require("lib/file"); | ||||
| var HTTP = require("lib/http"); | ||||
|  | @ -42,6 +43,6 @@ function chat(content) { | |||
| exports.chat = chat; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Groq (GroqCloud) interface (groq.js) version 0.1.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
							
								
								
									
										16
									
								
								lib/gtk.js
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								lib/gtk.js
									
									
									
									
									
								
							|  | @ -1,12 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| //
 | ||||
| // GTKServer API
 | ||||
| //
 | ||||
| // * Breif: GTK GUI Programming with WSH (Windows Scripting Host)
 | ||||
| // * Author: Go Namhyeon <gnh1201@gmail.com>
 | ||||
| // * Project site: https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // gtk.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // GTKServer API - GTK GUI Programming with WSH (Windows Scripting Host)
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
| // set binPath
 | ||||
|  |  | |||
|  | @ -1,6 +1,10 @@ | |||
| // har.js
 | ||||
| // HAR(HTTP Archive) manipulate and replay tools
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // HAR(HTTP Archive) manipulate and replay tools
 | ||||
| // 
 | ||||
| var PipeIPC = require("lib/pipe-ipc"); | ||||
| var FILE = require("lib/file"); | ||||
| var HTTP = require("lib/http"); | ||||
|  | @ -106,6 +110,6 @@ var HARObject = function() { | |||
| exports.HARObject = HARObject; | ||||
| 
 | ||||
| exports.VERSIONINFO = "HAR(HTTP Archive) manipulate and replay tools version 0.1.8"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = require; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // hosts.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Hosts API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SYS = require("lib/system"); | ||||
| var FILE = require("lib/file"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // http.js
 | ||||
| // HTTP REST API client for WelsonJS framework
 | ||||
| // Namhyeon Go (Catswords Research) <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // HTTP REST API client for WelsonJS framework
 | ||||
| // 
 | ||||
| var SYS = require("lib/system"); | ||||
| var FILE = require("lib/file"); | ||||
| var SHELL = require("lib/shell"); | ||||
|  |  | |||
|  | @ -1,6 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // httpserver.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // HTTPServer API
 | ||||
| ///////////////////////////////////////////////////////////////////////
 | ||||
| // 
 | ||||
| var HTTPServer = { | ||||
|     _this: this, // Avoid conflicts between HTTPServer and Winsock variables
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,10 +1,11 @@ | |||
| // ip-reputation.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // IP Reputation Checker requires an internet connection, and data may be transmitted externally. Users must adhere to the terms of use and privacy policy.
 | ||||
| // - AbuseIPDB website: https://www.abuseipdb.com/
 | ||||
| // SECURITY NOTICE
 | ||||
| // AbuseIPDB requires an internet connection, and data may be transmitted externally. Please check the terms of use and privacy policy.
 | ||||
| // https://www.abuseipdb.com/
 | ||||
| //
 | ||||
| var HTTP = require("lib/http"); | ||||
| var APIKEY = require("lib/apikey"); | ||||
|  | @ -27,6 +28,6 @@ function check(ip_address) { | |||
| exports.check = check; | ||||
| 
 | ||||
| exports.VERSIONINFO = "IP Reputation Checker (ip-reputation.js) version 0.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,8 +1,10 @@ | |||
| // jsonrpc2.js
 | ||||
| // JSON-RPC 2.0 wrapper for WelsonJS framework
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // JSON-RPC 2.0 wrapper for WelsonJS framework
 | ||||
| // 
 | ||||
| function JsonRpc2(url) { | ||||
|     this.url = url; | ||||
|     this.userAgent = "php-httpproxy/0.1.5 (Client; WelsonJS)"; | ||||
|  | @ -57,6 +59,6 @@ exports.create = create; | |||
| exports.DEFAULT_JSONRPC2_URL = DEFAULT_JSONRPC2_URL; | ||||
| 
 | ||||
| exports.VERSIONINFO = "JSON-RPC 2.0 wrapper (jsonrpc2.js) version 0.1.5"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
							
								
								
									
										191
									
								
								lib/kakaotalk.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										191
									
								
								lib/kakaotalk.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,191 @@ | |||
| // kakaotalk.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // KakaoTalk (Instant Messaging Service in South Korea) automation testing (PoC) library
 | ||||
| // 
 | ||||
| var Toolkit = require("lib/toolkit"); | ||||
| var AutoIt = require("lib/autoit"); | ||||
| 
 | ||||
| function KakaoTalk() { | ||||
|     this.lastTemplate = ""; | ||||
|     this.nextTemplate = "wall.png"; | ||||
|     this.oAutoIt = AutoIt.create(); | ||||
| 
 | ||||
|     // 사용할 메시지 지정
 | ||||
|     this.message = { | ||||
|         start: "ㅎㄱㅎㅈ",    // 하트 교환을 요청하는 메시지
 | ||||
|         clipboardPaste: "^v",    // 클립보드에 복사된 내용(이미지)를 붙여넣기
 | ||||
|         pushed: "ㄴ"   // 하트 번호 인증 (스크린샷 전송) 후 보낼 메시지. **카톡은 답글 모드에선 그림 첨부를 지원하지 않음**
 | ||||
|     }; | ||||
|     this.setMessage = function(messageType, messageText) { | ||||
|         this.message[messageType] = messageText; | ||||
|     }; | ||||
| 
 | ||||
|     // 템플릿 제어
 | ||||
|     this.setLastTemplate = function(templateName) { | ||||
|         this.lastTemplate = templateName; | ||||
|     }; | ||||
|     this.setNextTemplate = function(templateName) { | ||||
|         this.nextTemplate = templateName; | ||||
|     }; | ||||
| 
 | ||||
|     // x: 화면 좌표 X, y: 화면 좌표 Y, dx: 화면 좌표 X 보정값, dy: 화면 좌표 Y 보정값
 | ||||
|     this.mouseMove = function(x, y, dx, dy) { | ||||
|         this.oAutoIt.mouseMove(x + dx, y + dy); | ||||
|     }; | ||||
| 
 | ||||
|     // x: 화면 좌표 X, y: 화면 좌표 Y, dx: 화면 좌표 X 보정값, dy: 화면 좌표 Y 보정값
 | ||||
|     this.mouseClick = function(x, y, dx, dy) { | ||||
|         this.mouseMove(x, y, dx, dy); | ||||
|         this.oAutoIt.mouseClick("left"); | ||||
|     }; | ||||
|      | ||||
|     this.sendKeys = function(keys) { | ||||
|         this.oAutoIt.send(keys); | ||||
|     }; | ||||
| 
 | ||||
|     this.check = function(params) { | ||||
|         // 메시지 띄우기 (값이 정상적으로 들어오는지 확인용)
 | ||||
|         //Toolkit.alert(JSON.stringify(params));
 | ||||
| 
 | ||||
|         // 전달 받은 좌표를 숫자로 변환
 | ||||
|         var x = parseInt(params.position.x); | ||||
|         var y = parseInt(params.position.y); | ||||
|          | ||||
|         // 템플릿 이름
 | ||||
|         var templateName = params.fileName; | ||||
| 
 | ||||
|         // 각 클릭 단계별 처리
 | ||||
|         switch (templateName) { | ||||
|             case "wall.png":   // 입력창 클릭
 | ||||
|                 // 초기 상태에서 들어온 경우
 | ||||
|                 if (this.lastTemplate == "") { | ||||
|                     this.mouseClick(x, y, -32, 32);   // 채팅창 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.sendKeys(this.message.start);   // 메시지 입력
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("button_message_send.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                  | ||||
|                 // 하트를 누르고 프로필 창 닫기까지 완료한 경우
 | ||||
|                 if (this.lastTemplate == "binary_button_close_profile_blured.png") { | ||||
|                     this.mouseClick(x, y, -32, 32);   // 채팅창 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                      | ||||
|                     this.sendKeys(this.message.clipboardPaste);   // 붙여넣기 명령
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("button_clipboard_send.png");  // 다음 상태 설정
 | ||||
|                 }     | ||||
| 
 | ||||
|                 break; | ||||
|              | ||||
|             case "wall_reply_ready.png": | ||||
|                 // 하트 누른거 인증
 | ||||
|                 if (this.lastTemplate == "button_reply.png") { | ||||
|                     this.mouseClick(x, y, -32, 56 + 32);   // 채팅창 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.sendKeys(this.message.pushed);   // "눌렀다"는 메시지 입력
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("button_message_send.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                 break; | ||||
| 
 | ||||
|             // 클립보드 전송
 | ||||
|             case "button_clipboard_send.png": | ||||
|                 if (this.lastTemplate == "wall.png") { | ||||
|                     this.mouseClick(x, y, 0, 0);   // 클립보드 전송 버튼 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("mention_reply.png:-1");  // 기억해두었던 "나에게 답장" 위치 다시 찾기
 | ||||
|                 } | ||||
|                 break; | ||||
|              | ||||
|             case "button_message_send.png":   // 메시지 전송 버튼 찾았을 때
 | ||||
|                 // 이전 작업이 신규 메시지 전송일 때
 | ||||
|                 if (this.lastTemplate == "wall.png") { | ||||
|                     this.mouseClick(x, y, 0, 0);   // 메시지 전송 버튼 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("mention_reply.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                  | ||||
|                 // 이전 작업이 답글 전송일 때
 | ||||
|                 if (this.lastTemplate == "wall_reply_ready.png") { | ||||
|                     this.mouseClick(x, y, 0, 0);   // 메시지 전송 버튼 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
| 
 | ||||
| 					/**** 회기점 (여기서는 "ㅎㄱㅎㅈ" 메시지를 이미 보낸 상태이므로, 다시 메시지를 보내지 않고 다른 응답을 기다림.) ****/ | ||||
|                     this.setNextTemplate("mention_reply.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                 break; | ||||
|                  | ||||
|             case "mention_reply.png":  // 답글이 도착했을 때
 | ||||
|                 // 이전 작업이 메시지 전송 버튼 클릭이었을 때에만 진행
 | ||||
|                 if (this.lastTemplate == "button_message_send.png") { | ||||
|                     this.mouseClick(x, y, -40, -9);   // 아바타 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("binary_button_view_profile.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                  | ||||
|                 // 하트 찍기를 완료하고 "나에게 답장" 메시지를 다시 찾은 경우 진행
 | ||||
|                 if (this.lastTemplate == "button_clipboard_send.png") { | ||||
|                     this.mouseMove(x, y, 100, 30);   // 해당 메시지로 커서 이동
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("button_reply.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                 break; | ||||
|                  | ||||
|             case "button_reply.png":   // 답글 버튼을 찾았을 때
 | ||||
|                 // "나에게 답장" 메시지를 다시 찾은 뒤, 답글 버튼을 눌렀을 때에만 진행
 | ||||
|                 if (this.lastTemplate == "mention_reply.png") { | ||||
|                     this.mouseClick(x, y, 5, 5);   // 답글 버튼 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("wall_reply_ready.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                 break; | ||||
| 
 | ||||
|             case "binary_button_view_profile.png":  // 프로필 보기 버튼을 찾았을 때
 | ||||
|                 // 답글이 온 경우에만 진행
 | ||||
|                 if (this.lastTemplate == "mention_reply.png") { | ||||
|                     this.mouseClick(x, y, 0, 0);   // 프로필 보기 버튼 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("button_heart.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                 break; | ||||
| 
 | ||||
|             case "button_heart.png":  // 하트 버튼 찾았을 때
 | ||||
|                 if (this.lastTemplate == "binary_button_view_profile.png") { | ||||
|                     this.mouseClick(x, y, 0, 0);   // 하트 버튼 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("button_heart_clicked.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                 break; | ||||
| 
 | ||||
|             case "button_heart_clicked.png":  // 하트 버튼 클릭했을 때
 | ||||
|                 if (this.lastTemplate == "button_heart.png") { | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("binary_button_close_profile_blured.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                 break; | ||||
|              | ||||
|             case "binary_button_close_profile_blured.png":    // 프로필 창을 닫기
 | ||||
|                 if (this.lastTemplate == "button_heart_clicked.png") {    // 하트 버튼을 찍고 들어왔으면
 | ||||
|                     this.mouseClick(x, y, 3, 3);   // 프로필 창 닫기 버튼 클릭
 | ||||
|                     sleep(1000);   // 1초 기다림
 | ||||
|                     this.setLastTemplate(templateName);  // 현재 상태 저장
 | ||||
|                     this.setNextTemplate("wall.png");  // 다음 상태 설정
 | ||||
|                 } | ||||
|                 break; | ||||
|         } | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| exports.KakaoTalk = KakaoTalk; | ||||
|  | @ -1,10 +1,12 @@ | |||
| // language-inference-engine.js
 | ||||
| // Language Inference Engine (e.g., NLP, LLM) services integration
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // Language Inference Engine requires an internet connection, and data may be transmitted externally. Users must adhere to the terms of use and privacy policy.
 | ||||
| // 
 | ||||
| // Language Inference Engine (e.g., NLP, LLM) services integration
 | ||||
| //
 | ||||
| // SECURITY NOTICE
 | ||||
| // A LLM service requires an internet connection, and data may be transmitted externally. Please the terms of use and privacy policy.
 | ||||
| // - OpenAI: https://openai.com/policies/row-privacy-policy/
 | ||||
| // - Anthropic: https://www.anthropic.com/legal/privacy
 | ||||
| // - Groq: https://groq.com/privacy-policy/
 | ||||
|  | @ -552,6 +554,6 @@ exports.create = function() { | |||
| }; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Language Inference Engine integration version 0.1.11"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // ldplayer.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // LDPlayer API
 | ||||
| ///////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var SYS = require("lib/system"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| // lz77.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // 
 | ||||
| function compress(input) { | ||||
|     var compressed = ''; | ||||
|     var searchBufferIndex = 0; | ||||
|  | @ -67,6 +69,6 @@ exports.compress = compress; | |||
| exports.decompress = decompress; | ||||
| 
 | ||||
| exports.VERSIONINFO = "LZ77 (MsCompress) algorithm implementation version 0.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
							
								
								
									
										18
									
								
								lib/msmq.js
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								lib/msmq.js
									
									
									
									
									
								
							|  | @ -1,13 +1,13 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // MSMQ(Microsoft Message Queuing) API
 | ||||
| //
 | ||||
| // msmq.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // references:
 | ||||
| //   - https://gist.github.com/vladaman/6375841
 | ||||
| //   - https://docs.microsoft.com/en-us/previous-versions/windows/desktop/msmq/ms703952(v=vs.85)
 | ||||
| //   - https://docs.microsoft.com/en-us/previous-versions/windows/desktop/msmq/ms705286(v=vs.85)
 | ||||
| //
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // https://gist.github.com/vladaman/6375841
 | ||||
| // https://docs.microsoft.com/en-us/previous-versions/windows/desktop/msmq/ms703952(v=vs.85)
 | ||||
| // https://docs.microsoft.com/en-us/previous-versions/windows/desktop/msmq/ms705286(v=vs.85)
 | ||||
| // 
 | ||||
| var MSMQObject = function(queueName) { | ||||
|     var MQ_SEND_ACCESS = 2; | ||||
|     var MQ_DENY_NONE = 0; | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| // msoffice.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var STD = require("lib/std"); | ||||
| var SYS = require("lib/system"); | ||||
| var FILE = require("lib/file"); | ||||
|  | @ -222,6 +224,6 @@ exports.PowerPoint = PowerPoint; | |||
| exports.Word = Word; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Microsoft Office interface (msoffice.js) version 0.2.0"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
							
								
								
									
										11
									
								
								lib/nmap.js
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								lib/nmap.js
									
									
									
									
									
								
							|  | @ -1,7 +1,8 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // NMAP interface API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // nmap.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var client = require("lib/catproxy"); | ||||
| 
 | ||||
| var PortScanner = function(binpath, url) { | ||||
|  | @ -23,6 +24,6 @@ var PortScanner = function(binpath, url) { | |||
| exports.PortScanner = PortScanner; | ||||
| 
 | ||||
| exports.VERSIONINFO = "NMAP interface version 0.2"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // noxplayer.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // NoxPlayer API
 | ||||
| ///////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var SYS = require("lib/system"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| // ovftool.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Download OVFTool (Open Virtualization Format (OVF) Tool):
 | ||||
|  | @ -66,6 +67,6 @@ exports.setCredential = setCredential; | |||
| exports.create = create; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Broadcom/VMware OVF Tool interface (ovftool.js) version 0.1.2"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // pipe-ipc.js
 | ||||
| // Pipe based IPC implementation for WelsonJS framework
 | ||||
| // Namhyeon Go (Catswords Research) <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Pipe based IPC implementation for WelsonJS framework
 | ||||
| // 
 | ||||
| var STD = require("lib/std"); | ||||
| 
 | ||||
| // https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/opentextfile-method
 | ||||
|  | @ -553,6 +556,6 @@ exports.adSaveCreateOverWrite = adSaveCreateOverWrite; | |||
| exports.adModeReadWrite = adModeReadWrite; | ||||
| 
 | ||||
| exports.VERSIONINFO = "PIPE-based IPC Module (pipe-ipc.js) version 0.1.23"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = require; | ||||
|  |  | |||
|  | @ -1,6 +1,10 @@ | |||
| // Powershell Interface API
 | ||||
| // Namhyeon Go (Catswords Research) <abuse@catswords.net>
 | ||||
| // powershell.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Powershell Interface API
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
| var PowershellObject = function() { | ||||
|  | @ -149,6 +153,6 @@ exports.execCommand = execCommand; | |||
| exports.runAs = runAs; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Powershell Interface (powershell.js) version 0.1.4"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,8 +1,9 @@ | |||
| // punycode.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // SECURITY NOTICE
 | ||||
| // Due to potential security issues, the Public API URL is not provided. If you need to request access, please refer to the project's contact information.
 | ||||
| // You can download the server-side script that implements this functionality from the link below:
 | ||||
| // https://github.com/gnh1201/caterpillar
 | ||||
|  | @ -43,6 +44,6 @@ exports.encode = encode; | |||
| exports.decode = decode; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Punycode Conversion Client (punycode.js) version 0.2.4"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // python3.js
 | ||||
| // Python Interface
 | ||||
| // Namhyeon Go (Catswords Research) <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Python Interface
 | ||||
| // 
 | ||||
| var SYS = require("lib/system"); | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // rand.js
 | ||||
| 
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| 
 | ||||
| function randomize() { | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // registry.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Registry API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
| // http://apidock.com/ruby/Win32/Registry/Constants
 | ||||
|  |  | |||
|  | @ -1,8 +1,10 @@ | |||
| // router.js
 | ||||
| // Content-Type based URI router for WelsonJS framework
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // 
 | ||||
| // Content-Type based URI router for WelsonJS framework
 | ||||
| // 
 | ||||
| function RouteModel(path, callback) { | ||||
|     this.path = path; | ||||
|     this.callback = callback; | ||||
|  | @ -88,6 +90,6 @@ function RouterObject() { | |||
| exports.Router = new RouterObject(); | ||||
| 
 | ||||
| exports.VERSIONINFO = "Content-Type based URI router (router.js) version 0.1.2"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,3 +1,8 @@ | |||
| // sendboxie.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
| var SandboxieObject = function() { | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // security.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Security Policy API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SYS = require("lib/system"); | ||||
| var FILE = require("lib/file"); | ||||
| var REG = require("lib/registry"); | ||||
|  | @ -85,6 +88,6 @@ exports.getAntiVirusProducts = getAntiVirusProducts; | |||
| exports.OpenThreatSettings = OpenThreatSettings; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Security Policy Module (security.js) version 0.2.2"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,11 +1,10 @@ | |||
| //////////////////////////////////////////////////////////////////////////////////
 | ||||
| // sendmail.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Sendmail using either CDO or Persits.MailSender
 | ||||
| //
 | ||||
| //	sendmail.js
 | ||||
| //
 | ||||
| //	Sendmail using either CDO or Persits.MailSender
 | ||||
| //
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
| // Private APIs / Utility functions
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // serp.js
 | ||||
| // SERP/SEO tools integration for WelsonJS framework
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // SERP/SEO tools integration for WelsonJS framework
 | ||||
| // 
 | ||||
| function parseUrl(url) { | ||||
|     var getEngine = function(url) { | ||||
|         var defaultEngine = "google"; | ||||
|  | @ -59,6 +62,6 @@ function parseUrl(url) { | |||
| exports.parseUrl = parseUrl; | ||||
| 
 | ||||
| exports.VERSIONINFO = "SERP/SEO tools integration (serp.js) version 0.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,8 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // Shadowsocks API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // shadowsocks.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var CONFIG = require("lib/config"); | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										10
									
								
								lib/shell.js
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								lib/shell.js
									
									
									
									
									
								
							|  | @ -1,6 +1,10 @@ | |||
| // Windows Shell Interface with WelsonJS Pipe-IPC module
 | ||||
| // Namhyeon Go (Catswords Research) <abuse@catswords.net>
 | ||||
| // shell.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Windows Shell Interface with WelsonJS Pipe-IPC module
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| var PipeIPC = require("lib/pipe-ipc"); | ||||
| 
 | ||||
|  | @ -255,6 +259,6 @@ exports.getPathOfMyDocuments = function() { | |||
| exports.CdoCharset = PipeIPC.CdoCharset; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Windows Shell Interface (shell.js) version 0.3.18"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
							
								
								
									
										10
									
								
								lib/std.js
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								lib/std.js
									
									
									
									
									
								
							|  | @ -1,8 +1,10 @@ | |||
| // std.js
 | ||||
| // WelsonJS Standard Library
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| //
 | ||||
| // 
 | ||||
| // WelsonJS Standard Library
 | ||||
| // 
 | ||||
| // Polyfills
 | ||||
| if (!Function.prototype.GetResource) { | ||||
|     Function.prototype.GetResource = function(ResourceName) { | ||||
|  | @ -617,6 +619,6 @@ exports.confirm = confirm; | |||
| exports.prompt = prompt; | ||||
| 
 | ||||
| exports.VERSIONINFO = "WelsonJS Standard Library (std.js) version 0.8.17"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,7 +1,8 @@ | |||
| /* | ||||
|  * strings.js | ||||
|  */ | ||||
| 
 | ||||
| // strings.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| function numberFormat(number, decimals, decPoint, thousandsSep) { // eslint-disable-line camelcase
 | ||||
|     //  discuss at: https://locutus.io/php/number_format/
 | ||||
|     // original by: Jonas Raoni Soares Silva (https://www.jsfromhell.com)
 | ||||
|  |  | |||
|  | @ -1,5 +1,8 @@ | |||
| // lib/system.js
 | ||||
| // system.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var WMI =  require("lib/wmi"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| // task-scheduler.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // 
 | ||||
| // Connect to Task Scheduler service
 | ||||
| function connect() { | ||||
|     var service = CreateObject("Schedule.Service"); | ||||
|  | @ -92,6 +94,6 @@ exports.createAndRegisterTask = createAndRegisterTask; | |||
| exports.test = test; | ||||
| 
 | ||||
| exports.VERSIONINFO = "Windows Task Scheduler Scripting Interface (task-scheduler.js) version 0.1"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = require; | ||||
|  |  | |||
							
								
								
									
										36
									
								
								lib/task.js
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								lib/task.js
									
									
									
									
									
								
							|  | @ -1,21 +1,23 @@ | |||
| //////////////////////////////////////////////////////////////////////////////////
 | ||||
| // task.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Task API (Time-sharing based `async`, `setTimeout`, `setInterval`, implementation in WSH.js)
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| /* // example: | ||||
|  * // var TASK = require("lib/task");
 | ||||
|  * // var taskQueue = TASK.createTaskQueue();
 | ||||
|  * // TASK.putTask(queue, TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(100); }, [1, 2, 3]))
 | ||||
|  * //     .then(TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(200); }, [4, 5, 6]))
 | ||||
|  * //     .then(TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(300); }, [7, 8, 9]))
 | ||||
|  * // ;
 | ||||
|  * // TASK.putTask(queue, TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(100); }, [3, 2, 1])
 | ||||
|  * //     .then(TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(200); }, [6, 5, 4]))
 | ||||
|  * //     .then(TASK.createTask(function(task, a, b, c) { TASK.stop(); console.log(a + b + c); sleep(300); }, [9, 8, 7]))
 | ||||
|  * // ;
 | ||||
|  * // taskQueue.run();
 | ||||
|  */ | ||||
| 
 | ||||
| //
 | ||||
| // example:
 | ||||
| // var TASK = require("lib/task");
 | ||||
| // var taskQueue = TASK.createTaskQueue();
 | ||||
| // TASK.putTask(queue, TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(100); }, [1, 2, 3]))
 | ||||
| //     .then(TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(200); }, [4, 5, 6]))
 | ||||
| //     .then(TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(300); }, [7, 8, 9]))
 | ||||
| // ;
 | ||||
| // TASK.putTask(queue, TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(100); }, [3, 2, 1])
 | ||||
| //     .then(TASK.createTask(function(task, a, b, c) { console.log(a + b + c); sleep(200); }, [6, 5, 4]))
 | ||||
| //     .then(TASK.createTask(function(task, a, b, c) { TASK.stop(); console.log(a + b + c); sleep(300); }, [9, 8, 7]))
 | ||||
| // ;
 | ||||
| // taskQueue.run();
 | ||||
| // 
 | ||||
| function Task(f, params) { | ||||
|     this.f = f; | ||||
|     this.params = params; | ||||
|  |  | |||
							
								
								
									
										111
									
								
								lib/timer.js
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								lib/timer.js
									
									
									
									
									
								
							|  | @ -1,111 +0,0 @@ | |||
| /* | ||||
|     Windows Scripting Host doesn't provide  setTimeout  and  clearTimeout. | ||||
|     This serves as a replacement.  | ||||
| 
 | ||||
|     To use: | ||||
| 
 | ||||
|     Set up all the deferred actions you like with the usual setTimeout calls | ||||
|        setTimeout(function() { | ||||
|          // do something
 | ||||
|        }, 200); | ||||
| 
 | ||||
|     Then call  setTimeout.queue.run().  | ||||
|     Deferred actions can spawn more deferred actions. | ||||
|     If the queue ever runs dry, it will stop running and return. | ||||
|     Remember, javascript is single-threaded. If you put more | ||||
|     functions in the queue, call the run method again. | ||||
| */ | ||||
| 
 | ||||
| exports.VERSIONINFO = "Timer Module (timer.js) version 0.1"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
| 
 | ||||
| exports.sleep = function(ms, callback) { | ||||
|     WScript.Sleep(ms); | ||||
|     if(typeof(callback) == "function") { | ||||
|         callback(); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| exports.setTimeout = function(func, delay) { | ||||
|     var when = new Date().getTime() + delay; | ||||
|     return exports.setTimeout.queue.add(func, when); | ||||
| }; | ||||
| 
 | ||||
| exports.clearTimeout = function(timer) { | ||||
|     exports.setTimeout.queue.del(timer); | ||||
| }; | ||||
| 
 | ||||
| // A queue object, with methods  add, del, run.
 | ||||
| // Tied to setTimeout to keep it out of the global namespace.
 | ||||
| 
 | ||||
| exports.setTimeout.queue = (function() { | ||||
|     var store = []; | ||||
|     var nextid = 0; | ||||
| 
 | ||||
|     return { | ||||
|         add: function(func, when) { | ||||
|             store.push({ | ||||
|                 id: nextid, | ||||
|                 func: func, | ||||
|                 when: when | ||||
|             }); | ||||
|             return nextid++; | ||||
|         }, | ||||
| 
 | ||||
|         del: function(id) { | ||||
|             for (var i = 0; i < store.length; i++) { | ||||
|                 if (store[i].id == id) { | ||||
|                     store.splice(i, 1); | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
| 
 | ||||
|         run: function() { | ||||
|             while (store.length > 0) { | ||||
|                 var now = new Date().getTime(); | ||||
|                 for (var i = 0; i < store.length; i++) { | ||||
|                     var item = store[i]; | ||||
| 
 | ||||
|                     if (now > item.when) { | ||||
|                         exports.setTimeout.queue.del(item.id); | ||||
|                         item.func(); //  <---- actually invoke the function here
 | ||||
| 
 | ||||
|                         // Note: we can't continue looping through the queue here, 
 | ||||
|                         // because we removed one of the items. The loop limit is
 | ||||
|                         // now incorrect. Easiest thing to do is restart the loop.
 | ||||
| 
 | ||||
|                         break; | ||||
|                     } | ||||
| 
 | ||||
|                     // We burn a millisecond here to throttle the looping.
 | ||||
|                     // Otherwise it will loop on the order of 200,000 times per sec.
 | ||||
| 
 | ||||
|                     exports.sleep(1); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| })(); | ||||
| 
 | ||||
| exports.setTimeout.test = function() { | ||||
|     console.log('You should see: C,A,D,N,M'); | ||||
| 
 | ||||
|     exports.setTimeout(console.log('A'), 500); | ||||
|     var b = setTimeout(console.log('B'), 1220); | ||||
|     exports.setTimeout(console.log('C'), 300); | ||||
|     exports.setTimeout(console.log('D'), 1000); | ||||
|     clearTimeout(b); | ||||
| 
 | ||||
|     exports.setTimeout(function() { | ||||
|         console.log('N'); | ||||
|         exports.setTimeout(function() { | ||||
|             console.log('M'); | ||||
|         }, 100) | ||||
|     }, 1300); | ||||
| 
 | ||||
|     exports.setTimeout.queue.run(); | ||||
|     console.log('done'); | ||||
| }; | ||||
| 
 | ||||
| /////  setTimeout.test();   // uncomment to run test
 | ||||
|  | @ -1,8 +1,10 @@ | |||
| // toolkit.js
 | ||||
| // WelsonJS native toolkit interface version 0.3.7
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // 
 | ||||
| // WelsonJS native toolkit interface version 0.3.7
 | ||||
| // 
 | ||||
| function ToolkitObject() { | ||||
|     this._interface = null; | ||||
| 
 | ||||
|  | @ -120,6 +122,6 @@ exports.encryptStringHIGHT = encryptString; | |||
| exports.decryptStringHIGHT = decryptString; | ||||
| 
 | ||||
| exports.VERSIONINFO = "WelsonJS native toolkit interface version 0.3.7"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
|  |  | |||
|  | @ -1,9 +1,9 @@ | |||
| // totp.js
 | ||||
| // TOTP library for WelsonJS framework
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // ***SECURITY NOTICE***
 | ||||
| // SECURITY NOTICE
 | ||||
| // Due to potential security issues, the Public API URL is not provided. If you need to request access, please refer to the project's contact information.
 | ||||
| // You can download the server-side script that implements this functionality from the link below:
 | ||||
| // https://github.com/gnh1201/caterpillar
 | ||||
|  | @ -44,7 +44,7 @@ exports.getPubKey = getPubKey; | |||
| exports.getOtp = getOtp; | ||||
| 
 | ||||
| exports.VERSIONINFO = "TOTP Client (totp.js) version 0.1.8"; | ||||
| exports.AUTHOR = "abuse@catswords.net"; | ||||
| exports.AUTHOR = "gnh1201@catswords.re.kr"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // tun2sock.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // TUN2SOCKS API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var SYS = require("lib/system"); | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										11
									
								
								lib/uri.js
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								lib/uri.js
									
									
									
									
									
								
							|  | @ -1,9 +1,8 @@ | |||
| //////////////////////////////////////////////////////////////////////////////////
 | ||||
| //
 | ||||
| //    uri.js
 | ||||
| //
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // uri.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
| // Private APIs / Utility functions
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // vbscript.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // VBScript API
 | ||||
| ///////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| //
 | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
| exports.VERSIONINFO = "VBScript (vbscript.js) version 0.1"; | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| //////////////////////////////////////////////////////////////////////////////////
 | ||||
| // virtualinput.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // VirtualInput API
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var VirtualInputObject = function() { | ||||
| 	this.oShell = null; | ||||
| 	this.oAutoIt = null; | ||||
|  |  | |||
							
								
								
									
										12
									
								
								lib/wamr.js
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								lib/wamr.js
									
									
									
									
									
								
							|  | @ -1,7 +1,11 @@ | |||
| // WAMR for WelsonJS
 | ||||
| //   - WAMR: https://github.com/bytecodealliance/wasm-micro-runtime
 | ||||
| //   - WelsonJS: https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // wamr.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // WAMR(WebAssembly Micro Runtime) integration for WelsonJS framework
 | ||||
| // https://github.com/bytecodealliance/wasm-micro-runtime
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
| var WAMRObject = function() { | ||||
|  |  | |||
|  | @ -1,10 +1,11 @@ | |||
| // Websocket API for WelsonJS framework
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // websocket.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // references:
 | ||||
| // - https://stackoverflow.com/questions/52783655/use-curl-with-chrome-remote-debugging
 | ||||
| // - https://github.com/vi/websocat
 | ||||
| // https://stackoverflow.com/questions/52783655/use-curl-with-chrome-remote-debugging
 | ||||
| // https://github.com/vi/websocat
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var SYS = require("lib/system"); | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // winlibs.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Windows Library API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var FILE = require("lib/file"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,35 +1,122 @@ | |||
| //////////////////////////////////////////////////////////////////////////////////
 | ||||
| // VirtualInput API
 | ||||
| /////////////////////////////////////////////////////////////////////////////////
 | ||||
| // winservice.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // Windows Service API
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| 
 | ||||
| var VirtualInputObject = function() { | ||||
| 	this.oShell = null; | ||||
| 	this.oAutoIt = null; | ||||
| 
 | ||||
| 	this.create = function() { | ||||
| 		try { | ||||
| 			this.oShell = CreateObject("WScript.Shell"); | ||||
| 			this.oAutoIt = CreateObject("AutoItX.Control"); | ||||
| 		} catch (e) { | ||||
| 			console.error("VirtualInputObject.create() -> " + e.message); | ||||
| 		} | ||||
| 	}; | ||||
| 	 | ||||
| 	this.moveMouse = function(x, y) { | ||||
| 		this.oAutoIt.MouseMove(x, y); | ||||
| 	}; | ||||
| 
 | ||||
| 	this.sendKeys = function(s) { | ||||
| 		this.oShell.SendKeys(s); | ||||
| 	}; | ||||
| 
 | ||||
| 	this.create(); | ||||
| }; | ||||
| 
 | ||||
| exports.VERSIONINFO = "VirtualInput Lib (virtualinput.js) version 0.1"; | ||||
| exports.VERSIONINFO = "Windows Service Lib (service.js) version 0.1"; | ||||
| exports.global = global; | ||||
| exports.require = global.require; | ||||
| 
 | ||||
| exports.create = function() { | ||||
| 	return new VirtualInputObject(); | ||||
| // https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dd228922(v=ws.11)
 | ||||
| exports.queryService = function(name, options) { | ||||
|     var cmd = [ | ||||
|             "sc", | ||||
|             "query", | ||||
|             name | ||||
|         ], | ||||
|         _options = { | ||||
|             type: [ | ||||
|                 "service", // type= {driver | service | all}
 | ||||
|                 "own" // type= {own | share | interact | kernel | filesys | rec | adapt}
 | ||||
|             ], | ||||
|             state: "active", // state= {active | inactive | all}
 | ||||
|             bufsize: "1024", // bufsize= <BufferSize>
 | ||||
|             ri: "0", // ri= <ResumeIndex>
 | ||||
|             group: "" // group= <GroupName>
 | ||||
|         }; | ||||
| 
 | ||||
|     for (var k in _options) { | ||||
|         if (k in options) { | ||||
|             _options[k] = options[k]; | ||||
|         } | ||||
| 
 | ||||
|         if (_options[k] !== false) { | ||||
|             if (Array.isArray(_options[k])) { | ||||
|                 for (var i in options[k]) { | ||||
|                     cmd.push(k + '='); | ||||
|                     cmd.push(_options[k][i]); | ||||
|                 } | ||||
|             } else { | ||||
|                 cmd.push(k + '='); | ||||
|                 cmd.push(_options[k]); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     return SHELL.exec(cmd); | ||||
| }; | ||||
| 
 | ||||
| // https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/sc-create
 | ||||
| exports.createService = function(name, options) { | ||||
|     var cmd = [ | ||||
|             "sc", | ||||
|             "create", | ||||
|             name | ||||
|         ], | ||||
|         _options = { | ||||
|             type: "share", // type= {own | share | kernel | filesys | rec | interact type= {own | share}}
 | ||||
|             start: "demand", // start= {boot | system | auto | demand | disabled | delayed-auto }	
 | ||||
|             error: "normal", // error= {normal | severe | critical | ignore}	
 | ||||
|             binPath: false, // binpath= <BinaryPathName>
 | ||||
|             group: false, // group= <LoadOrderGroup>
 | ||||
|             tag: false, // tag= {yes | no}
 | ||||
|             depend: false, // depend= <dependencies>
 | ||||
|             obj: false, // obj= {<AccountName> | <ObjectName>}
 | ||||
|             DisplayName: false, // displayname= <DisplayName>
 | ||||
|             password: false // password= <Password>
 | ||||
|         }; | ||||
| 
 | ||||
|     for (var k in _options) { | ||||
|         if (k in options) { | ||||
|             _options[k] = options[k]; | ||||
|         } | ||||
| 
 | ||||
|         if (_options[k] !== false) { | ||||
|             if (Array.isArray(_options[k])) { | ||||
|                 for (var i in options[k]) { | ||||
|                     cmd.push(k + '='); | ||||
|                     cmd.push(_options[k][i]); | ||||
|                 } | ||||
|             } else { | ||||
|                 cmd.push(k + '='); | ||||
|                 cmd.push(_options[k]); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     return SHELL.exec(cmd); | ||||
| }; | ||||
| 
 | ||||
| exports.startService = function(name, args) { | ||||
|     var cmd = [ | ||||
|         "sc", | ||||
|         "start", | ||||
|         name | ||||
|     ]; | ||||
| 
 | ||||
|     if (typeof(args) !== "undefined") { | ||||
|         cmd = cmd.concat(args); | ||||
|     } | ||||
| 
 | ||||
|     return SHELL.exec(cmd); | ||||
| }; | ||||
| 
 | ||||
| exports.stopService = function(name) { | ||||
|     return SHELL.exec([ | ||||
|         "sc", | ||||
|         "stop", | ||||
|         name | ||||
|     ]); | ||||
| }; | ||||
| 
 | ||||
| exports.deleteService = function(name) { | ||||
|     return SHELL.exec([ | ||||
|         "sc", | ||||
|         "delete", | ||||
|         name | ||||
|     ]); | ||||
| }; | ||||
|  | @ -1,7 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // wintap.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // WindowsTAP API
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var SYS = require("lib/system"); | ||||
| var FILE = require("lib/file"); | ||||
|  |  | |||
|  | @ -1,7 +1,10 @@ | |||
| // wmi.js
 | ||||
| // WMI(Windows Management Instrumentation) API interface for WelsonJS framework
 | ||||
| // Namhyeon Go (Catswords Research) <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // WMI(Windows Management Instrumentation) API interface for WelsonJS framework
 | ||||
| // 
 | ||||
| var WMIQueryObject = function() { | ||||
|     var wbemFlagReturnImmediately = 0x10; | ||||
|     var wbemFlagForwardOnly = 0x20; | ||||
|  |  | |||
|  | @ -1,6 +1,10 @@ | |||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // xml.js
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| // XML interface
 | ||||
| ////////////////////////////////////////////////////////////////////////
 | ||||
| // 
 | ||||
| var FILE = require("lib/file"); | ||||
| var PipeIPC = require("lib/pipe-ipc"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| // officeloader.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var SYS = require("lib/system"); | ||||
| var Office = require("lib/msoffice"); | ||||
| var ChatGPT = require("lib/chatgpt"); | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| ; @created_on 2020-06-26 | ||||
| ; @updated_on 2025-03-21 | ||||
| ; @author Namhyeon Go (Catswords Research) <abuse@catswords.net> | ||||
| ; @author Namhyeon Go <gnh1201@catswords.re.kr> | ||||
| 
 | ||||
| [Setup] | ||||
| AppName=WelsonJS | ||||
|  |  | |||
|  | @ -1,6 +1,8 @@ | |||
| // shoutcut.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var SHELL = require("lib/shell"); | ||||
| var SYS = require("lib/system"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,8 @@ | |||
| // testloader.js
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| 
 | ||||
| // 
 | ||||
| // load libraries
 | ||||
| var FILE = require("lib/file"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,7 +1,8 @@ | |||
| // uriloader.js
 | ||||
| // URI scheme loader for WelsonJS framework
 | ||||
| // Namhyeon Go <abuse@catswords.net>
 | ||||
| // https;//github.com/gnh1201/welsonjs
 | ||||
| // Copyright 2019-2025, Namhyeon Go <gnh1201@catswords.re.kr> and the WelsonJS contributors.
 | ||||
| // SPDX-License-Identifier: GPL-3.0-or-later
 | ||||
| // https://github.com/gnh1201/welsonjs
 | ||||
| // 
 | ||||
| var SYS = require("lib/system"); | ||||
| var SHELL = require("lib/shell"); | ||||
| var URI = require("lib/uri"); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 GitHub
							GitHub