bonescript-compiler 0.5.6 → 0.5.7
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/emit_admin.d.ts +7 -0
- package/dist/emit_admin.js +130 -0
- package/dist/emit_admin.js.map +1 -0
- package/dist/emit_full.js +3 -0
- package/dist/emit_full.js.map +1 -1
- package/dist/emit_runtime.js +30 -6
- package/dist/emit_runtime.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lowering.js +5 -2
- package/dist/lowering.js.map +1 -1
- package/package.json +1 -1
- package/src/emit_admin.ts +131 -0
- package/src/emit_full.ts +4 -0
- package/src/emit_runtime.ts +31 -6
- package/src/index.ts +1 -0
- package/src/lowering.ts +5 -2
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BoneScript Admin Panel Emitter
|
|
3
|
+
* Generates a self-contained HTML admin UI from an IRSystem.
|
|
4
|
+
* No build step — single HTML file with Tailwind CDN + vanilla JS.
|
|
5
|
+
*/
|
|
6
|
+
import * as IR from "./ir";
|
|
7
|
+
export declare function emitAdminPanel(system: IR.IRSystem): string;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* BoneScript Admin Panel Emitter
|
|
4
|
+
* Generates a self-contained HTML admin UI from an IRSystem.
|
|
5
|
+
* No build step — single HTML file with Tailwind CDN + vanilla JS.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.emitAdminPanel = void 0;
|
|
9
|
+
function toSnakeCase(s) {
|
|
10
|
+
return s.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
|
|
11
|
+
}
|
|
12
|
+
function toDashCase(s) {
|
|
13
|
+
return toSnakeCase(s).replace(/_/g, "-");
|
|
14
|
+
}
|
|
15
|
+
function irTypeToDisplay(irType) {
|
|
16
|
+
if (irType === "bool")
|
|
17
|
+
return "boolean";
|
|
18
|
+
if (irType === "timestamp")
|
|
19
|
+
return "datetime";
|
|
20
|
+
if (irType === "uuid")
|
|
21
|
+
return "uuid";
|
|
22
|
+
if (irType === "json")
|
|
23
|
+
return "json";
|
|
24
|
+
if (irType.startsWith("list<") || irType.startsWith("set<"))
|
|
25
|
+
return "array";
|
|
26
|
+
return "text";
|
|
27
|
+
}
|
|
28
|
+
function emitAdminPanel(system) {
|
|
29
|
+
const apiModules = system.modules.filter(m => m.kind === "api_service" && m.models.length > 0);
|
|
30
|
+
const entityConfigs = apiModules.map(mod => {
|
|
31
|
+
const model = mod.models[0];
|
|
32
|
+
const tableName = toSnakeCase(model.name) + "s";
|
|
33
|
+
const capabilities = mod.interfaces.flatMap(i => i.methods)
|
|
34
|
+
.filter(m => !["create", "read", "update", "delete", "list"].includes(m.name));
|
|
35
|
+
const columns = model.fields.map(f => ({
|
|
36
|
+
key: f.name,
|
|
37
|
+
label: f.name.replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase()),
|
|
38
|
+
type: irTypeToDisplay(f.type),
|
|
39
|
+
nullable: f.nullable,
|
|
40
|
+
}));
|
|
41
|
+
const formFields = model.fields
|
|
42
|
+
.filter(f => !["id", "created_at", "updated_at"].includes(f.name))
|
|
43
|
+
.map(f => ({
|
|
44
|
+
key: f.name,
|
|
45
|
+
label: f.name.replace(/_/g, " ").replace(/\b\w/g, (c) => c.toUpperCase()),
|
|
46
|
+
type: irTypeToDisplay(f.type),
|
|
47
|
+
nullable: f.nullable,
|
|
48
|
+
}));
|
|
49
|
+
return {
|
|
50
|
+
name: model.name,
|
|
51
|
+
tableName,
|
|
52
|
+
apiPath: "/" + tableName,
|
|
53
|
+
columns,
|
|
54
|
+
formFields,
|
|
55
|
+
capabilities: capabilities.map(c => ({
|
|
56
|
+
name: c.name,
|
|
57
|
+
label: c.name.replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase()),
|
|
58
|
+
endpoint: "/" + tableName + "/" + toDashCase(c.name),
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
const configJson = JSON.stringify(entityConfigs, null, 2);
|
|
63
|
+
// Build nav buttons using string concatenation (no template literals in generated JS)
|
|
64
|
+
const navHtml = apiModules.map(mod => {
|
|
65
|
+
const t = toSnakeCase(mod.models[0].name) + "s";
|
|
66
|
+
const n = mod.models[0].name;
|
|
67
|
+
return '<button onclick="loadEntity(\'' + t + '\')" id="nav-' + t + '" ' +
|
|
68
|
+
'class="w-full text-left px-3 py-2 rounded text-sm text-gray-300 hover:bg-gray-700 hover:text-white transition-colors mb-1">' +
|
|
69
|
+
n + '</button>';
|
|
70
|
+
}).join("\n ");
|
|
71
|
+
// The embedded JS uses only regular strings (no backticks) to avoid escaping issues
|
|
72
|
+
const embeddedJs = [
|
|
73
|
+
'const BASE_URL = "http://localhost:3000";',
|
|
74
|
+
'const ENTITIES = ' + configJson + ';',
|
|
75
|
+
'let currentEntity = null, currentPage = 1, editingId = null, pendingCapability = null;',
|
|
76
|
+
'let authToken = localStorage.getItem("admin_token") || "";',
|
|
77
|
+
'if (authToken) { document.getElementById("token-input").value = authToken; document.getElementById("auth-status").textContent = "Token set"; }',
|
|
78
|
+
'function setToken(v) { authToken = v; localStorage.setItem("admin_token", v); document.getElementById("auth-status").textContent = v ? "Token set" : "Not authenticated"; }',
|
|
79
|
+
'function headers() { const h = { "Content-Type": "application/json" }; if (authToken) h["Authorization"] = "Bearer " + authToken; return h; }',
|
|
80
|
+
'function toast(msg, type) { const el = document.createElement("div"); el.className = "toast px-4 py-2 rounded shadow text-sm text-white " + (type === "error" ? "bg-red-500" : "bg-green-500"); el.textContent = msg; document.getElementById("toast-container").appendChild(el); setTimeout(function() { el.remove(); }, 3500); }',
|
|
81
|
+
'function loadEntity(t) { currentEntity = ENTITIES.find(function(e) { return e.tableName === t; }); if (!currentEntity) return; currentPage = 1; document.querySelectorAll("[id^=nav-]").forEach(function(el) { el.classList.remove("bg-gray-700", "text-white"); el.classList.add("text-gray-300"); }); var n = document.getElementById("nav-" + t); if (n) { n.classList.add("bg-gray-700", "text-white"); n.classList.remove("text-gray-300"); } document.getElementById("page-title").textContent = currentEntity.name; document.getElementById("page-subtitle").textContent = currentEntity.apiPath; document.getElementById("create-btn").classList.remove("hidden"); document.getElementById("refresh-btn").classList.remove("hidden"); refreshTable(); }',
|
|
82
|
+
'async function refreshTable() { if (!currentEntity) return; var area = document.getElementById("content-area"); area.classList.add("loading"); try { var res = await fetch(BASE_URL + currentEntity.apiPath + "?page=" + currentPage + "&page_size=50", { headers: headers() }); var data = await res.json(); if (!res.ok) { area.innerHTML = "<p class=\\"text-red-600\\">" + (data.error && data.error.message || "Error") + "</p>"; return; } var items = data.items || []; var total = data.total || 0; var cols = currentEntity.columns; var caps = currentEntity.capabilities; var html = "<div class=\\"bg-white rounded-lg shadow overflow-hidden\\"><div class=\\"px-4 py-3 border-b flex items-center justify-between\\"><span class=\\"text-sm text-gray-500\\">" + total + " total</span>"; if (caps.length > 0) { html += "<div class=\\"flex gap-2\\">"; for (var i = 0; i < caps.length; i++) { html += "<button onclick=\\"runCapability(\'" + caps[i].endpoint + "\',\'" + caps[i].label + "\')\\" class=\\"text-xs bg-orange-100 text-orange-700 px-2 py-1 rounded\\">" + caps[i].label + "</button>"; } html += "</div>"; } html += "</div><div class=\\"overflow-x-auto\\"><table class=\\"w-full text-sm\\"><thead class=\\"bg-gray-50 border-b\\"><tr>"; for (var j = 0; j < cols.length; j++) { html += "<th class=\\"text-left px-4 py-3 text-xs font-medium text-gray-500 uppercase\\">" + cols[j].label + "</th>"; } html += "<th class=\\"text-right px-4 py-3 text-xs\\">Actions</th></tr></thead><tbody class=\\"divide-y divide-gray-100\\">"; if (items.length === 0) { html += "<tr><td colspan=\\"" + (cols.length + 1) + "\\" class=\\"px-4 py-8 text-center text-gray-400\\">No records</td></tr>"; } for (var k = 0; k < items.length; k++) { var item = items[k]; html += "<tr class=\\"hover:bg-gray-50\\">"; for (var l = 0; l < cols.length; l++) { var col = cols[l]; var val = item[col.key]; var d = ""; if (val === null || val === undefined) { d = "<span class=\\"text-gray-300 italic\\">null</span>"; } else if (col.type === "boolean") { d = val ? "<span class=\\"text-green-600\\">Yes</span>" : "<span class=\\"text-red-400\\">No</span>"; } else if (col.type === "datetime") { d = "<span class=\\"text-gray-600\\">" + new Date(val).toLocaleString() + "</span>"; } else if (col.type === "uuid") { d = "<span class=\\"font-mono text-xs text-gray-500\\">" + String(val).slice(0, 8) + "...</span>"; } else if (col.type === "json" || col.type === "array") { d = "<span class=\\"font-mono text-xs text-gray-500\\">" + JSON.stringify(val).slice(0, 40) + "</span>"; } else { d = "<span class=\\"text-gray-800\\">" + String(val).slice(0, 60) + "</span>"; } html += "<td class=\\"px-4 py-3\\">" + d + "</td>"; } html += "<td class=\\"px-4 py-3 text-right\\"><button onclick=\\"openEditModal(\'" + item.id + "\')\\" class=\\"text-blue-600 hover:text-blue-800 text-xs mr-2\\">Edit</button><button onclick=\\"deleteRecord(\'" + item.id + "\')\\" class=\\"text-red-500 hover:text-red-700 text-xs\\">Delete</button></td></tr>"; } html += "</tbody></table></div></div>"; area.innerHTML = html; } catch(e) { area.innerHTML = "<p class=\\"text-red-600\\">Error: " + e.message + "</p>"; } finally { area.classList.remove("loading"); } }',
|
|
83
|
+
'function openCreateModal() { if (!currentEntity) return; editingId = null; document.getElementById("modal-title").textContent = "Create " + currentEntity.name; renderFormFields(null); document.getElementById("modal").classList.remove("hidden"); }',
|
|
84
|
+
'async function openEditModal(id) { if (!currentEntity) return; editingId = id; document.getElementById("modal-title").textContent = "Edit " + currentEntity.name; try { var res = await fetch(BASE_URL + currentEntity.apiPath + "/" + id, { headers: headers() }); var data = await res.json(); renderFormFields(data); document.getElementById("modal").classList.remove("hidden"); } catch(e) { toast("Failed to load: " + e.message, "error"); } }',
|
|
85
|
+
'function renderFormFields(data) { var fields = currentEntity.formFields; var html = ""; for (var i = 0; i < fields.length; i++) { var f = fields[i]; var val = data ? (data[f.key] !== undefined ? data[f.key] : "") : ""; var it = f.type === "boolean" ? "checkbox" : f.type === "datetime" ? "datetime-local" : f.type === "json" || f.type === "array" ? "textarea" : "text"; html += "<div><label class=\\"block text-sm font-medium text-gray-700 mb-1\\">" + f.label + (f.nullable ? "" : " *") + "</label>"; if (it === "checkbox") { html += "<input type=\\"checkbox\\" name=\\"" + f.key + "\\" " + (val ? "checked" : "") + " class=\\"h-4 w-4 text-blue-600 rounded border-gray-300\\" />"; } else if (it === "textarea") { html += "<textarea name=\\"" + f.key + "\\" rows=\\"3\\" class=\\"w-full border border-gray-300 rounded px-3 py-2 text-sm\\">" + (typeof val === "object" ? JSON.stringify(val, null, 2) : val) + "</textarea>"; } else { html += "<input type=\\"" + it + "\\" name=\\"" + f.key + "\\" value=\\"" + val + "\\" class=\\"w-full border border-gray-300 rounded px-3 py-2 text-sm\\" />"; } html += "</div>"; } document.getElementById("form-fields").innerHTML = html; }',
|
|
86
|
+
'async function submitForm(e) { e.preventDefault(); if (!currentEntity) return; var form = document.getElementById("modal-form"); var body = {}; for (var i = 0; i < currentEntity.formFields.length; i++) { var f = currentEntity.formFields[i]; var el = form.elements[f.key]; if (!el) continue; if (f.type === "boolean") { body[f.key] = el.checked; } else if (f.type === "json" || f.type === "array") { try { body[f.key] = JSON.parse(el.value); } catch(ex) { body[f.key] = el.value; } } else { body[f.key] = el.value; } } try { var url = editingId ? BASE_URL + currentEntity.apiPath + "/" + editingId : BASE_URL + currentEntity.apiPath; var method = editingId ? "PUT" : "POST"; var res = await fetch(url, { method: method, headers: headers(), body: JSON.stringify(body) }); var data = await res.json(); if (!res.ok) throw new Error(data.error && data.error.message || "Request failed"); toast(editingId ? "Updated" : "Created"); closeModal(); refreshTable(); } catch(e) { toast(e.message, "error"); } }',
|
|
87
|
+
'async function deleteRecord(id) { if (!confirm("Delete this record?")) return; try { var res = await fetch(BASE_URL + currentEntity.apiPath + "/" + id, { method: "DELETE", headers: headers() }); if (!res.ok) { var d = await res.json().catch(function() { return {}; }); throw new Error(d.error && d.error.message || "Delete failed"); } toast("Deleted"); refreshTable(); } catch(e) { toast(e.message, "error"); } }',
|
|
88
|
+
'function runCapability(endpoint, label) { pendingCapability = { endpoint: endpoint, label: label }; document.getElementById("cap-modal-title").textContent = label; document.getElementById("cap-modal-desc").textContent = "Run this capability?"; document.getElementById("cap-modal").classList.remove("hidden"); }',
|
|
89
|
+
'async function confirmCapability() { if (!pendingCapability) return; closeCapModal(); try { var res = await fetch(BASE_URL + pendingCapability.endpoint, { method: "POST", headers: headers(), body: JSON.stringify({}) }); var data = await res.json().catch(function() { return {}; }); if (!res.ok) throw new Error(data.error && data.error.message || "Failed"); toast(pendingCapability.label + " completed"); refreshTable(); } catch(e) { toast(e.message, "error"); } }',
|
|
90
|
+
'function closeModal() { document.getElementById("modal").classList.add("hidden"); editingId = null; }',
|
|
91
|
+
'function closeCapModal() { document.getElementById("cap-modal").classList.add("hidden"); pendingCapability = null; }',
|
|
92
|
+
'document.getElementById("modal").addEventListener("click", function(e) { if (e.target === e.currentTarget) closeModal(); });',
|
|
93
|
+
'document.getElementById("cap-modal").addEventListener("click", function(e) { if (e.target === e.currentTarget) closeCapModal(); });',
|
|
94
|
+
].join("\n");
|
|
95
|
+
return [
|
|
96
|
+
'<!DOCTYPE html>',
|
|
97
|
+
'<html lang="en">',
|
|
98
|
+
'<head>',
|
|
99
|
+
'<meta charset="UTF-8" />',
|
|
100
|
+
'<meta name="viewport" content="width=device-width, initial-scale=1.0" />',
|
|
101
|
+
'<title>' + system.name + ' Admin</title>',
|
|
102
|
+
'<script src="https://cdn.tailwindcss.com"><\/script>',
|
|
103
|
+
'<style>.loading{opacity:.5;pointer-events:none}.toast{animation:fadeout 3s forwards}@keyframes fadeout{0%,70%{opacity:1}100%{opacity:0}}<\/style>',
|
|
104
|
+
'</head>',
|
|
105
|
+
'<body class="bg-gray-50 min-h-screen">',
|
|
106
|
+
'<div class="flex h-screen overflow-hidden">',
|
|
107
|
+
'<aside class="w-64 bg-gray-900 text-white flex flex-col">',
|
|
108
|
+
'<div class="p-4 border-b border-gray-700"><h1 class="text-lg font-bold">' + system.name + '</h1><p class="text-xs text-gray-400 mt-1">Admin Panel</p></div>',
|
|
109
|
+
'<nav class="flex-1 overflow-y-auto p-2" id="nav">' + navHtml + '</nav>',
|
|
110
|
+
'<div class="p-4 border-t border-gray-700"><div class="text-xs text-gray-500"><div id="auth-status">Not authenticated</div>',
|
|
111
|
+
'<input id="token-input" type="password" placeholder="Bearer token" class="mt-2 w-full bg-gray-800 text-white text-xs px-2 py-1 rounded border border-gray-600" onchange="setToken(this.value)" /></div></div>',
|
|
112
|
+
'</aside>',
|
|
113
|
+
'<main class="flex-1 overflow-y-auto">',
|
|
114
|
+
'<div class="bg-white border-b px-6 py-4 flex items-center justify-between sticky top-0 z-10">',
|
|
115
|
+
'<div><h2 class="text-xl font-semibold text-gray-800" id="page-title">Select an entity</h2><p class="text-sm text-gray-500" id="page-subtitle"></p></div>',
|
|
116
|
+
'<div class="flex gap-2">',
|
|
117
|
+
'<button onclick="openCreateModal()" id="create-btn" class="hidden bg-blue-600 text-white px-4 py-2 rounded text-sm hover:bg-blue-700">+ Create</button>',
|
|
118
|
+
'<button onclick="refreshTable()" id="refresh-btn" class="hidden bg-gray-100 text-gray-700 px-3 py-2 rounded text-sm hover:bg-gray-200">↻ Refresh</button>',
|
|
119
|
+
'</div></div>',
|
|
120
|
+
'<div id="toast-container" class="fixed top-4 right-4 z-50 flex flex-col gap-2"></div>',
|
|
121
|
+
'<div class="p-6" id="content-area"><div class="text-center text-gray-400 mt-20"><div class="text-5xl mb-4">⚡</div><p class="text-lg">Select an entity from the sidebar</p><p class="text-sm mt-2">Generated by BoneScript compiler</p></div></div>',
|
|
122
|
+
'</main></div>',
|
|
123
|
+
'<div id="modal" class="hidden fixed inset-0 bg-black bg-opacity-50 z-40 flex items-center justify-center p-4"><div class="bg-white rounded-lg shadow-xl w-full max-w-lg max-h-screen overflow-y-auto"><div class="p-6"><div class="flex items-center justify-between mb-4"><h3 class="text-lg font-semibold" id="modal-title">Create</h3><button onclick="closeModal()" class="text-gray-400 hover:text-gray-600 text-2xl">×</button></div><form id="modal-form" onsubmit="submitForm(event)" class="space-y-4"><div id="form-fields"></div><div class="flex gap-2 pt-2"><button type="submit" class="flex-1 bg-blue-600 text-white py-2 rounded hover:bg-blue-700">Save</button><button type="button" onclick="closeModal()" class="flex-1 bg-gray-100 text-gray-700 py-2 rounded hover:bg-gray-200">Cancel</button></div></form></div></div></div>',
|
|
124
|
+
'<div id="cap-modal" class="hidden fixed inset-0 bg-black bg-opacity-50 z-40 flex items-center justify-center p-4"><div class="bg-white rounded-lg shadow-xl w-full max-w-md"><div class="p-6"><div class="flex items-center justify-between mb-4"><h3 class="text-lg font-semibold" id="cap-modal-title">Run Capability</h3><button onclick="closeCapModal()" class="text-gray-400 hover:text-gray-600 text-2xl">×</button></div><p class="text-sm text-gray-500 mb-4" id="cap-modal-desc"></p><div class="flex gap-2"><button onclick="confirmCapability()" class="flex-1 bg-orange-500 text-white py-2 rounded hover:bg-orange-600">Run</button><button onclick="closeCapModal()" class="flex-1 bg-gray-100 text-gray-700 py-2 rounded hover:bg-gray-200">Cancel</button></div></div></div></div>',
|
|
125
|
+
'<script>' + embeddedJs + '<\/script>',
|
|
126
|
+
'</body></html>',
|
|
127
|
+
].join("\n");
|
|
128
|
+
}
|
|
129
|
+
exports.emitAdminPanel = emitAdminPanel;
|
|
130
|
+
//# sourceMappingURL=emit_admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit_admin.js","sourceRoot":"","sources":["../src/emit_admin.ts"],"names":[],"mappings":"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"}
|
package/dist/emit_full.js
CHANGED
|
@@ -22,6 +22,7 @@ const emit_zod_1 = require("./emit_zod");
|
|
|
22
22
|
const emit_postman_1 = require("./emit_postman");
|
|
23
23
|
const emit_seed_1 = require("./emit_seed");
|
|
24
24
|
const emit_audit_1 = require("./emit_audit");
|
|
25
|
+
const emit_admin_1 = require("./emit_admin");
|
|
25
26
|
function toSnakeCase(s) {
|
|
26
27
|
return s.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
|
|
27
28
|
}
|
|
@@ -167,6 +168,8 @@ class FullEmitter {
|
|
|
167
168
|
// 17. Audit log
|
|
168
169
|
files.push({ path: "migrations/audit_log.sql", content: (0, emit_audit_1.emitAuditSchema)(), language: "sql", source_module: "infra" });
|
|
169
170
|
files.push({ path: "src/audit.ts", content: (0, emit_audit_1.emitAuditMiddleware)(system), language: "typescript", source_module: "infra" });
|
|
171
|
+
// 18. Admin panel
|
|
172
|
+
files.push({ path: "admin/index.html", content: (0, emit_admin_1.emitAdminPanel)(system), language: "yaml", source_module: "admin" });
|
|
170
173
|
// 10. Source map + debug handler
|
|
171
174
|
files.push({ path: `${system.name}.bone.map`, content: (0, emit_sourcemap_1.emitSourceMapFile)(system, `${system.name}.bone`), language: "json", source_module: "root" });
|
|
172
175
|
files.push({ path: "src/debug.ts", content: (0, emit_sourcemap_1.emitDebugHandler)(system), language: "typescript", source_module: "infra" });
|
package/dist/emit_full.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit_full.js","sourceRoot":"","sources":["../src/emit_full.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,uCAAiD;AACjD,iDASwB;AACxB,qDAAuD;AACvD,yDAM4B;AAC5B,+CAAgD;AAChD,yDAA+E;AAG/E,+CAAsE;AACtE,6CAAiD;AACjD,qDAAuE;AACvE,6CAA6C;AAC7C,+CAAuG;AACvG,iDAAiD;AACjD,yCAA+C;AAC/C,yCAA4C;AAC5C,iDAAuD;AACvD,2CAA2C;AAC3C,6CAAoE;
|
|
1
|
+
{"version":3,"file":"emit_full.js","sourceRoot":"","sources":["../src/emit_full.ts"],"names":[],"mappings":"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"}
|
package/dist/emit_runtime.js
CHANGED
|
@@ -209,6 +209,11 @@ function emitEntityRouter(mod, system) {
|
|
|
209
209
|
lines.push(`import { query, queryOne, execute, pool } from "../db";`);
|
|
210
210
|
lines.push(`import { eventBus } from "../events";`);
|
|
211
211
|
lines.push(`import { requireAuth, AuthContext } from "../auth";`);
|
|
212
|
+
lines.push(`import rateLimit from "express-rate-limit";`);
|
|
213
|
+
// Only import audit if module has audit: true
|
|
214
|
+
if (mod.config["audit"]) {
|
|
215
|
+
lines.push(`import { auditLog } from "../audit";`);
|
|
216
|
+
}
|
|
212
217
|
lines.push(`import { logger } from "../logger";`);
|
|
213
218
|
lines.push(`import { counter } from "../metrics";`);
|
|
214
219
|
lines.push(`import * as __algorithms from "../algorithms";`);
|
|
@@ -230,10 +235,21 @@ function emitEntityRouter(mod, system) {
|
|
|
230
235
|
}
|
|
231
236
|
lines.push(`export const ${toCamelCase(routeBase)}Router = Router();`);
|
|
232
237
|
lines.push(``);
|
|
238
|
+
// Per-module rate limiter (from policy declaration)
|
|
239
|
+
const modRateLimit = typeof mod.config["rate_limit"] === "number" && mod.config["rate_limit"] > 0
|
|
240
|
+
? mod.config["rate_limit"] : 0;
|
|
241
|
+
const modRateLimitWindowMs = typeof mod.config["rate_limit_window_ms"] === "number"
|
|
242
|
+
? mod.config["rate_limit_window_ms"] : 60000;
|
|
243
|
+
if (modRateLimit > 0) {
|
|
244
|
+
lines.push(`// Rate limiter from policy declaration`);
|
|
245
|
+
lines.push(`const __routeRateLimit = rateLimit({ windowMs: ${modRateLimitWindowMs}, max: ${modRateLimit}, standardHeaders: true, legacyHeaders: false });`);
|
|
246
|
+
lines.push(``);
|
|
247
|
+
}
|
|
233
248
|
// CREATE
|
|
234
249
|
const insertFields = entityModel.fields.filter(f => f.name !== "id" && f.name !== "created_at" && f.name !== "updated_at");
|
|
235
250
|
lines.push(`// CREATE`);
|
|
236
|
-
|
|
251
|
+
const __crudMiddlewares = modRateLimit > 0 ? "__routeRateLimit, requireAuth" : "requireAuth";
|
|
252
|
+
lines.push(`${toCamelCase(routeBase)}Router.post("/", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
237
253
|
lines.push(` try {`);
|
|
238
254
|
lines.push(` const id = uuid();`);
|
|
239
255
|
lines.push(` const { ${insertFields.map(f => f.name).join(", ")} } = req.body;`);
|
|
@@ -257,7 +273,7 @@ function emitEntityRouter(mod, system) {
|
|
|
257
273
|
lines.push(``);
|
|
258
274
|
// READ
|
|
259
275
|
lines.push(`// READ`);
|
|
260
|
-
lines.push(`${toCamelCase(routeBase)}Router.get("/:id",
|
|
276
|
+
lines.push(`${toCamelCase(routeBase)}Router.get("/:id", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
261
277
|
lines.push(` try {`);
|
|
262
278
|
lines.push(` const row = await queryOne(\`SELECT * FROM ${tableName} WHERE id = $1\`, [req.params.id]);`);
|
|
263
279
|
lines.push(` if (!row) return res.status(404).json({ error: { code: "NOT_FOUND", message: "Not found" } });`);
|
|
@@ -270,7 +286,7 @@ function emitEntityRouter(mod, system) {
|
|
|
270
286
|
// LIST — with optional JOINs for has_one/belongs_to relations
|
|
271
287
|
const joinRelations = mod.relations.filter(r => r.kind === "has_one" || r.kind === "belongs_to");
|
|
272
288
|
lines.push(`// LIST`);
|
|
273
|
-
lines.push(`${toCamelCase(routeBase)}Router.get("/",
|
|
289
|
+
lines.push(`${toCamelCase(routeBase)}Router.get("/", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
274
290
|
lines.push(` try {`);
|
|
275
291
|
lines.push(` const page = parseInt(req.query.page as string) || 1;`);
|
|
276
292
|
lines.push(` const pageSize = Math.min(parseInt(req.query.page_size as string) || 50, 100);`);
|
|
@@ -299,7 +315,7 @@ function emitEntityRouter(mod, system) {
|
|
|
299
315
|
lines.push(``);
|
|
300
316
|
// UPDATE — with state machine enforcement
|
|
301
317
|
lines.push(`// UPDATE`);
|
|
302
|
-
lines.push(`${toCamelCase(routeBase)}Router.put("/:id",
|
|
318
|
+
lines.push(`${toCamelCase(routeBase)}Router.put("/:id", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
303
319
|
lines.push(` const fields = { ...req.body };`);
|
|
304
320
|
if (mod.state_machines.length > 0) {
|
|
305
321
|
const sm = mod.state_machines[0];
|
|
@@ -323,7 +339,7 @@ function emitEntityRouter(mod, system) {
|
|
|
323
339
|
lines.push(``);
|
|
324
340
|
// DELETE
|
|
325
341
|
lines.push(`// DELETE`);
|
|
326
|
-
lines.push(`${toCamelCase(routeBase)}Router.delete("/:id",
|
|
342
|
+
lines.push(`${toCamelCase(routeBase)}Router.delete("/:id", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
327
343
|
lines.push(` try {`);
|
|
328
344
|
lines.push(` const count = await execute(\`DELETE FROM ${tableName} WHERE id = $1\`, [req.params.id]);`);
|
|
329
345
|
lines.push(` if (count === 0) return res.status(404).json({ error: { code: "NOT_FOUND", message: "Not found" } });`);
|
|
@@ -381,7 +397,15 @@ function emitCapabilityEndpoint(method, mod, tableName, system) {
|
|
|
381
397
|
const endpoint = `/${method.name.replace(/_/g, "-")}`;
|
|
382
398
|
const isTransactional = method.sync === "transactional";
|
|
383
399
|
lines.push(`// CAPABILITY: ${method.name}${isTransactional ? " [transactional]" : ""}${method.retry ? ` [retry: ${method.retry.max_attempts}x ${method.retry.backoff}]` : ""}`);
|
|
384
|
-
|
|
400
|
+
// Build middleware chain: optional rate limiter + requireAuth + optional audit
|
|
401
|
+
const capMiddlewares = ["requireAuth"];
|
|
402
|
+
if (typeof mod.config["rate_limit"] === "number" && mod.config["rate_limit"] > 0) {
|
|
403
|
+
capMiddlewares.unshift("__routeRateLimit");
|
|
404
|
+
}
|
|
405
|
+
if (mod.config["audit"]) {
|
|
406
|
+
capMiddlewares.push(`auditLog("${method.name}", "${mod.models[0]?.name ?? ""}")`);
|
|
407
|
+
}
|
|
408
|
+
lines.push(`${routerName}.post("${endpoint}", ${capMiddlewares.join(", ")}, async (req: Request, res: Response) => {`);
|
|
385
409
|
lines.push(` const auth: AuthContext = (req as any).auth;`);
|
|
386
410
|
// Wrap in retry logic if declared
|
|
387
411
|
if (method.retry) {
|
package/dist/emit_runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit_runtime.js","sourceRoot":"","sources":["../src/emit_runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emit_runtime.js","sourceRoot":"","sources":["../src/emit_runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export { emitZodSchemas } from "./emit_zod";
|
|
|
35
35
|
export { emitPostmanCollection } from "./emit_postman";
|
|
36
36
|
export { emitSeedFile } from "./emit_seed";
|
|
37
37
|
export { emitAuditSchema, emitAuditMiddleware } from "./emit_audit";
|
|
38
|
+
export { emitAdminPanel } from "./emit_admin";
|
|
38
39
|
/**
|
|
39
40
|
* Convenience function: compile a .bone source string to files.
|
|
40
41
|
*/
|
package/dist/index.js
CHANGED
|
@@ -27,7 +27,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
27
27
|
return result;
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.compile = exports.emitAuditMiddleware = exports.emitAuditSchema = exports.emitSeedFile = exports.emitPostmanCollection = exports.emitZodSchemas = exports.emitSdkPackageJson = exports.emitTypescriptSdk = exports.emitOpenApiJson = exports.emitOpenApiSpec = exports.validateExtensions = exports.extractImplementations = exports.mergeWithExisting = exports.listByCategory = exports.listAlgorithms = exports.lookupAlgorithm = exports.IR = exports.AST = exports.scaffold = exports.Formatter = exports.ModuleLoader = exports.optimize = exports.Verifier = exports.NakamaEmitter = exports.FullEmitter = exports.ConstraintSolver = exports.Lowering = exports.TypeChecker = exports.RecoveringParser = exports.ParseError = exports.Parser = exports.TokenKind = exports.LexerError = exports.Lexer = void 0;
|
|
30
|
+
exports.compile = exports.emitAdminPanel = exports.emitAuditMiddleware = exports.emitAuditSchema = exports.emitSeedFile = exports.emitPostmanCollection = exports.emitZodSchemas = exports.emitSdkPackageJson = exports.emitTypescriptSdk = exports.emitOpenApiJson = exports.emitOpenApiSpec = exports.validateExtensions = exports.extractImplementations = exports.mergeWithExisting = exports.listByCategory = exports.listAlgorithms = exports.lookupAlgorithm = exports.IR = exports.AST = exports.scaffold = exports.Formatter = exports.ModuleLoader = exports.optimize = exports.Verifier = exports.NakamaEmitter = exports.FullEmitter = exports.ConstraintSolver = exports.Lowering = exports.TypeChecker = exports.RecoveringParser = exports.ParseError = exports.Parser = exports.TokenKind = exports.LexerError = exports.Lexer = void 0;
|
|
31
31
|
// Core pipeline
|
|
32
32
|
var lexer_1 = require("./lexer");
|
|
33
33
|
Object.defineProperty(exports, "Lexer", { enumerable: true, get: function () { return lexer_1.Lexer; } });
|
|
@@ -88,6 +88,8 @@ Object.defineProperty(exports, "emitSeedFile", { enumerable: true, get: function
|
|
|
88
88
|
var emit_audit_1 = require("./emit_audit");
|
|
89
89
|
Object.defineProperty(exports, "emitAuditSchema", { enumerable: true, get: function () { return emit_audit_1.emitAuditSchema; } });
|
|
90
90
|
Object.defineProperty(exports, "emitAuditMiddleware", { enumerable: true, get: function () { return emit_audit_1.emitAuditMiddleware; } });
|
|
91
|
+
var emit_admin_1 = require("./emit_admin");
|
|
92
|
+
Object.defineProperty(exports, "emitAdminPanel", { enumerable: true, get: function () { return emit_admin_1.emitAdminPanel; } });
|
|
91
93
|
/**
|
|
92
94
|
* Convenience function: compile a .bone source string to files.
|
|
93
95
|
*/
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,iCAAuD;AAA9C,8FAAA,KAAK,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,kGAAA,SAAS,OAAA;AAErC,mCAA8C;AAArC,gGAAA,MAAM,OAAA;AAAE,oGAAA,UAAU,OAAA;AAC3B,qDAAqD;AAA5C,mHAAA,gBAAgB,OAAA;AAEzB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAEpB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,mCAA4C;AAAnC,0GAAA,gBAAgB,OAAA;AAEzB,yCAA0C;AAAjC,wGAAA,WAAW,OAAA;AACpB,6CAA8C;AAArC,4GAAA,aAAa,OAAA;AAGtB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAEjB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAErB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGjB,YAAY;AACZ,6CAA6B;AAE7B,WAAW;AACX,2CAA2B;AAE3B,oBAAoB;AACpB,yDAAsF;AAA7E,oHAAA,eAAe,OAAA;AAAE,mHAAA,cAAc,OAAA;AAAE,mHAAA,cAAc,OAAA;AAExD,mBAAmB;AACnB,yDAAoG;AAA3F,sHAAA,iBAAiB,OAAA;AAAE,2HAAA,sBAAsB,OAAA;AAAE,uHAAA,kBAAkB,OAAA;AAEtE,eAAe;AACf,+CAAkE;AAAzD,+GAAA,eAAe,OAAA;AAAE,+GAAA,eAAe,OAAA;AACzC,uCAAmE;AAA1D,6GAAA,iBAAiB,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAC9C,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,+CAAuD;AAA9C,qHAAA,qBAAqB,OAAA;AAC9B,yCAA2C;AAAlC,yGAAA,YAAY,OAAA;AACrB,2CAAoE;AAA3D,6GAAA,eAAe,OAAA;AAAE,iHAAA,mBAAmB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lowering.js
CHANGED
|
@@ -103,7 +103,7 @@ class Lowering {
|
|
|
103
103
|
// Lower entities → api_service modules (with CRUD + capabilities)
|
|
104
104
|
for (const entity of entities) {
|
|
105
105
|
const relatedCaps = capabilities.filter(c => c.params.some(p => p.type.kind === "EntityRefType" && p.type.name === entity.name));
|
|
106
|
-
modules.push(this.lowerEntity(entity, relatedCaps, stores));
|
|
106
|
+
modules.push(this.lowerEntity(entity, relatedCaps, stores, policies));
|
|
107
107
|
}
|
|
108
108
|
// Lower channels → realtime_service modules
|
|
109
109
|
for (const channel of channels) {
|
|
@@ -206,7 +206,7 @@ class Lowering {
|
|
|
206
206
|
};
|
|
207
207
|
}
|
|
208
208
|
// ââ€Âۉâ€Âۉâ€Â€ Entity Lowering ââ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Â€
|
|
209
|
-
lowerEntity(entity, capabilities, stores) {
|
|
209
|
+
lowerEntity(entity, capabilities, stores, policies = []) {
|
|
210
210
|
const moduleId = makeId(this.systemName, "api_service", `${entity.name}Service`);
|
|
211
211
|
// Build model from entity fields + ontology entailments
|
|
212
212
|
const fields = [
|
|
@@ -339,6 +339,9 @@ class Lowering {
|
|
|
339
339
|
config: {
|
|
340
340
|
authenticated: entity.auth !== null && entity.auth !== "none",
|
|
341
341
|
auth_method: entity.auth || "none",
|
|
342
|
+
audit: policies.some(p => p.audit === true),
|
|
343
|
+
rate_limit: policies.length > 0 && policies[0].rateLimit ? policies[0].rateLimit.count : 0,
|
|
344
|
+
rate_limit_window_ms: policies.length > 0 && policies[0].rateLimit ? (parseDurationMs(String(policies[0].rateLimit.per)) || 60000) : 60000,
|
|
342
345
|
},
|
|
343
346
|
};
|
|
344
347
|
}
|
package/dist/lowering.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lowering.js","sourceRoot":"","sources":["../src/lowering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lowering.js","sourceRoot":"","sources":["../src/lowering.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,mCAAoC;AAIpC,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7D,CAAC;AAED,g4BAAg4B;AAEh4B,SAAS,MAAM,CAAC,UAAkB,EAAE,IAAY,EAAE,IAAY;IAC5D,MAAM,KAAK,GAAG,GAAG,UAAU,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IAC9C,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,2jCAA2jC;AAE3jC,SAAS,eAAe,CAAC,GAAkB;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACrC,QAAQ,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC;QACxB,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC;QAC9B,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,KAAM,CAAC;QAChC,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,OAAS,CAAC;QACnC,KAAK,GAAG,CAAC,CAAC,OAAO,KAAK,GAAG,QAAU,CAAC;QACpC,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED,81BAA81B;AAE91B,SAAS,aAAa,CAAC,CAAmB;IACxC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QACpC,KAAK,aAAa,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACpF,KAAK,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QACpC,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACzE,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,m7BAAm7B;AAEn7B,SAAS,aAAa,CAAC,CAAe;IACpC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC;YAC/C,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,IAAK,CAAC,CAAC,KAAwB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/F,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACzB,KAAK,UAAU;YACb,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,KAAK,YAAY;YACf,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QACxE,KAAK,WAAW;YACd,OAAO,IAAI,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QACjD,KAAK,UAAU;YACb,OAAO,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9D,KAAK,aAAa;YAChB,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;IAC9G,CAAC;AACH,CAAC;AAED,4kCAA4kC;AAE5kC,MAAa,QAAQ;IAArB;QACU,eAAU,GAAW,EAAE,CAAC;IA+dlC,CAAC;IA7dC,KAAK,CAAC,OAAwB,EAAE,UAAkB;QAChD,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,WAAW,CAAC,GAAuB,EAAE,UAAkB;QAC7D,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC;QAE3B,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAqB,EAAE,CAAC;QAExC,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAClG,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;QAC9G,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACpG,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAC9F,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAClG,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAA+B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;QAC7G,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAA2B,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QAClG,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC/F,MAAM,eAAe,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAmC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC;QAEzH,sDAAsD;QACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,oFAAoF;QACpF,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CACnF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,8DAA8D;QAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,eAAe;QACf,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,cAAc;QACd,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,UAAU,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC;gBAChD,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjC,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;QACL,CAAC;QAED,gDAAgD;QAChD,MAAM,aAAa,GAA8C;YAC/D,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,IAAI;SACV,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,aAAa,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3D,CAAC;YACD,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC1B,aAAa,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC;YACtD,CAAC;QACH,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC;YACpD,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3G,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO;YACP,MAAM;YACN,KAAK;YACL,UAAU;YACV,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC3C,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3E,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;gBACtD,MAAM,EAAE,EAAE,CAAC,MAAM;aAClB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,yjCAAyjC;IAEjjC,UAAU,CAAC,KAAwB;QACzC,iFAAiF;QACjF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;QAClE,MAAM,KAAK,GAAe;YACxB,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjD,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,EAAE;SAChB,CAAC;QAEF,8BAA8B;QAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;gBACnB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,mBAAmB;aAC3G,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC;YACrD,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,YAAY;gBACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC;gBAC7B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnF,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D;SACF,CAAC;IACJ,CAAC;IAED,wiCAAwiC;IAEhiC,WAAW,CAAC,MAA0B,EAAE,YAAsC,EAAE,MAA2B,EAAE,WAAiC,EAAE;QACtJ,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC;QAEjF,wDAAwD;QACxD,MAAM,MAAM,GAAiB;YAC3B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,mBAAmB,EAAE;YAC9G,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE;YAChH,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE;SAClH,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,oEAAoE;QACpE,MAAM,aAAa,GAAiB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,MAAM,EAAE,2BAA2B;YACzC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,wBAAwB,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU;SACvE,CAAC,CAAC,CAAC;QAEJ,+CAA+C;QAC/C,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,4CAA4C;QAC5C,MAAM,gBAAgB,GAA2B,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACpC,4BAA4B;YAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpE,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5C,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAe;YACxB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC;YACrC,WAAW,EAAE,IAAI;YACjB,OAAO;YACP,WAAW,EAAE,gBAAgB;SAC9B,CAAC;QAEF,2CAA2C;QAC3C,MAAM,aAAa,GAAwB,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,WAAW,GAAsB,EAAE,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACtC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,OAAO,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvG,CAAC;gBACD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,OAAO,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvG,CAAC;YACH,CAAC;YACD,aAAa,CAAC,IAAI,CAAC;gBACjB,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;gBAClB,WAAW;aACZ,CAAC,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,+CAA+C;QAC/C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAE/D,6BAA6B;QAC7B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,KAAK,GAAmB;YAC5B,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,SAAS;YAC9B,OAAO;SACR,CAAC;QAEF,qBAAqB;QACrB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChG,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,kBAAkB;QAClB,MAAM,SAAS,GAAoB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC5D,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YACjD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;YAC9C,IAAI,UAAkB,CAAC;YACvB,IAAI,aAAiC,CAAC;YAEtC,QAAQ,GAAG,CAAC,YAAY,EAAE,CAAC;gBACzB,KAAK,YAAY;oBACf,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;oBAC7C,MAAM;gBACR,KAAK,SAAS,CAAC;gBACf,KAAK,UAAU;oBACb,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oBAC9C,MAAM;gBACR,KAAK,cAAc;oBACjB,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oBAC9C,aAAa,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtD,MAAM;gBACR;oBACE,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;YACjD,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,YAAY;gBACtB,WAAW,EAAE,MAAM,CAAC,IAAI;gBACxB,SAAS,EAAE,GAAG,CAAC,MAAM;gBACrB,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,UAAU;gBACvB,cAAc,EAAE,aAAa;aAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI,SAAS;YAC7B,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,aAAa;YAC7B,SAAS;YACT,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE;gBACN,aAAa,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;gBAC7D,WAAW,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM;gBAClC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC;gBAC3C,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1F,oBAAoB,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;aAC3I;SACF,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,EAAU,EAAE,UAAkB,EAAE,MAAoB;QACzE,MAAM,KAAK,GAAiB,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,QAAQ;YAC5D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;YAC3F,CAAC,CAAC,EAAE,KAAK,MAAM;gBACb,CAAC,CAAC;oBACE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE;oBACjG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;iBACxG;gBACH,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAExG,OAAO;YACL,IAAI,EAAE,EAAE;YACR,KAAK;YACL,MAAM,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU;YACrF,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,MAAM;YAC1C,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,GAA2B;QACjD,MAAM,KAAK,GAAiB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC,CAAC;QAEJ,MAAM,aAAa,GAAwB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;YAC5B,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;SAC9B,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAkB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/B,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,QAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAc,CAAC,CAAC,CAAC,QAAiB;YACzF,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;SAC9B,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAElD,4BAA4B;QAC5B,IAAI,QAAQ,GAAyB,IAAI,CAAC;QAC1C,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,QAAQ,GAAG;gBACT,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ;gBAC/B,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;oBACpD,OAAO,EAAE,IAAI,CAAC,MAAM;iBACrB,CAAC,CAAC;gBACH,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM;oBACnC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI;oBAClD,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;iBAC5E,CAAC,CAAC,CAAC,IAAI;aACT,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,IAAI,SAAS,GAA0B,IAAI,CAAC;QAC5C,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,SAAS,GAAG;gBACV,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI;gBAChC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACtC,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;iBAC9B,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK;YACL,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB;YACxE,aAAa;YACb,OAAO;YACP,SAAS;YACT,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,KAAK;YACnC,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK;YACjD,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjB,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC;gBACxC,OAAO,EAAG,GAAG,CAAC,KAAK,CAAC,OAAuC,IAAI,aAAa;gBAC5E,WAAW,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI;aACzD,CAAC,CAAC,CAAC,IAAI;YACR,QAAQ;YACR,SAAS;YACT,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC;IACJ,CAAC;IAED,uhCAAuhC;IAE/gC,YAAY,CAAC,OAA4B;QAC/C,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC;YAC7D,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,CAAC;oBACX,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,SAAS;oBAC/B,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;wBACvN,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;wBAChU,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;qBACxT;iBACF,CAAC;YACF,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE;gBACN,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,WAAW;gBAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM;gBACpC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,MAAM;gBAC1C,QAAQ,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;aACnC;SACF,CAAC;IACJ,CAAC;IAED,yjCAAyjC;IAEjjC,UAAU,CAAC,EAAqB;QACtC,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC;YAC7C,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,EAAE,SAAS,EAAE,wCAAwC;YAC3D,QAAQ,EAAG,EAAE,CAAC,QAA8B,IAAI,eAAe;YAC/D,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC;SAChC,CAAC;IACJ,CAAC;IAED,0kCAA0kC;IAElkC,SAAS,CAAC,IAAsB;QACtC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC1E,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;aAC/G,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED,yjCAAyjC;IAEjjC,UAAU,CAAC,CAAgB;QACjC,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;YACrE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;SACrE,CAAC;IACJ,CAAC;CACF;AAheD,4BAgeC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BoneScript Admin Panel Emitter
|
|
3
|
+
* Generates a self-contained HTML admin UI from an IRSystem.
|
|
4
|
+
* No build step — single HTML file with Tailwind CDN + vanilla JS.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import * as IR from "./ir";
|
|
8
|
+
|
|
9
|
+
function toSnakeCase(s: string): string {
|
|
10
|
+
return s.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
function toDashCase(s: string): string {
|
|
14
|
+
return toSnakeCase(s).replace(/_/g, "-");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function irTypeToDisplay(irType: string): string {
|
|
18
|
+
if (irType === "bool") return "boolean";
|
|
19
|
+
if (irType === "timestamp") return "datetime";
|
|
20
|
+
if (irType === "uuid") return "uuid";
|
|
21
|
+
if (irType === "json") return "json";
|
|
22
|
+
if (irType.startsWith("list<") || irType.startsWith("set<")) return "array";
|
|
23
|
+
return "text";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function emitAdminPanel(system: IR.IRSystem): string {
|
|
27
|
+
const apiModules = system.modules.filter(m => m.kind === "api_service" && m.models.length > 0);
|
|
28
|
+
|
|
29
|
+
const entityConfigs = apiModules.map(mod => {
|
|
30
|
+
const model = mod.models[0];
|
|
31
|
+
const tableName = toSnakeCase(model.name) + "s";
|
|
32
|
+
const capabilities = mod.interfaces.flatMap(i => i.methods)
|
|
33
|
+
.filter(m => !["create","read","update","delete","list"].includes(m.name));
|
|
34
|
+
const columns = model.fields.map(f => ({
|
|
35
|
+
key: f.name,
|
|
36
|
+
label: f.name.replace(/_/g, " ").replace(/\b\w/g, (c: string) => c.toUpperCase()),
|
|
37
|
+
type: irTypeToDisplay(f.type),
|
|
38
|
+
nullable: f.nullable,
|
|
39
|
+
}));
|
|
40
|
+
const formFields = model.fields
|
|
41
|
+
.filter(f => !["id", "created_at", "updated_at"].includes(f.name))
|
|
42
|
+
.map(f => ({
|
|
43
|
+
key: f.name,
|
|
44
|
+
label: f.name.replace(/_/g, " ").replace(/\b\w/g, (c: string) => c.toUpperCase()),
|
|
45
|
+
type: irTypeToDisplay(f.type),
|
|
46
|
+
nullable: f.nullable,
|
|
47
|
+
}));
|
|
48
|
+
return {
|
|
49
|
+
name: model.name,
|
|
50
|
+
tableName,
|
|
51
|
+
apiPath: "/" + tableName,
|
|
52
|
+
columns,
|
|
53
|
+
formFields,
|
|
54
|
+
capabilities: capabilities.map(c => ({
|
|
55
|
+
name: c.name,
|
|
56
|
+
label: c.name.replace(/_/g, " ").replace(/\b\w/g, (ch: string) => ch.toUpperCase()),
|
|
57
|
+
endpoint: "/" + tableName + "/" + toDashCase(c.name),
|
|
58
|
+
})),
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
const configJson = JSON.stringify(entityConfigs, null, 2);
|
|
63
|
+
|
|
64
|
+
// Build nav buttons using string concatenation (no template literals in generated JS)
|
|
65
|
+
const navHtml = apiModules.map(mod => {
|
|
66
|
+
const t = toSnakeCase(mod.models[0].name) + "s";
|
|
67
|
+
const n = mod.models[0].name;
|
|
68
|
+
return '<button onclick="loadEntity(\'' + t + '\')" id="nav-' + t + '" ' +
|
|
69
|
+
'class="w-full text-left px-3 py-2 rounded text-sm text-gray-300 hover:bg-gray-700 hover:text-white transition-colors mb-1">' +
|
|
70
|
+
n + '</button>';
|
|
71
|
+
}).join("\n ");
|
|
72
|
+
|
|
73
|
+
// The embedded JS uses only regular strings (no backticks) to avoid escaping issues
|
|
74
|
+
const embeddedJs = [
|
|
75
|
+
'const BASE_URL = "http://localhost:3000";',
|
|
76
|
+
'const ENTITIES = ' + configJson + ';',
|
|
77
|
+
'let currentEntity = null, currentPage = 1, editingId = null, pendingCapability = null;',
|
|
78
|
+
'let authToken = localStorage.getItem("admin_token") || "";',
|
|
79
|
+
'if (authToken) { document.getElementById("token-input").value = authToken; document.getElementById("auth-status").textContent = "Token set"; }',
|
|
80
|
+
'function setToken(v) { authToken = v; localStorage.setItem("admin_token", v); document.getElementById("auth-status").textContent = v ? "Token set" : "Not authenticated"; }',
|
|
81
|
+
'function headers() { const h = { "Content-Type": "application/json" }; if (authToken) h["Authorization"] = "Bearer " + authToken; return h; }',
|
|
82
|
+
'function toast(msg, type) { const el = document.createElement("div"); el.className = "toast px-4 py-2 rounded shadow text-sm text-white " + (type === "error" ? "bg-red-500" : "bg-green-500"); el.textContent = msg; document.getElementById("toast-container").appendChild(el); setTimeout(function() { el.remove(); }, 3500); }',
|
|
83
|
+
'function loadEntity(t) { currentEntity = ENTITIES.find(function(e) { return e.tableName === t; }); if (!currentEntity) return; currentPage = 1; document.querySelectorAll("[id^=nav-]").forEach(function(el) { el.classList.remove("bg-gray-700", "text-white"); el.classList.add("text-gray-300"); }); var n = document.getElementById("nav-" + t); if (n) { n.classList.add("bg-gray-700", "text-white"); n.classList.remove("text-gray-300"); } document.getElementById("page-title").textContent = currentEntity.name; document.getElementById("page-subtitle").textContent = currentEntity.apiPath; document.getElementById("create-btn").classList.remove("hidden"); document.getElementById("refresh-btn").classList.remove("hidden"); refreshTable(); }',
|
|
84
|
+
'async function refreshTable() { if (!currentEntity) return; var area = document.getElementById("content-area"); area.classList.add("loading"); try { var res = await fetch(BASE_URL + currentEntity.apiPath + "?page=" + currentPage + "&page_size=50", { headers: headers() }); var data = await res.json(); if (!res.ok) { area.innerHTML = "<p class=\\"text-red-600\\">" + (data.error && data.error.message || "Error") + "</p>"; return; } var items = data.items || []; var total = data.total || 0; var cols = currentEntity.columns; var caps = currentEntity.capabilities; var html = "<div class=\\"bg-white rounded-lg shadow overflow-hidden\\"><div class=\\"px-4 py-3 border-b flex items-center justify-between\\"><span class=\\"text-sm text-gray-500\\">" + total + " total</span>"; if (caps.length > 0) { html += "<div class=\\"flex gap-2\\">"; for (var i = 0; i < caps.length; i++) { html += "<button onclick=\\"runCapability(\'" + caps[i].endpoint + "\',\'" + caps[i].label + "\')\\" class=\\"text-xs bg-orange-100 text-orange-700 px-2 py-1 rounded\\">" + caps[i].label + "</button>"; } html += "</div>"; } html += "</div><div class=\\"overflow-x-auto\\"><table class=\\"w-full text-sm\\"><thead class=\\"bg-gray-50 border-b\\"><tr>"; for (var j = 0; j < cols.length; j++) { html += "<th class=\\"text-left px-4 py-3 text-xs font-medium text-gray-500 uppercase\\">" + cols[j].label + "</th>"; } html += "<th class=\\"text-right px-4 py-3 text-xs\\">Actions</th></tr></thead><tbody class=\\"divide-y divide-gray-100\\">"; if (items.length === 0) { html += "<tr><td colspan=\\"" + (cols.length + 1) + "\\" class=\\"px-4 py-8 text-center text-gray-400\\">No records</td></tr>"; } for (var k = 0; k < items.length; k++) { var item = items[k]; html += "<tr class=\\"hover:bg-gray-50\\">"; for (var l = 0; l < cols.length; l++) { var col = cols[l]; var val = item[col.key]; var d = ""; if (val === null || val === undefined) { d = "<span class=\\"text-gray-300 italic\\">null</span>"; } else if (col.type === "boolean") { d = val ? "<span class=\\"text-green-600\\">Yes</span>" : "<span class=\\"text-red-400\\">No</span>"; } else if (col.type === "datetime") { d = "<span class=\\"text-gray-600\\">" + new Date(val).toLocaleString() + "</span>"; } else if (col.type === "uuid") { d = "<span class=\\"font-mono text-xs text-gray-500\\">" + String(val).slice(0, 8) + "...</span>"; } else if (col.type === "json" || col.type === "array") { d = "<span class=\\"font-mono text-xs text-gray-500\\">" + JSON.stringify(val).slice(0, 40) + "</span>"; } else { d = "<span class=\\"text-gray-800\\">" + String(val).slice(0, 60) + "</span>"; } html += "<td class=\\"px-4 py-3\\">" + d + "</td>"; } html += "<td class=\\"px-4 py-3 text-right\\"><button onclick=\\"openEditModal(\'" + item.id + "\')\\" class=\\"text-blue-600 hover:text-blue-800 text-xs mr-2\\">Edit</button><button onclick=\\"deleteRecord(\'" + item.id + "\')\\" class=\\"text-red-500 hover:text-red-700 text-xs\\">Delete</button></td></tr>"; } html += "</tbody></table></div></div>"; area.innerHTML = html; } catch(e) { area.innerHTML = "<p class=\\"text-red-600\\">Error: " + e.message + "</p>"; } finally { area.classList.remove("loading"); } }',
|
|
85
|
+
'function openCreateModal() { if (!currentEntity) return; editingId = null; document.getElementById("modal-title").textContent = "Create " + currentEntity.name; renderFormFields(null); document.getElementById("modal").classList.remove("hidden"); }',
|
|
86
|
+
'async function openEditModal(id) { if (!currentEntity) return; editingId = id; document.getElementById("modal-title").textContent = "Edit " + currentEntity.name; try { var res = await fetch(BASE_URL + currentEntity.apiPath + "/" + id, { headers: headers() }); var data = await res.json(); renderFormFields(data); document.getElementById("modal").classList.remove("hidden"); } catch(e) { toast("Failed to load: " + e.message, "error"); } }',
|
|
87
|
+
'function renderFormFields(data) { var fields = currentEntity.formFields; var html = ""; for (var i = 0; i < fields.length; i++) { var f = fields[i]; var val = data ? (data[f.key] !== undefined ? data[f.key] : "") : ""; var it = f.type === "boolean" ? "checkbox" : f.type === "datetime" ? "datetime-local" : f.type === "json" || f.type === "array" ? "textarea" : "text"; html += "<div><label class=\\"block text-sm font-medium text-gray-700 mb-1\\">" + f.label + (f.nullable ? "" : " *") + "</label>"; if (it === "checkbox") { html += "<input type=\\"checkbox\\" name=\\"" + f.key + "\\" " + (val ? "checked" : "") + " class=\\"h-4 w-4 text-blue-600 rounded border-gray-300\\" />"; } else if (it === "textarea") { html += "<textarea name=\\"" + f.key + "\\" rows=\\"3\\" class=\\"w-full border border-gray-300 rounded px-3 py-2 text-sm\\">" + (typeof val === "object" ? JSON.stringify(val, null, 2) : val) + "</textarea>"; } else { html += "<input type=\\"" + it + "\\" name=\\"" + f.key + "\\" value=\\"" + val + "\\" class=\\"w-full border border-gray-300 rounded px-3 py-2 text-sm\\" />"; } html += "</div>"; } document.getElementById("form-fields").innerHTML = html; }',
|
|
88
|
+
'async function submitForm(e) { e.preventDefault(); if (!currentEntity) return; var form = document.getElementById("modal-form"); var body = {}; for (var i = 0; i < currentEntity.formFields.length; i++) { var f = currentEntity.formFields[i]; var el = form.elements[f.key]; if (!el) continue; if (f.type === "boolean") { body[f.key] = el.checked; } else if (f.type === "json" || f.type === "array") { try { body[f.key] = JSON.parse(el.value); } catch(ex) { body[f.key] = el.value; } } else { body[f.key] = el.value; } } try { var url = editingId ? BASE_URL + currentEntity.apiPath + "/" + editingId : BASE_URL + currentEntity.apiPath; var method = editingId ? "PUT" : "POST"; var res = await fetch(url, { method: method, headers: headers(), body: JSON.stringify(body) }); var data = await res.json(); if (!res.ok) throw new Error(data.error && data.error.message || "Request failed"); toast(editingId ? "Updated" : "Created"); closeModal(); refreshTable(); } catch(e) { toast(e.message, "error"); } }',
|
|
89
|
+
'async function deleteRecord(id) { if (!confirm("Delete this record?")) return; try { var res = await fetch(BASE_URL + currentEntity.apiPath + "/" + id, { method: "DELETE", headers: headers() }); if (!res.ok) { var d = await res.json().catch(function() { return {}; }); throw new Error(d.error && d.error.message || "Delete failed"); } toast("Deleted"); refreshTable(); } catch(e) { toast(e.message, "error"); } }',
|
|
90
|
+
'function runCapability(endpoint, label) { pendingCapability = { endpoint: endpoint, label: label }; document.getElementById("cap-modal-title").textContent = label; document.getElementById("cap-modal-desc").textContent = "Run this capability?"; document.getElementById("cap-modal").classList.remove("hidden"); }',
|
|
91
|
+
'async function confirmCapability() { if (!pendingCapability) return; closeCapModal(); try { var res = await fetch(BASE_URL + pendingCapability.endpoint, { method: "POST", headers: headers(), body: JSON.stringify({}) }); var data = await res.json().catch(function() { return {}; }); if (!res.ok) throw new Error(data.error && data.error.message || "Failed"); toast(pendingCapability.label + " completed"); refreshTable(); } catch(e) { toast(e.message, "error"); } }',
|
|
92
|
+
'function closeModal() { document.getElementById("modal").classList.add("hidden"); editingId = null; }',
|
|
93
|
+
'function closeCapModal() { document.getElementById("cap-modal").classList.add("hidden"); pendingCapability = null; }',
|
|
94
|
+
'document.getElementById("modal").addEventListener("click", function(e) { if (e.target === e.currentTarget) closeModal(); });',
|
|
95
|
+
'document.getElementById("cap-modal").addEventListener("click", function(e) { if (e.target === e.currentTarget) closeCapModal(); });',
|
|
96
|
+
].join("\n");
|
|
97
|
+
|
|
98
|
+
return [
|
|
99
|
+
'<!DOCTYPE html>',
|
|
100
|
+
'<html lang="en">',
|
|
101
|
+
'<head>',
|
|
102
|
+
'<meta charset="UTF-8" />',
|
|
103
|
+
'<meta name="viewport" content="width=device-width, initial-scale=1.0" />',
|
|
104
|
+
'<title>' + system.name + ' Admin</title>',
|
|
105
|
+
'<script src="https://cdn.tailwindcss.com"><\/script>',
|
|
106
|
+
'<style>.loading{opacity:.5;pointer-events:none}.toast{animation:fadeout 3s forwards}@keyframes fadeout{0%,70%{opacity:1}100%{opacity:0}}<\/style>',
|
|
107
|
+
'</head>',
|
|
108
|
+
'<body class="bg-gray-50 min-h-screen">',
|
|
109
|
+
'<div class="flex h-screen overflow-hidden">',
|
|
110
|
+
'<aside class="w-64 bg-gray-900 text-white flex flex-col">',
|
|
111
|
+
'<div class="p-4 border-b border-gray-700"><h1 class="text-lg font-bold">' + system.name + '</h1><p class="text-xs text-gray-400 mt-1">Admin Panel</p></div>',
|
|
112
|
+
'<nav class="flex-1 overflow-y-auto p-2" id="nav">' + navHtml + '</nav>',
|
|
113
|
+
'<div class="p-4 border-t border-gray-700"><div class="text-xs text-gray-500"><div id="auth-status">Not authenticated</div>',
|
|
114
|
+
'<input id="token-input" type="password" placeholder="Bearer token" class="mt-2 w-full bg-gray-800 text-white text-xs px-2 py-1 rounded border border-gray-600" onchange="setToken(this.value)" /></div></div>',
|
|
115
|
+
'</aside>',
|
|
116
|
+
'<main class="flex-1 overflow-y-auto">',
|
|
117
|
+
'<div class="bg-white border-b px-6 py-4 flex items-center justify-between sticky top-0 z-10">',
|
|
118
|
+
'<div><h2 class="text-xl font-semibold text-gray-800" id="page-title">Select an entity</h2><p class="text-sm text-gray-500" id="page-subtitle"></p></div>',
|
|
119
|
+
'<div class="flex gap-2">',
|
|
120
|
+
'<button onclick="openCreateModal()" id="create-btn" class="hidden bg-blue-600 text-white px-4 py-2 rounded text-sm hover:bg-blue-700">+ Create</button>',
|
|
121
|
+
'<button onclick="refreshTable()" id="refresh-btn" class="hidden bg-gray-100 text-gray-700 px-3 py-2 rounded text-sm hover:bg-gray-200">↻ Refresh</button>',
|
|
122
|
+
'</div></div>',
|
|
123
|
+
'<div id="toast-container" class="fixed top-4 right-4 z-50 flex flex-col gap-2"></div>',
|
|
124
|
+
'<div class="p-6" id="content-area"><div class="text-center text-gray-400 mt-20"><div class="text-5xl mb-4">⚡</div><p class="text-lg">Select an entity from the sidebar</p><p class="text-sm mt-2">Generated by BoneScript compiler</p></div></div>',
|
|
125
|
+
'</main></div>',
|
|
126
|
+
'<div id="modal" class="hidden fixed inset-0 bg-black bg-opacity-50 z-40 flex items-center justify-center p-4"><div class="bg-white rounded-lg shadow-xl w-full max-w-lg max-h-screen overflow-y-auto"><div class="p-6"><div class="flex items-center justify-between mb-4"><h3 class="text-lg font-semibold" id="modal-title">Create</h3><button onclick="closeModal()" class="text-gray-400 hover:text-gray-600 text-2xl">×</button></div><form id="modal-form" onsubmit="submitForm(event)" class="space-y-4"><div id="form-fields"></div><div class="flex gap-2 pt-2"><button type="submit" class="flex-1 bg-blue-600 text-white py-2 rounded hover:bg-blue-700">Save</button><button type="button" onclick="closeModal()" class="flex-1 bg-gray-100 text-gray-700 py-2 rounded hover:bg-gray-200">Cancel</button></div></form></div></div></div>',
|
|
127
|
+
'<div id="cap-modal" class="hidden fixed inset-0 bg-black bg-opacity-50 z-40 flex items-center justify-center p-4"><div class="bg-white rounded-lg shadow-xl w-full max-w-md"><div class="p-6"><div class="flex items-center justify-between mb-4"><h3 class="text-lg font-semibold" id="cap-modal-title">Run Capability</h3><button onclick="closeCapModal()" class="text-gray-400 hover:text-gray-600 text-2xl">×</button></div><p class="text-sm text-gray-500 mb-4" id="cap-modal-desc"></p><div class="flex gap-2"><button onclick="confirmCapability()" class="flex-1 bg-orange-500 text-white py-2 rounded hover:bg-orange-600">Run</button><button onclick="closeCapModal()" class="flex-1 bg-gray-100 text-gray-700 py-2 rounded hover:bg-gray-200">Cancel</button></div></div></div></div>',
|
|
128
|
+
'<script>' + embeddedJs + '<\/script>',
|
|
129
|
+
'</body></html>',
|
|
130
|
+
].join("\n");
|
|
131
|
+
}
|
package/src/emit_full.ts
CHANGED
|
@@ -38,6 +38,7 @@ import { emitZodSchemas } from "./emit_zod";
|
|
|
38
38
|
import { emitPostmanCollection } from "./emit_postman";
|
|
39
39
|
import { emitSeedFile } from "./emit_seed";
|
|
40
40
|
import { emitAuditSchema, emitAuditMiddleware } from "./emit_audit";
|
|
41
|
+
import { emitAdminPanel } from "./emit_admin";
|
|
41
42
|
|
|
42
43
|
function toSnakeCase(s: string): string {
|
|
43
44
|
return s.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
|
|
@@ -205,6 +206,9 @@ export class FullEmitter {
|
|
|
205
206
|
files.push({ path: "migrations/audit_log.sql", content: emitAuditSchema(), language: "sql", source_module: "infra" });
|
|
206
207
|
files.push({ path: "src/audit.ts", content: emitAuditMiddleware(system), language: "typescript", source_module: "infra" });
|
|
207
208
|
|
|
209
|
+
// 18. Admin panel
|
|
210
|
+
files.push({ path: "admin/index.html", content: emitAdminPanel(system), language: "yaml", source_module: "admin" });
|
|
211
|
+
|
|
208
212
|
// 10. Source map + debug handler
|
|
209
213
|
files.push({ path: `${system.name}.bone.map`, content: emitSourceMapFile(system, `${system.name}.bone`), language: "json", source_module: "root" });
|
|
210
214
|
files.push({ path: "src/debug.ts", content: emitDebugHandler(system), language: "typescript", source_module: "infra" });
|
package/src/emit_runtime.ts
CHANGED
|
@@ -217,6 +217,11 @@ export function emitEntityRouter(mod: IR.IRModule, system: IR.IRSystem): string
|
|
|
217
217
|
lines.push(`import { query, queryOne, execute, pool } from "../db";`);
|
|
218
218
|
lines.push(`import { eventBus } from "../events";`);
|
|
219
219
|
lines.push(`import { requireAuth, AuthContext } from "../auth";`);
|
|
220
|
+
lines.push(`import rateLimit from "express-rate-limit";`);
|
|
221
|
+
// Only import audit if module has audit: true
|
|
222
|
+
if (mod.config["audit"]) {
|
|
223
|
+
lines.push(`import { auditLog } from "../audit";`);
|
|
224
|
+
}
|
|
220
225
|
lines.push(`import { logger } from "../logger";`);
|
|
221
226
|
lines.push(`import { counter } from "../metrics";`);
|
|
222
227
|
lines.push(`import * as __algorithms from "../algorithms";`);
|
|
@@ -242,10 +247,22 @@ export function emitEntityRouter(mod: IR.IRModule, system: IR.IRSystem): string
|
|
|
242
247
|
lines.push(`export const ${toCamelCase(routeBase)}Router = Router();`);
|
|
243
248
|
lines.push(``);
|
|
244
249
|
|
|
250
|
+
// Per-module rate limiter (from policy declaration)
|
|
251
|
+
const modRateLimit = typeof mod.config["rate_limit"] === "number" && (mod.config["rate_limit"] as number) > 0
|
|
252
|
+
? mod.config["rate_limit"] as number : 0;
|
|
253
|
+
const modRateLimitWindowMs = typeof mod.config["rate_limit_window_ms"] === "number"
|
|
254
|
+
? mod.config["rate_limit_window_ms"] as number : 60000;
|
|
255
|
+
if (modRateLimit > 0) {
|
|
256
|
+
lines.push(`// Rate limiter from policy declaration`);
|
|
257
|
+
lines.push(`const __routeRateLimit = rateLimit({ windowMs: ${modRateLimitWindowMs}, max: ${modRateLimit}, standardHeaders: true, legacyHeaders: false });`);
|
|
258
|
+
lines.push(``);
|
|
259
|
+
}
|
|
260
|
+
|
|
245
261
|
// CREATE
|
|
246
262
|
const insertFields = entityModel.fields.filter(f => f.name !== "id" && f.name !== "created_at" && f.name !== "updated_at");
|
|
247
263
|
lines.push(`// CREATE`);
|
|
248
|
-
|
|
264
|
+
const __crudMiddlewares = modRateLimit > 0 ? "__routeRateLimit, requireAuth" : "requireAuth";
|
|
265
|
+
lines.push(`${toCamelCase(routeBase)}Router.post("/", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
249
266
|
lines.push(` try {`);
|
|
250
267
|
lines.push(` const id = uuid();`);
|
|
251
268
|
lines.push(` const { ${insertFields.map(f => f.name).join(", ")} } = req.body;`);
|
|
@@ -270,7 +287,7 @@ export function emitEntityRouter(mod: IR.IRModule, system: IR.IRSystem): string
|
|
|
270
287
|
|
|
271
288
|
// READ
|
|
272
289
|
lines.push(`// READ`);
|
|
273
|
-
lines.push(`${toCamelCase(routeBase)}Router.get("/:id",
|
|
290
|
+
lines.push(`${toCamelCase(routeBase)}Router.get("/:id", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
274
291
|
lines.push(` try {`);
|
|
275
292
|
lines.push(` const row = await queryOne(\`SELECT * FROM ${tableName} WHERE id = $1\`, [req.params.id]);`);
|
|
276
293
|
lines.push(` if (!row) return res.status(404).json({ error: { code: "NOT_FOUND", message: "Not found" } });`);
|
|
@@ -284,7 +301,7 @@ export function emitEntityRouter(mod: IR.IRModule, system: IR.IRSystem): string
|
|
|
284
301
|
// LIST — with optional JOINs for has_one/belongs_to relations
|
|
285
302
|
const joinRelations = mod.relations.filter(r => r.kind === "has_one" || r.kind === "belongs_to");
|
|
286
303
|
lines.push(`// LIST`);
|
|
287
|
-
lines.push(`${toCamelCase(routeBase)}Router.get("/",
|
|
304
|
+
lines.push(`${toCamelCase(routeBase)}Router.get("/", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
288
305
|
lines.push(` try {`);
|
|
289
306
|
lines.push(` const page = parseInt(req.query.page as string) || 1;`);
|
|
290
307
|
lines.push(` const pageSize = Math.min(parseInt(req.query.page_size as string) || 50, 100);`);
|
|
@@ -314,7 +331,7 @@ export function emitEntityRouter(mod: IR.IRModule, system: IR.IRSystem): string
|
|
|
314
331
|
|
|
315
332
|
// UPDATE — with state machine enforcement
|
|
316
333
|
lines.push(`// UPDATE`);
|
|
317
|
-
lines.push(`${toCamelCase(routeBase)}Router.put("/:id",
|
|
334
|
+
lines.push(`${toCamelCase(routeBase)}Router.put("/:id", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
318
335
|
lines.push(` const fields = { ...req.body };`);
|
|
319
336
|
if (mod.state_machines.length > 0) {
|
|
320
337
|
const sm = mod.state_machines[0];
|
|
@@ -339,7 +356,7 @@ export function emitEntityRouter(mod: IR.IRModule, system: IR.IRSystem): string
|
|
|
339
356
|
|
|
340
357
|
// DELETE
|
|
341
358
|
lines.push(`// DELETE`);
|
|
342
|
-
lines.push(`${toCamelCase(routeBase)}Router.delete("/:id",
|
|
359
|
+
lines.push(`${toCamelCase(routeBase)}Router.delete("/:id", ${__crudMiddlewares}, async (req: Request, res: Response) => {`);
|
|
343
360
|
lines.push(` try {`);
|
|
344
361
|
lines.push(` const count = await execute(\`DELETE FROM ${tableName} WHERE id = $1\`, [req.params.id]);`);
|
|
345
362
|
lines.push(` if (count === 0) return res.status(404).json({ error: { code: "NOT_FOUND", message: "Not found" } });`);
|
|
@@ -400,7 +417,15 @@ function emitCapabilityEndpoint(method: IR.IRMethod, mod: IR.IRModule, tableName
|
|
|
400
417
|
const isTransactional = method.sync === "transactional";
|
|
401
418
|
|
|
402
419
|
lines.push(`// CAPABILITY: ${method.name}${isTransactional ? " [transactional]" : ""}${method.retry ? ` [retry: ${method.retry.max_attempts}x ${method.retry.backoff}]` : ""}`);
|
|
403
|
-
|
|
420
|
+
// Build middleware chain: optional rate limiter + requireAuth + optional audit
|
|
421
|
+
const capMiddlewares: string[] = ["requireAuth"];
|
|
422
|
+
if (typeof mod.config["rate_limit"] === "number" && (mod.config["rate_limit"] as number) > 0) {
|
|
423
|
+
capMiddlewares.unshift("__routeRateLimit");
|
|
424
|
+
}
|
|
425
|
+
if (mod.config["audit"]) {
|
|
426
|
+
capMiddlewares.push(`auditLog("${method.name}", "${mod.models[0]?.name ?? ""}")`);
|
|
427
|
+
}
|
|
428
|
+
lines.push(`${routerName}.post("${endpoint}", ${capMiddlewares.join(", ")}, async (req: Request, res: Response) => {`);
|
|
404
429
|
lines.push(` const auth: AuthContext = (req as any).auth;`);
|
|
405
430
|
|
|
406
431
|
// Wrap in retry logic if declared
|
package/src/index.ts
CHANGED
|
@@ -47,6 +47,7 @@ export { emitZodSchemas } from "./emit_zod";
|
|
|
47
47
|
export { emitPostmanCollection } from "./emit_postman";
|
|
48
48
|
export { emitSeedFile } from "./emit_seed";
|
|
49
49
|
export { emitAuditSchema, emitAuditMiddleware } from "./emit_audit";
|
|
50
|
+
export { emitAdminPanel } from "./emit_admin";
|
|
50
51
|
|
|
51
52
|
/**
|
|
52
53
|
* Convenience function: compile a .bone source string to files.
|
package/src/lowering.ts
CHANGED
|
@@ -118,7 +118,7 @@ export class Lowering {
|
|
|
118
118
|
const relatedCaps = capabilities.filter(c =>
|
|
119
119
|
c.params.some(p => p.type.kind === "EntityRefType" && p.type.name === entity.name)
|
|
120
120
|
);
|
|
121
|
-
modules.push(this.lowerEntity(entity, relatedCaps, stores));
|
|
121
|
+
modules.push(this.lowerEntity(entity, relatedCaps, stores, policies));
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
// Lower channels → realtime_service modules
|
|
@@ -233,7 +233,7 @@ export class Lowering {
|
|
|
233
233
|
|
|
234
234
|
// ââ€Âۉâ€Âۉâ€Â€ Entity Lowering ââ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Âۉâ€Â€
|
|
235
235
|
|
|
236
|
-
private lowerEntity(entity: AST.EntityDeclNode, capabilities: AST.CapabilityDeclNode[], stores: AST.StoreDeclNode[]): IR.IRModule {
|
|
236
|
+
private lowerEntity(entity: AST.EntityDeclNode, capabilities: AST.CapabilityDeclNode[], stores: AST.StoreDeclNode[], policies: AST.PolicyDeclNode[] = []): IR.IRModule {
|
|
237
237
|
const moduleId = makeId(this.systemName, "api_service", `${entity.name}Service`);
|
|
238
238
|
|
|
239
239
|
// Build model from entity fields + ontology entailments
|
|
@@ -380,6 +380,9 @@ export class Lowering {
|
|
|
380
380
|
config: {
|
|
381
381
|
authenticated: entity.auth !== null && entity.auth !== "none",
|
|
382
382
|
auth_method: entity.auth || "none",
|
|
383
|
+
audit: policies.some(p => p.audit === true),
|
|
384
|
+
rate_limit: policies.length > 0 && policies[0].rateLimit ? policies[0].rateLimit.count : 0,
|
|
385
|
+
rate_limit_window_ms: policies.length > 0 && policies[0].rateLimit ? (parseDurationMs(String(policies[0].rateLimit.per)) || 60000) : 60000,
|
|
383
386
|
},
|
|
384
387
|
};
|
|
385
388
|
}
|