@xpert-ai/plugin-drawio 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/.xpertai-plugin/plugin.json +1 -1
  2. package/dist/index.js +153 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/lib/constants.js +43 -0
  5. package/dist/lib/constants.js.map +1 -0
  6. package/dist/lib/drawio-view.provider.js +435 -0
  7. package/dist/lib/drawio-view.provider.js.map +1 -0
  8. package/dist/lib/drawio.middleware.js +159 -0
  9. package/dist/lib/drawio.middleware.js.map +1 -0
  10. package/dist/lib/drawio.plugin.js +27 -0
  11. package/dist/lib/drawio.plugin.js.map +1 -0
  12. package/dist/lib/drawio.service.js +415 -0
  13. package/dist/lib/drawio.service.js.map +1 -0
  14. package/dist/lib/drawio.templates.js +78 -0
  15. package/dist/lib/drawio.templates.js.map +1 -0
  16. package/dist/lib/entities/drawio-action-log.entity.js +69 -0
  17. package/dist/lib/entities/drawio-action-log.entity.js.map +1 -0
  18. package/dist/lib/entities/drawio-drawing-version.entity.js +86 -0
  19. package/dist/lib/entities/drawio-drawing-version.entity.js.map +1 -0
  20. package/dist/lib/entities/drawio-drawing.entity.js +94 -0
  21. package/dist/lib/entities/drawio-drawing.entity.js.map +1 -0
  22. package/dist/lib/entities/index.js +4 -0
  23. package/dist/lib/entities/index.js.map +1 -0
  24. package/dist/lib/remote-components/drawio-workbench/src/i18n.js +95 -0
  25. package/dist/lib/remote-components/drawio-workbench/src/i18n.js.map +1 -0
  26. package/dist/lib/remote-components/drawio-workbench/src/react-dom-client-shim.js +4 -0
  27. package/dist/lib/remote-components/drawio-workbench/src/react-dom-client-shim.js.map +1 -0
  28. package/dist/lib/remote-components/drawio-workbench/src/react-dom-shim.js +11 -0
  29. package/dist/lib/remote-components/drawio-workbench/src/react-dom-shim.js.map +1 -0
  30. package/dist/lib/remote-components/drawio-workbench/src/react-jsx-runtime-shim.js +8 -0
  31. package/dist/lib/remote-components/drawio-workbench/src/react-jsx-runtime-shim.js.map +1 -0
  32. package/dist/lib/remote-components/drawio-workbench/src/react-shim.js +36 -0
  33. package/dist/lib/remote-components/drawio-workbench/src/react-shim.js.map +1 -0
  34. package/dist/lib/remote-components/drawio-workbench/src/runtime.js +198 -0
  35. package/dist/lib/remote-components/drawio-workbench/src/runtime.js.map +1 -0
  36. package/dist/lib/remote-components/drawio-workbench/src/styles.js +290 -0
  37. package/dist/lib/remote-components/drawio-workbench/src/styles.js.map +1 -0
  38. package/dist/lib/remote-components/drawio-workbench/src/vendor.js +4 -0
  39. package/dist/lib/remote-components/drawio-workbench/src/vendor.js.map +1 -0
  40. package/dist/lib/types.js +2 -0
  41. package/dist/lib/types.js.map +1 -0
  42. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawio-view.provider.js","sourceRoot":"","sources":["../../src/lib/drawio-view.provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Injectable } from '@nestjs/common';
