xynginc 1.0.81 → 1.0.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +52 -20
  2. package/bin/xynginc +0 -0
  3. package/dist/index.d.ts +3 -1
  4. package/dist/index.js +17 -21
  5. package/dist/{constant.d.ts → mods/constant.d.ts} +0 -1
  6. package/dist/mods/constant.js +4 -0
  7. package/dist/{downloadBinary.d.ts → mods/downloadBinary.d.ts} +0 -1
  8. package/dist/mods/downloadBinary.js +61 -0
  9. package/dist/{ensureBinary.d.ts → mods/ensureBinary.d.ts} +0 -1
  10. package/dist/mods/ensureBinary.js +44 -0
  11. package/dist/{execAsync.d.ts → mods/execAsync.d.ts} +0 -1
  12. package/dist/mods/execAsync.js +3 -0
  13. package/dist/{logger.d.ts → mods/logger.d.ts} +0 -1
  14. package/dist/{logger.js → mods/logger.js} +9 -14
  15. package/dist/{requirements.d.ts → mods/requirements.d.ts} +1 -2
  16. package/dist/{requirements.js → mods/requirements.js} +38 -51
  17. package/dist/{validateConfig.d.ts → mods/validateConfig.d.ts} +1 -2
  18. package/dist/{validateConfig.js → mods/validateConfig.js} +1 -5
  19. package/dist/startPlugin.d.ts +2 -2
  20. package/dist/startPlugin.js +34 -34
  21. package/dist/types.d.ts +0 -1
  22. package/dist/types.js +1 -3
  23. package/package.json +34 -34
  24. package/xypriss.plugin.xsig +11 -0
  25. package/dist/constant.d.ts.map +0 -1
  26. package/dist/constant.js +0 -11
  27. package/dist/constant.js.map +0 -1
  28. package/dist/downloadBinary.d.ts.map +0 -1
  29. package/dist/downloadBinary.js +0 -98
  30. package/dist/downloadBinary.js.map +0 -1
  31. package/dist/ensureBinary.d.ts.map +0 -1
  32. package/dist/ensureBinary.js +0 -51
  33. package/dist/ensureBinary.js.map +0 -1
  34. package/dist/execAsync.d.ts.map +0 -1
  35. package/dist/execAsync.js +0 -7
  36. package/dist/execAsync.js.map +0 -1
  37. package/dist/index.d.ts.map +0 -1
  38. package/dist/index.js.map +0 -1
  39. package/dist/logger.d.ts.map +0 -1
  40. package/dist/logger.js.map +0 -1
  41. package/dist/requirements.d.ts.map +0 -1
  42. package/dist/requirements.js.map +0 -1
  43. package/dist/startPlugin.d.ts.map +0 -1
  44. package/dist/startPlugin.js.map +0 -1
  45. package/dist/types.d.ts.map +0 -1
  46. package/dist/types.js.map +0 -1
  47. package/dist/validateConfig.d.ts.map +0 -1
  48. package/dist/validateConfig.js.map +0 -1
package/README.md CHANGED
@@ -4,13 +4,19 @@ This project uses code developed by NEHONIX (www.nehonix.com) under the NEHONIX
4
4
 
5
5
  XyPriss Nginx Controller - Simplifie la gestion de Nginx et SSL.
6
6
 
