Merge pull request #269 from gnh1201/dev
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:
Namhyeon Go 2025-06-07 17:04:19 +09:00 committed by GitHub
commit 3e4bf1d1ed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
91 changed files with 771 additions and 425 deletions

View File

@ -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

View File

@ -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;
```

View File

@ -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
View File

@ -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("");

View File

@ -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,

View File

@ -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");

View File

@ -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
View File

@ -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");

View File

@ -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",

View File

@ -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",

View File

@ -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

View File

@ -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");

View File

@ -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");

View File

@ -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");

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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";

View File

@ -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;

View File

@ -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;

View File

@ -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");

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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");

View File

@ -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;

View File

@ -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) {

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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";

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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");

View 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");

View File

@ -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

View File

@ -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;

View File

@ -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
View 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;

View File

@ -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;

View File

@ -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");

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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");

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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");

View File

@ -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() {

View File

@ -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

View File

@ -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;

View File

@ -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() {

View File

@ -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;

View File

@ -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
/////////////////////////////////////////////////////////////////////////////////

View File

@ -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;

View File

@ -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");

View File

@ -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;

View File

@ -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;

View File

@ -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)

View File

@ -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");

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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");

View File

@ -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
/////////////////////////////////////////////////////////////////////////////////

View File

@ -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";

View File

@ -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;

View File

@ -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() {

View File

@ -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");

View File

@ -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");

View 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
]);
};

View File

@ -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");

View 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;

View File

@ -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");

View File

@ -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");

View File

@ -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

View File

@ -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");

View File

@ -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");

View 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");