bonescript-compiler 0.3.0 → 0.5.0
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/commands/compile.js +42 -10
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +29 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/emit_auth.d.ts +14 -2
- package/dist/emit_auth.js +498 -60
- package/dist/emit_auth.js.map +1 -1
- package/dist/emit_capability.js +61 -7
- package/dist/emit_capability.js.map +1 -1
- package/dist/emit_composition.js +37 -3
- package/dist/emit_composition.js.map +1 -1
- package/dist/emit_events.d.ts +1 -0
- package/dist/emit_events.js +68 -1
- package/dist/emit_events.js.map +1 -1
- package/dist/emit_full.js +166 -11
- package/dist/emit_full.js.map +1 -1
- package/dist/emit_index.js +46 -1
- package/dist/emit_index.js.map +1 -1
- package/dist/emit_models.d.ts +12 -0
- package/dist/emit_models.js +171 -0
- package/dist/emit_models.js.map +1 -0
- package/dist/emit_openapi.d.ts +9 -0
- package/dist/emit_openapi.js +308 -0
- package/dist/emit_openapi.js.map +1 -0
- package/dist/emit_router.js +19 -4
- package/dist/emit_router.js.map +1 -1
- package/dist/emit_tests.js +37 -0
- package/dist/emit_tests.js.map +1 -1
- package/dist/emitter.js +81 -5
- package/dist/emitter.js.map +1 -1
- package/dist/ir.d.ts +4 -0
- package/dist/lowering.js +16 -1
- package/dist/lowering.js.map +1 -1
- package/dist/lowering_channels.d.ts +1 -1
- package/dist/lowering_channels.js +3 -2
- package/dist/lowering_channels.js.map +1 -1
- package/dist/lowering_entities.js +11 -1
- package/dist/lowering_entities.js.map +1 -1
- package/dist/optimizer.js +1 -1
- package/dist/optimizer.js.map +1 -1
- package/dist/scaffold.js +0 -1
- package/dist/scaffold.js.map +1 -1
- package/dist/typechecker.d.ts +5 -0
- package/dist/typechecker.js +68 -13
- package/dist/typechecker.js.map +1 -1
- package/dist/verifier.d.ts +5 -0
- package/dist/verifier.js +140 -2
- package/dist/verifier.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/compile.ts +41 -10
- package/src/commands/init.ts +28 -2
- package/src/emit_auth.ts +513 -67
- package/src/emit_capability.ts +61 -6
- package/src/emit_composition.ts +36 -3
- package/src/emit_events.ts +70 -0
- package/src/emit_full.ts +172 -13
- package/src/emit_index.ts +210 -161
- package/src/emit_models.ts +176 -0
- package/src/emit_openapi.ts +318 -0
- package/src/emit_router.ts +18 -4
- package/src/emit_tests.ts +41 -0
- package/src/emitter.ts +81 -5
- package/src/ir.ts +1 -0
- package/src/lowering.ts +19 -1
- package/src/lowering_channels.ts +3 -2
- package/src/lowering_entities.ts +258 -248
- package/src/optimizer.ts +1 -1
- package/src/scaffold.ts +0 -1
- package/src/typechecker.ts +81 -15
- package/src/verifier.ts +495 -348
package/dist/commands/compile.js
CHANGED
|
@@ -75,6 +75,7 @@ async function runCompile(source, resolved) {
|
|
|
75
75
|
for (const err of typeErrors) {
|
|
76
76
|
console.log(` ${err.code} at ${err.loc.line}:${err.loc.column}: ${err.message}`);
|
|
77
77
|
}
|
|
78
|
+
process.exit(1);
|
|
78
79
|
}
|
|
79
80
|
else {
|
|
80
81
|
console.log(` [3/7] Type check: v (0 errors)`);
|
|
@@ -103,11 +104,13 @@ async function runCompile(source, resolved) {
|
|
|
103
104
|
// Stage 5: Constraint Solve
|
|
104
105
|
const solver = new solver_1.ConstraintSolver();
|
|
105
106
|
let totalResolved = 0;
|
|
107
|
+
let solverFailed = false;
|
|
106
108
|
for (const sys of irSystems) {
|
|
107
109
|
const result = solver.solve(sys);
|
|
108
110
|
sys.resolution = result.resolution;
|
|
109
111
|
totalResolved += Object.keys(result.resolution).length;
|
|
110
112
|
if (result.errors.length > 0) {
|
|
113
|
+
solverFailed = true;
|
|
111
114
|
console.log(` [5/7] Constraint solve: ${result.errors.length} error(s)`);
|
|
112
115
|
for (const err of result.errors)
|
|
113
116
|
console.log(` x ${err}`);
|
|
@@ -119,7 +122,24 @@ async function runCompile(source, resolved) {
|
|
|
119
122
|
if (result.assumptions.length > 5)
|
|
120
123
|
console.log(` ... and ${result.assumptions.length - 5} more`);
|
|
121
124
|
}
|
|
125
|
+
// Back-propagate resolved values into module configs so emitters pick them up.
|
|
126
|
+
// The solver resolves keys like "APIGateway.rate_limit" → write back to mod.config.
|
|
127
|
+
for (const mod of sys.modules) {
|
|
128
|
+
for (const [key, value] of Object.entries(result.resolution)) {
|
|
129
|
+
const prefix = `${mod.name}.`;
|
|
130
|
+
if (key.startsWith(prefix)) {
|
|
131
|
+
const prop = key.slice(prefix.length);
|
|
132
|
+
// Only overwrite if the module config doesn't already have an explicit value
|
|
133
|
+
if (mod.config[prop] === undefined || mod.config[prop] === null) {
|
|
134
|
+
const numVal = Number(value);
|
|
135
|
+
mod.config[prop] = isNaN(numVal) ? value : numVal;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
122
140
|
}
|
|
141
|
+
if (solverFailed)
|
|
142
|
+
process.exit(1);
|
|
123
143
|
// Stage 6: Code Emit
|
|
124
144
|
const emitter = new emit_full_1.FullEmitter();
|
|
125
145
|
const allFiles = [];
|
|
@@ -132,19 +152,31 @@ async function runCompile(source, resolved) {
|
|
|
132
152
|
for (const [lang, count] of Object.entries(byLang)) {
|
|
133
153
|
console.log(` ${lang}: ${count} file(s)`);
|
|
134
154
|
}
|
|
135
|
-
// Stage 7: Verify
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
155
|
+
// Stage 7: Verify — check ALL systems, not just the first
|
|
156
|
+
let verifyFailed = false;
|
|
157
|
+
let totalVerifyErrors = 0;
|
|
158
|
+
let totalVerifyWarnings = 0;
|
|
159
|
+
for (const sys of irSystems) {
|
|
160
|
+
const verifyResult = new verifier_1.Verifier().verify(sys, allFiles);
|
|
161
|
+
const errCount = verifyResult.issues.filter(i => i.severity === "error").length;
|
|
162
|
+
const warnCount = verifyResult.issues.filter(i => i.severity === "warning").length;
|
|
163
|
+
totalVerifyErrors += errCount;
|
|
164
|
+
totalVerifyWarnings += warnCount;
|
|
165
|
+
if (!verifyResult.passed)
|
|
166
|
+
verifyFailed = true;
|
|
167
|
+
for (const issue of verifyResult.issues.slice(0, 10)) {
|
|
168
|
+
console.log(` ${issue.severity === "error" ? "x" : "!"} ${issue.code}: ${issue.message}`);
|
|
169
|
+
}
|
|
141
170
|
}
|
|
142
|
-
|
|
143
|
-
console.log(` [7/7] Verify: FAILED (${
|
|
171
|
+
if (verifyFailed) {
|
|
172
|
+
console.log(` [7/7] Verify: FAILED (${totalVerifyErrors} errors, ${totalVerifyWarnings} warnings)`);
|
|
144
173
|
}
|
|
145
|
-
|
|
146
|
-
console.log(`
|
|
174
|
+
else {
|
|
175
|
+
console.log(` [7/7] Verify: v (${allFiles.length} files, ${totalVerifyWarnings} warnings)`);
|
|
147
176
|
}
|
|
177
|
+
// Abort before writing output if verification failed
|
|
178
|
+
if (verifyFailed)
|
|
179
|
+
process.exit(1);
|
|
148
180
|
// Write output — all writes in parallel per directory
|
|
149
181
|
const outputDir = path.resolve(path.dirname(resolved), "output");
|
|
150
182
|
const allExtensions = irSystems.flatMap(s => s.extension_points || []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,mCAAoC;AACpC,oCAAiC;AACjC,gDAA6C;AAC7C,0CAAuC;AACvC,sCAA6C;AAC7C,4CAA2C;AAC3C,0CAAuC;AACvC,oDAAgD;AAChD,4DAAyD;AACzD,4CAAwC;AAEjC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,QAAgB;IAC/D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,IAAI,4BAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;YACnE,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,mBAAmB,UAAU,CAAC,WAAW,CAAC,MAAM,UAAU,CAAC,CAAC;QACrG,CAAC;QAED,MAAM,GAAG,GAAG,UAAU,CAAC,GAAI,CAAC;QAE5B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;YAC9C,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY;gBAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7E,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,UAAU,GAAG,IAAI,yBAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,uBAAuB,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC;YACjE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3F,CAAC;
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
package/dist/commands/init.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* bonec init <name> [--domain <domain>] [--out <dir>]
|
|
3
|
+
* bonec init <name> [--domain <domain>] [--out <dir>] [--force]
|
|
4
4
|
* Scaffold a new project from a domain template.
|
|
5
5
|
*/
|
|
6
6
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
@@ -29,20 +29,30 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.runInit = void 0;
|
|
31
31
|
const path = __importStar(require("path"));
|
|
32
|
+
const fs = __importStar(require("fs"));
|
|
32
33
|
const scaffold_1 = require("../scaffold");
|
|
33
34
|
const VALID_DOMAINS = [
|
|
34
35
|
"multiplayer_game", "saas_platform", "iot_system",
|
|
35
36
|
"social_network", "marketplace", "realtime_collaboration",
|
|
36
37
|
];
|
|
37
38
|
async function runInit(args) {
|
|
39
|
+
// --list: show available domains
|
|
40
|
+
if (args.includes("--list") || args.includes("-l")) {
|
|
41
|
+
console.log("Available domains:");
|
|
42
|
+
for (const d of VALID_DOMAINS)
|
|
43
|
+
console.log(` ${d}`);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
38
46
|
if (args.length === 0) {
|
|
39
47
|
console.error("Error: bonec init requires a project name.");
|
|
40
48
|
console.error("Example: bonec init my-project --domain saas_platform");
|
|
49
|
+
console.error(" bonec init --list (show available domains)");
|
|
41
50
|
process.exit(1);
|
|
42
51
|
}
|
|
43
52
|
const name = args[0];
|
|
44
53
|
let domain = "saas_platform";
|
|
45
54
|
let outDir = path.resolve(name);
|
|
55
|
+
let force = false;
|
|
46
56
|
for (let i = 1; i < args.length; i++) {
|
|
47
57
|
if (args[i] === "--domain" && args[i + 1]) {
|
|
48
58
|
domain = args[i + 1];
|
|
@@ -52,13 +62,30 @@ async function runInit(args) {
|
|
|
52
62
|
outDir = path.resolve(args[i + 1]);
|
|
53
63
|
i++;
|
|
54
64
|
}
|
|
65
|
+
else if (args[i] === "--force" || args[i] === "-f") {
|
|
66
|
+
force = true;
|
|
67
|
+
}
|
|
55
68
|
}
|
|
56
69
|
if (!VALID_DOMAINS.includes(domain)) {
|
|
57
70
|
console.error(`Error: Invalid domain '${domain}'. Valid: ${VALID_DOMAINS.join(", ")}`);
|
|
58
71
|
process.exit(1);
|
|
59
72
|
}
|
|
73
|
+
// Check if output directory already has files (unless --force)
|
|
74
|
+
if (!force) {
|
|
75
|
+
try {
|
|
76
|
+
const existing = await fs.promises.readdir(outDir);
|
|
77
|
+
if (existing.length > 0) {
|
|
78
|
+
console.error(`Error: Directory '${outDir}' already exists and is not empty.`);
|
|
79
|
+
console.error(`Use --force to overwrite.`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Directory doesn't exist — fine
|
|
85
|
+
}
|
|
86
|
+
}
|
|
60
87
|
const result = await (0, scaffold_1.scaffold)({ name, domain, outDir });
|
|
61
|
-
console.log(
|
|
88
|
+
console.log(`✓ Created ${result.created.length} file(s):`);
|
|
62
89
|
for (const f of result.created)
|
|
63
90
|
console.log(` ${f}`);
|
|
64
91
|
console.log(`\nNext steps:`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAC7B,0CAAuD;AAEvD,MAAM,aAAa,GAAqB;IACtC,kBAAkB,EAAE,eAAe,EAAE,YAAY;IACjD,gBAAgB,EAAE,aAAa,EAAE,wBAAwB;CAC1D,CAAC;AAEK,KAAK,UAAU,OAAO,CAAC,IAAc;IAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,MAAM,GAAmB,eAAe,CAAC;IAC7C,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/emit_auth.d.ts
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* BoneScript Auth Emitter
|
|
3
|
-
* Generates auth.ts — JWT middleware
|
|
3
|
+
* Generates auth.ts — JWT, OAuth2, or API key middleware depending on the
|
|
4
|
+
* resolved auth_method in the system's constraint resolution map.
|
|
5
|
+
*
|
|
6
|
+
* Auth method selection (in priority order):
|
|
7
|
+
* 1. system.resolution["implied.auth_method"] — set by constraint solver
|
|
8
|
+
* 2. Any api_service module's config.auth_method
|
|
9
|
+
* 3. Fallback: jwt
|
|
10
|
+
*
|
|
11
|
+
* Generated strategies:
|
|
12
|
+
* jwt — Bearer token verification via jsonwebtoken
|
|
13
|
+
* oauth2 — Authorization Code flow: /auth/login redirect + /auth/callback
|
|
14
|
+
* token exchange + refresh token rotation
|
|
15
|
+
* apikey — X-API-Key header lookup against hashed keys in the database
|
|
4
16
|
*/
|
|
5
17
|
import * as IR from "./ir";
|
|
6
|
-
export declare function emitAuthMiddleware(
|
|
18
|
+
export declare function emitAuthMiddleware(system: IR.IRSystem): string;
|