Commit Graph

474 Commits

Author SHA1 Message Date
37ed467384
Update README.md 2025-12-08 11:40:36 +09:00
94f397eb46
Update README.md 2025-12-08 11:31:29 +09:00
ec4b3b2d7d
Add the Catswords.Phantomizer Structure Overview
Add the Catswords.Phantomizer Structure Overview
2025-12-08 10:49:18 +09:00
e3562856b0
Update README.md 2025-12-08 10:39:53 +09:00
cfc7dbf144
Update README.md 2025-12-08 10:39:04 +09:00
f24375797c
Update README.md 2025-12-08 10:37:37 +09:00
e9cc0cde13
Update README.md 2025-12-08 10:22:46 +09:00
8623cb315d
Update README.md 2025-12-08 10:22:11 +09:00
Namhyeon, Go
037e692432 Update README.md 2025-12-08 02:13:16 +09:00
Namhyeon, Go
ac6df725f4 Update README.md 2025-12-08 02:06:17 +09:00
Namhyeon, Go
ec79f1ab06 Update README.md 2025-12-08 01:55:10 +09:00
Namhyeon, Go
6839b8edd1 Fix namespace bug when use the assembly loader
Fix namespace bug when use the assembly loader
2025-12-08 01:53:49 +09:00
Namhyeon, Go
28776d7cad Update Catswords.Phantomizer.dll.gz 2025-12-08 01:34:49 +09:00
Namhyeon, Go
c1448ead32 Update README.md 2025-12-08 01:33:33 +09:00
Namhyeon, Go
aafab2032c Update README.md 2025-12-08 01:31:37 +09:00
Namhyeon, Go
c68b73ce7b Update Catswords.Phantomizer.csproj 2025-12-08 01:20:37 +09:00
Namhyeon, Go
c357d6f944 Add description: Catswords.Phantomizer
Add description: Catswords.Phantomizer
2025-12-08 01:13:08 +09:00
Namhyeon, Go
1366931273 Update README.md 2025-12-08 01:00:23 +09:00
Namhyeon, Go
f30e43c2e3 Introduce new package Catswords.Phantomizer
Introduce new package `Catswords.Phantomizer`

**Catswords.Phantomizer** is an HTTP-based dynamic-link library (DLL) loader designed for .NET applications.
It allows your application to fetch and load assemblies directly from your CDN (Azure Blob, S3, Cloudflare R2, etc.) at runtime, with optional GZip compression support.
2025-12-08 00:49:10 +09:00
Namhyeon, Go
e8dbf69491 Clearify an exceptions
Clearify an exceptions
2025-12-07 02:42:26 +09:00
Namhyeon, Go
b3416f9a5f Dual HttpClient setup matches intent; make Legacy behavior explicitly “no decompression”
Dual HttpClient setup matches intent; make Legacy behavior explicitly “no decompression”
2025-12-07 02:26:45 +09:00
Namhyeon, Go
e90808e517 Null-check logger before use
Null-check logger before use
2025-12-07 02:22:44 +09:00
Namhyeon, Go
5747713f99 ntroduce separate HttpClient instances for raw and compressed HTTP transfer modes
Added two HttpClient instances to distinguish between legacy (no
Accept-Encoding) and modern compressed HTTP transfer behaviors.

- LegacyHttp:
  Sends no Accept-Encoding header.
  Used when requesting .dll.gz files, ensuring that the server delivers
  the file exactly as-is without applying HTTP-level compression.

- Http:
  Enables AutomaticDecompression and advertises Accept-Encoding
  (gzip, deflate).
  When the server supports HTTP content compression, even a regular .dll
  file can be transmitted in compressed form and transparently
  decompressed by the client.

This separation prevents ambiguities between:
  - File-level compression (.dll.gz)
  - Transport-level compression (Content-Encoding: gzip/deflate)

and ensures predictable behavior when downloading assemblies depending on
server capabilities.
2025-12-07 00:23:51 +09:00
Namhyeon, Go
5b86a88111 Use a temporary file for download, An exception clearify
To prevent partial or corrupt files on download failure, write the decompressed
stream to a temporary file first, and then atomically move it to the final
destination upon success.

