WelsonJS - Build a Windows app on the Windows built-in JavaScript engine
Go to file
2024-07-10 20:42:46 +09:00
.github/workflows Create codeql-analysis.yml 2022-03-04 15:19:29 +09:00
app fix 2024-07-10 19:54:18 +09:00
bin Update README.MD 2024-01-27 10:02:42 +09:00
data Clean up code 2024-06-10 06:23:35 +09:00
examples Update testloader.js and more 2023-10-31 05:41:52 +09:00
lib Update wmi.js 2024-07-10 20:42:46 +09:00
tmp Create README.md 2022-04-15 14:44:06 +09:00
WelsonJS.Toolkit Edit installer files 2024-05-13 17:37:54 +09:00
.gitignore Update the native component 2024-01-04 15:55:21 +09:00
.sonarcloud.properties Create .sonarcloud.properties 2024-07-10 15:20:48 +09:00
app.hta Update app.hta, app/index.js, app/signin.html, app/test.html 2023-10-30 16:58:29 +09:00
app.js Clean up code 2024-06-10 06:23:35 +09:00
bgloader.js Update bgloader.js 2020-12-10 11:27:05 +09:00
bootstrap.bat Clean unnecessary code 2021-09-21 20:59:57 +09:00
bootstrap.js Update bootstrap.js 2023-01-03 16:35:53 +09:00
build_native_libraries.bat fix 2024-07-10 19:26:58 +09:00
CITATION.cff Update CITATION.cff 2024-05-30 12:08:59 +09:00
CODE_OF_CONDUCT.md Add files via upload 2024-05-27 17:49:50 +09:00
CONTRIBUTING.md Update CONTRIBUTING.md 2024-05-27 17:59:55 +09:00
Default_HTA.reg fix 2020-11-18 13:13:38 +09:00
encryptor.js Update encryptor.js 2024-03-19 18:00:08 +09:00
FUNDING.yml Update FUNDING.yml 2024-02-23 17:10:22 +09:00
grpcloader_test.bat Add files via upload 2023-09-07 20:33:45 +09:00
grpcloader.bat Add files via upload 2023-09-07 20:14:22 +09:00
grpcloader.js Add files via upload 2023-09-07 20:14:22 +09:00
helloworld.coffee Add support LiveScript 2022-11-29 14:42:34 +09:00
helloworld.js Update lib/toolkit.js 2023-12-20 17:58:42 +09:00
helloworld.js.enc Remove the package: html5media 2024-01-27 13:51:32 +09:00
helloworld.ls Add support LiveScript 2022-11-29 14:42:34 +09:00
helloworld.re [app] Add support ReasonML/Rescript #77 2023-08-02 16:06:08 +09:00
helloworld.ts Add support TypeScript 2022-12-22 16:17:10 +09:00
LICENSE Change GPLv2 to GPLv3 2023-09-09 01:33:02 +09:00
LICENSE_MSRL Rename LICENSE to LICENSE_MSRL 2023-07-18 16:03:23 +09:00
officeloader.js msoffice #93 2023-12-19 06:47:48 +09:00
package-lock.json Remove the package: html5media 2024-01-27 13:51:32 +09:00
package.json Update package.json 2024-04-01 18:14:11 +09:00
preconfigure.bat Edit installer files 2024-05-13 17:37:54 +09:00
README.md Update README.md 2024-06-21 14:31:11 +09:00
REGASM.MD Update REGASM.MD 2021-11-01 18:18:37 +09:00
scriptcontrol.js Add files via upload 2023-09-05 03:27:16 +09:00
SECURITY.MD Add VoC link 2024-04-07 20:28:21 +09:00
setup.iss Update setup.iss 2024-05-13 17:52:15 +09:00
shoutcut.js msoffice #93 2023-12-19 06:47:48 +09:00
testloader.js fix 2024-07-10 19:54:18 +09:00
uriloader.js Update uriloader.js 2022-08-22 01:43:15 +09:00
userid.txt fix 2020-11-12 15:39:50 +09:00
webloader.js Add method Browser.waitUntil 2024-03-20 11:13:58 +09:00