3
+ import { tool } from '@langchain/core/tools';
4
+ import { AgentMiddlewareStrategy, RequestContext } from '@xpert-ai/plugin-sdk';
5
+ import { z } from 'zod/v3';
6
+ import { DRAWIO_CREATE_DRAWING_TOOL_NAME, DRAWIO_FEATURE, DRAWIO_GET_DRAWING_TOOL_NAME, DRAWIO_ICON, DRAWIO_MIDDLEWARE_NAME, DRAWIO_PATCH_SCENE_TOOL_NAME, DRAWIO_REPORT_FAILURE_TOOL_NAME, DRAWIO_SAVE_MERMAID_DRAFT_TOOL_NAME, DRAWIO_SAVE_SCENE_VERSION_TOOL_NAME, DRAWIO_SEARCH_DRAWINGS_TOOL_NAME, DRAWIO_UPDATE_DRAWING_STATUS_TOOL_NAME } from './constants.js';
7
+ import { DrawioService } from './drawio.service.js';
8
+ const drawingKindSchema = z.enum(['diagram', 'flowchart', 'architecture', 'network', 'wireframe', 'sequence', 'other']);
9
+ const drawingStatusSchema = z.enum(['draft', 'reviewed', 'archived']);
10
+ const versionSourceSchema = z.enum(['agent_xml', 'agent_patch', 'agent_mermaid', 'workbench', 'workbench_mermaid', 'import', 'restore']);
11
+ const recordSchema = z.record(z.unknown());
12
+ const sceneSchema = z.object({
13
+ xml: z.string().optional().describe('draw.io XML, usually an <mxfile> or <mxGraphModel> document.'),
14
+ mermaidSource: z.string().optional().describe('Original Mermaid source when this diagram came from Mermaid.'),
15
+ previewSvg: z.string().optional().describe('Optional SVG preview exported from diagrams.net.'),
16
+ previewPng: z.string().optional().describe('Optional PNG data URI preview exported from diagrams.net.'),
17
+ descriptor: recordSchema.optional().describe('Optional diagrams.net JSON protocol descriptor, such as {format:"mermaid",data:"..."}')
18
+ });
19
+ const createDrawingSchema = sceneSchema.extend({
20
+ title: z.string().min(1).describe('Human-readable diagram title.'),
21
+ description: z.string().optional(),
22
+ kind: drawingKindSchema.optional(),
23
+ tags: z.array(z.string()).optional(),
24
+ source: z.string().optional().describe('Short source label, such as user_request, agent_plan, or imported_file.'),
25
+ changeSummary: z.string().optional().describe('Short summary for the initial version.')
26
+ });
27
+ const saveSceneVersionSchema = sceneSchema.extend({
28
+ drawingId: z.string().min(1).describe('Existing draw.io diagram id.'),
29
+ sourceType: versionSourceSchema.optional().describe('Where this version came from. Agent-created XML should use agent_xml.'),
30
+ changeSummary: z.string().optional()
31
+ });
32
+ const patchSceneSchema = sceneSchema.extend({
33
+ drawingId: z.string().min(1).describe('Existing draw.io diagram id.'),
34
+ changeSummary: z.string().optional()
35
+ });
36
+ const saveMermaidDraftSchema = z.object({
37
+ drawingId: z.string().optional().describe('Existing diagram id. Omit to create a new diagram for this Mermaid draft.'),
38
+ title: z.string().optional().describe('Required when drawingId is omitted; otherwise used only as context.'),
39
+ description: z.string().optional(),
40
+ kind: drawingKindSchema.optional(),
41
+ mermaidSource: z.string().min(1).describe('Mermaid diagram source. The Workbench loads it via diagrams.net descriptor import.'),
42
+ changeSummary: z.string().optional()
43
+ });
44
+ const searchDrawingsSchema = z.object({
45
+ status: drawingStatusSchema.optional(),
46
+ kind: drawingKindSchema.optional(),
47
+ search: z.string().optional(),
48
+ page: z.number().int().min(1).optional(),
49
+ pageSize: z.number().int().min(1).max(100).optional()
50
+ });
51
+ const getDrawingSchema = z.object({
52
+ drawingId: z.string().min(1)
53
+ });
54
+ const updateDrawingStatusSchema = z.object({
55
+ drawingId: z.string().min(1),
56
+ status: drawingStatusSchema,
57
+ reason: z.string().optional()
58
+ });
59
+ const reportFailureSchema = z.object({
60
+ drawingId: z.string().optional(),
61
+ versionId: z.string().optional(),
62
+ operation: z.string().min(1),
63
+ errorMessage: z.string().min(1),
64
+ recoverable: z.boolean().optional(),
65
+ evidence: z.unknown().optional()
66
+ });
67
+ let DrawioMiddleware = class DrawioMiddleware {
68
+ constructor(service) {
69
+ this.service = service;
70
+ this.meta = {
71
+ name: DRAWIO_MIDDLEWARE_NAME,
72
+ label: {
73
+ en_US: 'draw.io',
74
+ zh_Hans: 'draw.io 绘图'
75
+ },
76
+ description: {
77
+ en_US: 'Create, update, version, search, and recover draw.io diagrams from an Agent.',
78
+ zh_Hans: '让 Agent 创建、更新、版本化、检索和恢复 draw.io 图形。'
79
+ },
80
+ icon: {
81
+ type: 'svg',
82
+ value: DRAWIO_ICON,
83
+ color: '#f59e0b'
84
+ },
85
+ features: [DRAWIO_FEATURE],
86
+ configSchema: {
87
+ type: 'object',
88
+ properties: {},
89
+ required: []
90
+ }
91
+ };
92
+ }
93
+ createMiddleware(_options, context) {
94
+ const scope = scopeFromContext(context);
95
+ return {
96
+ name: DRAWIO_MIDDLEWARE_NAME,
97
+ tools: [
98
+ tool(async (input) => JSON.stringify(await this.service.createDrawing(scope, input), null, 2), {
99
+ name: DRAWIO_CREATE_DRAWING_TOOL_NAME,
100
+ description: 'Create a reviewable draw.io diagram. Include initial XML when you can produce valid diagrams.net XML; otherwise create a diagram and save a Mermaid draft.',
101
+ schema: createDrawingSchema
102
+ }),
103
+ tool(async (input) => JSON.stringify(await this.service.saveSceneVersion(scope, input), null, 2), {
104
+ name: DRAWIO_SAVE_SCENE_VERSION_TOOL_NAME,
105
+ description: 'Save a complete draw.io XML scene as a new version for an existing diagram. Call drawio_get_diagram first when updating a user-edited diagram.',
106
+ schema: saveSceneVersionSchema
107
+ }),
108
+ tool(async (input) => JSON.stringify(await this.service.patchScene(scope, input), null, 2), {
109
+ name: DRAWIO_PATCH_SCENE_TOOL_NAME,
110
+ description: 'Save a targeted replacement of the current draw.io XML, Mermaid source, descriptor, or preview fields as a new version.',
111
+ schema: patchSceneSchema
112
+ }),
113
+ tool(async (input) => JSON.stringify(await this.service.saveMermaidDraft(scope, input), null, 2), {
114
+ name: DRAWIO_SAVE_MERMAID_DRAFT_TOOL_NAME,
115
+ description: 'Save Mermaid source for conversion in the draw.io workbench. Use this for flowcharts, architecture flows, state diagrams, and sequence-style drafts.',
116
+ schema: saveMermaidDraftSchema
117
+ }),
118
+ tool(async (input) => JSON.stringify(await this.service.searchDrawings(scope, input), null, 2), {
119
+ name: DRAWIO_SEARCH_DRAWINGS_TOOL_NAME,
120
+ description: 'Search existing draw.io diagrams by status, kind, keyword, and pagination.',
121
+ schema: searchDrawingsSchema
122
+ }),
123
+ tool(async (input) => JSON.stringify(await this.service.getDrawing(scope, input.drawingId), null, 2), {
124
+ name: DRAWIO_GET_DRAWING_TOOL_NAME,
125
+ description: 'Get a diagram with current XML version, Mermaid source, version history, and recent action logs.',
126
+ schema: getDrawingSchema
127
+ }),
128
+ tool(async (input) => JSON.stringify(await this.service.updateDrawingStatus(scope, input), null, 2), {
129
+ name: DRAWIO_UPDATE_DRAWING_STATUS_TOOL_NAME,
130
+ description: 'Update a draw.io diagram status to draft, reviewed, or archived after user confirmation.',
131
+ schema: updateDrawingStatusSchema
132
+ }),
133
+ tool(async (input) => JSON.stringify(await this.service.reportFailure(scope, input), null, 2), {
134
+ name: DRAWIO_REPORT_FAILURE_TOOL_NAME,
135
+ description: 'Record a failed draw.io generation, XML import, Mermaid conversion, or export attempt with recoverability and evidence.',
136
+ schema: reportFailureSchema
137
+ })
138
+ ]
139
+ };
140
+ }
141
+ };
142
+ DrawioMiddleware = __decorate([
143
+ Injectable(),
144
+ AgentMiddlewareStrategy(DRAWIO_MIDDLEWARE_NAME),
145
+ __metadata("design:paramtypes", [DrawioService])
146
+ ], DrawioMiddleware);
147
+ export { DrawioMiddleware };
148
+ function scopeFromContext(context) {
149
+ return {
150
+ tenantId: context.tenantId,
151
+ organizationId: context.organizationId === undefined ? RequestContext.getOrganizationId() : context.organizationId,
152
+ workspaceId: context.workspaceId ?? null,
153
+ projectId: context.projectId ?? null,
154
+ userId: context.userId,
155
+ conversationId: context.conversationId ?? null,
156
+ assistantId: context.xpertId ?? null
157
+ };
158
+ }
159
+ //# sourceMappingURL=drawio.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawio.middleware.js","sourceRoot":"","sources":["../../src/lib/drawio.middleware.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAE5C,OAAO,EAEL,uBAAuB,EAIvB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EACL,+BAA+B,EAC/B,cAAc,EACd,4BAA4B,EAC5B,WAAW,EACX,sBAAsB,EACtB,4BAA4B,EAC5B,+BAA+B,EAC/B,mCAAmC,EACnC,mCAAmC,EACnC,gCAAgC,EAChC,sCAAsC,EACvC,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGnD,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;AACvH,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAA;AACrE,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;AACxI,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAC1C,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IACnG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAC7G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;IAC9F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACvG,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uFAAuF,CAAC;CACtI,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IACjH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CACxF,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,WAAW,CAAC,MAAM,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACrE,UAAU,EAAE,mBAAmB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;IAC5H,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACrE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;IACtH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAC5G,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oFAAoF,CAAC;IAC/H,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACtC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAA;AAEF,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAA;AAEF,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAA;AAIK,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAwB3B,YAA6B,OAAsB;QAAtB,YAAO,GAAP,OAAO,CAAe;QAvB1C,SAAI,GAAyB;YACpC,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE;gBACL,KAAK,EAAE,SAAS;gBAChB,OAAO,EAAE,YAAY;aACtB;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,8EAA8E;gBACrF,OAAO,EAAE,qCAAqC;aAC/C;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,SAAS;aACjB;YACD,QAAQ,EAAE,CAAC,cAAc,CAAC;YAC1B,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;gBACd,QAAQ,EAAE,EAAE;aACb;SACF,CAAA;IAEqD,CAAC;IAEvD,gBAAgB,CAAC,QAA+B,EAAE,OAAgC;QAChF,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QAEvC,OAAO;YACL,IAAI,EAAE,sBAAsB;YAC5B,KAAK,EAAE;gBACL,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACxF;oBACE,IAAI,EAAE,+BAA+B;oBACrC,WAAW,EACT,4JAA4J;oBAC9J,MAAM,EAAE,mBAAmB;iBAC5B,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAC3F;oBACE,IAAI,EAAE,mCAAmC;oBACzC,WAAW,EACT,gJAAgJ;oBAClJ,MAAM,EAAE,sBAAsB;iBAC/B,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACrF;oBACE,IAAI,EAAE,4BAA4B;oBAClC,WAAW,EACT,yHAAyH;oBAC3H,MAAM,EAAE,gBAAgB;iBACzB,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAC3F;oBACE,IAAI,EAAE,mCAAmC;oBACzC,WAAW,EACT,sJAAsJ;oBACxJ,MAAM,EAAE,sBAAsB;iBAC/B,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACzF;oBACE,IAAI,EAAE,gCAAgC;oBACtC,WAAW,EAAE,4EAA4E;oBACzF,MAAM,EAAE,oBAAoB;iBAC7B,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAC/F;oBACE,IAAI,EAAE,4BAA4B;oBAClC,WAAW,EAAE,kGAAkG;oBAC/G,MAAM,EAAE,gBAAgB;iBACzB,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAC9F;oBACE,IAAI,EAAE,sCAAsC;oBAC5C,WAAW,EAAE,0FAA0F;oBACvG,MAAM,EAAE,yBAAyB;iBAClC,CACF;gBACD,IAAI,CACF,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EACxF;oBACE,IAAI,EAAE,+BAA+B;oBACrC,WAAW,EACT,yHAAyH;oBAC3H,MAAM,EAAE,mBAAmB;iBAC5B,CACF;aACF;SACF,CAAA;IACH,CAAC;CACF,CAAA;AAxGY,gBAAgB;IAF5B,UAAU,EAAE;IACZ,uBAAuB,CAAC,sBAAsB,CAAC;qCAyBR,aAAa;GAxBxC,gBAAgB,CAwG5B;;AAED,SAAS,gBAAgB,CAAC,OAAgC;IACxD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,cAAc,EAAE,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc;QAClH,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;QAC9C,WAAW,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;KACrC,CAAA;AACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ var DrawioPlugin_1;
2
+ import { __decorate } from "tslib";
3
+ import { TypeOrmModule } from '@nestjs/typeorm';
4
+ import { XpertServerPlugin } from '@xpert-ai/plugin-sdk';
5
+ import { DrawioActionLog, DrawioDrawing, DrawioDrawingVersion } from './entities/index.js';
6
+ import { DrawioMiddleware } from './drawio.middleware.js';
7
+ import { DrawioService } from './drawio.service.js';
8
+ import { DrawioViewProvider } from './drawio-view.provider.js';
9
+ export const DRAWIO_ENTITIES = [DrawioDrawing, DrawioDrawingVersion, DrawioActionLog];
10
+ let DrawioPlugin = DrawioPlugin_1 = class DrawioPlugin {
11
+ onPluginBootstrap() {
12
+ console.log(`${DrawioPlugin_1.name} is being bootstrapped...`);
13
+ }
14
+ onPluginDestroy() {
15
+ console.log(`${DrawioPlugin_1.name} is being destroyed...`);
16
+ }
17
+ };
18
+ DrawioPlugin = DrawioPlugin_1 = __decorate([
19
+ XpertServerPlugin({
20
+ imports: [TypeOrmModule.forFeature(DRAWIO_ENTITIES)],
21
+ entities: DRAWIO_ENTITIES,
22
+ providers: [DrawioService, DrawioMiddleware, DrawioViewProvider],
23
+ exports: [DrawioService]
24
+ })
25
+ ], DrawioPlugin);
26
+ export { DrawioPlugin };
27
+ //# sourceMappingURL=drawio.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawio.plugin.js","sourceRoot":"","sources":["../../src/lib/drawio.plugin.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAa,EAAE,oBAAoB,EAAE,eAAe,CAAC,CAAA;AAQ9E,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACvB,iBAAiB;QACf,OAAO,CAAC,GAAG,CAAC,GAAG,cAAY,CAAC,IAAI,2BAA2B,CAAC,CAAA;IAC9D,CAAC;IAED,eAAe;QACb,OAAO,CAAC,GAAG,CAAC,GAAG,cAAY,CAAC,IAAI,wBAAwB,CAAC,CAAA;IAC3D,CAAC;CACF,CAAA;AARY,YAAY;IANxB,iBAAiB,CAAC;QACjB,OAAO,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACpD,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;QAChE,OAAO,EAAE,CAAC,aAAa,CAAC;KACzB,CAAC;GACW,YAAY,CAQxB"}
@@ -0,0 +1,415 @@
1
+ import { __decorate, __metadata, __param } from "tslib";
2
+ import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common';
3
+ import { InjectRepository } from '@nestjs/typeorm';
4
+ import { Repository } from 'typeorm';
5
+ import { DrawioActionLog, DrawioDrawing, DrawioDrawingVersion } from './entities/index.js';
6
+ let DrawioService = class DrawioService {
7
+ constructor(drawingRepository, versionRepository, logRepository) {
8
+ this.drawingRepository = drawingRepository;
9
+ this.versionRepository = versionRepository;
10
+ this.logRepository = logRepository;
11
+ }
12
+ async createDrawing(scope, input) {
13
+ const title = normalizeRequired(input.title, 'Diagram title is required.');
14
+ const drawing = await this.drawingRepository.save(this.drawingRepository.create({
15
+ ...scopedCreate(scope),
16
+ assistantId: scope.assistantId ?? null,
17
+ conversationId: scope.conversationId ?? null,
18
+ createdById: scope.userId ?? null,
19
+ title,
20
+ description: normalizeOptional(input.description),
21
+ kind: input.kind ?? 'diagram',
22
+ status: 'draft',
23
+ tags: normalizeStringArray(input.tags),
24
+ source: normalizeOptional(input.source),
25
+ currentVersionNumber: 0,
26
+ lastEditedById: scope.userId ?? null,
27
+ lastEditedAt: new Date()
28
+ }));
29
+ await this.writeLog(scope, {
30
+ drawingId: drawing.id,
31
+ action: 'drawing_created',
32
+ actorType: scope.assistantId ? 'agent' : 'user',
33
+ message: `draw.io diagram "${title}" was created.`,
34
+ snapshot: { title, kind: drawing.kind, source: drawing.source }
35
+ });
36
+ if (hasSceneContent(input)) {
37
+ await this.createVersion(scope, drawing, {
38
+ sourceType: input.mermaidSource ? 'agent_mermaid' : 'agent_xml',
39
+ xml: normalizeNullableText(input.xml),
40
+ mermaidSource: normalizeNullableText(input.mermaidSource),
41
+ previewSvg: normalizeNullableText(input.previewSvg),
42
+ previewPng: normalizeNullableText(input.previewPng),
43
+ descriptor: normalizeObject(input.descriptor),
44
+ changeSummary: normalizeOptional(input.changeSummary) ?? 'Initial diagram'
45
+ });
46
+ }
47
+ return this.getDrawing(scope, drawing.id);
48
+ }
49
+ async saveSceneVersion(scope, input) {
50
+ const drawing = await this.requireDrawing(scope, input.drawingId);
51
+ const version = await this.createVersion(scope, drawing, {
52
+ sourceType: input.sourceType ?? 'agent_xml',
53
+ xml: normalizeNullableText(input.xml),
54
+ mermaidSource: normalizeNullableText(input.mermaidSource),
55
+ previewSvg: normalizeNullableText(input.previewSvg),
56
+ previewPng: normalizeNullableText(input.previewPng),
57
+ descriptor: normalizeObject(input.descriptor),
58
+ changeSummary: normalizeOptional(input.changeSummary)
59
+ });
60
+ return {
61
+ success: true,
62
+ message: 'draw.io diagram version was saved.',
63
+ drawing: await this.getDrawing(scope, drawing.id),
64
+ version
65
+ };
66
+ }
67
+ async patchScene(scope, input) {
68
+ const drawing = await this.requireDrawing(scope, input.drawingId);
69
+ const currentVersion = await this.getCurrentVersion(scope, drawing);
70
+ const version = await this.createVersion(scope, drawing, {
71
+ sourceType: 'agent_patch',
72
+ xml: input.xml === undefined ? normalizeNullableText(currentVersion?.xml) : normalizeNullableText(input.xml),
73
+ mermaidSource: input.mermaidSource === undefined
74
+ ? normalizeNullableText(currentVersion?.mermaidSource)
75
+ : normalizeNullableText(input.mermaidSource),
76
+ previewSvg: input.previewSvg === undefined ? normalizeNullableText(currentVersion?.previewSvg) : normalizeNullableText(input.previewSvg),
77
+ previewPng: input.previewPng === undefined ? normalizeNullableText(currentVersion?.previewPng) : normalizeNullableText(input.previewPng),
78
+ descriptor: input.descriptor === undefined ? normalizeObject(currentVersion?.descriptor) : normalizeObject(input.descriptor),
79
+ changeSummary: normalizeOptional(input.changeSummary) ?? 'Agent patch'
80
+ });
81
+ await this.writeLog(scope, {
82
+ drawingId: drawing.id,
83
+ versionId: version.id,
84
+ action: 'scene_patched',
85
+ actorType: 'agent',
86
+ message: input.changeSummary,
87
+ snapshot: {
88
+ hasXml: Boolean(input.xml),
89
+ hasMermaidSource: Boolean(input.mermaidSource),
90
+ hasPreview: Boolean(input.previewSvg || input.previewPng)
91
+ }
92
+ });
93
+ return {
94
+ success: true,
95
+ message: 'draw.io diagram patch was saved as a new version.',
96
+ drawing: await this.getDrawing(scope, drawing.id),
97
+ version
98
+ };
99
+ }
100
+ async saveMermaidDraft(scope, input) {
101
+ const mermaidSource = normalizeRequired(input.mermaidSource, 'Mermaid source is required.');
102
+ const drawing = input.drawingId
103
+ ? await this.requireDrawing(scope, input.drawingId)
104
+ : (await this.createDrawing(scope, {
105
+ title: input.title ?? 'Untitled Mermaid Diagram',
106
+ description: input.description,
107
+ kind: input.kind ?? 'flowchart'
108
+ })).item;
109
+ const version = await this.createVersion(scope, drawing, {
110
+ sourceType: 'agent_mermaid',
111
+ xml: null,
112
+ mermaidSource,
113
+ previewSvg: null,
114
+ previewPng: null,
115
+ descriptor: {
116
+ format: 'mermaid',
117
+ data: mermaidSource
118
+ },
119
+ changeSummary: normalizeOptional(input.changeSummary) ?? 'Mermaid draft'
120
+ });
121
+ await this.writeLog(scope, {
122
+ drawingId: drawing.id,
123
+ versionId: version.id,
124
+ action: 'mermaid_draft_saved',
125
+ actorType: 'agent',
126
+ message: input.changeSummary,
127
+ snapshot: { mermaidSource }
128
+ });
129
+ return {
130
+ success: true,
131
+ message: 'Mermaid draft was saved. Open it in the draw.io workbench to convert and continue editing.',
132
+ drawing: await this.getDrawing(scope, drawing.id),
133
+ version
134
+ };
135
+ }
136
+ async searchDrawings(scope, query = {}) {
137
+ const page = Math.max(1, query.page ?? 1);
138
+ const pageSize = Math.max(1, Math.min(query.pageSize ?? 20, 100));
139
+ const search = query.search?.trim().toLowerCase() ?? '';
140
+ const drawings = await this.drawingRepository.find({
141
+ where: scopedWhere(scope),
142
+ order: {
143
+ updatedAt: 'DESC'
144
+ }
145
+ });
146
+ const filtered = drawings.filter((drawing) => {
147
+ if (query.status && drawing.status !== query.status) {
148
+ return false;
149
+ }
150
+ if (query.kind && drawing.kind !== query.kind) {
151
+ return false;
152
+ }
153
+ if (!search) {
154
+ return true;
155
+ }
156
+ return [drawing.title, drawing.description, drawing.kind, ...(drawing.tags ?? [])]
157
+ .filter(isString)
158
+ .some((value) => value.toLowerCase().includes(search));
159
+ });
160
+ const start = (page - 1) * pageSize;
161
+ return {
162
+ items: filtered.slice(start, start + pageSize),
163
+ total: filtered.length,
164
+ page,
165
+ pageSize,
166
+ search
167
+ };
168
+ }
169
+ async getDrawing(scope, drawingId) {
170
+ const drawing = await this.requireDrawing(scope, drawingId);
171
+ const [versions, logs] = await Promise.all([
172
+ this.versionRepository.find({
173
+ where: scopedWhere(scope, { drawingId }),
174
+ order: {
175
+ versionNumber: 'DESC'
176
+ }
177
+ }),
178
+ this.logRepository.find({
179
+ where: scopedWhere(scope, { drawingId }),
180
+ order: {
181
+ createdAt: 'DESC'
182
+ }
183
+ })
184
+ ]);
185
+ const currentVersion = versions.find((version) => version.id === drawing.currentVersionId) ?? versions[0] ?? null;
186
+ return {
187
+ item: drawing,
188
+ currentVersion,
189
+ versions,
190
+ logs,
191
+ total: versions.length,
192
+ summary: {
193
+ versionCount: versions.length,
194
+ currentVersionNumber: drawing.currentVersionNumber ?? currentVersion?.versionNumber ?? 0,
195
+ hasXml: versions.some((version) => Boolean(version.xml)),
196
+ hasMermaidDraft: versions.some((version) => Boolean(version.mermaidSource))
197
+ }
198
+ };
199
+ }
200
+ async getWorkbenchData(scope, query = {}) {
201
+ if (query.drawingId) {
202
+ return this.getDrawing(scope, query.drawingId);
203
+ }
204
+ const result = await this.searchDrawings(scope, query);
205
+ return {
206
+ ...result,
207
+ summary: {
208
+ page: result.page,
209
+ pageSize: result.pageSize,
210
+ search: result.search
211
+ }
212
+ };
213
+ }
214
+ async updateDrawingStatus(scope, input) {
215
+ const drawing = await this.requireDrawing(scope, input.drawingId);
216
+ const updated = await this.drawingRepository.save({
217
+ ...drawing,
218
+ status: input.status,
219
+ lastEditedById: scope.userId ?? null,
220
+ lastEditedAt: new Date()
221
+ });
222
+ await this.writeLog(scope, {
223
+ drawingId: drawing.id,
224
+ versionId: drawing.currentVersionId,
225
+ action: input.status === 'archived' ? 'drawing_archived' : 'status_updated',
226
+ actorType: scope.assistantId ? 'agent' : 'user',
227
+ message: input.reason ?? `Status updated to ${input.status}`,
228
+ snapshot: { status: input.status }
229
+ });
230
+ return {
231
+ success: true,
232
+ message: 'draw.io diagram status was updated.',
233
+ item: updated
234
+ };
235
+ }
236
+ async restoreVersion(scope, drawingId, versionId, changeSummary) {
237
+ const drawing = await this.requireDrawing(scope, drawingId);
238
+ const version = await this.versionRepository.findOne({
239
+ where: scopedWhere(scope, { id: versionId, drawingId })
240
+ });
241
+ if (!version) {
242
+ throw new NotFoundException('draw.io diagram version was not found.');
243
+ }
244
+ const restored = await this.createVersion(scope, drawing, {
245
+ sourceType: 'restore',
246
+ xml: normalizeNullableText(version.xml),
247
+ mermaidSource: normalizeNullableText(version.mermaidSource),
248
+ previewSvg: normalizeNullableText(version.previewSvg),
249
+ previewPng: normalizeNullableText(version.previewPng),
250
+ descriptor: normalizeObject(version.descriptor),
251
+ changeSummary: normalizeOptional(changeSummary) ?? `Restored version ${version.versionNumber}`
252
+ });
253
+ await this.writeLog(scope, {
254
+ drawingId,
255
+ versionId: restored.id,
256
+ action: 'version_restored',
257
+ actorType: 'user',
258
+ message: changeSummary,
259
+ snapshot: { restoredFromVersionId: versionId, restoredFromVersionNumber: version.versionNumber }
260
+ });
261
+ return {
262
+ success: true,
263
+ message: 'draw.io diagram version was restored.',
264
+ drawing: await this.getDrawing(scope, drawingId),
265
+ version: restored
266
+ };
267
+ }
268
+ async reportFailure(scope, input) {
269
+ const log = await this.writeLog(scope, {
270
+ drawingId: input.drawingId,
271
+ versionId: input.versionId,
272
+ action: 'failure_reported',
273
+ actorType: scope.assistantId ? 'agent' : 'system',
274
+ message: input.operation,
275
+ errorMessage: input.errorMessage,
276
+ snapshot: {
277
+ recoverable: input.recoverable,
278
+ evidence: input.evidence
279
+ }
280
+ });
281
+ return {
282
+ success: true,
283
+ message: 'draw.io diagram failure was recorded.',
284
+ log
285
+ };
286
+ }
287
+ async createVersion(scope, drawing, input) {
288
+ const currentVersionNumber = drawing.currentVersionNumber ?? 0;
289
+ const versionNumber = currentVersionNumber + 1;
290
+ const version = await this.versionRepository.save(this.versionRepository.create({
291
+ ...scopedCreate(scope),
292
+ drawingId: drawing.id,
293
+ versionNumber,
294
+ sourceType: input.sourceType,
295
+ xml: normalizeNullableText(input.xml),
296
+ mermaidSource: normalizeNullableText(input.mermaidSource),
297
+ previewSvg: normalizeNullableText(input.previewSvg),
298
+ previewPng: normalizeNullableText(input.previewPng),
299
+ descriptor: normalizeObject(input.descriptor),
300
+ changeSummary: normalizeOptional(input.changeSummary),
301
+ createdById: scope.userId ?? null,
302
+ assistantId: scope.assistantId ?? null,
303
+ conversationId: scope.conversationId ?? null
304
+ }));
305
+ await this.drawingRepository.save({
306
+ ...drawing,
307
+ currentVersionId: version.id,
308
+ currentVersionNumber: version.versionNumber,
309
+ lastEditedById: scope.userId ?? null,
310
+ lastEditedAt: new Date()
311
+ });
312
+ await this.writeLog(scope, {
313
+ drawingId: drawing.id,
314
+ versionId: version.id,
315
+ action: 'version_saved',
316
+ actorType: input.sourceType.startsWith('agent') ? 'agent' : 'user',
317
+ message: input.changeSummary,
318
+ snapshot: {
319
+ sourceType: input.sourceType,
320
+ versionNumber,
321
+ hasXml: Boolean(input.xml),
322
+ hasMermaidSource: Boolean(input.mermaidSource),
323
+ hasPreview: Boolean(input.previewSvg || input.previewPng)
324
+ }
325
+ });
326
+ return version;
327
+ }
328
+ async getCurrentVersion(scope, drawing) {
329
+ if (!drawing.currentVersionId) {
330
+ return null;
331
+ }
332
+ return this.versionRepository.findOne({
333
+ where: scopedWhere(scope, { id: drawing.currentVersionId, drawingId: drawing.id })
334
+ });
335
+ }
336
+ async requireDrawing(scope, drawingId) {
337
+ const id = normalizeRequired(drawingId, 'Diagram id is required.');
338
+ const drawing = await this.drawingRepository.findOne({
339
+ where: scopedWhere(scope, { id })
340
+ });
341
+ if (!drawing) {
342
+ throw new NotFoundException('draw.io diagram was not found.');
343
+ }
344
+ return drawing;
345
+ }
346
+ async writeLog(scope, input) {
347
+ return this.logRepository.save(this.logRepository.create({
348
+ ...scopedCreate(scope),
349
+ drawingId: input.drawingId,
350
+ versionId: input.versionId,
351
+ action: input.action,
352
+ actorType: input.actorType,
353
+ actorId: scope.userId ?? scope.assistantId ?? null,
354
+ message: normalizeOptional(input.message),
355
+ errorMessage: normalizeOptional(input.errorMessage),
356
+ snapshot: input.snapshot
357
+ }));
358
+ }
359
+ };
360
+ DrawioService = __decorate([
361
+ Injectable(),
362
+ __param(0, InjectRepository(DrawioDrawing)),
363
+ __param(1, InjectRepository(DrawioDrawingVersion)),
364
+ __param(2, InjectRepository(DrawioActionLog)),
365
+ __metadata("design:paramtypes", [Repository,
366
+ Repository,
367
+ Repository])
368
+ ], DrawioService);
369
+ export { DrawioService };
370
+ function scopedCreate(scope) {
371
+ return {
372
+ tenantId: scope.tenantId,
373
+ organizationId: scope.organizationId ?? null,
374
+ workspaceId: scope.workspaceId ?? null,
375
+ projectId: scope.projectId ?? null
376
+ };
377
+ }
378
+ function scopedWhere(scope, extra) {
379
+ return {
380
+ ...scopedCreate(scope),
381
+ ...(extra ?? {})
382
+ };
383
+ }
384
+ function hasSceneContent(input) {
385
+ return Boolean(normalizeNullableText(input.xml) ||
386
+ normalizeNullableText(input.mermaidSource) ||
387
+ normalizeNullableText(input.previewSvg) ||
388
+ normalizeNullableText(input.previewPng) ||
389
+ (isPlainObject(input.descriptor) && Object.keys(input.descriptor).length > 0));
390
+ }
391
+ function normalizeRequired(value, message) {
392
+ if (typeof value !== 'string' || !value.trim()) {
393
+ throw new BadRequestException(message);
394
+ }
395
+ return value.trim();
396
+ }
397
+ function normalizeOptional(value) {
398
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
399
+ }
400
+ function normalizeNullableText(value) {
401
+ return typeof value === 'string' && value.trim() ? value : null;
402
+ }
403
+ function normalizeStringArray(value) {
404
+ return Array.isArray(value) ? value.filter(isString).map((item) => item.trim()).filter(Boolean) : [];
405
+ }
406
+ function normalizeObject(value) {
407
+ return isPlainObject(value) ? value : {};
408
+ }
409
+ function isPlainObject(value) {
410
+ return Boolean(value && typeof value === 'object' && !Array.isArray(value));
411
+ }
412
+ function isString(value) {
413
+ return typeof value === 'string';
414
+ }
415
+ //# sourceMappingURL=drawio.service.js.map