online-compiler-widget 0.0.1

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 (67) hide show
  1. package/FileStorage/obj/FileStorage.csproj.EntityFrameworkCore.targets +28 -0
  2. package/README.md +1 -0
  3. package/eslint.config.js +26 -0
  4. package/index.html +13 -0
  5. package/openapitools.json +7 -0
  6. package/package.json +36 -0
  7. package/pnpm-workspace.yaml +2 -0
  8. package/public/vite.svg +1 -0
  9. package/src/App.css +49 -0
  10. package/src/App.tsx +84 -0
  11. package/src/api/.openapi-generator/FILES +25 -0
  12. package/src/api/.openapi-generator/VERSION +1 -0
  13. package/src/api/.openapi-generator-ignore +23 -0
  14. package/src/api/api.ts +1312 -0
  15. package/src/api/base.ts +62 -0
  16. package/src/api/common.ts +113 -0
  17. package/src/api/configuration.ts +121 -0
  18. package/src/api/docs/CompilationError.md +26 -0
  19. package/src/api/docs/CompileRequest.md +22 -0
  20. package/src/api/docs/CompileResult.md +28 -0
  21. package/src/api/docs/CompilerApi.md +263 -0
  22. package/src/api/docs/CreateFileDto.md +22 -0
  23. package/src/api/docs/CreateProjectRequest.md +20 -0
  24. package/src/api/docs/FileApi.md +274 -0
  25. package/src/api/docs/ProcessStatus.md +28 -0
  26. package/src/api/docs/ProjectApi.md +362 -0
  27. package/src/api/docs/ProjectInfo.md +24 -0
  28. package/src/api/docs/ProjectStats.md +28 -0
  29. package/src/api/docs/RenameFileDto.md +20 -0
  30. package/src/api/docs/RenameProjectRequest.md +20 -0
  31. package/src/api/docs/RunRequest.md +24 -0
  32. package/src/api/docs/RunResult.md +30 -0
  33. package/src/api/docs/RunningProjectInfo.md +26 -0
  34. package/src/api/docs/UpdateFileDto.md +20 -0
  35. package/src/api/git_push.sh +57 -0
  36. package/src/api/index.ts +18 -0
  37. package/src/assets/Badge.svg +17 -0
  38. package/src/assets/closeIcon.svg +20 -0
  39. package/src/assets/documentIcon.svg +11 -0
  40. package/src/assets/history.svg +11 -0
  41. package/src/assets/output.svg +12 -0
  42. package/src/assets/plus.svg +20 -0
  43. package/src/assets/react.svg +1 -0
  44. package/src/assets/save-icon.svg +11 -0
  45. package/src/assets/shield.svg +10 -0
  46. package/src/assets/start.svg +11 -0
  47. package/src/assets/stop.svg +11 -0
  48. package/src/components/CompilerWidget.module.scss +169 -0
  49. package/src/components/CompilerWidget.tsx +279 -0
  50. package/src/components/FileExplorer.module.scss +372 -0
  51. package/src/components/FileExplorer.tsx +285 -0
  52. package/src/components/MonacoEditorWrapper.module.scss +29 -0
  53. package/src/components/MonacoEditorWrapper.tsx +74 -0
  54. package/src/components/OutputPanel.module.scss +123 -0
  55. package/src/components/OutputPanel.tsx +53 -0
  56. package/src/components/RunContainer.module.scss +150 -0
  57. package/src/components/RunContainer.tsx +34 -0
  58. package/src/hooks/useCompiler.ts +228 -0
  59. package/src/hooks/useInitialNodes.ts +0 -0
  60. package/src/index.css +78 -0
  61. package/src/main.tsx +7 -0
  62. package/src/types/EditorDocument.ts +8 -0
  63. package/swagger.json +1020 -0
  64. package/tsconfig.app.json +29 -0
  65. package/tsconfig.json +7 -0
  66. package/tsconfig.node.json +26 -0
  67. package/vite.config.ts +8 -0
