mirror of
https://github.com/gnh1201/welsonjs.git
synced 2025-06-08 14:19:03 +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