@things-factory/board-service 6.1.135 → 6.1.141
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.
|
@@ -56,8 +56,8 @@ async function analyzeBoardIntegration(domain) {
|
|
|
56
56
|
}));
|
|
57
57
|
boards.forEach(board => {
|
|
58
58
|
const { scenarioNames, tags } = getRelationsInBoard(board);
|
|
59
|
-
var scenarioNodes = scenarioNames.map(name => model.nodes.find(node => { var _a; return ((_a = node.properties) === null || _a === void 0 ? void 0 : _a.
|
|
60
|
-
var tagNodes = tags.map(tag => model.nodes.find(node => { var _a; return ((_a = node.properties) === null || _a === void 0 ? void 0 : _a.tag) == tag; }));
|
|
59
|
+
var scenarioNodes = scenarioNames.map(name => model.nodes.find(node => { var _a; return node.labels.includes('Scenario') && ((_a = node.properties) === null || _a === void 0 ? void 0 : _a.name) == name; }));
|
|
60
|
+
var tagNodes = tags.map(tag => model.nodes.find(node => { var _a; return node.labels.includes('Tag') && ((_a = node.properties) === null || _a === void 0 ? void 0 : _a.tag) == tag; }));
|
|
61
61
|
const missingScenarioNodes = scenarioNodes
|
|
62
62
|
.filter(node => !node)
|
|
63
63
|
.map((_, i) => scenarioNames[i])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze-integration.js","sourceRoot":"","sources":["../../../server/controllers/analyzer/analyze-integration.ts"],"names":[],"mappings":";;;;AAAA,+DAA8B;AAE9B,iDAA6D;AAC7D,uEAAqE;AACrE,qDAAiD;AAEjD,SAAS,wBAAwB,CAAC,SAAS,EAAE,SAAsC;IACjF,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;KACvB;IAED,IAAI,SAAS,CAAC,UAAU,EAAE;QACxB,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE;YAC5C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;SACvE;KACF;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAY;IACvC,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAE3C,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,GAAG,CAC5F,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CACpC,CAAA;QAED,MAAM,IAAI,GAAG,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAExG,OAAO;YACL,aAAa,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,EAAE,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACjC,CAAA;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAA;QACpE,OAAO;YACL,aAAa,EAAE,EAAE;YACjB,IAAI,EAAE,EAAE;SACT,CAAA;KACF;AACH,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,MAAc;IAC1D,MAAM,KAAK,GAAG,MAAM,IAAA,qCAAkB,EAAC,MAAM,CAAC,CAAA;IAE9C,IAAI,EAAE,GAAG,CAAC,CAAA;IAEV,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAa,EAAC,aAAK,CAAC,CAAC,IAAI,CAAC;QAC7C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE;KACrC,CAAC,CAAA;IAEF,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACjB,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,MAAM,EAAE,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE;gBACV,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B;SACF,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IAED,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACrB,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAE1D,IAAI,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"analyze-integration.js","sourceRoot":"","sources":["../../../server/controllers/analyzer/analyze-integration.ts"],"names":[],"mappings":"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","sourcesContent":["import uniq from 'lodash/uniq'\n\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { analyzeIntegration } from '@things-factory/integration-base'\nimport { Board } from '../../service/board/board'\n\nfunction findObjectsWithCondition(container, condition: (component: any) => boolean) {\n let result = []\n\n if (condition(container)) {\n result.push(container)\n }\n\n if (container.components) {\n for (const component of container.components) {\n result = result.concat(findObjectsWithCondition(component, condition))\n }\n }\n\n return result\n}\n\nfunction getRelationsInBoard(board: Board) {\n try {\n const model = JSON.parse(board.model) || {}\n\n const scenarioNames = findObjectsWithCondition(model, component => component.scenarioName).map(\n component => component.scenarioName\n )\n\n const tags = findObjectsWithCondition(model, component => component.tag).map(component => component.tag)\n\n return {\n scenarioNames: uniq(scenarioNames.filter(Boolean)),\n tags: uniq(tags.filter(Boolean))\n }\n } catch (err) {\n console.error('analyze-integration::getRelationsInBoard error', err)\n return {\n scenarioNames: [],\n tags: []\n }\n }\n}\n\nexport async function analyzeBoardIntegration(domain: Domain) {\n const model = await analyzeIntegration(domain)\n\n var id = 0\n\n const boards = await getRepository(Board).find({\n where: { domain: { id: domain.id } }\n })\n\n model.nodes = model.nodes.concat(\n boards.map(board => {\n return {\n id: board.id,\n labels: ['Board'],\n text: board.name,\n icon: 'dashboard',\n properties: {\n name: board.name,\n description: board.description\n }\n }\n })\n )\n\n boards.forEach(board => {\n const { scenarioNames, tags } = getRelationsInBoard(board)\n\n var scenarioNodes = scenarioNames.map(name =>\n model.nodes.find(node => node.labels.includes('Scenario') && node.properties?.name == name)\n )\n var tagNodes = tags.map(tag => model.nodes.find(node => node.labels.includes('Tag') && node.properties?.tag == tag))\n\n const missingScenarioNodes = scenarioNodes\n .filter(node => !node)\n .map((_, i) => scenarioNames[i])\n .map(missingScenario => {\n return {\n id: `missing-scenario-${missingScenario}`,\n labels: ['Scenario'],\n text: missingScenario,\n icon: 'settings',\n properties: {\n name: missingScenario,\n missing: true\n }\n }\n })\n\n model.nodes = model.nodes.concat(missingScenarioNodes)\n\n const missingTagNodes = tagNodes\n .filter(node => !node)\n .map((_, i) => tags[i])\n .map(missingTag => {\n return {\n id: `missing-tag-${missingTag}`,\n labels: ['Tag'],\n text: missingTag,\n icon: 'label',\n properties: {\n name: missingTag,\n missing: true\n }\n }\n })\n\n model.nodes = model.nodes.concat(missingTagNodes)\n\n tagNodes.filter(node => !node).map((_, i) => tags[i])\n\n var relationships = [...scenarioNodes.filter(Boolean), ...missingScenarioNodes].map(node => {\n return {\n id: `bsce-${++id}`,\n type: 'call',\n startNode: board.id,\n endNode: node.id,\n properties: {}\n }\n })\n\n model.relationships = model.relationships.concat(relationships)\n\n relationships = [...tagNodes.filter(Boolean), ...missingTagNodes].map(node => {\n return {\n id: `btag-${++id}`,\n type: 'subscribe',\n startNode: board.id,\n endNode: node.id,\n properties: {}\n }\n })\n\n model.relationships = model.relationships.concat(relationships)\n })\n\n return model\n}\n"]}
|