package/swagger.json ADDED
@@ -0,0 +1,1020 @@
1
+ {
2
+ "openapi": "3.0.4",
3
+ "info": {
4
+ "title": "CompilerWidgetApi",
5
+ "version": "1.0"
6
+ },
7
+ "paths": {
8
+ "/api/compile/project/{projectId}/run": {
9
+ "post": {
10
+ "tags": [
11
+ "Compiler"
12
+ ],
13
+ "parameters": [
14
+ {
15
+ "name": "projectId",
16
+ "in": "path",
17
+ "required": true,
18
+ "schema": {
19
+ "type": "string",
20
+ "format": "uuid"
21
+ }
22
+ }
23
+ ],
24
+ "requestBody": {
25
+ "content": {
26
+ "application/json": {
27
+ "schema": {
28
+ "$ref": "#/components/schemas/RunRequest"
29
+ }
30
+ },
31
+ "text/json": {
32
+ "schema": {
33
+ "$ref": "#/components/schemas/RunRequest"
34
+ }
35
+ },
36
+ "application/*+json": {
37
+ "schema": {
38
+ "$ref": "#/components/schemas/RunRequest"
39
+ }
40
+ }
41
+ }
42
+ },
43
+ "responses": {
44
+ "200": {
45
+ "description": "OK",
46
+ "content": {
47
+ "text/plain": {
48
+ "schema": {
49
+ "$ref": "#/components/schemas/RunResult"
50
+ }
51
+ },
52
+ "application/json": {
53
+ "schema": {
54
+ "$ref": "#/components/schemas/RunResult"
55
+ }
56
+ },
57
+ "text/json": {
58
+ "schema": {
59
+ "$ref": "#/components/schemas/RunResult"
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ },
67
+ "/api/compile/project/{projectId}/stop": {
68
+ "post": {
69
+ "tags": [
70
+ "Compiler"
71
+ ],
72
+ "parameters": [
73
+ {
74
+ "name": "projectId",
75
+ "in": "path",
76
+ "required": true,
77
+ "schema": {
78
+ "type": "string",
79
+ "format": "uuid"
80
+ }
81
+ }
82
+ ],
83
+ "responses": {
84
+ "200": {
85
+ "description": "OK"
86
+ }
87
+ }
88
+ }
89
+ },
90
+ "/api/compile/project/{projectId}/status": {
91
+ "get": {
92
+ "tags": [
93
+ "Compiler"
94
+ ],
95
+ "parameters": [
96
+ {
97
+ "name": "projectId",
98
+ "in": "path",
99
+ "required": true,
100
+ "schema": {
101
+ "type": "string",
102
+ "format": "uuid"
103
+ }
104
+ }
105
+ ],
106
+ "responses": {
107
+ "200": {
108
+ "description": "OK",
109
+ "content": {
110
+ "text/plain": {
111
+ "schema": {
112
+ "$ref": "#/components/schemas/ProcessStatus"
113
+ }
114
+ },
115
+ "application/json": {
116
+ "schema": {
117
+ "$ref": "#/components/schemas/ProcessStatus"
118
+ }
119
+ },
120
+ "text/json": {
121
+ "schema": {
122
+ "$ref": "#/components/schemas/ProcessStatus"
123
+ }
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+ },
130
+ "/api/compile/running-projects": {
131
+ "get": {
132
+ "tags": [
133
+ "Compiler"
134
+ ],
135
+ "responses": {
136
+ "200": {
137
+ "description": "OK",
138
+ "content": {
139
+ "text/plain": {
140
+ "schema": {
141
+ "type": "array",
142
+ "items": {
143
+ "$ref": "#/components/schemas/RunningProjectInfo"
144
+ }
145
+ }
146
+ },
147
+ "application/json": {
148
+ "schema": {
149
+ "type": "array",
150
+ "items": {
151
+ "$ref": "#/components/schemas/RunningProjectInfo"
152
+ }
153
+ }
154
+ },
155
+ "text/json": {
156
+ "schema": {
157
+ "type": "array",
158
+ "items": {
159
+ "$ref": "#/components/schemas/RunningProjectInfo"
160
+ }
161
+ }
162
+ }
163
+ }
164
+ }
165
+ }
166
+ }
167
+ },
168
+ "/api/compile/project/{projectId}/compile": {
169
+ "post": {
170
+ "tags": [
171
+ "Compiler"
172
+ ],
173
+ "parameters": [
174
+ {
175
+ "name": "projectId",
176
+ "in": "path",
177
+ "required": true,
178
+ "schema": {
179
+ "type": "string",
180
+ "format": "uuid"
181
+ }
182
+ }
183
+ ],
184
+ "requestBody": {
185
+ "content": {
186
+ "application/json": {
187
+ "schema": {
188
+ "$ref": "#/components/schemas/CompileRequest"
189
+ }
190
+ },
191
+ "text/json": {
192
+ "schema": {
193
+ "$ref": "#/components/schemas/CompileRequest"
194
+ }
195
+ },
196
+ "application/*+json": {
197
+ "schema": {
198
+ "$ref": "#/components/schemas/CompileRequest"
199
+ }
200
+ }
201
+ }
202
+ },
203
+ "responses": {
204
+ "200": {
205
+ "description": "OK",
206
+ "content": {
207
+ "text/plain": {
208
+ "schema": {
209
+ "$ref": "#/components/schemas/CompileResult"
210
+ }
211
+ },
212
+ "application/json": {
213
+ "schema": {
214
+ "$ref": "#/components/schemas/CompileResult"
215
+ }
216
+ },
217
+ "text/json": {
218
+ "schema": {
219
+ "$ref": "#/components/schemas/CompileResult"
220
+ }
221
+ }
222
+ }
223
+ }
224
+ }
225
+ }
226
+ },
227
+ "/api/files/{fileId}/save": {
228
+ "post": {
229
+ "tags": [
230
+ "File"
231
+ ],
232
+ "parameters": [
233
+ {
234
+ "name": "fileId",
235
+ "in": "path",
236
+ "required": true,
237
+ "schema": {
238
+ "type": "string",
239
+ "format": "uuid"
240
+ }
241
+ }
242
+ ],
243
+ "requestBody": {
244
+ "content": {
245
+ "application/json": {
246
+ "schema": {
247
+ "$ref": "#/components/schemas/UpdateFileDto"
248
+ }
249
+ },
250
+ "text/json": {
251
+ "schema": {
252
+ "$ref": "#/components/schemas/UpdateFileDto"
253
+ }
254
+ },
255
+ "application/*+json": {
256
+ "schema": {
257
+ "$ref": "#/components/schemas/UpdateFileDto"
258
+ }
259
+ }
260
+ }
261
+ },
262
+ "responses": {
263
+ "200": {
264
+ "description": "OK",
265
+ "content": {
266
+ "text/plain": {
267
+ "schema": {
268
+ "type": "string",
269
+ "format": "uuid"
270
+ }
271
+ },
272
+ "application/json": {
273
+ "schema": {
274
+ "type": "string",
275
+ "format": "uuid"
276
+ }
277
+ },
278
+ "text/json": {
279
+ "schema": {
280
+ "type": "string",
281
+ "format": "uuid"
282
+ }
283
+ }
284
+ }
285
+ }
286
+ }
287
+ }
288
+ },
289
+ "/api/files/{fileId}/rename": {
290
+ "post": {
291
+ "tags": [
292
+ "File"
293
+ ],
294
+ "parameters": [
295
+ {
296
+ "name": "fileId",
297
+ "in": "path",
298
+ "required": true,
299
+ "schema": {
300
+ "type": "string",
301
+ "format": "uuid"
302
+ }
303
+ }
304
+ ],
305
+ "requestBody": {
306
+ "content": {
307
+ "application/json": {
308
+ "schema": {
309
+ "$ref": "#/components/schemas/RenameFileDto"
310
+ }
311
+ },
312
+ "text/json": {
313
+ "schema": {
314
+ "$ref": "#/components/schemas/RenameFileDto"
315
+ }
316
+ },
317
+ "application/*+json": {
318
+ "schema": {
319
+ "$ref": "#/components/schemas/RenameFileDto"
320
+ }
321
+ }
322
+ }
323
+ },
324
+ "responses": {
325
+ "200": {
326
+ "description": "OK",
327
+ "content": {
328
+ "text/plain": {
329
+ "schema": {
330
+ "type": "string",
331
+ "format": "uuid"
332
+ }
333
+ },
334
+ "application/json": {
335
+ "schema": {
336
+ "type": "string",
337
+ "format": "uuid"
338
+ }
339
+ },
340
+ "text/json": {
341
+ "schema": {
342
+ "type": "string",
343
+ "format": "uuid"
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+ }
350
+ },
351
+ "/api/files/{fileId}/delete": {
352
+ "post": {
353
+ "tags": [
354
+ "File"
355
+ ],
356
+ "parameters": [
357
+ {
358
+ "name": "fileId",
359
+ "in": "path",
360
+ "required": true,
361
+ "schema": {
362
+ "type": "string",
363
+ "format": "uuid"
364
+ }
365
+ }
366
+ ],
367
+ "responses": {
368
+ "200": {
369
+ "description": "OK"
370
+ }
371
+ }
372
+ }
373
+ },
374
+ "/api/files/project/{projectId}": {
375
+ "post": {
376
+ "tags": [
377
+ "File"
378
+ ],
379
+ "parameters": [
380
+ {
381
+ "name": "projectId",
382
+ "in": "path",
383
+ "required": true,
384
+ "schema": {
385
+ "type": "string",
386
+ "format": "uuid"
387
+ }
388
+ }
389
+ ],
390
+ "requestBody": {
391
+ "content": {
392
+ "application/json": {
393
+ "schema": {
394
+ "$ref": "#/components/schemas/CreateFileDto"
395
+ }
396
+ },
397
+ "text/json": {
398
+ "schema": {
399
+ "$ref": "#/components/schemas/CreateFileDto"
400
+ }
401
+ },
402
+ "application/*+json": {
403
+ "schema": {
404
+ "$ref": "#/components/schemas/CreateFileDto"
405
+ }
406
+ }
407
+ }
408
+ },
409
+ "responses": {
410
+ "200": {
411
+ "description": "OK",
412
+ "content": {
413
+ "text/plain": {
414
+ "schema": {
415
+ "type": "string",
416
+ "format": "uuid"
417
+ }
418
+ },
419
+ "application/json": {
420
+ "schema": {
421
+ "type": "string",
422
+ "format": "uuid"
423
+ }
424
+ },
425
+ "text/json": {
426
+ "schema": {
427
+ "type": "string",
428
+ "format": "uuid"
429
+ }
430
+ }
431
+ }
432
+ }
433
+ }
434
+ }
435
+ },
436
+ "/api/files/{fileId}": {
437
+ "post": {
438
+ "tags": [
439
+ "File"
440
+ ],
441
+ "parameters": [
442
+ {
443
+ "name": "fileId",
444
+ "in": "path",
445
+ "required": true,
446
+ "schema": {
447
+ "type": "string",
448
+ "format": "uuid"
449
+ }
450
+ }
451
+ ],
452
+ "responses": {
453
+ "200": {
454
+ "description": "OK",
455
+ "content": {
456
+ "text/plain": {
457
+ "schema": {
458
+ "type": "string"
459
+ }
460
+ },
461
+ "application/json": {
462
+ "schema": {
463
+ "type": "string"
464
+ }
465
+ },
466
+ "text/json": {
467
+ "schema": {
468
+ "type": "string"
469
+ }
470
+ }
471
+ }
472
+ }
473
+ }
474
+ }
475
+ },
476
+ "/api/projects/create": {
477
+ "post": {
478
+ "tags": [
479
+ "Project"
480
+ ],
481
+ "requestBody": {
482
+ "content": {
483
+ "application/json": {
484
+ "schema": {
485
+ "$ref": "#/components/schemas/CreateProjectRequest"
486
+ }
487
+ },
488
+ "text/json": {
489
+ "schema": {
490
+ "$ref": "#/components/schemas/CreateProjectRequest"
491
+ }
492
+ },
493
+ "application/*+json": {
494
+ "schema": {
495
+ "$ref": "#/components/schemas/CreateProjectRequest"
496
+ }
497
+ }
498
+ }
499
+ },
500
+ "responses": {
501
+ "200": {
502
+ "description": "OK",
503
+ "content": {
504
+ "text/plain": {
505
+ "schema": {
506
+ "type": "string",
507
+ "format": "uuid"
508
+ }
509
+ },
510
+ "application/json": {
511
+ "schema": {
512
+ "type": "string",
513
+ "format": "uuid"
514
+ }
515
+ },
516
+ "text/json": {
517
+ "schema": {
518
+ "type": "string",
519
+ "format": "uuid"
520
+ }
521
+ }
522
+ }
523
+ }
524
+ }
525
+ }
526
+ },
527
+ "/api/projects/{projectId}": {
528
+ "delete": {
529
+ "tags": [
530
+ "Project"
531
+ ],
532
+ "parameters": [
533
+ {
534
+ "name": "projectId",
535
+ "in": "path",
536
+ "required": true,
537
+ "schema": {
538
+ "type": "string",
539
+ "format": "uuid"
540
+ }
541
+ }
542
+ ],
543
+ "responses": {
544
+ "200": {
545
+ "description": "OK"
546
+ }
547
+ }
548
+ },
549
+ "get": {
550
+ "tags": [
551
+ "Project"
552
+ ],
553
+ "parameters": [
554
+ {
555
+ "name": "projectId",
556
+ "in": "path",
557
+ "required": true,
558
+ "schema": {
559
+ "type": "string",
560
+ "format": "uuid"
561
+ }
562
+ }
563
+ ],
564
+ "responses": {
565
+ "200": {
566
+ "description": "OK",
567
+ "content": {
568
+ "text/plain": {
569
+ "schema": {
570
+ "$ref": "#/components/schemas/ProjectInfo"
571
+ }
572
+ },
573
+ "application/json": {
574
+ "schema": {
575
+ "$ref": "#/components/schemas/ProjectInfo"
576
+ }
577
+ },
578
+ "text/json": {
579
+ "schema": {
580
+ "$ref": "#/components/schemas/ProjectInfo"
581
+ }
582
+ }
583
+ }
584
+ }
585
+ }
586
+ }
587
+ },
588
+ "/api/projects": {
589
+ "get": {
590
+ "tags": [
591
+ "Project"
592
+ ],
593
+ "responses": {
594
+ "200": {
595
+ "description": "OK",
596
+ "content": {
597
+ "text/plain": {
598
+ "schema": {
599
+ "type": "array",
600
+ "items": {
601
+ "$ref": "#/components/schemas/ProjectInfo"
602
+ }
603
+ }
604
+ },
605
+ "application/json": {
606
+ "schema": {
607
+ "type": "array",
608
+ "items": {
609
+ "$ref": "#/components/schemas/ProjectInfo"
610
+ }
611
+ }
612
+ },
613
+ "text/json": {
614
+ "schema": {
615
+ "type": "array",
616
+ "items": {
617
+ "$ref": "#/components/schemas/ProjectInfo"
618
+ }
619
+ }
620
+ }
621
+ }
622
+ }
623
+ }
624
+ }
625
+ },
626
+ "/api/projects/{projectId}/rename": {
627
+ "put": {
628
+ "tags": [
629
+ "Project"
630
+ ],
631
+ "parameters": [
632
+ {
633
+ "name": "projectId",
634
+ "in": "path",
635
+ "required": true,
636
+ "schema": {
637
+ "type": "string",
638
+ "format": "uuid"
639
+ }
640
+ }
641
+ ],
642
+ "requestBody": {
643
+ "content": {
644
+ "application/json": {
645
+ "schema": {
646
+ "$ref": "#/components/schemas/RenameProjectRequest"
647
+ }
648
+ },
649
+ "text/json": {
650
+ "schema": {
651
+ "$ref": "#/components/schemas/RenameProjectRequest"
652
+ }
653
+ },
654
+ "application/*+json": {
655
+ "schema": {
656
+ "$ref": "#/components/schemas/RenameProjectRequest"
657
+ }
658
+ }
659
+ }
660
+ },
661
+ "responses": {
662
+ "200": {
663
+ "description": "OK"
664
+ }
665
+ }
666
+ }
667
+ },
668
+ "/api/projects/{projectId}/stats": {
669
+ "get": {
670
+ "tags": [
671
+ "Project"
672
+ ],
673
+ "parameters": [
674
+ {
675
+ "name": "projectId",
676
+ "in": "path",
677
+ "required": true,
678
+ "schema": {
679
+ "type": "string",
680
+ "format": "uuid"
681
+ }
682
+ }
683
+ ],
684
+ "responses": {
685
+ "200": {
686
+ "description": "OK",
687
+ "content": {
688
+ "text/plain": {
689
+ "schema": {
690
+ "$ref": "#/components/schemas/ProjectStats"
691
+ }
692
+ },
693
+ "application/json": {
694
+ "schema": {
695
+ "$ref": "#/components/schemas/ProjectStats"
696
+ }
697
+ },
698
+ "text/json": {
699
+ "schema": {
700
+ "$ref": "#/components/schemas/ProjectStats"
701
+ }
702
+ }
703
+ }
704
+ }
705
+ }
706
+ }
707
+ },
708
+ "/api/projects/{projectId}/duplicate": {
709
+ "post": {
710
+ "tags": [
711
+ "Project"
712
+ ],
713
+ "parameters": [
714
+ {
715
+ "name": "projectId",
716
+ "in": "path",
717
+ "required": true,
718
+ "schema": {
719
+ "type": "string",
720
+ "format": "uuid"
721
+ }
722
+ }
723
+ ],
724
+ "responses": {
725
+ "200": {
726
+ "description": "OK",
727
+ "content": {
728
+ "text/plain": {
729
+ "schema": {
730
+ "type": "string",
731
+ "format": "uuid"
732
+ }
733
+ },
734
+ "application/json": {
735
+ "schema": {
736
+ "type": "string",
737
+ "format": "uuid"
738
+ }
739
+ },
740
+ "text/json": {
741
+ "schema": {
742
+ "type": "string",
743
+ "format": "uuid"
744
+ }
745
+ }
746
+ }
747
+ }
748
+ }
749
+ }
750
+ }
751
+ },
752
+ "components": {
753
+ "schemas": {
754
+ "CompilationError": {
755
+ "type": "object",
756
+ "properties": {
757
+ "errorCode": {
758
+ "type": "string",
759
+ "nullable": true
760
+ },
761
+ "message": {
762
+ "type": "string",
763
+ "nullable": true
764
+ },
765
+ "startLine": {
766
+ "type": "integer",
767
+ "format": "int32",
768
+ "readOnly": true
769
+ },
770
+ "endLine": {
771
+ "type": "integer",
772
+ "format": "int32"
773
+ }
774
+ },
775
+ "additionalProperties": false
776
+ },
777
+ "CompileRequest": {
778
+ "type": "object",
779
+ "properties": {
780
+ "mainFile": {
781
+ "type": "string",
782
+ "nullable": true
783
+ },
784
+ "optimize": {
785
+ "type": "boolean"
786
+ }
787
+ },
788
+ "additionalProperties": false
789
+ },
790
+ "CompileResult": {
791
+ "type": "object",
792
+ "properties": {
793
+ "success": {
794
+ "type": "boolean"
795
+ },
796
+ "output": {
797
+ "type": "string",
798
+ "nullable": true
799
+ },
800
+ "errors": {
801
+ "type": "array",
802
+ "items": {
803
+ "$ref": "#/components/schemas/CompilationError"
804
+ },
805
+ "nullable": true
806
+ },
807
+ "projectId": {
808
+ "type": "string",
809
+ "format": "uuid"
810
+ },
811
+ "compiledAt": {
812
+ "type": "string",
813
+ "format": "date-time"
814
+ }
815
+ },
816
+ "additionalProperties": false
817
+ },
818
+ "CreateFileDto": {
819
+ "type": "object",
820
+ "properties": {
821
+ "name": {
822
+ "type": "string",
823
+ "nullable": true
824
+ },
825
+ "path": {
826
+ "type": "string",
827
+ "nullable": true
828
+ }
829
+ },
830
+ "additionalProperties": false
831
+ },
832
+ "CreateProjectRequest": {
833
+ "type": "object",
834
+ "properties": {
835
+ "name": {
836
+ "type": "string",
837
+ "nullable": true
838
+ }
839
+ },
840
+ "additionalProperties": false
841
+ },
842
+ "ProcessStatus": {
843
+ "type": "object",
844
+ "properties": {
845
+ "projectId": {
846
+ "type": "string",
847
+ "format": "uuid"
848
+ },
849
+ "isRunning": {
850
+ "type": "boolean"
851
+ },
852
+ "processId": {
853
+ "type": "string",
854
+ "nullable": true
855
+ },
856
+ "startedAt": {
857
+ "type": "string",
858
+ "format": "date-time",
859
+ "nullable": true
860
+ },
861
+ "uptime": {
862
+ "type": "string",
863
+ "format": "date-span"
864
+ }
865
+ },
866
+ "additionalProperties": false
867
+ },
868
+ "ProjectInfo": {
869
+ "type": "object",
870
+ "properties": {
871
+ "projectId": {
872
+ "type": "string",
873
+ "format": "uuid"
874
+ },
875
+ "name": {
876
+ "type": "string",
877
+ "nullable": true
878
+ },
879
+ "fileCount": {
880
+ "type": "integer",
881
+ "format": "int32"
882
+ }
883
+ },
884
+ "additionalProperties": false
885
+ },
886
+ "ProjectStats": {
887
+ "type": "object",
888
+ "properties": {
889
+ "projectId": {
890
+ "type": "string",
891
+ "format": "uuid"
892
+ },
893
+ "fileCount": {
894
+ "type": "integer",
895
+ "format": "int32"
896
+ },
897
+ "cSharpFiles": {
898
+ "type": "integer",
899
+ "format": "int32"
900
+ },
901
+ "jsFiles": {
902
+ "type": "integer",
903
+ "format": "int32"
904
+ },
905
+ "otherFiles": {
906
+ "type": "integer",
907
+ "format": "int32"
908
+ }
909
+ },
910
+ "additionalProperties": false
911
+ },
912
+ "RenameFileDto": {
913
+ "type": "object",
914
+ "properties": {
915
+ "name": {
916
+ "type": "string",
917
+ "nullable": true
918
+ }
919
+ },
920
+ "additionalProperties": false
921
+ },
922
+ "RenameProjectRequest": {
923
+ "type": "object",
924
+ "properties": {
925
+ "newName": {
926
+ "type": "string",
927
+ "nullable": true
928
+ }
929
+ },
930
+ "additionalProperties": false
931
+ },
932
+ "RunRequest": {
933
+ "type": "object",
934
+ "properties": {
935
+ "mainFile": {
936
+ "type": "string",
937
+ "nullable": true
938
+ },
939
+ "environmentVariables": {
940
+ "type": "object",
941
+ "additionalProperties": {
942
+ "type": "string"
943
+ },
944
+ "nullable": true
945
+ },
946
+ "timeoutSeconds": {
947
+ "type": "integer",
948
+ "format": "int32",
949
+ "nullable": true
950
+ }
951
+ },
952
+ "additionalProperties": false
953
+ },
954
+ "RunResult": {
955
+ "type": "object",
956
+ "properties": {
957
+ "success": {
958
+ "type": "boolean"
959
+ },
960
+ "output": {
961
+ "type": "string",
962
+ "nullable": true
963
+ },
964
+ "errors": {
965
+ "type": "array",
966
+ "items": {
967
+ "$ref": "#/components/schemas/CompilationError"
968
+ },
969
+ "nullable": true
970
+ },
971
+ "processId": {
972
+ "type": "string",
973
+ "nullable": true
974
+ },
975
+ "projectId": {
976
+ "type": "string",
977
+ "format": "uuid"
978
+ },
979
+ "startedAt": {
980
+ "type": "string",
981
+ "format": "date-time"
982
+ }
983
+ },
984
+ "additionalProperties": false
985
+ },
986
+ "RunningProjectInfo": {
987
+ "type": "object",
988
+ "properties": {
989
+ "projectId": {
990
+ "type": "string",
991
+ "format": "uuid"
992
+ },
993
+ "processId": {
994
+ "type": "string",
995
+ "nullable": true
996
+ },
997
+ "startedAt": {
998
+ "type": "string",
999
+ "format": "date-time"
1000
+ },
1001
+ "uptime": {
1002
+ "type": "string",
1003
+ "format": "date-span"
1004
+ }
1005
+ },
1006
+ "additionalProperties": false
1007
+ },
1008
+ "UpdateFileDto": {
1009
+ "type": "object",
1010
+ "properties": {
1011
+ "content": {
1012
+ "type": "string",
1013
+ "nullable": true
1014
+ }
1015
+ },
1016
+ "additionalProperties": false
1017
+ }
1018
+ }
1019
+ }
1020
+ }