@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 +33 -12
- package/dist/flux.cjs.js +1 -1
- package/dist/flux.esm.js +1 -1
- package/dist/flux.min.js +1 -1
- package/package.json +1 -1
- package/src/self/cli.flux +11 -11
- package/src/self/cli.js +1 -1
- package/src/self/pkg.flux +45 -15
- package/src/self/pkg.js +36 -11
- package/src/self/test-runner.flux +8 -8
- package/src/self/test-runner.js +1 -1
package/dist/flux-cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/*!
|
|
3
|
-
* flux-lang v3.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.
|
|
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: "
|
|
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
|
-
|
|
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
|
-
|
|
8716
|
-
|
|
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
package/dist/flux.esm.js
CHANGED
package/dist/flux.min.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xnoxs/flux-lang",
|
|
3
|
-
"version": "3.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: "\
|
|
31
|
-
bold: "\
|
|
32
|
-
dim: "\
|
|
33
|
-
red: "\
|
|
34
|
-
green: "\
|
|
35
|
-
yellow: "\
|
|
36
|
-
blue: "\
|
|
37
|
-
cyan: "\
|
|
38
|
-
white: "\
|
|
39
|
-
gray: "\
|
|
40
|
-
magenta: "\
|
|
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: "
|
|
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: "\
|
|
29
|
-
bold: "\
|
|
30
|
-
dim: "\
|
|
31
|
-
red: "\
|
|
32
|
-
green: "\
|
|
33
|
-
yellow: "\
|
|
34
|
-
blue: "\
|
|
35
|
-
cyan: "\
|
|
36
|
-
gray: "\
|
|
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, "@" +
|
|
179
|
+
console.log(clr(C.gray, " ○ ") + name + clr(C.gray, "@" + spec))
|
|
181
180
|
|
|
182
181
|
console.log()
|
|
183
|
-
|
|
184
|
-
|
|
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: "
|
|
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
|
-
|
|
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
|
-
|
|
164
|
-
|
|
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: '\
|
|
17
|
-
bold: '\
|
|
18
|
-
red: '\
|
|
19
|
-
green: '\
|
|
20
|
-
yellow: '\
|
|
21
|
-
cyan: '\
|
|
22
|
-
gray: '\
|
|
23
|
-
dim: '\
|
|
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):
|
package/src/self/test-runner.js
CHANGED
|
@@ -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: "
|
|
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
|
}
|