feat(boc): Complete Business Operations Center v1.0

- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics)
- Rust analytics service with parallel report generation
- C runtime with POSIX shared memory IPC
- PostgreSQL schema with 30+ tables, full migrations
- Redis cache, sessions, pub/sub
- Kafka event streaming with Zookeeper
- WebSocket hub for real-time updates
- Automation engine with cron jobs, workflows, event triggers
- JWT authentication, multi-tenant from start
- Docker Compose with all services
- Nginx reverse proxy with rate limiting
- Integration tests passing
- Feature gap analysis against Fortnox/Odoo/Visma

Refs: BOC-001
This commit is contained in:
Bernt
2026-07-12 12:41:35 +00:00
parent 4789a7fb48
commit 58ca4e68db
26666 changed files with 575891 additions and 2074516 deletions
@@ -0,0 +1,39 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _helperPluginUtils = require("@babel/helper-plugin-utils");
var _default = exports.default = (0, _helperPluginUtils.declare)((api, {
deprecatedAssertSyntax
}) => {
api.assertVersion("^7.22.0 || ^8.0.0-0");
if (deprecatedAssertSyntax != null && typeof deprecatedAssertSyntax !== "boolean") {
throw new Error("'deprecatedAssertSyntax' must be a boolean, if specified.");
}
return {
name: "syntax-import-attributes",
manipulateOptions({
parserOpts,
generatorOpts
}) {
var _generatorOpts$import;
(_generatorOpts$import = generatorOpts.importAttributesKeyword) != null ? _generatorOpts$import : generatorOpts.importAttributesKeyword = "with";
const importAssertionsPluginIndex = parserOpts.plugins.indexOf("importAssertions");
if (importAssertionsPluginIndex !== -1) {
parserOpts.plugins.splice(importAssertionsPluginIndex, 1);
deprecatedAssertSyntax = true;
}
if (deprecatedAssertSyntax) {
parserOpts.plugins.push("deprecatedImportAssert", ["importAttributes", {
deprecatedAssertSyntax: true
}]);
} else {
parserOpts.plugins.push("importAttributes");
}
}
};
});
//# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
{"version":3,"names":["_helperPluginUtils","require","_default","exports","default","declare","api","deprecatedAssertSyntax","assertVersion","Error","name","manipulateOptions","parserOpts","generatorOpts","_generatorOpts$import","importAttributesKeyword","importAssertionsPluginIndex","plugins","indexOf","splice","push"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n deprecatedAssertSyntax?: boolean;\n}\n\nexport default declare((api, { deprecatedAssertSyntax }: Options) => {\n api.assertVersion(REQUIRED_VERSION(\"^7.22.0 || ^8.0.0-0\"));\n\n if (\n deprecatedAssertSyntax != null &&\n typeof deprecatedAssertSyntax !== \"boolean\"\n ) {\n throw new Error(\n \"'deprecatedAssertSyntax' must be a boolean, if specified.\",\n );\n }\n\n return {\n name: \"syntax-import-attributes\",\n\n manipulateOptions({ parserOpts, generatorOpts }) {\n generatorOpts.importAttributesKeyword ??= \"with\";\n\n const importAssertionsPluginIndex =\n parserOpts.plugins.indexOf(\"importAssertions\");\n if (importAssertionsPluginIndex !== -1) {\n parserOpts.plugins.splice(importAssertionsPluginIndex, 1);\n deprecatedAssertSyntax = true;\n }\n\n if (deprecatedAssertSyntax) {\n parserOpts.plugins.push(\"deprecatedImportAssert\", [\n \"importAttributes\",\n { deprecatedAssertSyntax: true },\n ]);\n } else {\n parserOpts.plugins.push(\"importAttributes\");\n }\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAMtC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAE;EAAEC;AAAgC,CAAC,KAAK;EACnED,GAAG,CAACE,aAAa,CAAkB,qBAAsB,CAAC;EAE1D,IACED,sBAAsB,IAAI,IAAI,IAC9B,OAAOA,sBAAsB,KAAK,SAAS,EAC3C;IACA,MAAM,IAAIE,KAAK,CACb,2DACF,CAAC;EACH;EAEA,OAAO;IACLC,IAAI,EAAE,0BAA0B;IAEhCC,iBAAiBA,CAAC;MAAEC,UAAU;MAAEC;IAAc,CAAC,EAAE;MAAA,IAAAC,qBAAA;MAC/C,CAAAA,qBAAA,GAAAD,aAAa,CAACE,uBAAuB,YAAAD,qBAAA,GAArCD,aAAa,CAACE,uBAAuB,GAAK,MAAM;MAEhD,MAAMC,2BAA2B,GAC/BJ,UAAU,CAACK,OAAO,CAACC,OAAO,CAAC,kBAAkB,CAAC;MAChD,IAAIF,2BAA2B,KAAK,CAAC,CAAC,EAAE;QACtCJ,UAAU,CAACK,OAAO,CAACE,MAAM,CAACH,2BAA2B,EAAE,CAAC,CAAC;QACzDT,sBAAsB,GAAG,IAAI;MAC/B;MAEA,IAAIA,sBAAsB,EAAE;QAC1BK,UAAU,CAACK,OAAO,CAACG,IAAI,CAAC,wBAAwB,EAAE,CAChD,kBAAkB,EAClB;UAAEb,sBAAsB,EAAE;QAAK,CAAC,CACjC,CAAC;MACJ,CAAC,MAAM;QACLK,UAAU,CAACK,OAAO,CAACG,IAAI,CAAC,kBAAkB,CAAC;MAC7C;IACF;EACF,CAAC;AACH,CAAC,CAAC","ignoreList":[]}