@power-maverick/tool-erd-generator 0.0.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.
Files changed (47) hide show
  1. package/CONVERSION_SUMMARY.md +288 -0
  2. package/README.md +463 -0
  3. package/REFACTORING_COMPLETE.md +352 -0
  4. package/TYPESCRIPT_NOTES.md +57 -0
  5. package/dist/src/components/ERDGenerator.d.ts +44 -0
  6. package/dist/src/components/ERDGenerator.d.ts.map +1 -0
  7. package/dist/src/components/ERDGenerator.js +232 -0
  8. package/dist/src/components/ERDGenerator.js.map +1 -0
  9. package/dist/src/dvdtIntegration/integration.d.ts +47 -0
  10. package/dist/src/dvdtIntegration/integration.d.ts.map +1 -0
  11. package/dist/src/dvdtIntegration/integration.js +223 -0
  12. package/dist/src/dvdtIntegration/integration.js.map +1 -0
  13. package/dist/src/index.d.ts +6 -0
  14. package/dist/src/index.d.ts.map +1 -0
  15. package/dist/src/index.js +26 -0
  16. package/dist/src/index.js.map +1 -0
  17. package/dist/src/models/interfaces.d.ts +84 -0
  18. package/dist/src/models/interfaces.d.ts.map +1 -0
  19. package/dist/src/models/interfaces.js +3 -0
  20. package/dist/src/models/interfaces.js.map +1 -0
  21. package/dist/src/models/platformApi.d.ts +92 -0
  22. package/dist/src/models/platformApi.d.ts.map +1 -0
  23. package/dist/src/models/platformApi.js +213 -0
  24. package/dist/src/models/platformApi.js.map +1 -0
  25. package/dist/src/utils/Constants.d.ts +3 -0
  26. package/dist/src/utils/Constants.d.ts.map +1 -0
  27. package/dist/src/utils/Constants.js +6 -0
  28. package/dist/src/utils/Constants.js.map +1 -0
  29. package/dist/src/utils/DataverseClient.d.ts +53 -0
  30. package/dist/src/utils/DataverseClient.d.ts.map +1 -0
  31. package/dist/src/utils/DataverseClient.js +236 -0
  32. package/dist/src/utils/DataverseClient.js.map +1 -0
  33. package/dist/webview/index.css +1 -0
  34. package/dist/webview/index.html +13 -0
  35. package/dist/webview/index.js +49 -0
  36. package/index.html +12 -0
  37. package/package.json +50 -0
  38. package/tsconfig.json +20 -0
  39. package/tsconfig.webview.json +24 -0
  40. package/ui/test.html +326 -0
  41. package/webview/App.tsx +412 -0
  42. package/webview/index.html +12 -0
  43. package/webview/main.tsx +10 -0
  44. package/webview/styles.css +288 -0
  45. package/webview/tsconfig.json +35 -0
  46. package/webview/tsconfig.node.json +10 -0
  47. package/webview/vite.config.ts +17 -0