welsonjs

FOSSA Status DOI

WelsonJS - Build a Windows app on the Windows built-in JavaScript engine.

(Cover Image) A man programming against a power plant facility, the screen that the man is watching shows the Windows logo

Now, You can build an Windows desktop app with JavaScript, TypeScript, CoffeeScript, ReScript, and HTML/CSS on Windows built-in ECMAScript engine.

WelsonJS = Windows + Electron-like + Javascript(JS) + Your contribution

Dual license notice: The default license for this project is GPL 3.0. However, if the GPL 3.0 license is not compatible with Microsoft products, it is subject to the MS-RL license.

Structure

Structure Overview

Specifications

Included modules

  • lib/std (Standard library)
  • lib/system (System interface)
  • lib/base64 (BASE64 encode and decode)
  • lib/file (File I/O interface)
  • lib/http (HTTP client with MSXML/cURL)
  • lib/registry (Windows Registry interface)
  • lib/security (Windows Security Policy interface)
  • lib/shell (Windows Shell (Command Prompt) interface)
  • lib/powershell (Windows Powershell interface)
  • lib/service (Windows Service interface)
  • lib/browser (Modern web compatibility layer)
  • lib/uri (URI scheme interface)
  • lib/winlibs (Windows DLL(Dynamic-link library) interface)
  • lib/autohotkey (AutoHotkey interface)
  • lib/autoit (AutoIt3/AutoItX interface)
  • lib/msoffice (Microsoft Office (e.g. Excel, PowerPoint, Word) interface)
  • lib/gtk (GTK-server and GladeXML supported GUI interface)
  • lib/chrome (Chrome DevTools Protocol based Chrome/Chromium web browser testing interface)
  • lib/pipe-ipc (PIPE-based IPC(Inter-Process Communication) implementation)
  • lib/toolkit (WelsonJS.Toolkit native component)
    • Find and attach a handle of the window
    • alert(), prompt() implementation in console mode
    • Virtualized Human Interfaces
    • Cryptography
    • Named Shared Memory based IPC(Inter-Process Communication) implementation
  • lib/chatgpt (ChatGPT integration)
  • Everything you can imagine.

Make your own sayhello example

1. Write a file lib/sayhello.js

// lib/sayhello.js
function say() {
    console.log("hello");
}

exports.say = say;

exports.VERSIONINFO = "SayHello Library (sayhello.js) version 0.1";
exports.AUTHOR = "abuse@catswords.net";   // e.g. YOUR EMAIL ADDRESS
exports.global = global;
exports.require = global.require;

2. Write a file sayhello.js

// sayhello.js
var SayHello = require("lib/sayhello");

function main() {
    console.log("calling say()");
    SayHello.say();
    console.log("ended say()");
}

exports.main = main;

3. Execute file on the command prompt

C:\Users\oss\Documents\GitHub\welsonjs> cscript app.js sayhello
calling say()
hello
ended say()

How to make your own setup file

  • Please check setup.iss file it could be compile with Inno Setup

Screenshots

(Screenshot 1) GUI environment

(Screenshot 2) Command-line environment

(Screenshot 3) WelsonJS with Microsoft Excel

Thanks to

  • Open Software Portal, Korea National Industry Promotion Agency - Awarded Prize
  • Heavy-industry specialized CSP(Cloud Service Provider) in Republic of Korea - Use case establishment
  • Live-commerce specialized online advertisement companies in Republic of Korea - Use case establishment
  • Information security companies in Republic of Korea - Use case establishment
  • morioh.com - Mentioned
  • CSDN - Mentioned
  • Qiita - Knowledge-base about WSH environment
  • Redsky Software - PoC(Proof of Concept) of the CommonJS on WSH environment
  • Inspired by a small-sized JavaScript payload demonstrated by a cybersecurity related group.
  • Inspired by the use of Named Shared Memory in an inter-language IPC implementation devised by an unidentified developer.
  • Fediverse - Mentioned
  • GitHub Sponsors

Report abuse

License

FOSSA Status