@xnoxs/flux-lang 3.4.4 → 3.4.5

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.
package/dist/flux-cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  /*!
3
- * flux-lang v3.4.4
3
+ * flux-lang v3.4.5
4
4
  * Flux — A modern language that transpiles to JavaScript. Python-clean syntax, TypeScript-level safety, Rust-inspired pattern matching.
5
5
  * (c) 2026 Flux Lang Contributors
6
6
  * Released under the MIT License
@@ -7216,7 +7216,7 @@ var require_package = __commonJS({
7216
7216
  "package.json"(exports2, module2) {
7217
7217
  module2.exports = {
7218
7218
  name: "@xnoxs/flux-lang",
7219
- version: "3.4.4",
7219
+ version: "3.4.5",
7220
7220
  description: "Flux \u2014 A modern language that transpiles to JavaScript. Python-clean syntax, TypeScript-level safety, Rust-inspired pattern matching.",
7221
7221
  main: "dist/flux.cjs.js",
7222
7222
  module: "dist/flux.esm.js",
@@ -8571,9 +8571,8 @@ var require_pkg = __commonJS({
8571
8571
  var Os = require("os");
8572
8572
  var { readPackage, writeConfig, loadConfig: loadConfig2 } = require_config2();
8573
8573
  var REGISTRY_URL = "https://registry.npmjs.org";
8574
- var FLUX_PKG_DIR = "flux_modules";
8575
8574
  var PKG_FILE = "flux.json";
8576
- var C2 = { reset: "\\x1b[0m", bold: "\\x1b[1m", dim: "\\x1b[2m", red: "\\x1b[31m", green: "\\x1b[32m", yellow: "\\x1b[33m", blue: "\\x1b[34m", cyan: "\\x1b[36m", gray: "\\x1b[90m" };
8575
+ var C2 = { reset: "\x1B[0m", bold: "\x1B[1m", dim: "\x1B[2m", red: "\x1B[31m", green: "\x1B[32m", yellow: "\x1B[33m", blue: "\x1B[34m", cyan: "\x1B[36m", gray: "\x1B[90m" };
8577
8576
  function clr2(c, s) {
8578
8577
  return c + s + C2.reset;
8579
8578
  }
@@ -8691,6 +8690,7 @@ var require_pkg = __commonJS({
8691
8690
  }
8692
8691
  module2.exports.cmdRemove = cmdRemove;
8693
8692
  async function cmdInstall(opts) {
8693
+ const { execSync } = require("child_process");
8694
8694
  const cwd = process.cwd();
8695
8695
  const pkg = ensureFluxJson(cwd);
8696
8696
  const deps = pkg.dependencies ?? {};
@@ -8702,18 +8702,39 @@ var require_pkg = __commonJS({
8702
8702
  return;
8703
8703
  }
8704
8704
  console.log(clr2(C2.cyan, "\n Installing ") + names.length + " package(s)...\n");
8705
- const modDir = Path.join(cwd, FLUX_PKG_DIR);
8706
- if (!Fs.existsSync(modDir)) {
8707
- Fs.mkdirSync(modDir, { recursive: true });
8708
- }
8709
8705
  for (const name of names) {
8710
8706
  const spec = all[name];
8711
- const version = spec.replace(/[\^~>=<]/g, "").split(" ")[0];
8712
- console.log(clr2(C2.gray, " \u25CB ") + name + clr2(C2.gray, "@" + version));
8707
+ console.log(clr2(C2.gray, " \u25CB ") + name + clr2(C2.gray, "@" + spec));
8713
8708
  }
8714
8709
  console.log();
8715
- ok("flux.json dependencies registered");
8716
- info("Note: Use npm/pnpm to install Node.js compatible packages");
8710
+ let pm = "npm";
8711
+ try {
8712
+ execSync("pnpm --version", { stdio: "pipe" });
8713
+ pm = "pnpm";
8714
+ } catch (_) {
8715
+ }
8716
+ const prodNames = Object.keys(deps);
8717
+ const devNames = Object.keys(devDeps);
8718
+ try {
8719
+ if (prodNames.length > 0) {
8720
+ const prodPkgs = prodNames.map((n) => n + "@" + (deps[n] ?? "latest")).join(" ");
8721
+ const installCmd = pm + " install " + prodPkgs;
8722
+ info("Running: " + installCmd);
8723
+ execSync(installCmd, { cwd, stdio: "inherit" });
8724
+ }
8725
+ if (devNames.length > 0) {
8726
+ const devPkgs = devNames.map((n) => n + "@" + (devDeps[n] ?? "latest")).join(" ");
8727
+ const devCmd = pm + " install --save-dev " + devPkgs;
8728
+ info("Running: " + devCmd);
8729
+ execSync(devCmd, { cwd, stdio: "inherit" });
8730
+ }
8731
+ console.log();
8732
+ ok(names.length + " package(s) installed successfully");
8733
+ } catch (e) {
8734
+ console.log();
8735
+ err("Install failed: " + e.message);
8736
+ info("Try running manually: " + pm + " install");
8737
+ }
8717
8738
  console.log();
8718
8739
  }
8719
8740
  module2.exports.cmdInstall = cmdInstall;
package/dist/flux.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * flux-lang v3.4.4
2
+ * flux-lang v3.4.5
3
3
  * Flux — A modern language that transpiles to JavaScript. Python-clean syntax, TypeScript-level safety, Rust-inspired pattern matching.
4
4
  * (c) 2026 Flux Lang Contributors
5
5
  * Released under the MIT License
package/dist/flux.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * flux-lang v3.4.4
2
+ * flux-lang v3.4.5
3
3
  * Flux — A modern language that transpiles to JavaScript. Python-clean syntax, TypeScript-level safety, Rust-inspired pattern matching.
4
4
  * (c) 2026 Flux Lang Contributors
5
5
  * Released under the MIT License
package/dist/flux.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * flux-lang v3.4.4
2
+ * flux-lang v3.4.5
3
3
  * Flux — A modern language that transpiles to JavaScript. Python-clean syntax, TypeScript-level safety, Rust-inspired pattern matching.
4
4
  * (c) 2026 Flux Lang Contributors
5
5
  * Released under the MIT License
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xnoxs/flux-lang",
3
- "version": "3.4.4",
3
+ "version": "3.4.5",
4
4
  "description": "Flux — A modern language that transpiles to JavaScript. Python-clean syntax, TypeScript-level safety, Rust-inspired pattern matching.",
5
5
  "main": "dist/flux.cjs.js",
6
6
  "module": "dist/flux.esm.js",
package/src/self/cli.flux CHANGED
@@ -27,17 +27,17 @@ val STAGE = FLUX_STAGE ?? "self-hosted"
27
27
 
28
28
  // ── ANSI Colors ───────────────────────────────────────────────
29
29
  val C = {
30
- reset: "\x1b[0m",
31
- bold: "\x1b[1m",
32
- dim: "\x1b[2m",
33
- red: "\x1b[31m",
34
- green: "\x1b[32m",
35
- yellow: "\x1b[33m",
36
- blue: "\x1b[34m",
37
- cyan: "\x1b[36m",
38
- white: "\x1b[37m",
39
- gray: "\x1b[90m",
40
- magenta: "\x1b[35m",
30
+ reset: "\u001b[0m",
31
+ bold: "\u001b[1m",
32
+ dim: "\u001b[2m",
33
+ red: "\u001b[31m",
34
+ green: "\u001b[32m",
35
+ yellow: "\u001b[33m",
36
+ blue: "\u001b[34m",
37
+ cyan: "\u001b[36m",
38
+ white: "\u001b[37m",
39
+ gray: "\u001b[90m",
40
+ magenta: "\u001b[35m",
41
41
  }
42
42
 
43
43
  val noColor = process.env.NO_COLOR or not process.stdout.isTTY
package/src/self/cli.js CHANGED
@@ -57,7 +57,7 @@ const { loadConfig } = require("./config");
57
57
  const { cmdAdd, cmdRemove, cmdInstall, cmdList, cmdSearch, cmdInfo, cmdPublish } = require("./pkg");
58
58
  const VERSION = (FLUX_VERSION ?? "3.0.0");
59
59
  const STAGE = (FLUX_STAGE ?? "self-hosted");
60
- const C = { reset: "\\x1b[0m", bold: "\\x1b[1m", dim: "\\x1b[2m", red: "\\x1b[31m", green: "\\x1b[32m", yellow: "\\x1b[33m", blue: "\\x1b[34m", cyan: "\\x1b[36m", white: "\\x1b[37m", gray: "\\x1b[90m", magenta: "\\x1b[35m" };
60
+ const C = { reset: "\x1b[0m", bold: "\x1b[1m", dim: "\x1b[2m", red: "\x1b[31m", green: "\x1b[32m", yellow: "\x1b[33m", blue: "\x1b[34m", cyan: "\x1b[36m", white: "\x1b[37m", gray: "\x1b[90m", magenta: "\x1b[35m" };
61
61
  const noColor = (process.env.NO_COLOR || !process.stdout.isTTY);
62
62
  function clr(c, s) {
63
63
  return (noColor ? s : ((c + s) + C.reset));
package/src/self/pkg.flux CHANGED
@@ -25,15 +25,15 @@ val PKG_FILE = "flux.json"
25
25
 
26
26
  // ── ANSI colors ───────────────────────────────────────────────
27
27
  val C = {
28
- reset: "\x1b[0m",
29
- bold: "\x1b[1m",
30
- dim: "\x1b[2m",
31
- red: "\x1b[31m",
32
- green: "\x1b[32m",
33
- yellow: "\x1b[33m",
34
- blue: "\x1b[34m",
35
- cyan: "\x1b[36m",
36
- gray: "\x1b[90m",
28
+ reset: "\u001b[0m",
29
+ bold: "\u001b[1m",
30
+ dim: "\u001b[2m",
31
+ red: "\u001b[31m",
32
+ green: "\u001b[32m",
33
+ yellow: "\u001b[33m",
34
+ blue: "\u001b[34m",
35
+ cyan: "\u001b[36m",
36
+ gray: "\u001b[90m",
37
37
  }
38
38
 
39
39
  fn clr(c, s): return c + s + C.reset
@@ -157,6 +157,8 @@ export fn cmdRemove(names, opts):
157
157
 
158
158
  // ── flux install ──────────────────────────────────────────────
159
159
  export async fn cmdInstall(opts):
160
+ import { execSync } from "child_process"
161
+
160
162
  val cwd = process.cwd()
161
163
  val pkg = ensureFluxJson(cwd)
162
164
 
@@ -171,17 +173,45 @@ export async fn cmdInstall(opts):
171
173
 
172
174
  console.log(clr(C.cyan, "\n Installing ") + names.length + " package(s)...\n")
173
175
 
174
- val modDir = Path.join(cwd, FLUX_PKG_DIR)
175
- if not Fs.existsSync(modDir): Fs.mkdirSync(modDir, { recursive: true })
176
-
177
176
  for name in names:
178
177
  val spec = all[name]
179
178
  val version = spec.replace(/[\^~>=<]/g, "").split(" ")[0]
180
- console.log(clr(C.gray, " ○ ") + name + clr(C.gray, "@" + version))
179
+ console.log(clr(C.gray, " ○ ") + name + clr(C.gray, "@" + spec))
181
180
 
182
181
  console.log()
183
- ok("flux.json dependencies registered")
184
- info("Note: Use npm/pnpm to install Node.js compatible packages")
182
+
183
+ // Detect available package manager: prefer pnpm, fall back to npm
184
+ var pm = "npm"
185
+ try:
186
+ execSync("pnpm --version", { stdio: "pipe" })
187
+ pm = "pnpm"
188
+ catch(e):
189
+ pass
190
+
191
+ val prodNames = Object.keys(deps)
192
+ val devNames = Object.keys(devDeps)
193
+
194
+ try:
195
+ if prodNames.length > 0:
196
+ val prodPkgs = prodNames.map(n -> n + "@" + (deps[n] ?? "latest")).join(" ")
197
+ val installCmd = pm + " install " + prodPkgs
198
+ info("Running: " + installCmd)
199
+ execSync(installCmd, { cwd: cwd, stdio: "inherit" })
200
+
201
+ if devNames.length > 0:
202
+ val devPkgs = devNames.map(n -> n + "@" + (devDeps[n] ?? "latest")).join(" ")
203
+ val devFlag = pm == "pnpm" ? " --save-dev" : " --save-dev"
204
+ val devCmd = pm + " install" + devFlag + " " + devPkgs
205
+ info("Running: " + devCmd)
206
+ execSync(devCmd, { cwd: cwd, stdio: "inherit" })
207
+
208
+ console.log()
209
+ ok(names.length + " package(s) installed successfully")
210
+ catch(e):
211
+ console.log()
212
+ err("Install failed: " + e.message)
213
+ info("Try running manually: " + pm + " install")
214
+
185
215
  console.log()
186
216
 
187
217
  // ── flux list ─────────────────────────────────────────────────
package/src/self/pkg.js CHANGED
@@ -19,7 +19,7 @@ const { readPackage, writeConfig, loadConfig } = require("./config");
19
19
  const REGISTRY_URL = "https://registry.npmjs.org";
20
20
  const FLUX_PKG_DIR = "flux_modules";
21
21
  const PKG_FILE = "flux.json";
22
- const C = { reset: "\\x1b[0m", bold: "\\x1b[1m", dim: "\\x1b[2m", red: "\\x1b[31m", green: "\\x1b[32m", yellow: "\\x1b[33m", blue: "\\x1b[34m", cyan: "\\x1b[36m", gray: "\\x1b[90m" };
22
+ const C = { reset: "\x1b[0m", bold: "\x1b[1m", dim: "\x1b[2m", red: "\x1b[31m", green: "\x1b[32m", yellow: "\x1b[33m", blue: "\x1b[34m", cyan: "\x1b[36m", gray: "\x1b[90m" };
23
23
  function clr(c, s) {
24
24
  return ((c + s) + C.reset);
25
25
  }
@@ -139,10 +139,11 @@ function cmdRemove(names, opts) {
139
139
  }
140
140
  module.exports.cmdRemove = cmdRemove;
141
141
  async function cmdInstall(opts) {
142
+ const { execSync } = require("child_process");
142
143
  const cwd = process.cwd();
143
144
  const pkg = ensureFluxJson(cwd);
144
- const deps = (pkg.dependencies ?? { });
145
- const devDeps = (pkg.devDependencies ?? { });
145
+ const deps = (pkg.dependencies ?? {});
146
+ const devDeps = (pkg.devDependencies ?? {});
146
147
  const all = { ...deps, ...devDeps };
147
148
  const names = Object.keys(all);
148
149
  if ((names.length == 0)) {
@@ -150,18 +151,42 @@ async function cmdInstall(opts) {
150
151
  return;
151
152
  }
152
153
  console.log(((clr(C.cyan, "\n Installing ") + names.length) + " package(s)...\n"));
153
- const modDir = Path.join(cwd, FLUX_PKG_DIR);
154
- if (!Fs.existsSync(modDir)) {
155
- Fs.mkdirSync(modDir, { recursive: true });
156
- }
157
154
  for (const name of names) {
158
155
  const spec = all[name];
159
- const version = spec.replace(/[\^~>=<]/g, "").split(" ")[0];
160
- console.log(((clr(C.gray, " ○ ") + name) + clr(C.gray, ("@" + version))));
156
+ console.log(((clr(C.gray, "") + name) + clr(C.gray, ("@" + spec))));
161
157
  }
162
158
  console.log();
163
- ok("flux.json dependencies registered");
164
- info("Note: Use npm/pnpm to install Node.js compatible packages");
159
+
160
+ // Detect available package manager: prefer pnpm, fall back to npm
161
+ let pm = "npm";
162
+ try {
163
+ execSync("pnpm --version", { stdio: "pipe" });
164
+ pm = "pnpm";
165
+ } catch (_) {}
166
+
167
+ const prodNames = Object.keys(deps);
168
+ const devNames = Object.keys(devDeps);
169
+
170
+ try {
171
+ if (prodNames.length > 0) {
172
+ const prodPkgs = prodNames.map(n => n + "@" + (deps[n] ?? "latest")).join(" ");
173
+ const installCmd = pm + " install " + prodPkgs;
174
+ info("Running: " + installCmd);
175
+ execSync(installCmd, { cwd: cwd, stdio: "inherit" });
176
+ }
177
+ if (devNames.length > 0) {
178
+ const devPkgs = devNames.map(n => n + "@" + (devDeps[n] ?? "latest")).join(" ");
179
+ const devCmd = pm + " install --save-dev " + devPkgs;
180
+ info("Running: " + devCmd);
181
+ execSync(devCmd, { cwd: cwd, stdio: "inherit" });
182
+ }
183
+ console.log();
184
+ ok(names.length + " package(s) installed successfully");
185
+ } catch (e) {
186
+ console.log();
187
+ err("Install failed: " + e.message);
188
+ info("Try running manually: " + pm + " install");
189
+ }
165
190
  console.log();
166
191
  }
167
192
  module.exports.cmdInstall = cmdInstall;
@@ -13,14 +13,14 @@ import Path from "path"
13
13
  import Os from "os"
14
14
 
15
15
  val C = {
16
- reset: '\x1b[0m',
17
- bold: '\x1b[1m',
18
- red: '\x1b[31m',
19
- green: '\x1b[32m',
20
- yellow: '\x1b[33m',
21
- cyan: '\x1b[36m',
22
- gray: '\x1b[90m',
23
- dim: '\x1b[2m',
16
+ reset: '\u001b[0m',
17
+ bold: '\u001b[1m',
18
+ red: '\u001b[31m',
19
+ green: '\u001b[32m',
20
+ yellow: '\u001b[33m',
21
+ cyan: '\u001b[36m',
22
+ gray: '\u001b[90m',
23
+ dim: '\u001b[2m',
24
24
  }
25
25
 
26
26
  fn clr(c, s):
@@ -21,7 +21,7 @@ function repeat(s, n) { return String(s).repeat(n); }
21
21
  const Fs = require("fs");
22
22
  const Path = require("path");
23
23
  const Os = require("os");
24
- const C = { reset: "\\x1b[0m", bold: "\\x1b[1m", red: "\\x1b[31m", green: "\\x1b[32m", yellow: "\\x1b[33m", cyan: "\\x1b[36m", gray: "\\x1b[90m", dim: "\\x1b[2m" };
24
+ const C = { reset: "\x1b[0m", bold: "\x1b[1m", red: "\x1b[31m", green: "\x1b[32m", yellow: "\x1b[33m", cyan: "\x1b[36m", gray: "\x1b[90m", dim: "\x1b[2m" };
25
25
  function clr(c, s) {
26
26
  return (process.env.NO_COLOR ? s : ((c + s) + C.reset));
27
27
  }