@hyperscale0/hsx 1.0.342 → 1.0.350
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/README.md +1 -1
- package/bases/cards.hsx +0 -1
- package/bases/collections.hsx +0 -2
- package/bases/escrow.hsx +0 -1
- package/bases/financing.hsx +0 -1
- package/bases/insurance.hsx +0 -1
- package/bases/lending.hsx +0 -3
- package/bases/marketplace.hsx +0 -2
- package/bases/money.hsx +0 -1
- package/bases/reporting.hsx +0 -2
- package/bases/savings.hsx +0 -1
- package/bases/wallet.hsx +0 -1
- package/dist/bin/hsx.d.ts.map +1 -1
- package/dist/bin/hsx.js.map +1 -1
- package/dist/src/ast.d.ts +57 -7
- package/dist/src/ast.d.ts.map +1 -1
- package/dist/src/ast.js.map +1 -1
- package/dist/src/attachment-economics.d.ts.map +1 -1
- package/dist/src/attachment-economics.js.map +1 -1
- package/dist/src/bases-bundle.d.ts.map +1 -1
- package/dist/src/bases-bundle.js +11 -11
- package/dist/src/bases-bundle.js.map +1 -1
- package/dist/src/bases.d.ts.map +1 -1
- package/dist/src/bases.js.map +1 -1
- package/dist/src/catalog-program.d.ts +1 -1
- package/dist/src/catalog-program.d.ts.map +1 -1
- package/dist/src/catalog-program.js +0 -13
- package/dist/src/catalog-program.js.map +1 -1
- package/dist/src/checks.d.ts +60 -0
- package/dist/src/checks.d.ts.map +1 -0
- package/dist/src/checks.js +240 -0
- package/dist/src/checks.js.map +1 -0
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +6 -25
- package/dist/src/cli.js.map +1 -1
- package/dist/src/compile.d.ts +29 -12
- package/dist/src/compile.d.ts.map +1 -1
- package/dist/src/compile.js +414 -316
- package/dist/src/compile.js.map +1 -1
- package/dist/src/cost.d.ts.map +1 -1
- package/dist/src/cost.js.map +1 -1
- package/dist/src/diagnostics.d.ts +14 -1
- package/dist/src/diagnostics.d.ts.map +1 -1
- package/dist/src/diagnostics.js +31 -0
- package/dist/src/diagnostics.js.map +1 -1
- package/dist/src/examples-bundle.d.ts.map +1 -1
- package/dist/src/examples-bundle.js +15 -15
- package/dist/src/examples-bundle.js.map +1 -1
- package/dist/src/examples.d.ts.map +1 -1
- package/dist/src/examples.js.map +1 -1
- package/dist/src/format.d.ts.map +1 -1
- package/dist/src/format.js.map +1 -1
- package/dist/src/header-source.d.ts +30 -0
- package/dist/src/header-source.d.ts.map +1 -1
- package/dist/src/header-source.js +120 -9
- package/dist/src/header-source.js.map +1 -1
- package/dist/src/headers.d.ts +9 -18
- package/dist/src/headers.d.ts.map +1 -1
- package/dist/src/headers.js +25 -23
- package/dist/src/headers.js.map +1 -1
- package/dist/src/index.d.ts +4 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/keywords.d.ts +2 -4
- package/dist/src/keywords.d.ts.map +1 -1
- package/dist/src/keywords.js +6 -5
- package/dist/src/keywords.js.map +1 -1
- package/dist/src/language.d.ts +3 -4
- package/dist/src/language.d.ts.map +1 -1
- package/dist/src/language.js +123 -60
- package/dist/src/language.js.map +1 -1
- package/dist/src/lex.d.ts +1 -1
- package/dist/src/lex.d.ts.map +1 -1
- package/dist/src/lex.js +3 -5
- package/dist/src/lex.js.map +1 -1
- package/dist/src/parse.d.ts +3 -1
- package/dist/src/parse.d.ts.map +1 -1
- package/dist/src/parse.js +234 -22
- package/dist/src/parse.js.map +1 -1
- package/dist/src/std-bundle.d.ts +2 -1
- package/dist/src/std-bundle.d.ts.map +1 -1
- package/dist/src/std-bundle.js +16 -15
- package/dist/src/std-bundle.js.map +1 -1
- package/dist/src/template-guide.d.ts +3 -9
- package/dist/src/template-guide.d.ts.map +1 -1
- package/dist/src/template-guide.js +16 -23
- package/dist/src/template-guide.js.map +1 -1
- package/dist/src/toolchain.d.ts +23 -0
- package/dist/src/toolchain.d.ts.map +1 -0
- package/dist/src/toolchain.js +29 -0
- package/dist/src/toolchain.js.map +1 -0
- package/dist/src/tunables.d.ts.map +1 -1
- package/dist/src/tunables.js.map +1 -1
- package/docs/README.md +69 -28
- package/examples/camera-rental.hsx +0 -1
- package/examples/cards.hsx +0 -1
- package/examples/collections.hsx +0 -2
- package/examples/escrow.hsx +0 -1
- package/examples/financing.hsx +0 -1
- package/examples/insurance.hsx +0 -2
- package/examples/lending.hsx +0 -3
- package/examples/library.hsx +0 -3
- package/examples/marketplace.hsx +0 -2
- package/examples/money.hsx +0 -1
- package/examples/rental-hire.hsx +0 -1
- package/examples/reporting.hsx +0 -2
- package/examples/savings.hsx +0 -1
- package/examples/serviced.hsx +0 -4
- package/examples/wallet.hsx +0 -1
- package/package.json +8 -8
- package/src/ast.ts +56 -3
- package/src/bases-bundle.ts +11 -11
- package/src/catalog-program.ts +0 -13
- package/src/checks.ts +386 -0
- package/src/cli.ts +6 -25
- package/src/compile.ts +583 -438
- package/src/diagnostics.ts +49 -1
- package/src/examples-bundle.ts +15 -15
- package/src/header-source.ts +187 -11
- package/src/headers.ts +31 -32
- package/src/index.ts +10 -4
- package/src/keywords.ts +6 -5
- package/src/language.ts +153 -68
- package/src/lex.ts +3 -5
- package/src/parse.ts +216 -24
- package/src/std-bundle.ts +17 -15
- package/src/template-guide.ts +17 -34
- package/src/toolchain.ts +51 -0
- package/std/booking.hsx +14 -1
- package/std/collections.hsx +12 -2
- package/std/financing.hsx +10 -16
- package/std/money.hsx +2 -3
- package/std/reporting.hsx +10 -1
- package/dist/src/binding-contract.d.ts +0 -22
- package/dist/src/binding-contract.d.ts.map +0 -1
- package/dist/src/binding-contract.js +0 -80
- package/dist/src/binding-contract.js.map +0 -1
- package/dist/src/std-library.d.ts +0 -5
- package/dist/src/std-library.d.ts.map +0 -1
- package/dist/src/std-library.js +0 -5
- package/dist/src/std-library.js.map +0 -1
- package/src/binding-contract.ts +0 -111
- package/src/std-library.ts +0 -7
package/src/cli.ts
CHANGED
|
@@ -1,20 +1,11 @@
|
|
|
1
|
-
import { existsSync, readFileSync } from "node:fs";
|
|
2
1
|
import { readFile, writeFile } from "node:fs/promises";
|
|
3
2
|
import { headerManifest } from "./headers.ts";
|
|
4
3
|
import { compile } from "./compile.ts";
|
|
5
4
|
import { format } from "./format.ts";
|
|
6
|
-
import { serializeUdl
|
|
5
|
+
import { serializeUdl } from "@hyperscale0/udl";
|
|
6
|
+
import { defaultToolchain } from "./toolchain.ts";
|
|
7
7
|
const usage =
|
|
8
8
|
"hsx build|format|cost <file> [--out path]\nhsx check <file>\nhsx headers --json";
|
|
9
|
-
const standardLibrary = {
|
|
10
|
-
source: (header: string) => {
|
|
11
|
-
for (const base of ["../std/", "../../std/"]) {
|
|
12
|
-
const file = new URL(`${base}${header}.hsx`, import.meta.url);
|
|
13
|
-
if (existsSync(file)) return readFileSync(file, "utf8");
|
|
14
|
-
}
|
|
15
|
-
return undefined;
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
9
|
|
|
19
10
|
export interface Io {
|
|
20
11
|
out(line: string): void;
|
|
@@ -29,7 +20,7 @@ export async function runCli(argv: readonly string[], io: Io): Promise<number> {
|
|
|
29
20
|
io.err("usage: hsx headers --json");
|
|
30
21
|
return 2;
|
|
31
22
|
}
|
|
32
|
-
io.out(JSON.stringify(headerManifest(
|
|
23
|
+
io.out(JSON.stringify(headerManifest(), null, 2));
|
|
33
24
|
return 0;
|
|
34
25
|
}
|
|
35
26
|
if (["--help", "help", "-h"].includes(command ?? "")) {
|
|
@@ -37,18 +28,8 @@ export async function runCli(argv: readonly string[], io: Io): Promise<number> {
|
|
|
37
28
|
return 0;
|
|
38
29
|
}
|
|
39
30
|
if (command === "--version") {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const manifest = new URL(`${base}package.json`, import.meta.url);
|
|
43
|
-
if (!existsSync(manifest)) continue;
|
|
44
|
-
const { version } = JSON.parse(readFileSync(manifest, "utf8")) as {
|
|
45
|
-
version: string;
|
|
46
|
-
};
|
|
47
|
-
io.out(`${version} (UDL ${UDL_FORMAT_VERSION})`);
|
|
48
|
-
return 0;
|
|
49
|
-
}
|
|
50
|
-
io.err("hsx: package.json not found");
|
|
51
|
-
return 1;
|
|
31
|
+
io.out(`${defaultToolchain.hsx} (UDL ${defaultToolchain.udl})`);
|
|
32
|
+
return 0;
|
|
52
33
|
}
|
|
53
34
|
if (
|
|
54
35
|
!command ||
|
|
@@ -84,7 +65,7 @@ export async function runCli(argv: readonly string[], io: Io): Promise<number> {
|
|
|
84
65
|
}
|
|
85
66
|
text = result.formatted;
|
|
86
67
|
} else {
|
|
87
|
-
const result = compile(source,
|
|
68
|
+
const result = compile(source, defaultToolchain);
|
|
88
69
|
for (const d of [...result.diagnostics, ...result.warnings])
|
|
89
70
|
io.err(
|
|
90
71
|
`${d.source && d.source !== "program" ? d.source : file}:${d.line}:${d.column}: ${d.severity === "warning" ? "warning " : ""}${d.code} ${d.message.replace(/[^.?!]$/, "$&.")} ${d.fix}`,
|