In TryDownloadGzipToFile, modify the catch block to log the exception details
before returning false, instead of silently swallowing the error.
2025-12-06 00:23:58 +09:00
Namhyeon, Go
4e3c2bc52c Add support *.dll.gz file in Assembly Loader
Add support for *.dll.gz files in Assembly Loader to make downloads faster.
2025-12-06 00:01:50 +09:00
7abf705c6e Improve the loader policy
Improve the loader policy
2025-12-04 18:19:30 +09:00
cb41c92eab Improve the loader policy
Improve the loader policy
2025-12-04 18:06:47 +09:00
d2be6b116d Improve the loader policy
Improve the loader policy
2025-12-04 16:21:47 +09:00
eae040530e Code signing is required
Code signing is required
2025-12-04 16:12:47 +09:00
6d3fb3db0e Update AssemblyLoader.cs
comment an unused variables
2025-12-04 16:08:25 +09:00
07e47338cb Added the assembly loader with Azure Blob Storage
Added the assembly loader with Azure Blob Storage
2025-12-04 14:54:21 +09:00
e84a69d929 Add null-check for Assembly Version property.
The code properly checks if _telemetryClient is null before tracking the event and uses the assembly version dynamically. However, the Version property of AssemblyName can be null, which would cause a NullReferenceException when calling .ToString().
2025-12-03 16:59:41 +09:00
1d4b7af5b3 Fix the logger for telemetry
Fix the logger for telemetry
2025-12-03 16:54:19 +09:00
3188317bf6 Fix the TelemetryClient
Fix the TelemetryClient
2025-12-03 16:45:31 +09:00
2db2e7b91a Create TelemetryIdentity.cs and more fixes
Create TelemetryIdentity.cs and more fixes
2025-12-03 16:34:41 +09:00
78bcae182e Update telemetryEnabled configuration key
Update telemetryEnabled configuration key
2025-12-03 14:57:59 +09:00
c4e6acc8cd Add a telemetry to WelsonJS Launcher
Add a telemetry to WelsonJS Launcher, To improve debugging experience.
2025-12-03 14:48:30 +09:00
2e92255a3c Use 'using' statement for InstancesForm disposal
Replaces manual disposal of InstancesForm with a 'using' statement to ensure proper resource management and exception safety when recording to the metadata database.
2025-11-20 17:31:50 +09:00
1a75388a69 Fix relative path calculation in file copy loop
Normalizes source directory path before calculating relative file paths to ensure correct substring indexing and prevent off-by-one errors when copying files.
2025-11-20 17:21:47 +09:00
b3b00771c5 Refactor zip file run logic in MainForm
Removed the _filePath field and refactored zip file handling to pass file paths directly as parameters. Simplified the RunAppPackageFile workflow and eliminated redundant methods for improved clarity and maintainability.
2025-11-20 17:14:49 +09:00
afe7d6213a Refactor deploy time recording and improve instance setup
Moved RecordFirstDeployTime from MainForm to Program for better separation of concerns. Updated instance directory creation and asset copying logic in Program.cs to support JS entrypoints, including library copying and first deploy time recording. Added a sleep call to helloworld.js for demonstration purposes.
2025-11-20 17:09:43 +09:00
6f172aafe1 Revert "Enable COM interop registration in project config"
This reverts commit 4fb7b95c0e.
2025-11-20 14:56:59 +09:00
0e40d890bf Merge branch 'dev' of https://github.com/gnh1201/welsonjs into dev 2025-11-19 09:52:37 +09:00
daea458f64
Update WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs
Co-authored-by: qodo-merge-pro[bot] <151058649+qodo-merge-pro[bot]@users.noreply.github.com>
2025-11-16 18:58:48 +09:00
c392b6a08a
Update WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs
Co-authored-by: qodo-merge-pro[bot] <151058649+qodo-merge-pro[bot]@users.noreply.github.com>
2025-11-15 20:39:11 +09:00
a03ea7f3b3
Update WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
2025-11-15 18:23:02 +09:00
c677c6907a Add CLI support for running script and zip files
Launcher now accepts a --file argument to run .js or .zip files directly from the command line. MainForm and Program.cs were refactored to support this, including new registry entries in setup.iss for file associations with WelsonJS Script extensions.
2025-11-15 18:08:47 +09:00
4fb7b95c0e Enable COM interop registration in project config
Added <RegisterForComInterop>True</RegisterForComInterop> to all build configurations in WelsonJS.Cryptography.vbproj to support COM interop registration for both Debug and Release builds.
2025-11-10 09:47:17 +09:00
Namhyeon, Go
ba7b3e3685 Revert "Merge pull request #340 from gnh1201/codex/create-winforms-for-websocket-management"
This reverts commit d71adb8001, reversing
changes made to 83b8e453f0.
2025-11-02 18:17:59 +09:00
Namhyeon, Go
cfcfaf3e1f Add WinForms interface for WebSocket management 2025-11-02 18:09:59 +09:00