7
- [![npm version](https://badge.fury.io/js/%40xypriss%2Fxynginc.svg)](https://www.npmjs.com/package/xynginc)
7
+ [![xfpm version](https://badge.fury.io/js/%40xypriss%2Fxynginc.svg)](https://www.npmjs.com/package/xynginc)
8
8
  [![License: NOSL](https://img.shields.io/badge/License-NOSL-blue.svg)](https://dll.nehonix.com/licenses/NOSL)
9
9
 
10
10
  ## Overview
11
11
 
12
12
  XyNginC (XyPriss Nginx Controller) automates Nginx reverse proxy configuration, SSL certificate management, and provides optimized, production-ready configs for security, performance, and best practices. It eliminates manual Nginx editing, simplifying XyPriss deployment to just a few lines of TypeScript. Check out the [demo project on GitHub](https://github.com/iDevo-ll/XYNC-Demo).
13
13
 
14
+ > [!IMPORTANT]
15
+ > XyNginC is a plugin **exclusively designed for XyPriss projects**. It is not intended for use outside the XyPriss ecosystem, in development environments, or on non-Linux systems. For the best integration experience, **XFPM** (XyPriss Fast Package Manager) is required — see [Installation](#installation).
16
+
17
+ > [!CAUTION]
18
+ > XyNginC only runs on **Linux production servers** (VPS or Dedicated). Supported architectures: **x64**, **arm64**, and **ia32**. Windows and macOS are not supported.
19
+
14
20
  ## Key Features
15
21
 
16
22
  - **Automated Reverse Proxy**: Maps domains to local ports seamlessly.
@@ -26,7 +32,28 @@ XyNginC (XyPriss Nginx Controller) automates Nginx reverse proxy configuration,
26
32
  For detailed installation instructions, please refer to the [Installation Guide](docs/INSTALLATION.md).
27
33
  For building from source (custom architectures), see the [Build Guide](docs/BUILD_FROM_SOURCE.md).
28
34
 
29
- XyNginC is designed for production environments running on Linux. We strongly recommend using Ubuntu on a Virtual Private Server (VPS) for the best security and stability.
35
+ XyNginC is exclusively designed for **XyPriss projects running in production on Linux**. We strongly recommend using Ubuntu on a Virtual Private Server (VPS) for the best security and stability.
36
+
37
+ ### Prerequisites
38
+
39
+ Before installing XyNginC, you need **XFPM** — the official package manager for the XyPriss ecosystem.
40
+
41
+ ```bash
42
+ curl -fsSL https://raw.githubusercontent.com/Nehonix-Team/XFPM/master/scripts/install.sh | sudo bash
43
+ ```
44
+
45
+ ```bash
46
+ xfpm --version
47
+ ```
48
+
49
+ ### Install XyNginC
50
+
51
+ ```bash
52
+ xfpm install xynginc
53
+ ```
54
+
55
+ > [!NOTE]
56
+ > The installation requires `sudo` privileges to place the binary in `/usr/local/bin` and configure system permissions.
30
57
 
31
58
  ## Quick Start
32
59
 
@@ -92,7 +119,7 @@ XNCP({
92
119
  Manage domains programmatically at runtime:
93
120
 
94
121
  ```typescript
95
- app.start(undefined, async () => {
122
+ app.start(async () => {
96
123
  // Add a new domain
97
124
  await app.xynginc.addDomain(
98
125
  "new.example.com",
@@ -181,7 +208,7 @@ await server.xynginc.status(): Promise<string>
181
208
 
182
209
  ## CLI Usage
183
210
 
184
- The `xynginc` command-line interface allows for direct management without the Node.js application context.
211
+ The `xynginc` command-line interface allows for direct management without the XyPriss application context.
185
212
 
186
213
  ```bash
187
214
  # Check prerequisites
@@ -230,9 +257,9 @@ sudo xynginc status
230
257
 
231
258
  The system operates through a three-tier architecture:
232
259
 
233
- 1. **XyPriss Application**: The Node.js application running the server.
234
- 2. **XyNginC Plugin**: A TypeScript wrapper that interfaces with the application and executes the underlying Go binary.
235
- 3. **XyNginC Go Binary**: A high-performance Go-based CLI tool that performs system-level operations (Nginx configuration, Certbot execution). It dynamically fetches the latest config templates from GitHub (`Nehonix-Team/xynginc`) to guarantee up-to-date and optimized Nginx setups.
260
+ 1. **XyPriss Application**: The XyPriss application running the server.
261
+ 2. **XyNginC Plugin**: A TypeScript wrapper that interfaces with the application and executes the underlying Go binary.
262
+ 3. **XyNginC Go Binary**: A high-performance Go-based CLI tool that performs system-level operations (Nginx configuration, Certbot execution). It dynamically fetches the latest config templates from GitHub (`Nehonix-Team/xynginc`) to guarantee up-to-date and optimized Nginx setups.
236
263
 
237
264
  ## Security Considerations
238
265
 
@@ -243,7 +270,8 @@ XyNginC requires elevated privileges to perform the following actions:
243
270
  - Executing `certbot` for SSL certificate generation
244
271
  - Reloading the Nginx service
245
272
 
246
- **Security Note**: XyNginC requires elevated privileges to manage Nginx and Firewall rules.
273
+ > [!WARNING]
274
+ > XyNginC requires elevated privileges to manage Nginx and firewall rules. Always review the commands being executed and restrict sudo access to only what is necessary.
247
275
 
248
276
  - **Sudoers**: We recommend configuring `sudoers` to allow specific commands for the user.
249
277
  - **Sudo Password**: If your application runs in the background (e.g. using PM2), you can use the `sudoPassword` option or the `SUDO_PASSWORD` environment variable.
@@ -257,8 +285,8 @@ XyNginC requires elevated privileges to perform the following actions:
257
285
  If the binary fails to download automatically:
258
286
 
259
287
  ```bash
260
- # Manually trigger postinstall
261
- npm run postinstall
288
+ # Manually trigger with XFPM
289
+ xfpm run postinstall
262
290
 
263
291
  # Or specify the path manually in options
264
292
  XNCP({
@@ -280,21 +308,25 @@ sudo node server.js
280
308
 
281
309
  If SSL generation fails:
282
310
 
283
- 1. Verify DNS propagation: `dig api.example.com`
284
- 2. Ensure firewall allows traffic on ports 80 and 443:
285
- ```bash
286
- sudo ufw allow 80
287
- sudo ufw allow 443
288
- ```
311
+ 1. Verify DNS propagation: `dig api.example.com`
312
+ 2. Ensure firewall allows traffic on ports 80 and 443:
313
+
314
+ ```bash
315
+ sudo ufw allow 80
316
+ sudo ufw allow 443
317
+ ```
318
+
319
+ > [!NOTE]
320
+ > Certbot requires ports 80 and 443 to be publicly accessible for domain validation. Make sure your cloud provider's security groups also allow this traffic, not just UFW.
289
321
 
290
322
  ## Contributing
291
323
 
292
324
  Contributions are welcome. Please follow the standard pull request process.
293
325
 
294
- 1. Clone the repository
295
- 2. Install dependencies
296
- 3. Build the Go CLI and TypeScript package (`xfpm run build:all`)
297
- 4. Run tests
326
+ 1. Clone the repository
327
+ 2. Install dependencies
328
+ 3. Build the Go CLI and TypeScript package (`xfpm run build:all`)
329
+ 4. Run tests
298
330
 
299
331
  ## License
300
332
 
package/bin/xynginc CHANGED
Binary file
package/dist/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
+ import { Plugin } from "xypriss";
1
2
  import { XyNginCConfig, XyNginCDomainConfig, XyNginCPluginOptions } from "./types";
3
+ export type PlC = Parameters<typeof Plugin.create>[0];
4
+ export type PluginServer = Parameters<NonNullable<PlC["onServerStart"]>>[0];
2
5
  /**
3
6
  * XyNginC Plugin for XyPriss.
4
7
  * Automates Nginx and SSL management for your server.
@@ -9,4 +12,3 @@ import { XyNginCConfig, XyNginCDomainConfig, XyNginCPluginOptions } from "./type
9
12
  export default function XNCP(options: XyNginCPluginOptions): import("xypriss").XyPrissPlugin;
10
13
  export type { XyNginCConfig, XyNginCDomainConfig, XyNginCPluginOptions };
11
14
  export declare const XyNginC: typeof XNCP;
12
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,16 +1,12 @@
1
- "use strict";
2
1
  /*
3
2
  * This code contains proprietary source code from NEHONIX
4
3
  * Copyright © 2025 NEHONIX - www.nehonix.com
5
4
  * Licensed under NEHONIX Open Source License (NOSL) v1.0
6
5
  */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.XyNginC = void 0;
9
- exports.default = XNCP;
10
- const xypriss_1 = require("xypriss");
11
- const logger_1 = require("./logger");
12
- const validateConfig_1 = require("./validateConfig");
13
- const startPlugin_1 = require("./startPlugin");
6
+ import { Plugin } from "xypriss";
7
+ import { Logger } from "./mods/logger";
8
+ import { validateConfig } from "./mods/validateConfig";
9
+ import { startXNCPlugin } from "./startPlugin";
14
10
  /**
15
11
  * XyNginC Plugin for XyPriss.
16
12
  * Automates Nginx and SSL management for your server.
@@ -18,19 +14,20 @@ const startPlugin_1 = require("./startPlugin");
18
14
  * @param options - Plugin configuration options.
19
15
  * @returns A XyPriss Plugin instance.
20
16
  */
21
- function XNCP(options) {
17
+ export default function XNCP(options) {
22
18
  const { domains, autoReload = true, autoFixFirewall = false, binaryPath, autoDownload = true, version = "latest", installRequirements = true, sudoPassword, } = options;
23
- return xypriss_1.Plugin.create({
24
- name: "xynginc",
25
- version: "1.0.81",
26
- description: "XyPriss Nginx Controller - Automatic Nginx & SSL management",
27
- onRegister: async (server) => {
28
- logger_1.Logger.info("[XyNginC] Registering plugin...");
29
- (0, validateConfig_1.validateConfig)({ domains, autoReload, autoFixFirewall });
19
+ const pkg = Plugin.manifest(__sys__);
20
+ return Plugin.create({
21
+ name: pkg.name,
22
+ version: pkg.version,
23
+ description: pkg.description,
24
+ onRegister: async (_server) => {
25
+ Logger.info("[XyNginC] Registering plugin...");
26
+ validateConfig({ domains, autoReload, autoFixFirewall });
30
27
  },
31
28
  onServerStart: async (_server) => {
32
29
  // Validate config
33
- await (0, startPlugin_1.startXNCPlugin)(_server, {
30
+ await startXNCPlugin(_server, {
34
31
  autoDownload,
35
32
  autoReload,
36
33
  autoFixFirewall,
@@ -42,10 +39,9 @@ function XNCP(options) {
42
39
  });
43
40
  },
44
41
  onServerStop: async () => {
45
- logger_1.Logger.info("[XyNginC] Shutting down Nginx Controller...");
42
+ Logger.info("[XyNginC] Shutting down Nginx Controller...");
46
43
  },
47
- });
44
+ }, __sys__.__root__);
48
45
  }
49
46
  // Named exports for direct usage
50
- exports.XyNginC = XNCP;
51
- //# sourceMappingURL=index.js.map
47
+ export const XyNginC = XNCP;
@@ -1,4 +1,3 @@
1
1
  export declare const BINARY_NAME = "xynginc";
2
2
  export declare const GITHUB_REPO = "Nehonix-Team/xynginc";
3
3
  export declare const BINARY_DIR: string;
4
- //# sourceMappingURL=constant.d.ts.map
@@ -0,0 +1,4 @@
1
+ import path from "path";
2
+ export const BINARY_NAME = "xynginc";
3
+ export const GITHUB_REPO = "Nehonix-Team/xynginc";
4
+ export const BINARY_DIR = path.join(__dirname, "../bin");
@@ -5,4 +5,3 @@
5
5
  * @returns The path to the downloaded binary.
6
6
  */
7
7
  export declare function downloadBinary(version: string): Promise<string>;
8
- //# sourceMappingURL=downloadBinary.d.ts.map
@@ -0,0 +1,61 @@
1
+ import { Logger } from "./logger";
2
+ import * as https from "https";
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+ import * as os from "os";
6
+ import { BINARY_NAME, BINARY_DIR, GITHUB_REPO } from "./constant";
7
+ /**
8
+ * Downloads the xynginc binary from GitHub releases.
9
+ *
10
+ * @param version - The version to download (e.g., "latest" or "v1.4.5").
11
+ * @returns The path to the downloaded binary.
12
+ */
13
+ export async function downloadBinary(version) {
14
+ const platform = os.platform();
15
+ const arch = os.arch();
16
+ if (platform !== "linux") {
17
+ throw new Error(`[XyNginC] Unsupported platform: ${platform}. Only Linux is supported.`);
18
+ }
19
+ const binaryName = `${BINARY_NAME}-${platform}-${arch}`;
20
+ const downloadUrl = version === "latest"
21
+ ? `https://github.com/${GITHUB_REPO}/releases/latest/download/${binaryName}`
22
+ : `https://github.com/${GITHUB_REPO}/releases/download/${version}/${binaryName}`;
23
+ Logger.info(`[XyNginC] Downloading from: ${downloadUrl}`);
24
+ // Create bin directory
25
+ if (!fs.existsSync(BINARY_DIR)) {
26
+ fs.mkdirSync(BINARY_DIR, { recursive: true });
27
+ }
28
+ const localPath = path.join(BINARY_DIR, BINARY_NAME);
29
+ return new Promise((resolve, reject) => {
30
+ function download(url) {
31
+ https
32
+ .get(url, (response) => {
33
+ if (response.statusCode &&
34
+ response.statusCode >= 300 &&
35
+ response.statusCode < 400 &&
36
+ response.headers.location) {
37
+ download(response.headers.location);
38
+ return;
39
+ }
40
+ if (response.statusCode !== 200) {
41
+ reject(new Error(`Failed to download binary: HTTP ${response.statusCode}`));
42
+ return;
43
+ }
44
+ const file = fs.createWriteStream(localPath);
45
+ response.pipe(file);
46
+ file.on("finish", () => {
47
+ file.close();
48
+ fs.chmodSync(localPath, 0o755); // Make executable
49
+ Logger.success("[XyNginC] ✓ Binary downloaded successfully");
50
+ resolve(localPath);
51
+ });
52
+ })
53
+ .on("error", (err) => {
54
+ if (fs.existsSync(localPath))
55
+ fs.unlinkSync(localPath);
56
+ reject(err);
57
+ });
58
+ }
59
+ download(downloadUrl);
60
+ });
61
+ }
@@ -9,4 +9,3 @@
9
9
  * @returns The absolute path to the binary.
10
10
  */
11
11
  export declare function ensureBinary(customPath: string | undefined, autoDownload: boolean, version: string): Promise<string>;
12
- //# sourceMappingURL=ensureBinary.d.ts.map
@@ -0,0 +1,44 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { Logger } from "./logger";
4
+ import { execAsync } from "./execAsync";
5
+ import { BINARY_DIR, BINARY_NAME } from "./constant";
6
+ import { downloadBinary } from "./downloadBinary";
7
+ /**
8
+ * Ensures the xynginc binary exists.
9
+ * It checks the custom path, the system PATH, and the local bin directory.
10
+ * If not found and autoDownload is enabled, it downloads the binary.
11
+ *
12
+ * @param customPath - Optional custom path to the binary.
13
+ * @param autoDownload - Whether to download the binary if missing.
14
+ * @param version - The version to download.
15
+ * @returns The absolute path to the binary.
16
+ */
17
+ export async function ensureBinary(customPath, autoDownload, version) {
18
+ // 1. Try custom path
19
+ if (customPath && fs.existsSync(customPath)) {
20
+ return customPath;
21
+ }
22
+ // 2. Try PATH
23
+ try {
24
+ const { stdout } = await execAsync("which xynginc");
25
+ const globalPath = stdout.trim();
26
+ if (globalPath && fs.existsSync(globalPath)) {
27
+ return globalPath;
28
+ }
29
+ }
30
+ catch {
31
+ // Not in PATH
32
+ }
33
+ // 3. Try local bin directory
34
+ const localPath = path.join(BINARY_DIR, BINARY_NAME);
35
+ if (fs.existsSync(localPath)) {
36
+ return localPath;
37
+ }
38
+ // 4. Auto-download if enabled
39
+ if (autoDownload) {
40
+ Logger.info("[XyNginC] Binary not found, downloading...");
41
+ return await downloadBinary(version);
42
+ }
43
+ throw new Error("[XyNginC] Binary not found. Install xynginc or set 'autoDownload: true'");
44
+ }
@@ -1,3 +1,2 @@
1
1
  import { exec } from "child_process";
2
2
  export declare const execAsync: typeof exec.__promisify__;
3
- //# sourceMappingURL=execAsync.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { exec } from "child_process";
2
+ import { promisify } from "util";
3
+ export const execAsync = promisify(exec);
@@ -7,4 +7,3 @@ export declare class Logger {
7
7
  static success(message: string): void;
8
8
  static debug(message: string): void;
9
9
  }
10
- //# sourceMappingURL=logger.d.ts.map
@@ -1,7 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Logger = void 0;
4
- class Logger {
1
+ export class Logger {
2
+ static reset = "\x1b[0m";
3
+ static colors = {
4
+ info: "\x1b[34m", // Blue
5
+ error: "\x1b[31m", // Red
6
+ warn: "\x1b[33m", // Yellow
7
+ success: "\x1b[32m", // Green
8
+ debug: "\x1b[36m", // Cyan
9
+ };
5
10
  static info(message) {
6
11
  console.log(`${this.colors.info}${message}${this.reset}`);
7
12
  }
@@ -18,13 +23,3 @@ class Logger {
18
23
  console.log(`${this.colors.debug}${message}${this.reset}`);
19
24
  }
20
25
  }
21
- exports.Logger = Logger;
22
- Logger.reset = "\x1b[0m";
23
- Logger.colors = {
24
- info: "\x1b[34m", // Blue
25
- error: "\x1b[31m", // Red
26
- warn: "\x1b[33m", // Yellow
27
- success: "\x1b[32m", // Green
28
- debug: "\x1b[36m", // Cyan
29
- };
30
- //# sourceMappingURL=logger.js.map
@@ -1,4 +1,4 @@
1
- import { XyNginCDomainConfig } from "./types";
1
+ import { XyNginCDomainConfig } from "../types";
2
2
  /**
3
3
  * Installs system requirements using the binary in interactive mode.
4
4
  *
@@ -82,4 +82,3 @@ export declare function checkRequirements(binaryPath: string, sudoCmd: string):
82
82
  * preserving ANSI color codes printed by the Go binary.
83
83
  */
84
84
  export declare function execStream(command: string): Promise<void>;
85
- //# sourceMappingURL=requirements.d.ts.map
@@ -1,41 +1,29 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.installRequirementsHandler = installRequirementsHandler;
4
- exports.applyConfig = applyConfig;
5
- exports.addDomain = addDomain;
6
- exports.removeDomain = removeDomain;
7
- exports.listDomains = listDomains;
8
- exports.reloadNginx = reloadNginx;
9
- exports.testNginx = testNginx;
10
- exports.getStatus = getStatus;
11
- exports.checkRequirements = checkRequirements;
12
- exports.execStream = execStream;
13
- const logger_1 = require("./logger");
14
- const child_process_1 = require("child_process");
15
- const execAsync_1 = require("./execAsync");
16
- const xypriss_security_1 = require("xypriss-security");
1
+ import { Logger } from "./logger";
2
+ import { spawn } from "child_process";
3
+ import { execAsync } from "./execAsync";
4
+ import { XStringify } from "xypriss-security";
17
5
  /**
18
6
  * Installs system requirements using the binary in interactive mode.
19
7
  *
20
8
  * @param binaryPath - Path to the xynginc binary.
21
9
  * @param sudoCmd - Sudo prefix to use.
22
10
  */
23
- async function installRequirementsHandler(binaryPath, sudoCmd) {
11
+ export async function installRequirementsHandler(binaryPath, sudoCmd) {
24
12
  return new Promise((resolve, reject) => {
25
- logger_1.Logger.info("[XyNginC] Launching interactive installer...");
26
- logger_1.Logger.info("[XyNginC] Please respond to any prompts in the terminal.");
13
+ Logger.info("[XyNginC] Launching interactive installer...");
14
+ Logger.info("[XyNginC] Please respond to any prompts in the terminal.");
27
15
  // Handle process environmental logic if running via non-interactive sudo -S
28
16
  const cmd = sudoCmd.includes("-S")
29
17
  ? `${sudoCmd} ${binaryPath} install`
30
18
  : `sudo ${binaryPath} install`;
31
19
  // Spawn the process with inherited stdio for full interactivity
32
- const installProcess = (0, child_process_1.spawn)(cmd, {
20
+ const installProcess = spawn(cmd, {
33
21
  stdio: "inherit", // This allows the subprocess to use the parent's stdin/stdout/stderr
34
22
  shell: true,
35
23
  });
36
24
  installProcess.on("close", (code) => {
37
25
  if (code === 0) {
38
- logger_1.Logger.success("[XyNginC] ✓ System requirements installed successfully");
26
+ Logger.success("[XyNginC] ✓ System requirements installed successfully");
39
27
  resolve();
40
28
  }
41
29
  else {
@@ -54,7 +42,7 @@ async function installRequirementsHandler(binaryPath, sudoCmd) {
54
42
  * @param config - The configuration object.
55
43
  * @param sudoCmd - Sudo prefix to use.
56
44
  */
57
- async function applyConfig(binaryPath, config, sudoCmd) {
45
+ export async function applyConfig(binaryPath, config, sudoCmd) {
58
46
  // Map camelCase to snake_case for Go core
59
47
  const mappedConfig = {
60
48
  auto_reload: config.auto_reload,
@@ -68,7 +56,7 @@ async function applyConfig(binaryPath, config, sudoCmd) {
68
56
  max_body_size: d.maxBodySize,
69
57
  })),
70
58
  };
71
- const configJson = (0, xypriss_security_1.XStringify)(mappedConfig, {
59
+ const configJson = XStringify(mappedConfig, {
72
60
  pureRaw: true,
73
61
  maxDepth: 100,
74
62
  maxLength: 2000000, // 2MB limit
@@ -77,10 +65,10 @@ async function applyConfig(binaryPath, config, sudoCmd) {
77
65
  });
78
66
  try {
79
67
  // Test nginx BEFORE applying new config
80
- logger_1.Logger.info("[XyNginC] Testing current nginx config...");
68
+ Logger.info("[XyNginC] Testing current nginx config...");
81
69
  const testResult = await testNginx(binaryPath, sudoCmd);
82
70
  if (!testResult) {
83
- logger_1.Logger.warn("[XyNginC] ⚠️ Current nginx config has errors. Attempting to fix...");
71
+ Logger.warn("[XyNginC] ⚠️ Current nginx config has errors. Attempting to fix...");
84
72
  }
85
73
  // Pass config via stdin to avoid shell escaping issues
86
74
  // If using sudo -S, we must pass both the password and the JSON in the same pipe
@@ -100,9 +88,9 @@ async function applyConfig(binaryPath, config, sudoCmd) {
100
88
  }
101
89
  catch (error) {
102
90
  // If it fails, show more helpful error
103
- logger_1.Logger.error(`[XyNginC] Failed to apply configuration: ${error.message}`);
104
- logger_1.Logger.info("[XyNginC] Try running: sudo nginx -t");
105
- logger_1.Logger.info("[XyNginC] Check: /etc/nginx/sites-enabled/");
91
+ Logger.error(`[XyNginC] Failed to apply configuration: ${error.message}`);
92
+ Logger.info("[XyNginC] Try running: sudo nginx -t");
93
+ Logger.info("[XyNginC] Check: /etc/nginx/sites-enabled/");
106
94
  throw new Error(`Failed to apply configuration: ${error.message}`);
107
95
  }
108
96
  }
@@ -117,13 +105,13 @@ async function applyConfig(binaryPath, config, sudoCmd) {
117
105
  * @param maxBodySize - Optional maximum body size.
118
106
  * @param sudoCmd - Sudo prefix to use.
119
107
  */
120
- async function addDomain(binaryPath, domain, port, ssl, email, maxBodySize, sudoCmd = "sudo") {
108
+ export async function addDomain(binaryPath, domain, port, ssl, email, maxBodySize, sudoCmd = "sudo") {
121
109
  const sslFlag = ssl ? "--ssl" : "";
122
110
  const emailFlag = email ? `--email ${email}` : "";
123
111
  const maxBodySizeFlag = maxBodySize ? `--max-body-size ${maxBodySize}` : "";
124
112
  try {
125
- const { stdout } = await (0, execAsync_1.execAsync)(`${sudoCmd} ${binaryPath} add --domain ${domain} --port ${port} ${sslFlag} ${emailFlag} ${maxBodySizeFlag}`);
126
- logger_1.Logger.info(stdout.trim());
113
+ const { stdout } = await execAsync(`${sudoCmd} ${binaryPath} add --domain ${domain} --port ${port} ${sslFlag} ${emailFlag} ${maxBodySizeFlag}`);
114
+ Logger.info(stdout.trim());
127
115
  }
128
116
  catch (error) {
129
117
  throw new Error(`Failed to add domain: ${error.message}`);
@@ -136,10 +124,10 @@ async function addDomain(binaryPath, domain, port, ssl, email, maxBodySize, sudo
136
124
  * @param domain - The domain name to remove.
137
125
  * @param sudoCmd - Sudo prefix to use.
138
126
  */
139
- async function removeDomain(binaryPath, domain, sudoCmd = "sudo") {
127
+ export async function removeDomain(binaryPath, domain, sudoCmd = "sudo") {
140
128
  try {
141
- const { stdout } = await (0, execAsync_1.execAsync)(`${sudoCmd} ${binaryPath} remove ${domain}`);
142
- logger_1.Logger.info(stdout.trim());
129
+ const { stdout } = await execAsync(`${sudoCmd} ${binaryPath} remove ${domain}`);
130
+ Logger.info(stdout.trim());
143
131
  }
144
132
  catch (error) {
145
133
  throw new Error(`Failed to remove domain: ${error.message}`);
@@ -152,9 +140,9 @@ async function removeDomain(binaryPath, domain, sudoCmd = "sudo") {
152
140
  * @param sudoCmd - Sudo prefix to use.
153
141
  * @returns A list of domain names.
154
142
  */
155
- async function listDomains(binaryPath, sudoCmd = "sudo") {
143
+ export async function listDomains(binaryPath, sudoCmd = "sudo") {
156
144
  try {
157
- const { stdout } = await (0, execAsync_1.execAsync)(`${sudoCmd} ${binaryPath} list`);
145
+ const { stdout } = await execAsync(`${sudoCmd} ${binaryPath} list`);
158
146
  // Parse output to extract domain names
159
147
  const lines = stdout.split("\n").filter((line) => line.includes(" - "));
160
148
  return lines.map((line) => line.trim().split(" - ")[0]);
@@ -169,10 +157,10 @@ async function listDomains(binaryPath, sudoCmd = "sudo") {
169
157
  * @param binaryPath - Path to the xynginc binary.
170
158
  * @param sudoCmd - Sudo prefix to use.
171
159
  */
172
- async function reloadNginx(binaryPath, sudoCmd = "sudo") {
160
+ export async function reloadNginx(binaryPath, sudoCmd = "sudo") {
173
161
  try {
174
- const { stdout } = await (0, execAsync_1.execAsync)(`${sudoCmd} ${binaryPath} reload`);
175
- logger_1.Logger.info(stdout.trim());
162
+ const { stdout } = await execAsync(`${sudoCmd} ${binaryPath} reload`);
163
+ Logger.info(stdout.trim());
176
164
  }
177
165
  catch (error) {
178
166
  throw new Error(`Failed to reload Nginx: ${error.message}`);
@@ -185,9 +173,9 @@ async function reloadNginx(binaryPath, sudoCmd = "sudo") {
185
173
  * @param sudoCmd - Sudo prefix to use.
186
174
  * @returns True if the configuration is valid.
187
175
  */
188
- async function testNginx(binaryPath, sudoCmd = "sudo") {
176
+ export async function testNginx(binaryPath, sudoCmd = "sudo") {
189
177
  try {
190
- await (0, execAsync_1.execAsync)(`${sudoCmd} ${binaryPath} test`);
178
+ await execAsync(`${sudoCmd} ${binaryPath} test`);
191
179
  return true;
192
180
  }
193
181
  catch {
@@ -201,9 +189,9 @@ async function testNginx(binaryPath, sudoCmd = "sudo") {
201
189
  * @param sudoCmd - Sudo prefix to use.
202
190
  * @returns The status output.
203
191
  */
204
- async function getStatus(binaryPath, sudoCmd = "sudo") {
192
+ export async function getStatus(binaryPath, sudoCmd = "sudo") {
205
193
  try {
206
- const { stdout } = await (0, execAsync_1.execAsync)(`${sudoCmd} ${binaryPath} status`);
194
+ const { stdout } = await execAsync(`${sudoCmd} ${binaryPath} status`);
207
195
  return stdout;
208
196
  }
209
197
  catch (error) {
@@ -217,17 +205,17 @@ async function getStatus(binaryPath, sudoCmd = "sudo") {
217
205
  * @param sudoCmd - Sudo prefix to use.
218
206
  * @returns True if requirements are met, false otherwise.
219
207
  */
220
- async function checkRequirements(binaryPath, sudoCmd) {
208
+ export async function checkRequirements(binaryPath, sudoCmd) {
221
209
  try {
222
- logger_1.Logger.info("[XyNginC] Checking system requirements...");
210
+ Logger.info("[XyNginC] Checking system requirements...");
223
211
  const cmd = `${sudoCmd} ${binaryPath} check`;
224
- logger_1.Logger.info(`[XyNginC] Running: ${cmd}`);
212
+ Logger.info(`[XyNginC] Running: ${cmd}`);
225
213
  await execStream(cmd);
226
- logger_1.Logger.info("[XyNginC] System requirements checked successfully!");
214
+ Logger.info("[XyNginC] System requirements checked successfully!");
227
215
  return true;
228
216
  }
229
217
  catch (error) {
230
- logger_1.Logger.warn(`[XyNginC] System requirements check failed: ${error.message}`);
218
+ Logger.warn(`[XyNginC] System requirements check failed: ${error.message}`);
231
219
  return false;
232
220
  }
233
221
  }
@@ -235,9 +223,9 @@ async function checkRequirements(binaryPath, sudoCmd) {
235
223
  * Executes a shell command and streams its stdout/stderr line-by-line in real-time,
236
224
  * preserving ANSI color codes printed by the Go binary.
237
225
  */
238
- function execStream(command) {
226
+ export function execStream(command) {
239
227
  return new Promise((resolve, reject) => {
240
- const child = (0, child_process_1.spawn)(command, { shell: true });
228
+ const child = spawn(command, { shell: true });
241
229
  let stderrData = "";
242
230
  child.stdout.on("data", (data) => {
243
231
  // Print raw data so inner ANSI codes from Go are preserved directly in PM2
@@ -259,4 +247,3 @@ function execStream(command) {
259
247
  });
260
248
  });
261
249
  }
262
- //# sourceMappingURL=requirements.js.map
@@ -1,4 +1,4 @@
1
- import { XyNginCConfig } from "./types";
1
+ import { XyNginCConfig } from "../types";
2
2
  /**
3
3
  * Validates the plugin configuration.
4
4
  *
@@ -6,4 +6,3 @@ import { XyNginCConfig } from "./types";
6
6
  * @throws Error if the configuration is invalid.
7
7
  */
8
8
  export declare function validateConfig(config: XyNginCConfig): void;
9
- //# sourceMappingURL=validateConfig.d.ts.map
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateConfig = validateConfig;
4
1
  /**
5
2
  * Validates the plugin configuration.
6
3
  *
7
4
  * @param config - The configuration to validate.
8
5
  * @throws Error if the configuration is invalid.
9
6
  */
10
- function validateConfig(config) {
7
+ export function validateConfig(config) {
11
8
  if (!config.domains || config.domains.length === 0) {
12
9
  throw new Error("[XyNginC] Configuration error: 'domains' array cannot be empty");
13
10
  }
@@ -34,4 +31,3 @@ function validateConfig(config) {
34
31
  }
35
32
  }
36
33
  }
37
- //# sourceMappingURL=validateConfig.js.map
@@ -1,5 +1,6 @@
1
+ import { PluginServer } from ".";
1
2
  import { XyNginCDomainConfig } from "./types";
2
- export declare function startXNCPlugin(server: any, options: {
3
+ export declare function startXNCPlugin(server: PluginServer, options: {
3
4
  binaryPath?: string;
4
5
  autoDownload: boolean;
5
6
  version: string;
@@ -9,4 +10,3 @@ export declare function startXNCPlugin(server: any, options: {
9
10
  installRequirements: boolean;
10
11
  sudoPassword: string;
11
12
  }): Promise<void>;
12
- //# sourceMappingURL=startPlugin.d.ts.map
@@ -1,72 +1,72 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.startXNCPlugin = startXNCPlugin;
4
- const ensureBinary_1 = require("./ensureBinary");
5
- const logger_1 = require("./logger");
6
- const requirements_1 = require("./requirements");
1
+ import { ensureBinary } from "./mods/ensureBinary";
2
+ import { Logger } from "./mods/logger";
3
+ import { addDomain, applyConfig, checkRequirements, getStatus, installRequirementsHandler, listDomains, reloadNginx, removeDomain, testNginx, } from "./mods/requirements";
7
4
  const getSudo = (sudoPassword) => {
8
5
  // Attempt multiple ways to get the password, including XyPriss internal env if somehow exposed
9
- const envPwd = process.env.SUDO_PASSWORD;
6
+ const envPwd = __sys__.__env__.get("SUDO_PASSWORD");
10
7
  // || (global as any).__sys__?.$env?.("SUDO_PASSWORD");
11
8
  const pwd = sudoPassword || envPwd;
12
9
  if (pwd) {
13
10
  if (sudoPassword) {
14
- logger_1.Logger.info(`[XyNginC] Using sudo password provided via plugin options(${sudoPassword.slice(0, 2)}***).`);
11
+ Logger.info(`[XyNginC] Using sudo password provided via plugin options(${sudoPassword.slice(0, 2)}***).`);
15
12
  }
16
13
  else {
17
- logger_1.Logger.info("[XyNginC] Using sudo password injected from environment variables.");
14
+ Logger.info("[XyNginC] Using sudo password injected from environment variables.");
18
15
  }
19
16
  return `echo '${pwd}' | sudo -S`;
20
17
  }
21
- logger_1.Logger.warn("[XyNginC] ⚠️ No sudo password provided. Falling back to non-interactive mode (sudo -n).");
22
- logger_1.Logger.warn("[XyNginC] ⚠️ If the command requires a password, it will fail immediately instead of hanging.");
18
+ Logger.warn("[XyNginC] ⚠️ No sudo password provided. Falling back to non-interactive mode (sudo -n).");
19
+ Logger.warn("[XyNginC] ⚠️ If the command requires a password, it will fail immediately instead of hanging.");
23
20
  // Return non-interactive sudo to prevent infinite blocking/hanging
24
21
  return "sudo -n";
25
22
  };
26
- async function startXNCPlugin(server, options) {
23
+ export async function startXNCPlugin(server, options) {
27
24
  const { binaryPath, autoDownload, version, domains, autoReload, autoFixFirewall, installRequirements, sudoPassword, } = options;
28
- logger_1.Logger.info("[XyNginC] Initializing Nginx Controller...");
25
+ Logger.info("[XyNginC] Initializing Nginx Controller...");
26
+ if (!sudoPassword) {
27
+ Logger.warn("[XyNginC] To ensure optimal performance and prevent potential issues, it is recommended to provide your system sudo password.");
28
+ Logger.info("[XyNginC] Security notice: The password is used solely for privileged communication with your operating system. It is never stored, logged, or transmitted externally.");
29
+ }
29
30
  try {
30
31
  // 1. Ensure binary exists
31
- const binary = await (0, ensureBinary_1.ensureBinary)(binaryPath, autoDownload, version);
32
- logger_1.Logger.success(`[XyNginC] ✓ Binary located: ${binary}`);
32
+ const binary = await ensureBinary(binaryPath, autoDownload, version);
33
+ Logger.success(`[XyNginC] ✓ Binary located: ${binary}`);
33
34
  // 2. Check system requirements
34
- logger_1.Logger.info("[XyNginC] Checking system requirements...");
35
+ Logger.info("[XyNginC] Checking system requirements...");
35
36
  // Check if requirements are satisfied
36
- const requirementsOk = await (0, requirements_1.checkRequirements)(binary, getSudo(sudoPassword));
37
+ const requirementsOk = await checkRequirements(binary, getSudo(sudoPassword));
37
38
  // Install requirements if enabled and needed
38
39
  if (!requirementsOk && installRequirements) {
39
- logger_1.Logger.info("[XyNginC] Requirements missing, installing automatically...");
40
- await (0, requirements_1.installRequirementsHandler)(binary, getSudo(sudoPassword));
41
- logger_1.Logger.info("[XyNginC] Requirements installed, re-checking...");
42
- await (0, requirements_1.checkRequirements)(binary, getSudo(sudoPassword));
40
+ Logger.info("[XyNginC] Requirements missing, installing automatically...");
41
+ await installRequirementsHandler(binary, getSudo(sudoPassword));
42
+ Logger.info("[XyNginC] Requirements installed, re-checking...");
43
+ await checkRequirements(binary, getSudo(sudoPassword));
43
44
  }
44
45
  else if (!requirementsOk) {
45
46
  throw new Error("[XyNginC] System requirements not satisfied. Install with 'installRequirements: true' or run: sudo xynginc install");
46
47
  }
47
48
  // 3. Apply configuration
48
- logger_1.Logger.info("[XyNginC] Applying configuration...");
49
- await (0, requirements_1.applyConfig)(binary, {
49
+ Logger.info("[XyNginC] Applying configuration...");
50
+ await applyConfig(binary, {
50
51
  domains,
51
52
  auto_reload: autoReload,
52
53
  auto_fix_firewall: autoFixFirewall,
53
54
  }, getSudo(sudoPassword));
54
- logger_1.Logger.success("[XyNginC] Configuration applied successfully!");
55
+ Logger.success("[XyNginC] Configuration applied successfully!");
55
56
  // Expose CLI helper methods on server
56
57
  server.xynginc = {
57
- addDomain: (domain, port, ssl = false, email, maxBodySize) => (0, requirements_1.addDomain)(binary, domain, port, ssl, email, maxBodySize, getSudo(sudoPassword)),
58
- removeDomain: (domain) => (0, requirements_1.removeDomain)(binary, domain, getSudo(sudoPassword)),
59
- listDomains: () => (0, requirements_1.listDomains)(binary, getSudo(sudoPassword)),
60
- reload: () => (0, requirements_1.reloadNginx)(binary, getSudo(sudoPassword)),
61
- test: () => (0, requirements_1.testNginx)(binary, getSudo(sudoPassword)),
62
- status: () => (0, requirements_1.getStatus)(binary, getSudo(sudoPassword)),
63
- installRequirements: () => (0, requirements_1.installRequirementsHandler)(binary, getSudo(sudoPassword)),
58
+ addDomain: (domain, port, ssl = false, email, maxBodySize) => addDomain(binary, domain, port, ssl, email, maxBodySize, getSudo(sudoPassword)),
59
+ removeDomain: (domain) => removeDomain(binary, domain, getSudo(sudoPassword)),
60
+ listDomains: () => listDomains(binary, getSudo(sudoPassword)),
61
+ reload: () => reloadNginx(binary, getSudo(sudoPassword)),
62
+ test: () => testNginx(binary, getSudo(sudoPassword)),
63
+ status: () => getStatus(binary, getSudo(sudoPassword)),
64
+ installRequirements: () => installRequirementsHandler(binary, getSudo(sudoPassword)),
64
65
  };
65
- logger_1.Logger.info("[XyNginC] Server methods available: server.xynginc.*");
66
+ Logger.info("[XyNginC] Server methods available: server.xynginc.*");
66
67
  }
67
68
  catch (error) {
68
- logger_1.Logger.error(`[XyNginC] ✖ Failed to initialize: ${error}`);
69
+ Logger.error(`[XyNginC] ✖ Failed to initialize: ${error}`);
69
70
  throw error;
70
71
  }
71
72
  }
72
- //# sourceMappingURL=startPlugin.js.map
package/dist/types.d.ts CHANGED
@@ -80,4 +80,3 @@ export interface XyNginCPluginOptions extends XyNginCConfig {
80
80
  */
81
81
  sudoPassword?: string;
82
82
  }
83
- //# sourceMappingURL=types.d.ts.map
package/dist/types.js CHANGED
@@ -1,8 +1,6 @@
1
- "use strict";
2
1
  /*
3
2
  * This code contains proprietary source code from NEHONIX
4
3
  * Copyright © 2025 NEHONIX - www.nehonix.com
5
4
  * Licensed under NEHONIX Open Source License (NOSL) v1.0
6
5
  */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- //# sourceMappingURL=types.js.map
6
+ export {};
package/package.json CHANGED
@@ -1,21 +1,26 @@
1
1
  {
2
2
  "name": "xynginc",
3
- "version": "1.0.81",
3
+ "version": "1.0.83",
4
4
  "description": "XyPriss Nginx Controller - Automatic Nginx & SSL management for XyPriss servers",
5
+ "author": "Seth Eleazar - iDevo",
6
+ "license": "NOSL",
5
7
  "main": "dist/index.js",
6
8
  "types": "dist/index.d.ts",
9
+ "files": [
10
+ "dist",
11
+ "scripts",
12
+ "README.md",
13
+ "xypriss.plugin.xsig"
14
+ ],
7
15
  "bin": {
8
16
  "xynginc": "./bin/xynginc"
9
17
  },
10
- "scripts": {
11
- "build": "tsc && xfpm run build:multi",
12
- "build:go": "cd core-go && go build -o xynginc && cp xynginc ../bin/",
13
- "build:all": "xfpm run build:go && xfpm run build",
14
- "build:multi": "bash scripts/build.sh",
15
- "dev": "tsc --watch",
16
- "prepublishOnly": "xfpm run build",
17
- "postinstall": "node scripts/postinstall.js",
18
- "install:manual": "sudo bash scripts/install.sh"
18
+ "engines": {
19
+ "node": ">=18.0.0"
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://github.com/Nehonix-Team/xynginc.git"
19
24
  },
20
25
  "keywords": [
21
26
  "xypriss",
@@ -26,33 +31,28 @@
26
31
  "letsencrypt",
27
32
  "plugin"
28
33
  ],
29
- "author": "Seth Eleazar - iDevo",
30
- "license": "NOSL",
34
+ "scripts": {
35
+ "build": "tsc && xfpm run build:multi",
36
+ "build:all": "xfpm run build:go && xfpm run build",
37
+ "build:go": "cd core-go && go build -o xynginc && cp xynginc ../bin/",
38
+ "build:multi": "bash scripts/build.sh",
39
+ "dev": "tsc --watch",
40
+ "install:manual": "sudo bash scripts/install.sh",
41
+ "postinstall": "node scripts/postinstall.js",
42
+ "prepublishOnly": "xfpm run build && xfpm sign ./ --min-version 1.0.81 --fix"
43
+ },
44
+ "dependencies": {
45
+ "xypriss": "^9.9.4",
46
+ "xypriss-security": "^2.1.16"
47
+ },
31
48
  "devDependencies": {
32
49
  "@types/node": "^20.19.37",
33
50
  "typescript": "^5.9.3"
34
51
  },
35
- "files": [
36
- "dist",
37
- "bin",
38
- "scripts",
39
- "README.md"
40
- ],
41
- "os": [
42
- "linux"
43
- ],
44
- "engines": {
45
- "node": ">=18.0.0"
46
- },
47
- "repository": {
48
- "type": "git",
49
- "url": "https://github.com/Nehonix-Team/xynginc.git"
50
- },
51
- "bugs": {
52
- "url": "https://github.com/Nehonix-Team/xynginc.git/issues"
53
- },
54
- "dependencies": {
55
- "xypriss": "^9.3.71",
56
- "xypriss-security": "^2.1.10"
52
+ "xfpm": {
53
+ "permissions": [
54
+ "XHS.HOOK.HTTP.REQUEST",
55
+ "XHS.HOOK.LIFECYCLE.SERVER_READY"
56
+ ]
57
57
  }
58
58
  }
@@ -0,0 +1,11 @@
1
+ --- XYPRISS SIGNATURE (G3) ---
2
+ Manifest: xynginc@1.0.83
3
+ Min-Engine: 1.0.81
4
+ Fingerprint: sha256:2e05c6c4adffc16ce7cc1e172e212f7a0ef1c08545612ce7170d7c96ac36d8f1
5
+ Identity: ed25519:a58b17a3e46302dd3ae5538bc9b8b991c57f4c5fe2e7d8ac41803de818d947f4
6
+ Privileges: XHS.HOOK.HTTP.REQUEST,XHS.HOOK.LIFECYCLE.SERVER_READY
7
+ Expires: 2027-04-28T09:43:22Z
8
+ Revision: sha256:none
9
+ --- BEGIN CRYPTOGRAPHIC PROOF ---
10
+ base64:htZVWcVTy/7PLFvF+PQf7S5TZttaVNj2cjs292cawK/QC/bz1xDMtURQCH+nKHh3GnMsspmUWtLFPeZolg8yDA==
11
+ --- END XYPRISS SIGNATURE ---
@@ -1 +0,0 @@
1
- {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,WAAW,yBAAyB,CAAC;AAClD,eAAO,MAAM,UAAU,QAAiC,CAAC"}
package/dist/constant.js DELETED
@@ -1,11 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BINARY_DIR = exports.GITHUB_REPO = exports.BINARY_NAME = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- exports.BINARY_NAME = "xynginc";
9
- exports.GITHUB_REPO = "Nehonix-Team/xynginc";
10
- exports.BINARY_DIR = path_1.default.join(__dirname, "../bin");
11
- //# sourceMappingURL=constant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constant.js","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAEX,QAAA,WAAW,GAAG,SAAS,CAAC;AACxB,QAAA,WAAW,GAAG,sBAAsB,CAAC;AACrC,QAAA,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"downloadBinary.d.ts","sourceRoot":"","sources":["../src/downloadBinary.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiErE"}
@@ -1,98 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.downloadBinary = downloadBinary;
37
- const logger_1 = require("./logger");
38
- const https = __importStar(require("https"));
39
- const fs = __importStar(require("fs"));
40
- const path = __importStar(require("path"));
41
- const os = __importStar(require("os"));
42
- const constant_1 = require("./constant");
43
- /**
44
- * Downloads the xynginc binary from GitHub releases.
45
- *
46
- * @param version - The version to download (e.g., "latest" or "v1.4.5").
47
- * @returns The path to the downloaded binary.
48
- */
49
- async function downloadBinary(version) {
50
- const platform = os.platform();
51
- const arch = os.arch();
52
- if (platform !== "linux") {
53
- throw new Error(`[XyNginC] Unsupported platform: ${platform}. Only Linux is supported.`);
54
- }
55
- const binaryName = `${constant_1.BINARY_NAME}-${platform}-${arch}`;
56
- const downloadUrl = version === "latest"
57
- ? `https://github.com/${constant_1.GITHUB_REPO}/releases/latest/download/${binaryName}`
58
- : `https://github.com/${constant_1.GITHUB_REPO}/releases/download/${version}/${binaryName}`;
59
- logger_1.Logger.info(`[XyNginC] Downloading from: ${downloadUrl}`);
60
- // Create bin directory
61
- if (!fs.existsSync(constant_1.BINARY_DIR)) {
62
- fs.mkdirSync(constant_1.BINARY_DIR, { recursive: true });
63
- }
64
- const localPath = path.join(constant_1.BINARY_DIR, constant_1.BINARY_NAME);
65
- return new Promise((resolve, reject) => {
66
- function download(url) {
67
- https
68
- .get(url, (response) => {
69
- if (response.statusCode &&
70
- response.statusCode >= 300 &&
71
- response.statusCode < 400 &&
72
- response.headers.location) {
73
- download(response.headers.location);
74
- return;
75
- }
76
- if (response.statusCode !== 200) {
77
- reject(new Error(`Failed to download binary: HTTP ${response.statusCode}`));
78
- return;
79
- }
80
- const file = fs.createWriteStream(localPath);
81
- response.pipe(file);
82
- file.on("finish", () => {
83
- file.close();
84
- fs.chmodSync(localPath, 0o755); // Make executable
85
- logger_1.Logger.success("[XyNginC] ✓ Binary downloaded successfully");
86
- resolve(localPath);
87
- });
88
- })
89
- .on("error", (err) => {
90
- if (fs.existsSync(localPath))
91
- fs.unlinkSync(localPath);
92
- reject(err);
93
- });
94
- }
95
- download(downloadUrl);
96
- });
97
- }
98
- //# sourceMappingURL=downloadBinary.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"downloadBinary.js","sourceRoot":"","sources":["../src/downloadBinary.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,wCAiEC;AA9ED,qCAAkC;AAClC,6CAA+B;AAC/B,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,yCAAkE;AAElE;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAC,OAAe;IAClD,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAEvB,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,mCAAmC,QAAQ,4BAA4B,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,sBAAW,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;IACxD,MAAM,WAAW,GACf,OAAO,KAAK,QAAQ;QAClB,CAAC,CAAC,sBAAsB,sBAAW,6BAA6B,UAAU,EAAE;QAC5E,CAAC,CAAC,sBAAsB,sBAAW,sBAAsB,OAAO,IAAI,UAAU,EAAE,CAAC;IAErF,eAAM,CAAC,IAAI,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAC;IAE1D,uBAAuB;IACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,qBAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,qBAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAU,EAAE,sBAAW,CAAC,CAAC;IAErD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,SAAS,QAAQ,CAAC,GAAW;YAC3B,KAAK;iBACF,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,IACE,QAAQ,CAAC,UAAU;oBACnB,QAAQ,CAAC,UAAU,IAAI,GAAG;oBAC1B,QAAQ,CAAC,UAAU,GAAG,GAAG;oBACzB,QAAQ,CAAC,OAAO,CAAC,QAAQ,EACzB,CAAC;oBACD,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBAED,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAChC,MAAM,CACJ,IAAI,KAAK,CACP,mCAAmC,QAAQ,CAAC,UAAU,EAAE,CACzD,CACF,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC7C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACrB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACb,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,kBAAkB;oBAClD,eAAM,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;oBAC7D,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACvD,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC;QAED,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensureBinary.d.ts","sourceRoot":"","sources":["../src/ensureBinary.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAgCjB"}
@@ -1,51 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ensureBinary = ensureBinary;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- const logger_1 = require("./logger");
10
- const execAsync_1 = require("./execAsync");
11
- const constant_1 = require("./constant");
12
- const downloadBinary_1 = require("./downloadBinary");
13
- /**
14
- * Ensures the xynginc binary exists.
15
- * It checks the custom path, the system PATH, and the local bin directory.
16
- * If not found and autoDownload is enabled, it downloads the binary.
17
- *
18
- * @param customPath - Optional custom path to the binary.
19
- * @param autoDownload - Whether to download the binary if missing.
20
- * @param version - The version to download.
21
- * @returns The absolute path to the binary.
22
- */
23
- async function ensureBinary(customPath, autoDownload, version) {
24
- // 1. Try custom path
25
- if (customPath && fs_1.default.existsSync(customPath)) {
26
- return customPath;
27
- }
28
- // 2. Try PATH
29
- try {
30
- const { stdout } = await (0, execAsync_1.execAsync)("which xynginc");
31
- const globalPath = stdout.trim();
32
- if (globalPath && fs_1.default.existsSync(globalPath)) {
33
- return globalPath;
34
- }
35
- }
36
- catch {
37
- // Not in PATH
38
- }
39
- // 3. Try local bin directory
40
- const localPath = path_1.default.join(constant_1.BINARY_DIR, constant_1.BINARY_NAME);
41
- if (fs_1.default.existsSync(localPath)) {
42
- return localPath;
43
- }
44
- // 4. Auto-download if enabled
45
- if (autoDownload) {
46
- logger_1.Logger.info("[XyNginC] Binary not found, downloading...");
47
- return await (0, downloadBinary_1.downloadBinary)(version);
48
- }
49
- throw new Error("[XyNginC] Binary not found. Install xynginc or set 'autoDownload: true'");
50
- }
51
- //# sourceMappingURL=ensureBinary.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensureBinary.js","sourceRoot":"","sources":["../src/ensureBinary.ts"],"names":[],"mappings":";;;;;AAiBA,oCAoCC;AArDD,4CAAmB;AACnB,gDAAuB;AACvB,qCAAiC;AACjC,2CAAwC;AACxC,yCAAqD;AACrD,qDAAkD;AAElD;;;;;;;;;GASG;AACI,KAAK,UAAU,YAAY,CAChC,UAA8B,EAC9B,YAAqB,EACrB,OAAe;IAEf,qBAAqB;IACrB,IAAI,UAAU,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,cAAc;IACd,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,qBAAS,EAAC,eAAe,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,UAAU,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IAED,6BAA6B;IAC7B,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,qBAAU,EAAE,sBAAW,CAAC,CAAC;IACrD,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8BAA8B;IAC9B,IAAI,YAAY,EAAE,CAAC;QACjB,eAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,MAAM,IAAA,+BAAc,EAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,yEAAyE,CAC1E,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"execAsync.d.ts","sourceRoot":"","sources":["../src/execAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGrC,eAAO,MAAM,SAAS,2BAAkB,CAAC"}
package/dist/execAsync.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.execAsync = void 0;
4
- const child_process_1 = require("child_process");
5
- const util_1 = require("util");
6
- exports.execAsync = (0, util_1.promisify)(child_process_1.exec);
7
- //# sourceMappingURL=execAsync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execAsync.js","sourceRoot":"","sources":["../src/execAsync.ts"],"names":[],"mappings":";;;AAAA,iDAAqC;AACrC,+BAAiC;AAEpB,QAAA,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAIjB;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,OAAO,EAAE,oBAAoB,mCAwCzD;AAGD,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;AAGzE,eAAO,MAAM,OAAO,aAAO,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAmBH,uBAwCC;AAzDD,qCAAiC;AACjC,qCAAkC;AAMlC,qDAAkD;AAClD,+CAA+C;AAE/C;;;;;;GAMG;AACH,SAAwB,IAAI,CAAC,OAA6B;IACxD,MAAM,EACJ,OAAO,EACP,UAAU,GAAG,IAAI,EACjB,eAAe,GAAG,KAAK,EACvB,UAAU,EACV,YAAY,GAAG,IAAI,EACnB,OAAO,GAAG,QAAQ,EAClB,mBAAmB,GAAG,IAAI,EAC1B,YAAY,GACb,GAAG,OAAO,CAAC;IAEZ,OAAO,gBAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,6DAA6D;QAE1E,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3B,eAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YAC/C,IAAA,+BAAc,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/B,kBAAkB;YAClB,MAAM,IAAA,4BAAc,EAAC,OAAO,EAAE;gBAC5B,YAAY;gBACZ,UAAU;gBACV,eAAe;gBACf,UAAU,EAAE,UAAU;gBACtB,OAAO;gBACP,OAAO;gBACP,mBAAmB;gBACnB,YAAY,EAAE,YAAY,IAAI,EAAE;aACjC,CAAC,CAAC;QACL,CAAC;QAED,YAAY,EAAE,KAAK,IAAI,EAAE;YACvB,eAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC7D,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAKD,iCAAiC;AACpB,QAAA,OAAO,GAAG,IAAI,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAa;IACjC,OAAO,CAAC,MAAM,CAAC,MAAM,CAMnB;IAEF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IAI3B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;IAI5B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IAI3B,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM;IAI9B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM;CAG7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;IAUjB,MAAM,CAAC,IAAI,CAAC,OAAe;QACzB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe;QAC1B,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAe;QACzB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAe;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAe;QAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;;AA5BH,wBA6BC;AA5BgB,YAAK,GAAG,SAAS,CAAC;AAClB,aAAM,GAAG;IACtB,IAAI,EAAE,UAAU,EAAE,OAAO;IACzB,KAAK,EAAE,UAAU,EAAE,MAAM;IACzB,IAAI,EAAE,UAAU,EAAE,SAAS;IAC3B,OAAO,EAAE,UAAU,EAAE,QAAQ;IAC7B,KAAK,EAAE,UAAU,EAAE,OAAO;CAC3B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"requirements.d.ts","sourceRoot":"","sources":["../src/requirements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAI9C;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IACN,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,EACD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA2Df;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,OAAO,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,MAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAAe,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAAe,GACvB,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBzD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"requirements.js","sourceRoot":"","sources":["../src/requirements.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"startPlugin.d.ts","sourceRoot":"","sources":["../src/startPlugin.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAgC9C,wBAAsB,cAAc,CAClC,MAAM,EAAE,GAAG,EACX,OAAO,EAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB,iBAyFF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"startPlugin.js","sourceRoot":"","sources":["../src/startPlugin.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateConfig.d.ts","sourceRoot":"","sources":["../src/validateConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAyC1D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validateConfig.js","sourceRoot":"","sources":["../src/validateConfig.ts"],"names":[],"mappings":";;AAQA,wCAyCC;AA/CD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,MAAqB;IAClD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;QACJ,CAAC;QAED,IACE,CAAC,MAAM,CAAC,IAAI;YACZ,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC/B,MAAM,CAAC,IAAI,GAAG,CAAC;YACf,MAAM,CAAC,IAAI,GAAG,KAAK,EACnB,CAAC;YACD,MAAM,IAAI,KAAK,CACb,qEAAqE,MAAM,CAAC,MAAM,EAAE,CACrF,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,8EAA8E,MAAM,CAAC,MAAM,EAAE,CAC9F,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;QAC5B,CAAC;QAED,0CAA0C;QAC1C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;AACH,CAAC"}