@@ -0,0 +1,288 @@
1
+ * {
2
+ margin: 0;
3
+ padding: 0;
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ body {
8
+ font-family: var(--vscode-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif);
9
+ background: var(--vscode-editor-background, linear-gradient(135deg, #667eea 0%, #764ba2 100%));
10
+ color: var(--vscode-editor-foreground, #333);
11
+ padding: 20px;
12
+ min-height: 100vh;
13
+ line-height: 1.6;
14
+ }
15
+
16
+ .container {
17
+ max-width: 1400px;
18
+ margin: 0 auto;
19
+ }
20
+
21
+ .header {
22
+ text-align: center;
23
+ margin-bottom: 30px;
24
+ padding-bottom: 20px;
25
+ border-bottom: 1px solid var(--vscode-panel-border, rgba(255, 255, 255, 0.2));
26
+ color: var(--vscode-foreground, white);
27
+ }
28
+
29
+ .header h1 {
30
+ font-size: 2rem;
31
+ margin-bottom: 10px;
32
+ }
33
+
34
+ .header p {
35
+ font-size: 1rem;
36
+ opacity: 0.8;
37
+ }
38
+
39
+ .card {
40
+ background: var(--vscode-editor-background, white);
41
+ border: 1px solid var(--vscode-panel-border, #e5e7eb);
42
+ border-radius: 8px;
43
+ padding: 24px;
44
+ margin-bottom: 20px;
45
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
46
+ }
47
+
48
+ .info-message {
49
+ background: var(--vscode-inputValidation-infoBackground, #063b49);
50
+ border: 1px solid var(--vscode-inputValidation-infoBorder, #007acc);
51
+ color: var(--vscode-inputValidation-infoForeground, #ffffff);
52
+ padding: 15px;
53
+ border-radius: 6px;
54
+ margin-bottom: 20px;
55
+ }
56
+
57
+ .error {
58
+ background: var(--vscode-inputValidation-errorBackground, #5a1d1d);
59
+ border: 1px solid var(--vscode-inputValidation-errorBorder, #be1100);
60
+ color: var(--vscode-inputValidation-errorForeground, #ffffff);
61
+ padding: 15px;
62
+ border-radius: 6px;
63
+ margin-bottom: 20px;
64
+ }
65
+
66
+ .loading {
67
+ text-align: center;
68
+ padding: 40px;
69
+ color: var(--vscode-foreground, white);
70
+ font-size: 1.5rem;
71
+ }
72
+
73
+ .form-group {
74
+ margin-bottom: 20px;
75
+ }
76
+
77
+ .form-group label {
78
+ display: block;
79
+ margin-bottom: 8px;
80
+ font-weight: 500;
81
+ font-size: 14px;
82
+ color: var(--vscode-foreground, #333);
83
+ }
84
+
85
+ select {
86
+ width: 100%;
87
+ padding: 10px 12px;
88
+ background: var(--vscode-input-background, #f3f4f6);
89
+ color: var(--vscode-input-foreground, #333);
90
+ border: 1px solid var(--vscode-input-border, #d1d5db);
91
+ border-radius: 4px;
92
+ font-size: 14px;
93
+ font-family: inherit;
94
+ cursor: pointer;
95
+ appearance: none;
96
+ background-image: url('data:image/svg+xml;utf8,<svg fill="%23666" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M4 6l4 4 4-4z"/></svg>');
97
+ background-repeat: no-repeat;
98
+ background-position: right 10px center;
99
+ background-size: 12px;
100
+ padding-right: 35px;
101
+ }
102
+
103
+ select:focus {
104
+ outline: none;
105
+ border-color: var(--vscode-focusBorder, #007acc);
106
+ }
107
+
108
+ select:disabled {
109
+ opacity: 0.5;
110
+ cursor: not-allowed;
111
+ }
112
+
113
+ .generate-section {
114
+ margin-top: 20px;
115
+ }
116
+
117
+ h2 {
118
+ margin-bottom: 20px;
119
+ font-size: 1.3rem;
120
+ color: var(--vscode-foreground, #333);
121
+ }
122
+
123
+ h3 {
124
+ margin-bottom: 15px;
125
+ font-size: 1.1rem;
126
+ color: var(--vscode-foreground, #333);
127
+ }
128
+
129
+ .format-selector {
130
+ display: flex;
131
+ gap: 10px;
132
+ margin-bottom: 20px;
133
+ align-items: center;
134
+ flex-wrap: wrap;
135
+ }
136
+
137
+ .format-btn {
138
+ padding: 8px 16px;
139
+ border: 1px solid var(--vscode-panel-border, #d1d5db);
140
+ background: var(--vscode-button-secondaryBackground, #f3f4f6);
141
+ color: var(--vscode-button-secondaryForeground, #333);
142
+ border-radius: 4px;
143
+ cursor: pointer;
144
+ transition: all 0.2s;
145
+ font-size: 14px;
146
+ font-weight: 500;
147
+ }
148
+
149
+ .format-btn:hover {
150
+ background: var(--vscode-button-secondaryHoverBackground, #e5e7eb);
151
+ }
152
+
153
+ .format-btn.active {
154
+ border-color: var(--vscode-focusBorder, #007acc);
155
+ background: var(--vscode-button-background, #0e639c);
156
+ color: var(--vscode-button-foreground, #ffffff);
157
+ }
158
+
159
+ .config-section {
160
+ margin-top: 20px;
161
+ padding-top: 20px;
162
+ border-top: 1px solid var(--vscode-panel-border, #e5e7eb);
163
+ }
164
+
165
+ .config-group {
166
+ margin-bottom: 15px;
167
+ }
168
+
169
+ .config-group label {
170
+ display: flex;
171
+ align-items: center;
172
+ gap: 10px;
173
+ cursor: pointer;
174
+ font-size: 14px;
175
+ }
176
+
177
+ .config-group input[type="checkbox"] {
178
+ width: 18px;
179
+ height: 18px;
180
+ cursor: pointer;
181
+ }
182
+
183
+ .config-group input[type="number"] {
184
+ width: 100px;
185
+ padding: 6px 10px;
186
+ background: var(--vscode-input-background, #f3f4f6);
187
+ color: var(--vscode-input-foreground, #333);
188
+ border: 1px solid var(--vscode-input-border, #d1d5db);
189
+ border-radius: 4px;
190
+ font-size: 14px;
191
+ }
192
+
193
+ .config-group input[type="number"]:focus {
194
+ outline: none;
195
+ border-color: var(--vscode-focusBorder, #007acc);
196
+ }
197
+
198
+ .config-label-group {
199
+ display: flex;
200
+ align-items: center;
201
+ gap: 10px;
202
+ margin-bottom: 8px;
203
+ }
204
+
205
+ .config-label-group label {
206
+ font-weight: 500;
207
+ min-width: 200px;
208
+ }
209
+
210
+ .config-help {
211
+ font-size: 12px;
212
+ opacity: 0.7;
213
+ margin-left: 28px;
214
+ margin-top: -8px;
215
+ margin-bottom: 8px;
216
+ }
217
+
218
+ .btn {
219
+ padding: 10px 20px;
220
+ border: none;
221
+ border-radius: 4px;
222
+ font-size: 14px;
223
+ font-weight: 500;
224
+ cursor: pointer;
225
+ transition: all 0.2s;
226
+ font-family: inherit;
227
+ }
228
+
229
+ .btn-primary {
230
+ background: var(--vscode-button-background, #667eea);
231
+ color: var(--vscode-button-foreground, #ffffff);
232
+ margin-top: 20px;
233
+ }
234
+
235
+ .btn-primary:hover {
236
+ background: var(--vscode-button-hoverBackground, #5568d3);
237
+ }
238
+
239
+ .btn-primary:disabled {
240
+ opacity: 0.5;
241
+ cursor: not-allowed;
242
+ }
243
+
244
+ .btn-secondary {
245
+ background: var(--vscode-button-secondaryBackground, #f3f4f6);
246
+ color: var(--vscode-button-secondaryForeground, #333);
247
+ margin-right: 10px;
248
+ }
249
+
250
+ .btn-secondary:hover {
251
+ background: var(--vscode-button-secondaryHoverBackground, #e5e7eb);
252
+ }
253
+
254
+ .diagram-controls {
255
+ display: flex;
256
+ gap: 10px;
257
+ margin-bottom: 20px;
258
+ flex-wrap: wrap;
259
+ }
260
+
261
+ .diagram-container {
262
+ margin-top: 20px;
263
+ border: 1px solid var(--vscode-panel-border, #e5e7eb);
264
+ border-radius: 8px;
265
+ padding: 20px;
266
+ background: var(--vscode-editor-background, #f9fafb);
267
+ overflow: auto;
268
+ max-height: 600px;
269
+ }
270
+
271
+ .diagram-text {
272
+ background: var(--vscode-textCodeBlock-background, #1e1e1e);
273
+ color: var(--vscode-textCodeBlock-foreground, #d4d4d4);
274
+ padding: 20px;
275
+ border-radius: 6px;
276
+ overflow-x: auto;
277
+ font-family: var(--vscode-editor-font-family, 'Courier New', monospace);
278
+ font-size: 13px;
279
+ border: 1px solid var(--vscode-panel-border, #3c3c3c);
280
+ }
281
+
282
+ .mermaid-container {
283
+ text-align: center;
284
+ background: var(--vscode-editor-background, #ffffff);
285
+ padding: 1rem;
286
+ border-radius: 4px;
287
+ overflow-x: auto;
288
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
+ "module": "ESNext",
7
+ "skipLibCheck": true,
8
+
9
+ /* Bundler mode */
10
+ "moduleResolution": "bundler",
11
+ "allowImportingTsExtensions": true,
12
+ "resolveJsonModule": true,
13
+ "isolatedModules": true,
14
+ "noEmit": true,
15
+ "jsx": "react-jsx",
16
+
17
+ /* Linting */
18
+ "strict": true,
19
+ "noUnusedLocals": false,
20
+ "noUnusedParameters": false,
21
+ "noFallthroughCasesInSwitch": true,
22
+
23
+ /* Path mapping */
24
+ "baseUrl": "..",
25
+ "paths": {
26
+ "*": ["*", "src/*"]
27
+ }
28
+ },
29
+ "include": [
30
+ "**/*.ts",
31
+ "**/*.tsx",
32
+ "../src/**/*.ts"
33
+ ],
34
+ "references": [{ "path": "./tsconfig.node.json" }]
35
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "skipLibCheck": true,
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "allowSyntheticDefaultImports": true
8
+ },
9
+ "include": ["vite.config.ts"]
10
+ }
@@ -0,0 +1,17 @@
1
+ import react from '@vitejs/plugin-react';
2
+ import { defineConfig } from 'vite';
3
+
4
+ // https://vite.dev/config/
5
+ export default defineConfig({
6
+ plugins: [react()],
7
+ build: {
8
+ outDir: '../dist/webview',
9
+ rollupOptions: {
10
+ output: {
11
+ entryFileNames: '[name].js',
12
+ chunkFileNames: '[name].js',
13
+ assetFileNames: '[name].[ext]'
14
+ }
15
+ }
16
+ }
17
+ });