@lvce-editor/shared-process 0.11.1 → 0.11.3

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 (34) hide show
  1. package/extensions/builtin.language-basics-xml/README.md +1 -1
  2. package/extensions/builtin.language-basics-xml/extension.json +14 -12
  3. package/extensions/builtin.language-basics-xml/src/tokenizeXml.js +6 -6
  4. package/extensions/builtin.vscode-icons/icon-theme.json +24 -0
  5. package/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +1 -0
  6. package/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +1 -0
  7. package/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +1 -0
  8. package/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +1 -0
  9. package/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +1 -0
  10. package/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +1 -0
  11. package/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +66 -0
  12. package/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +1 -0
  13. package/package.json +7 -64
  14. package/src/parts/Command/Command.js +23 -17
  15. package/src/parts/ExtensionHostHelperProcessIpc/ExtensionHostHelperProcessIpc.js +2 -2
  16. package/src/parts/ExtensionInstall/ExtensionInstall.ipc.js +3 -1
  17. package/src/parts/GetResponse/GetResponse.js +60 -0
  18. package/src/parts/GitLsFiles/GitLsFiles.ipc.js +7 -0
  19. package/src/parts/GitLsFiles/GitLsFiles.js +9 -0
  20. package/src/parts/JoinLines/JoinLines.js +3 -0
  21. package/src/parts/JsonRpc/JsonRpc.js +4 -0
  22. package/src/parts/LimitString/LimitString.js +15 -0
  23. package/src/parts/Module/Module.js +2 -0
  24. package/src/parts/ModuleId/ModuleId.js +1 -0
  25. package/src/parts/ModuleMap/ModuleMap.js +3 -1
  26. package/src/parts/ParentIpc/ParentIpc.js +11 -84
  27. package/src/parts/Platform/Platform.js +8 -9
  28. package/src/parts/Process/Process.ipc.js +4 -2
  29. package/src/parts/SearchFile/SearchFile.js +10 -5
  30. package/src/parts/Socket/Socket.js +3 -55
  31. package/src/parts/Terminal/Terminal.js +1 -1
  32. package/src/parts/WebSocketServer/WebSocketServer.ipc.js +3 -1
  33. package/src/parts/Workspace/Workspace.ipc.js +4 -2
  34. package/src/sharedProcessMain.js +3 -0
@@ -1,4 +1,4 @@
1
- # Language Basics XML
1
+ # Language Basics Xml
2
2
 
3
3
  ## Contributing
4
4
 
@@ -6,23 +6,20 @@
6
6
  {
7
7
  "id": "xml",
8
8
  "extensions": [
9
- ".xml",
10
- ".xsd",
11
9
  ".ascx",
12
10
  ".atom",
13
- ".axml",
14
11
  ".axaml",
12
+ ".axml",
15
13
  ".bpmn",
16
14
  ".cpt",
17
15
  ".csl",
18
- ".csproj",
19
16
  ".csproj.user",
17
+ ".csproj",
20
18
  ".dita",
21
19
  ".ditamap",
22
20
  ".dtd",
23
- ".ent",
24
- ".mod",
25
21
  ".dtml",
22
+ ".ent",
26
23
  ".fsproj",
27
24
  ".fxml",
28
25
  ".iml",
@@ -30,16 +27,18 @@
30
27
  ".jmx",
31
28
  ".launch",
32
29
  ".menu",
30
+ ".mod",
33
31
  ".mxml",
34
32
  ".nuspec",
35
33
  ".opml",
36
34
  ".owl",
35
+ ".plist",
37
36
  ".proj",
38
37
  ".props",
39
38
  ".pt",
40
39
  ".publishsettings",
41
- ".pubxml",
42
40
  ".pubxml.user",
41
+ ".pubxml",
43
42
  ".rbxlx",
44
43
  ".rbxmx",
45
44
  ".rdf",
@@ -51,10 +50,11 @@
51
50
  ".targets",
52
51
  ".tld",
53
52
  ".tmx",
54
- ".vbproj",
55
53
  ".vbproj.user",
56
- ".vcxproj",
54
+ ".vbproj",
57
55
  ".vcxproj.filters",
56
+ ".vcxproj",
57
+ ".vsixmanifest",
58
58
  ".wsdl",
59
59
  ".wxi",
60
60
  ".wxl",
@@ -64,11 +64,13 @@
64
64
  ".xib",
65
65
  ".xlf",
66
66
  ".xliff",
67
- ".xpdl",
68
- ".xul",
67
+ ".xml",
69
68
  ".xoml",
70
- ".vsixmanifest"
69
+ ".xpdl",
70
+ ".xsd",
71
+ ".xul"
71
72
  ],
73
+ "fileNames": [".project"],
72
74
  "tokenize": "src/tokenizeXml.js"
73
75
  }
74
76
  ]
@@ -58,7 +58,7 @@ const RE_ANGLE_BRACKET_ONLY = /^</
58
58
  const RE_ANGLE_BRACKET_OPEN = /^</
59
59
  const RE_ANGLE_BRACKET_OPEN_TAG = /^<(?!\s)/
60
60
  const RE_ANY_TEXT = /^[^\n]+/
61
- const RE_ATTRIBUTE_NAME = /^[a-zA-Z\d\-]+/
61
+ const RE_ATTRIBUTE_NAME = /^[a-zA-Z\d\-\:]+/
62
62
  const RE_BLOCK_COMMENT_CONTENT = /^.(?:.*?)(?=-->|$)/s
63
63
  const RE_BLOCK_COMMENT_END = /^-->/
64
64
  const RE_BLOCK_COMMENT_START = /^<!--/
@@ -98,6 +98,8 @@ export const isLineStateEqual = (lineStateA, lineStateB) => {
98
98
  return lineStateA.state === lineStateB.state
99
99
  }
100
100
 
101
+ export const hasArrayReturn = true
102
+
101
103
  /**
102
104
  *
103
105
  * @param {string} line
@@ -285,11 +287,9 @@ export const tokenizeLine = (line, lineState) => {
285
287
  state
286
288
  throw new Error('no')
287
289
  }
288
- index += next[0].length
289
- tokens.push({
290
- type: token,
291
- length: next[0].length,
292
- })
290
+ const tokenLength = next[0].length
291
+ index += tokenLength
292
+ tokens.push(token, tokenLength)
293
293
  }
294
294
  return {
295
295
  state,
@@ -78,6 +78,8 @@
78
78
  "_fd_light_cypress_open": "/icons/folder_type_light_cypress_opened.svg",
79
79
  "_fd_dapr": "/icons/folder_type_dapr.svg",
80
80
  "_fd_dapr_open": "/icons/folder_type_dapr_opened.svg",
81
+ "_fd_datadog": "/icons/folder_type_datadog.svg",
82
+ "_fd_datadog_open": "/icons/folder_type_datadog_opened.svg",
81
83
  "_fd_db": "/icons/folder_type_db.svg",
82
84
  "_fd_db_open": "/icons/folder_type_db_opened.svg",
83
85
  "_fd_debian": "/icons/folder_type_debian.svg",
@@ -439,6 +441,7 @@
439
441
  "_f_dartlang": "/icons/file_type_dartlang.svg",
440
442
  "_f_dartlang_generated": "/icons/file_type_dartlang_generated.svg",
441
443
  "_f_dartlang_ignore": "/icons/file_type_dartlang_ignore.svg",
444
+ "_f_datadog": "/icons/file_type_datadog.svg",
442
445
  "_f_db": "/icons/file_type_db.svg",
443
446
  "_f_light_db": "/icons/file_type_light_db.svg",
444
447
  "_f_delphi": "/icons/file_type_delphi.svg",
@@ -487,6 +490,8 @@
487
490
  "_f_erlang": "/icons/file_type_erlang.svg",
488
491
  "_f_esbuild": "/icons/file_type_esbuild.svg",
489
492
  "_f_eslint": "/icons/file_type_eslint.svg",
493
+ "_f_esphome": "/icons/file_type_esphome.svg",
494
+ "_f_light_esphome": "/icons/file_type_light_esphome.svg",
490
495
  "_f_excel": "/icons/file_type_excel.svg",
491
496
  "_f_expo": "/icons/file_type_expo.svg",
492
497
  "_f_light_expo": "/icons/file_type_light_expo.svg",
@@ -662,6 +667,8 @@
662
667
  "_f_lua": "/icons/file_type_lua.svg",
663
668
  "_f_luau": "/icons/file_type_luau.svg",
664
669
  "_f_lync": "/icons/file_type_lync.svg",
670
+ "_f_mailing": "/icons/file_type_mailing.svg",
671
+ "_f_light_mailing": "/icons/file_type_light_mailing.svg",
665
672
  "_f_manifest": "/icons/file_type_manifest.svg",
666
673
  "_f_manifest_bak": "/icons/file_type_manifest_bak.svg",
667
674
  "_f_manifest_skip": "/icons/file_type_manifest_skip.svg",
@@ -802,6 +809,7 @@
802
809
  "_f_light_purescript": "/icons/file_type_light_purescript.svg",
803
810
  "_f_pyret": "/icons/file_type_pyret.svg",
804
811
  "_f_python": "/icons/file_type_python.svg",
812
+ "_f_pythowo": "/icons/file_type_pythowo.svg",
805
813
  "_f_pytyped": "/icons/file_type_pytyped.svg",
806
814
  "_f_pyup": "/icons/file_type_pyup.svg",
807
815
  "_f_q": "/icons/file_type_q.svg",
@@ -1149,6 +1157,8 @@
1149
1157
  "cypress.config.mjs": "_f_cypress",
1150
1158
  ".boringignore": "_f_darcs",
1151
1159
  ".pubignore": "_f_dartlang_ignore",
1160
+ "service.datadog.yaml": "_f_datadog",
1161
+ "datadog-ci.json": "_f_datadog",
1152
1162
  "deno.json": "_f_deno",
1153
1163
  "deno.jsonc": "_f_deno",
1154
1164
  "dependabot.yml": "_f_dependabot",
@@ -1418,6 +1428,7 @@
1418
1428
  "lint-staged.config.mjs": "_f_lintstagedrc",
1419
1429
  "lint-staged.config.js": "_f_lintstagedrc",
1420
1430
  "lint-staged.config.cjs": "_f_lintstagedrc",
1431
+ "mailing.config.json": "_f_mailing",
1421
1432
  "manifest": "_f_manifest",
1422
1433
  "manifest.bak": "_f_manifest_bak",
1423
1434
  "manifest.skip": "_f_manifest_skip",
@@ -2064,6 +2075,8 @@
2064
2075
  "cypress": "_fd_cypress",
2065
2076
  ".dapr": "_fd_dapr",
2066
2077
  "dapr": "_fd_dapr",
2078
+ "datadog": "_fd_datadog",
2079
+ ".datadog": "_fd_datadog",
2067
2080
  "db": "_fd_db",
2068
2081
  "database": "_fd_db",
2069
2082
  "sql": "_fd_db",
@@ -2322,6 +2335,7 @@
2322
2335
  ".tools": "_fd_tools",
2323
2336
  "util": "_fd_tools",
2324
2337
  "utils": "_fd_tools",
2338
+ "utilities": "_fd_tools",
2325
2339
  ".travis": "_fd_travis",
2326
2340
  ".trunk": "_fd_trunk",
2327
2341
  "typescript": "_fd_typescript",
@@ -2458,6 +2472,8 @@
2458
2472
  "cypress": "_fd_cypress_open",
2459
2473
  ".dapr": "_fd_dapr_open",
2460
2474
  "dapr": "_fd_dapr_open",
2475
+ "datadog": "_fd_datadog_open",
2476
+ ".datadog": "_fd_datadog_open",
2461
2477
  "db": "_fd_db_open",
2462
2478
  "database": "_fd_db_open",
2463
2479
  "sql": "_fd_db_open",
@@ -2716,6 +2732,7 @@
2716
2732
  ".tools": "_fd_tools_open",
2717
2733
  "util": "_fd_tools_open",
2718
2734
  "utils": "_fd_tools_open",
2735
+ "utilities": "_fd_tools_open",
2719
2736
  ".travis": "_fd_travis_open",
2720
2737
  ".trunk": "_fd_trunk_open",
2721
2738
  "typescript": "_fd_typescript_open",
@@ -3077,6 +3094,7 @@
3077
3094
  "pro": "_f_prolog",
3078
3095
  "pub": "_f_publisher",
3079
3096
  "puz": "_f_publisher",
3097
+ "pyowo": "_f_pythowo",
3080
3098
  "q": "_f_q",
3081
3099
  "qbs": "_f_qbs",
3082
3100
  "qvd": "_f_qlikview",
@@ -3129,12 +3147,16 @@
3129
3147
  "spec.mjs": "_f_testjs",
3130
3148
  "test.ts": "_f_testts",
3131
3149
  "test.tsx": "_f_testts",
3150
+ "test.mts": "_f_testts",
3132
3151
  "spec.ts": "_f_testts",
3133
3152
  "spec.tsx": "_f_testts",
3153
+ "spec.mts": "_f_testts",
3134
3154
  "e2e-test.ts": "_f_testts",
3135
3155
  "e2e-test.tsx": "_f_testts",
3156
+ "e2e-test.mts": "_f_testts",
3136
3157
  "e2e-spec.ts": "_f_testts",
3137
3158
  "e2e-spec.tsx": "_f_testts",
3159
+ "e2e-spec.mts": "_f_testts",
3138
3160
  "texi": "_f_tex",
3139
3161
  "tikz": "_f_tex",
3140
3162
  "csv": "_f_text",
@@ -3320,6 +3342,7 @@
3320
3342
  "erb": "_f_erb",
3321
3343
  "html.erb": "_f_erb",
3322
3344
  "erlang": "_f_erlang",
3345
+ "esphome": "_f_esphome",
3323
3346
  "falcon": "_f_falcon",
3324
3347
  "fql": "_f_fauna",
3325
3348
  "fortran": "_f_fortran",
@@ -3490,6 +3513,7 @@
3490
3513
  "purescript": "_f_purescript",
3491
3514
  "pyret": "_f_pyret",
3492
3515
  "python": "_f_python",
3516
+ "pythowo": "_f_pythowo",
3493
3517
  "qlik": "_f_qlikview",
3494
3518
  "qml": "_f_qml",
3495
3519
  "qsharp": "_f_qsharp",
@@ -0,0 +1 @@
1
+ <svg version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><title>file_type_rust</title><g transform="matrix(.032852 0 0 .032852 3.022 1.8624)"><path d="m584.65 49.556-506.77 58.406-11.799 132.15s43.067 494.97 42.477 493.2c-0.58996-1.7699 60.578 39.195 60.578 39.195s23.451 83.457 107.98 61.068c84.531-22.389 37.507-124.43 30.75-137.67-6.7572-13.246 31.953 36.231 31.953 36.231l46.845-5.6177 7.3802 61.543 372.65-67.16-22.19-268.56z" fill="#fff"/><path class="st0" d="m670.38 608.27-71.24-46.99-59.43 99.27-69.12-20.21-60.86 92.89 3.12 29.24 330.9-60.97-19.22-206.75zm-308.59-89.14 53.09-7.3c8.59 3.86 14.57 5.33 24.87 7.95 16.04 4.18 34.61 8.19 62.11-5.67 6.4-3.17 19.73-15.36 25.12-22.31l217.52-39.46 22.19 268.56-372.65 67.16zm404.06-96.77-21.47 4.09-41.25-426.18-702.86 81.5 86.59 702.68 82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26-24.23-20.13-15.66-54.32-1.37-75.91 18.91-36.48 116.34-82.84 110.82-141.15-1.98-21.2-5.35-48.8-25.03-67.71-0.74 7.85 0.59 15.41 0.59 15.41s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31-3.03 8.33-2.63 17.99-2.63 17.99s-6.61-15.62-7.68-28.8c-3.92 5.9-4.91 17.11-4.91 17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49 21.45 15.03 68.67 11.46 87.07-15.66 6.11-8.98 10.29-33.5-3.05-81.81-8.57-30.98-29.79-77.11-38.06-94.61l-0.99 0.71c4.36 14.1 13.35 43.66 16.8 57.99 10.44 43.47 13.24 58.6 8.34 78.64-4.17 17.42-14.17 28.82-39.52 41.56-25.35 12.78-58.99-18.32-61.12-20.04-24.63-19.62-43.68-51.63-45.81-67.18-2.21-17.02 9.81-27.24 15.87-41.16-8.67 2.48-18.34 6.88-18.34 6.88s11.54-11.94 25.77-22.27c5.89-3.9 9.35-6.38 15.56-11.54-8.99-0.15-16.29 0.11-16.29 0.11s14.99-8.1 30.53-14c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96 59.87-25.94c18.17-7.45 35.92-5.25 45.89 9.17 13.09 18.89 26.84 29.15 55.98 35.51 17.89-7.93 23.33-12.01 45.81-18.13 19.79-21.76 35.33-24.58 35.33-24.58s-7.71 7.07-9.77 18.18c11.22-8.84 23.52-16.22 23.52-16.22s-4.76 5.88-9.2 15.22l1.03 1.53c13.09-7.85 28.48-14.04 28.48-14.04s-4.4 5.56-9.56 12.76c9.87-0.08 29.89 0.42 37.66 1.3 45.87 1.01 55.39-48.99 72.99-55.26 22.04-7.87 31.89-12.63 69.45 24.26 32.23 31.67 57.41 88.36 44.91 101.06-10.48 10.54-31.16-4.11-54.08-32.68-12.11-15.13-21.27-33.01-25.56-55.74-3.62-19.18-17.71-30.31-17.71-30.31s8.18 18.18 8.18 34.24c0 8.77 1.1 41.56 15.16 59.96-1.39 2.69-2.04 13.31-3.58 15.34-16.36-19.77-51.49-33.92-57.22-38.09 19.39 15.89 63.96 52.39 81.08 87.37 16.19 33.08 6.65 63.4 14.84 71.25 2.33 2.25 34.82 42.73 41.07 63.07 10.9 35.45 0.65 72.7-13.62 95.81l-39.85 6.21c-5.83-1.62-9.76-2.43-14.99-5.46 2.88-5.1 8.61-17.82 8.67-20.44l-2.25-3.95c-12.4 17.57-33.18 34.63-50.44 44.43-22.59 12.8-48.63 10.83-65.58 5.58-48.11-14.84-93.6-47.35-104.57-55.89 0 0-0.34 6.82 1.73 8.35 12.13 13.68 39.92 38.43 66.78 55.68l-57.26 6.3 27.07 210.78c-12 1.72-13.87 2.56-27.01 4.43-11.58-40.91-33.73-67.62-57.94-83.18-21.35-13.72-50.8-16.81-78.99-11.23l-1.81 2.1c19.6-2.04 42.74 0.8 66.51 15.85 23.33 14.75 42.13 52.85 49.05 75.79 8.86 29.32 14.99 60.68-8.86 93.92-16.97 23.63-66.51 36.69-106.53 8.44 10.69 17.19 25.14 31.25 44.59 33.9 28.88 3.92 56.29-1.09 75.16-20.46 16.11-16.56 24.65-51.19 22.4-87.66l25.49-3.7 9.2 65.46 421.98-50.81zm-256.73-177.77c-1.18 2.69-3.03 4.45-0.25 13.2l0.17 0.5 0.44 1.13 1.16 2.62c5.01 10.24 10.51 19.9 19.7 24.83 2.38-0.4 4.84-0.67 7.39-0.8 8.63-0.38 14.08 0.99 17.54 2.85 0.31-1.72 0.38-4.24 0.19-7.95-0.67-12.97 2.57-35.03-22.36-46.64-9.41-4.37-22.61-3.02-27.01 2.43 0.8 0.1 1.52 0.27 2.08 0.46 6.65 2.33 2.14 4.62 0.95 7.37m69.87 121.02c-3.27-1.8-18.55-1.09-29.29 0.19-20.46 2.41-42.55 9.51-47.39 13.29-8.8 6.8-4.8 18.66 1.7 23.53 18.23 13.62 34.21 22.75 51.08 20.53 10.36-1.36 19.49-17.76 25.96-32.64 4.43-10.25 4.43-21.31-2.06-24.9m-181.14-104.96c5.77-5.48-28.74-12.68-55.52 5.58-19.75 13.47-20.38 42.35-1.47 58.72 1.89 1.62 3.45 2.77 4.91 3.71 5.52-2.6 11.81-5.23 19.05-7.58 12.23-3.97 22.4-6.02 30.76-7.11 4-4.47 8.65-12.34 7.49-26.59-1.58-19.33-16.23-16.26-5.22-26.73" clip-rule="evenodd" fill="#632ca6" fill-rule="evenodd"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_esphome</title><path d="M26.54,8.146v-1.6a1.027,1.027,0,1,1,2.017,0v1.6m-5.4,0v-1.6a1.016,1.016,0,0,1,.989-1.027.989.989,0,0,1,1.027.95q0,.039,0,.078v1.6m-5.441,0v-1.6a1.027,1.027,0,1,1,2.017,0v1.6m-5.4,0v-1.6a1.027,1.027,0,1,1,2.017,0v1.6m-5.441,0v-1.6a1.027,1.027,0,1,1,2.017,0v1.6m-5.441,0v-1.6a1.027,1.027,0,1,1,2.055,0v1.6M28.557,23.29v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.37,0v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.408,0v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.37,0v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.446,0v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.37.076v1.712a1.027,1.027,0,1,1-2.017,0V23.366" style="fill:none;stroke:#eee;stroke-width:1.031628607691953px"/><path d="M29.089,8.146H9a.381.381,0,0,0-.381.381V22.986A.407.407,0,0,0,9,23.328H29.089a.409.409,0,0,0,.381-.381V8.488a.409.409,0,0,0-.381-.381Z" style="stroke:#eee;stroke-width:1.031628607691953px"/><path d="M22.354,15.452v-1.9H21.67v1.218l-2.587-2.587-4.376,4.376h1.1v2.968h6.545V16.555h1.1Z" style="fill:#eee"/><path d="M8.542,22.453H2.53V20.931H7.058V19.485H2.53V17.963H7.058V16.479H2.53V14.995H7.058V13.549H2.53V8.983" style="fill:none;stroke:#eee;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.031628607691953px"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_light_esphome</title><path d="M26.54,8.146v-1.6a1.027,1.027,0,1,1,2.017,0v1.6m-5.4,0v-1.6a1.016,1.016,0,0,1,.989-1.027.989.989,0,0,1,1.027.95q0,.039,0,.078v1.6m-5.441,0v-1.6a1.027,1.027,0,1,1,2.017,0v1.6m-5.4,0v-1.6a1.027,1.027,0,1,1,2.017,0v1.6m-5.441,0v-1.6a1.027,1.027,0,1,1,2.017,0v1.6m-5.441,0v-1.6a1.027,1.027,0,1,1,2.055,0v1.6M28.557,23.29v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.37,0v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.408,0v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.37,0v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.446,0v1.75a1.027,1.027,0,1,1-2.017,0V23.29m-1.37.076v1.712a1.027,1.027,0,1,1-2.017,0V23.366" style="fill:none;stroke:#000;stroke-width:1.031628607691953px"/><path d="M29.089,8.146H9a.381.381,0,0,0-.381.381V22.986A.407.407,0,0,0,9,23.328H29.089a.409.409,0,0,0,.381-.381V8.488a.409.409,0,0,0-.381-.381Z" style="fill:none;stroke:#000;stroke-width:1.031628607691953px"/><path d="M22.354,15.452v-1.9H21.67v1.218l-2.587-2.587-4.376,4.376h1.1v2.968h6.545V16.555h1.1Z"/><path d="M8.542,22.453H2.53V20.931H7.058V19.485H2.53V17.963H7.058V16.479H2.53V14.995H7.058V13.549H2.53V8.983" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.031628607691953px"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><mask id="mask" x="4.83" y="21.4" width="22.34" height="8.56" maskUnits="userSpaceOnUse"><g id="mask0_521_430" data-name="mask0 521 430"><rect x="4.83" y="25.5" width="22.34" height="4.47" style="fill:#c4c4c4"/></g></mask></defs><title>file_type_light_mailing</title><g style="mask:url(#mask)"><path d="M16,23.63a2.05,2.05,0,1,0,2,2.05A2,2,0,0,0,16,23.63Zm0-2.23a4.28,4.28,0,1,0,4.21,4.28A4.24,4.24,0,0,0,16,21.4Z" style="fill-rule:evenodd"/><path d="M23,23.63a2.05,2.05,0,1,0,2,2.05A2,2,0,0,0,23,23.63Zm0-2.23a4.28,4.28,0,1,0,4.21,4.28A4.24,4.24,0,0,0,23,21.4Z" style="fill-rule:evenodd"/><path d="M9,23.63a2.05,2.05,0,1,0,2,2.05A2,2,0,0,0,9,23.63ZM9,21.4a4.28,4.28,0,1,0,4.21,4.28A4.24,4.24,0,0,0,9,21.4Z" style="fill-rule:evenodd"/></g><circle cx="16" cy="12.65" r="10.61"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><mask id="mask" x="4.83" y="21.4" width="22.34" height="8.56" maskUnits="userSpaceOnUse"><g id="mask0_521_430" data-name="mask0 521 430"><rect x="4.83" y="25.5" width="22.34" height="4.47" style="fill:#c4c4c4"/></g></mask></defs><title>file_type_mailing</title><g style="mask:url(#mask)"><path d="M16,23.63a2.05,2.05,0,1,0,2,2.05A2,2,0,0,0,16,23.63Zm0-2.23a4.28,4.28,0,1,0,4.21,4.28A4.24,4.24,0,0,0,16,21.4Z" style="fill-rule:evenodd;fill:#d2d2d2"/><path d="M23,23.63a2.05,2.05,0,1,0,2,2.05A2,2,0,0,0,23,23.63Zm0-2.23a4.28,4.28,0,1,0,4.21,4.28A4.24,4.24,0,0,0,23,21.4Z" style="fill-rule:evenodd;fill:#d2d2d2"/><path d="M9,23.63a2.05,2.05,0,1,0,2,2.05A2,2,0,0,0,9,23.63ZM9,21.4a4.28,4.28,0,1,0,4.21,4.28A4.24,4.24,0,0,0,9,21.4Z" style="fill-rule:evenodd;fill:#d2d2d2"/></g><circle cx="16" cy="12.65" r="10.61" style="fill:#d2d2d2"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_pythowo</title><path d="M23.082,10.625v2.755a3.979,3.979,0,0,1-3.875,3.933h-6.2a3.164,3.164,0,0,0-3.1,3.152v5.907c0,1.681,1.462,2.67,3.1,3.152a10.379,10.379,0,0,0,6.2,0c1.562-.452,3.1-1.362,3.1-3.152V24.008h-6.2v-.788h9.3c1.8,0,2.475-1.258,3.1-3.145a10.646,10.646,0,0,0,0-6.3c-.446-1.795-1.3-3.145-3.1-3.145ZM19.6,25.584a1.182,1.182,0,1,1-1.164,1.178A1.171,1.171,0,0,1,19.6,25.584ZM3.034,2" style="fill:#e94475"/><path d="M24.008,2a.215.215,0,0,0-.082.012,2.57,2.57,0,0,1-1.475,1c-.5.084-.979.239-1.483.28a2.612,2.612,0,0,0-1.885.887l.048.055c-.246-.04-.491-.074-.731-.1-.034,0,.172-.371.008-.338l-.2.041s.1-.228.06-.3c-.1.031-.3.343-.3.343s-.114-.168-.2-.168c-.055.1.022.358.022.358-.554-.049-1.1-.069-1.618-.075h-.2a17.713,17.713,0,0,0-2.964.253c-2.625.464-3.1,1.434-3.1,3.225V9.837h6.2v.788H7.58a3.872,3.872,0,0,0-2.729,1.063,1.875,1.875,0,0,0-.726-.492c.069.246.134.494.223.734a2.094,2.094,0,0,0-1.314.392,1.857,1.857,0,0,0,.884.055A1.024,1.024,0,0,0,3.38,13a1.534,1.534,0,0,0,.589-.018,4.8,4.8,0,0,0-.264.791,11.6,11.6,0,0,0,0,6.3C4.146,21.911,5.2,23.219,7,23.219H9.135V20.385a3.942,3.942,0,0,1,3.875-3.854h6.2a3.125,3.125,0,0,0,3.1-3.152V7.868l.013.015a.174.174,0,0,1-.013-.046V7.771c.039-.131.3-.167.4-.264.1-.216-.184-.286-.305-.4a2.2,2.2,0,0,0,.764-.421.234.234,0,0,0,.062-.292,1.85,1.85,0,0,0-.362-.21c.414-.251.566-.729.832-1.1.1-.134,0-.251-.106-.337.2-.268.4-.537.582-.817l-.081-.2q-.173.06-.343.126c.343-.418.1-.983.342-1.434C24.176,2.286,24.175,2.015,24.008,2Zm-.527,1.2c.074.4-.353.61-.486.937a4.366,4.366,0,0,1-.9,2.249,2.443,2.443,0,0,1-.219.217c-.043.029-.086.072-.133.1a.188.188,0,0,1-.113.038.144.144,0,0,1-.042-.009.979.979,0,0,1-.486-.538.353.353,0,0,1,.044-.086h0a.612.612,0,0,1,.216-.171l.06-.034A.878.878,0,0,0,21.6,5.8a.4.4,0,0,0,.061-.07,2.7,2.7,0,0,0-.654.109l-.11-.1c.124-.172.244-.349.353-.531.027-.045.057-.088.082-.134a1.483,1.483,0,0,0-.164.06h0c-.1.044-.2.095-.3.145l-.081.039-.067.03a1.493,1.493,0,0,1-.189.068c-.028.008-.056.015-.085.02l-.039.007a.832.832,0,0,1-.134.01.213.213,0,0,1-.034-.152.242.242,0,0,1,.024-.07h0a.365.365,0,0,1,.043-.065.694.694,0,0,1,.123-.113,1.364,1.364,0,0,1,.132-.085.7.7,0,0,1,.136-.071l.1-.04h0c.119-.049.232-.106.266-.238a1.467,1.467,0,0,0-.545.074c-.066.02-.13.044-.195.07-.178.07-.353.149-.53.221l-.216-.246.006-.024.012-.033a.825.825,0,0,1,.216-.284l0,0c.031-.028.062-.058.092-.08.845-.637,1.964-.537,2.938-.817.235-.055.4-.283.647-.287ZM12.62,5.9a1.182,1.182,0,1,1-1.164,1.186A1.177,1.177,0,0,1,12.62,5.9Z" style="fill:#2298d3"/></svg>
@@ -0,0 +1,66 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ viewBox="0 0 32 32"
4
+ version="1.1"
5
+ id="svg349"
6
+ sodipodi:docname="folder_type_datadogi.svg"
7
+ inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
8
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
9
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ xmlns:svg="http://www.w3.org/2000/svg"
12
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
13
+ xmlns:cc="http://creativecommons.org/ns#"
14
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
15
+ <defs
16
+ id="defs353" />
17
+ <sodipodi:namedview
18
+ id="namedview351"
19
+ pagecolor="#ffffff"
20
+ bordercolor="#000000"
21
+ borderopacity="0.25"
22
+ inkscape:showpageshadow="2"
23
+ inkscape:pageopacity="0.0"
24
+ inkscape:pagecheckerboard="0"
25
+ inkscape:deskcolor="#d1d1d1"
26
+ showgrid="false"
27
+ inkscape:zoom="14.75"
28
+ inkscape:cx="20.135593"
29
+ inkscape:cy="18.847458"
30
+ inkscape:window-width="1920"
31
+ inkscape:window-height="1129"
32
+ inkscape:window-x="-8"
33
+ inkscape:window-y="-8"
34
+ inkscape:window-maximized="1"
35
+ inkscape:current-layer="svg349" />
36
+ <title
37
+ id="title343">folder_type_circleci</title>
38
+ <path
39
+ d="M27.5,5.5H18.2L16.1,9.7H4.4V26.5H29.6V5.5Zm0,4.2H19.3l1.1-2.1h7.1Z"
40
+ style="fill:#632ca6;fill-opacity:1"
41
+ id="path345" />
42
+ <g
43
+ transform="matrix(0.02453872,0,0,0.02453872,11.25919,10.063413)"
44
+ id="g27">
45
+ <path
46
+ d="M 584.65,49.556 77.88,107.962 66.081,240.112 c 0,0 43.067,494.97 42.477,493.2 -0.58996,-1.7699 60.578,39.195 60.578,39.195 0,0 23.451,83.457 107.98,61.068 84.531,-22.389 37.507,-124.43 30.75,-137.67 -6.7572,-13.246 31.953,36.231 31.953,36.231 l 46.845,-5.6177 7.3802,61.543 372.65,-67.16 -22.19,-268.56 z"
47
+ fill="#ffffff"
48
+ id="path23" />
49
+ <path
50
+ class="st0"
51
+ d="m 670.38,608.27 -71.24,-46.99 -59.43,99.27 -69.12,-20.21 -60.86,92.89 3.12,29.24 330.9,-60.97 -19.22,-206.75 z m -308.59,-89.14 53.09,-7.3 c 8.59,3.86 14.57,5.33 24.87,7.95 16.04,4.18 34.61,8.19 62.11,-5.67 6.4,-3.17 19.73,-15.36 25.12,-22.31 L 744.5,452.34 766.69,720.9 394.04,788.06 Z M 765.85,422.36 744.38,426.45 703.13,0.27 0.27,81.77 86.86,784.45 169.13,772.51 c -6.57,-9.38 -16.8,-20.73 -34.27,-35.26 -24.23,-20.13 -15.66,-54.32 -1.37,-75.91 18.91,-36.48 116.34,-82.84 110.82,-141.15 -1.98,-21.2 -5.35,-48.8 -25.03,-67.71 -0.74,7.85 0.59,15.41 0.59,15.41 0,0 -8.08,-10.31 -12.11,-24.37 -4,-5.39 -7.14,-7.11 -11.39,-14.31 -3.03,8.33 -2.63,17.99 -2.63,17.99 0,0 -6.61,-15.62 -7.68,-28.8 -3.92,5.9 -4.91,17.11 -4.91,17.11 0,0 -8.59,-24.62 -6.63,-37.88 -3.92,-11.54 -15.54,-34.44 -12.25,-86.49 21.45,15.03 68.67,11.46 87.07,-15.66 6.11,-8.98 10.29,-33.5 -3.05,-81.81 -8.57,-30.98 -29.79,-77.11 -38.06,-94.61 l -0.99,0.71 c 4.36,14.1 13.35,43.66 16.8,57.99 10.44,43.47 13.24,58.6 8.34,78.64 -4.17,17.42 -14.17,28.82 -39.52,41.56 -25.35,12.78 -58.99,-18.32 -61.12,-20.04 -24.63,-19.62 -43.68,-51.63 -45.81,-67.18 -2.21,-17.02 9.81,-27.24 15.87,-41.16 -8.67,2.48 -18.34,6.88 -18.34,6.88 0,0 11.54,-11.94 25.77,-22.27 5.89,-3.9 9.35,-6.38 15.56,-11.54 -8.99,-0.15 -16.29,0.11 -16.29,0.11 0,0 14.99,-8.1 30.53,-14 -11.37,-0.5 -22.25,-0.08 -22.25,-0.08 0,0 33.45,-14.96 59.87,-25.94 18.17,-7.45 35.92,-5.25 45.89,9.17 13.09,18.89 26.84,29.15 55.98,35.51 17.89,-7.93 23.33,-12.01 45.81,-18.13 19.79,-21.76 35.33,-24.58 35.33,-24.58 0,0 -7.71,7.07 -9.77,18.18 11.22,-8.84 23.52,-16.22 23.52,-16.22 0,0 -4.76,5.88 -9.2,15.22 l 1.03,1.53 c 13.09,-7.85 28.48,-14.04 28.48,-14.04 0,0 -4.4,5.56 -9.56,12.76 9.87,-0.08 29.89,0.42 37.66,1.3 45.87,1.01 55.39,-48.99 72.99,-55.26 22.04,-7.87 31.89,-12.63 69.45,24.26 32.23,31.67 57.41,88.36 44.91,101.06 -10.48,10.54 -31.16,-4.11 -54.08,-32.68 -12.11,-15.13 -21.27,-33.01 -25.56,-55.74 -3.62,-19.18 -17.71,-30.31 -17.71,-30.31 0,0 8.18,18.18 8.18,34.24 0,8.77 1.1,41.56 15.16,59.96 -1.39,2.69 -2.04,13.31 -3.58,15.34 -16.36,-19.77 -51.49,-33.92 -57.22,-38.09 19.39,15.89 63.96,52.39 81.08,87.37 16.19,33.08 6.65,63.4 14.84,71.25 2.33,2.25 34.82,42.73 41.07,63.07 10.9,35.45 0.65,72.7 -13.62,95.81 l -39.85,6.21 c -5.83,-1.62 -9.76,-2.43 -14.99,-5.46 2.88,-5.1 8.61,-17.82 8.67,-20.44 l -2.25,-3.95 c -12.4,17.57 -33.18,34.63 -50.44,44.43 -22.59,12.8 -48.63,10.83 -65.58,5.58 -48.11,-14.84 -93.6,-47.35 -104.57,-55.89 0,0 -0.34,6.82 1.73,8.35 12.13,13.68 39.92,38.43 66.78,55.68 l -57.26,6.3 27.07,210.78 c -12,1.72 -13.87,2.56 -27.01,4.43 -11.58,-40.91 -33.73,-67.62 -57.94,-83.18 -21.35,-13.72 -50.8,-16.81 -78.99,-11.23 l -1.81,2.1 c 19.6,-2.04 42.74,0.8 66.51,15.85 23.33,14.75 42.13,52.85 49.05,75.79 8.86,29.32 14.99,60.68 -8.86,93.92 -16.97,23.63 -66.51,36.69 -106.53,8.44 10.69,17.19 25.14,31.25 44.59,33.9 28.88,3.92 56.29,-1.09 75.16,-20.46 16.11,-16.56 24.65,-51.19 22.4,-87.66 l 25.49,-3.7 9.2,65.46 421.98,-50.81 z M 509.12,244.59 c -1.18,2.69 -3.03,4.45 -0.25,13.2 l 0.17,0.5 0.44,1.13 1.16,2.62 c 5.01,10.24 10.51,19.9 19.7,24.83 2.38,-0.4 4.84,-0.67 7.39,-0.8 8.63,-0.38 14.08,0.99 17.54,2.85 0.31,-1.72 0.38,-4.24 0.19,-7.95 -0.67,-12.97 2.57,-35.03 -22.36,-46.64 -9.41,-4.37 -22.61,-3.02 -27.01,2.43 0.8,0.1 1.52,0.27 2.08,0.46 6.65,2.33 2.14,4.62 0.95,7.37 m 69.87,121.02 c -3.27,-1.8 -18.55,-1.09 -29.29,0.19 -20.46,2.41 -42.55,9.51 -47.39,13.29 -8.8,6.8 -4.8,18.66 1.7,23.53 18.23,13.62 34.21,22.75 51.08,20.53 10.36,-1.36 19.49,-17.76 25.96,-32.64 4.43,-10.25 4.43,-21.31 -2.06,-24.9 M 397.85,260.65 c 5.77,-5.48 -28.74,-12.68 -55.52,5.58 -19.75,13.47 -20.38,42.35 -1.47,58.72 1.89,1.62 3.45,2.77 4.91,3.71 5.52,-2.6 11.81,-5.23 19.05,-7.58 12.23,-3.97 22.4,-6.02 30.76,-7.11 4,-4.47 8.65,-12.34 7.49,-26.59 -1.58,-19.33 -16.23,-16.26 -5.22,-26.73"
52
+ clip-rule="evenodd"
53
+ fill="#632ca6"
54
+ fill-rule="evenodd"
55
+ id="path25" />
56
+ </g>
57
+ <metadata
58
+ id="metadata4202">
59
+ <rdf:RDF>
60
+ <cc:Work
61
+ rdf:about="">
62
+ <dc:title>folder_type_circleci</dc:title>
63
+ </cc:Work>
64
+ </rdf:RDF>
65
+ </metadata>
66
+ </svg>
@@ -0,0 +1 @@
1
+ <svg version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><title>folder_type_circleci_opened</title><path d="M27.4,5.5H18.2L16.1,9.7H4.3V26.5H29.5V5.5Zm0,18.7H6.6V11.8H27.4Zm0-14.5H19.2l1-2.1h7.1V9.7Z" fill="#8b52d1"/><polygon points="25.7 13.7 0.5 13.7 4.3 26.5 29.5 26.5" fill="#8b52d1"/><g transform="matrix(.024539 0 0 .024539 11.259 10.063)"><path d="m584.65 49.556-506.77 58.406-11.799 132.15s43.067 494.97 42.477 493.2c-0.58996-1.7699 60.578 39.195 60.578 39.195s23.451 83.457 107.98 61.068c84.531-22.389 37.507-124.43 30.75-137.67-6.7572-13.246 31.953 36.231 31.953 36.231l46.845-5.6177 7.3802 61.543 372.65-67.16-22.19-268.56z" fill="#fff"/><path class="st0" d="m670.38 608.27-71.24-46.99-59.43 99.27-69.12-20.21-60.86 92.89 3.12 29.24 330.9-60.97-19.22-206.75zm-308.59-89.14 53.09-7.3c8.59 3.86 14.57 5.33 24.87 7.95 16.04 4.18 34.61 8.19 62.11-5.67 6.4-3.17 19.73-15.36 25.12-22.31l217.52-39.46 22.19 268.56-372.65 67.16zm404.06-96.77-21.47 4.09-41.25-426.18-702.86 81.5 86.59 702.68 82.27-11.94c-6.57-9.38-16.8-20.73-34.27-35.26-24.23-20.13-15.66-54.32-1.37-75.91 18.91-36.48 116.34-82.84 110.82-141.15-1.98-21.2-5.35-48.8-25.03-67.71-0.74 7.85 0.59 15.41 0.59 15.41s-8.08-10.31-12.11-24.37c-4-5.39-7.14-7.11-11.39-14.31-3.03 8.33-2.63 17.99-2.63 17.99s-6.61-15.62-7.68-28.8c-3.92 5.9-4.91 17.11-4.91 17.11s-8.59-24.62-6.63-37.88c-3.92-11.54-15.54-34.44-12.25-86.49 21.45 15.03 68.67 11.46 87.07-15.66 6.11-8.98 10.29-33.5-3.05-81.81-8.57-30.98-29.79-77.11-38.06-94.61l-0.99 0.71c4.36 14.1 13.35 43.66 16.8 57.99 10.44 43.47 13.24 58.6 8.34 78.64-4.17 17.42-14.17 28.82-39.52 41.56-25.35 12.78-58.99-18.32-61.12-20.04-24.63-19.62-43.68-51.63-45.81-67.18-2.21-17.02 9.81-27.24 15.87-41.16-8.67 2.48-18.34 6.88-18.34 6.88s11.54-11.94 25.77-22.27c5.89-3.9 9.35-6.38 15.56-11.54-8.99-0.15-16.29 0.11-16.29 0.11s14.99-8.1 30.53-14c-11.37-0.5-22.25-0.08-22.25-0.08s33.45-14.96 59.87-25.94c18.17-7.45 35.92-5.25 45.89 9.17 13.09 18.89 26.84 29.15 55.98 35.51 17.89-7.93 23.33-12.01 45.81-18.13 19.79-21.76 35.33-24.58 35.33-24.58s-7.71 7.07-9.77 18.18c11.22-8.84 23.52-16.22 23.52-16.22s-4.76 5.88-9.2 15.22l1.03 1.53c13.09-7.85 28.48-14.04 28.48-14.04s-4.4 5.56-9.56 12.76c9.87-0.08 29.89 0.42 37.66 1.3 45.87 1.01 55.39-48.99 72.99-55.26 22.04-7.87 31.89-12.63 69.45 24.26 32.23 31.67 57.41 88.36 44.91 101.06-10.48 10.54-31.16-4.11-54.08-32.68-12.11-15.13-21.27-33.01-25.56-55.74-3.62-19.18-17.71-30.31-17.71-30.31s8.18 18.18 8.18 34.24c0 8.77 1.1 41.56 15.16 59.96-1.39 2.69-2.04 13.31-3.58 15.34-16.36-19.77-51.49-33.92-57.22-38.09 19.39 15.89 63.96 52.39 81.08 87.37 16.19 33.08 6.65 63.4 14.84 71.25 2.33 2.25 34.82 42.73 41.07 63.07 10.9 35.45 0.65 72.7-13.62 95.81l-39.85 6.21c-5.83-1.62-9.76-2.43-14.99-5.46 2.88-5.1 8.61-17.82 8.67-20.44l-2.25-3.95c-12.4 17.57-33.18 34.63-50.44 44.43-22.59 12.8-48.63 10.83-65.58 5.58-48.11-14.84-93.6-47.35-104.57-55.89 0 0-0.34 6.82 1.73 8.35 12.13 13.68 39.92 38.43 66.78 55.68l-57.26 6.3 27.07 210.78c-12 1.72-13.87 2.56-27.01 4.43-11.58-40.91-33.73-67.62-57.94-83.18-21.35-13.72-50.8-16.81-78.99-11.23l-1.81 2.1c19.6-2.04 42.74 0.8 66.51 15.85 23.33 14.75 42.13 52.85 49.05 75.79 8.86 29.32 14.99 60.68-8.86 93.92-16.97 23.63-66.51 36.69-106.53 8.44 10.69 17.19 25.14 31.25 44.59 33.9 28.88 3.92 56.29-1.09 75.16-20.46 16.11-16.56 24.65-51.19 22.4-87.66l25.49-3.7 9.2 65.46 421.98-50.81zm-256.73-177.77c-1.18 2.69-3.03 4.45-0.25 13.2l0.17 0.5 0.44 1.13 1.16 2.62c5.01 10.24 10.51 19.9 19.7 24.83 2.38-0.4 4.84-0.67 7.39-0.8 8.63-0.38 14.08 0.99 17.54 2.85 0.31-1.72 0.38-4.24 0.19-7.95-0.67-12.97 2.57-35.03-22.36-46.64-9.41-4.37-22.61-3.02-27.01 2.43 0.8 0.1 1.52 0.27 2.08 0.46 6.65 2.33 2.14 4.62 0.95 7.37m69.87 121.02c-3.27-1.8-18.55-1.09-29.29 0.19-20.46 2.41-42.55 9.51-47.39 13.29-8.8 6.8-4.8 18.66 1.7 23.53 18.23 13.62 34.21 22.75 51.08 20.53 10.36-1.36 19.49-17.76 25.96-32.64 4.43-10.25 4.43-21.31-2.06-24.9m-181.14-104.96c5.77-5.48-28.74-12.68-55.52 5.58-19.75 13.47-20.38 42.35-1.47 58.72 1.89 1.62 3.45 2.77 4.91 3.71 5.52-2.6 11.81-5.23 19.05-7.58 12.23-3.97 22.4-6.02 30.76-7.11 4-4.47 8.65-12.34 7.49-26.59-1.58-19.33-16.23-16.26-5.22-26.73" clip-rule="evenodd" fill="#632ca6" fill-rule="evenodd"/></g></svg>
package/package.json CHANGED
@@ -1,13 +1,9 @@
1
1
  {
2
2
  "name": "@lvce-editor/shared-process",
3
- "version": "0.11.1",
3
+ "version": "0.11.3",
4
4
  "description": "Utility package for @lvce-editor/server",
5
5
  "main": "index.js",
6
6
  "type": "module",
7
- "scripts": {
8
- "test": "node --unhandled-rejections=warn --experimental-vm-modules ../../node_modules/jest/bin/jest.js --detectOpenHandles --forceExit",
9
- "test:watch": "node --unhandled-rejections=warn --experimental-vm-modules ../../node_modules/jest/bin/jest.js --watch"
10
- },
11
7
  "keywords": [],
12
8
  "author": "",
13
9
  "license": "MIT",
@@ -20,8 +16,10 @@
20
16
  "node": ">=16"
21
17
  },
22
18
  "dependencies": {
23
- "@lvce-editor/extension-host": "0.11.1",
24
- "@lvce-editor/pty-host": "0.11.1",
19
+ "@babel/code-frame": "^7.18.6",
20
+ "@lvce-editor/extension-host": "0.11.3",
21
+ "@lvce-editor/extension-host-helper-process": "0.11.3",
22
+ "@lvce-editor/pty-host": "0.11.3",
25
23
  "debug": "^4.3.4",
26
24
  "execa": "^6.1.0",
27
25
  "exit-hook": "^3.1.2",
@@ -40,63 +38,8 @@
40
38
  "xdg-basedir": "^5.1.0"
41
39
  },
42
40
  "optionalDependencies": {
43
- "electron-clipboard-ex": "^1.3.3",
41
+ "extract-zip": "^2.0.1",
44
42
  "keytar": "^7.9.0",
45
- "vscode-ripgrep-with-github-api-error-fix": "^2.6.0",
46
- "extract-zip": "^2.0.1"
47
- },
48
- "devDependencies": {
49
- "@types/debug": "^4.1.7",
50
- "@types/is-object": "^1.0.2",
51
- "@types/tail": "^2.2.1",
52
- "@types/tar-fs": "^2.0.1",
53
- "@types/verror": "^1.10.6",
54
- "@types/ws": "^8.5.3",
55
- "get-port": "^6.1.2"
56
- },
57
- "xo": {
58
- "rules": {
59
- "unicorn/filename-case": "off",
60
- "indent": "off",
61
- "semi": "off",
62
- "no-unused-vars": "off",
63
- "unicorn/numeric-separators-style": "off",
64
- "no-extra-semi": "off",
65
- "arrow-body-style": "off",
66
- "padded-blocks": "off",
67
- "capitalized-comments": "off",
68
- "padding-line-between-statements": "off",
69
- "arrow-parens": "off",
70
- "no-warning-comments": "off",
71
- "array-bracket-spacing": "off",
72
- "comma-spacing": "off",
73
- "unicorn/no-array-callback-reference": "off",
74
- "comma-dangle": "off",
75
- "operator-linebreak": "off",
76
- "no-case-declarations": "off",
77
- "no-undef": "off",
78
- "object-curly-spacing": "off",
79
- "object-shorthand": "off",
80
- "complexity": "off",
81
- "no-labels": "off",
82
- "no-multi-assign": "off",
83
- "max-params": "off",
84
- "no-bitwise": "off",
85
- "unicorn/prefer-math-trunc": "off",
86
- "no-await-in-loop": "off",
87
- "unicorn/prefer-add-event-listener": "off",
88
- "no-unused-expressions": "off",
89
- "node/prefer-global/process": "off",
90
- "unicorn/prevent-abbreviations": "off",
91
- "unicorn/no-process-exit": "off",
92
- "quotes": "off",
93
- "n/prefer-global/process": [
94
- "error",
95
- "always"
96
- ]
97
- },
98
- "ignores": [
99
- "distmin"
100
- ]
43
+ "vscode-ripgrep-with-github-api-error-fix": "^2.6.0"
101
44
  }
102
45
  }
@@ -1,9 +1,11 @@
1
- import * as Module from '../Module/Module.js'
2
1
  import * as ModuleMap from '../ModuleMap/ModuleMap.js'
3
2
 
4
- const commands = Object.create(null)
5
- const invocables = Object.create(null)
6
- const pendingModules = Object.create(null)
3
+ export const state = {
4
+ commands: Object.create(null),
5
+ invocables: Object.create(null),
6
+ pendingModules: Object.create(null),
7
+ async load(moduleId) {},
8
+ }
7
9
 
8
10
  const initializeModule = (module) => {
9
11
  if (module.Commands) {
@@ -21,49 +23,49 @@ const initializeModule = (module) => {
21
23
  }
22
24
 
23
25
  const getOrLoadModule = (moduleId) => {
24
- if (!pendingModules[moduleId]) {
25
- const importPromise = Module.load(moduleId)
26
- pendingModules[moduleId] = importPromise
26
+ if (!state.pendingModules[moduleId]) {
27
+ const importPromise = state.load(moduleId)
28
+ state.pendingModules[moduleId] = importPromise
27
29
  .then(initializeModule)
28
30
  .catch((error) => {
29
31
  console.error(error)
30
32
  })
31
33
  }
32
- return pendingModules[moduleId]
34
+ return state.pendingModules[moduleId]
33
35
  }
34
36
 
35
37
  const loadCommand = (command) => getOrLoadModule(ModuleMap.getModuleId(command))
36
38
 
37
39
  export const register = (commandId, listener) => {
38
- commands[commandId] = listener
40
+ state.commands[commandId] = listener
39
41
  }
40
42
 
41
43
  export const registerInvocable = (commandId, listener) => {
42
- invocables[commandId] = listener
44
+ state.invocables[commandId] = listener
43
45
  }
44
46
 
45
47
  export const invoke = async (command, ...args) => {
46
- if (!(command in commands)) {
48
+ if (!(command in state.commands)) {
47
49
  await loadCommand(command)
48
- if (!(command in commands)) {
50
+ if (!(command in state.commands)) {
49
51
  console.warn(`[shared process] Unknown command "${command}"`)
50
52
  throw new Error(`Command ${command} not found`)
51
53
  }
52
54
  }
53
- if (typeof commands[command] !== 'function') {
55
+ if (typeof state.commands[command] !== 'function') {
54
56
  throw new TypeError(`Command ${command} is not a function`)
55
57
  }
56
- return commands[command](...args)
58
+ return state.commands[command](...args)
57
59
  }
58
60
 
59
61
  export const execute = (command, ...args) => {
60
- if (command in commands) {
61
- commands[command](...args)
62
+ if (command in state.commands) {
63
+ state.commands[command](...args)
62
64
  } else {
63
65
  loadCommand(command)
64
66
  // TODO can skip then block in prod (only to prevent endless loop in dev)
65
67
  .then(() => {
66
- if (!(command in commands)) {
68
+ if (!(command in state.commands)) {
67
69
  console.warn(`Unknown command "${command}"`)
68
70
  return
69
71
  }
@@ -79,3 +81,7 @@ export const execute = (command, ...args) => {
79
81
  })
80
82
  }
81
83
  }
84
+
85
+ export const setLoad = (load) => {
86
+ state.load = load
87
+ }
@@ -1,9 +1,9 @@
1
1
  import * as ChildProcess from '../ChildProcess/ChildProcess.js'
2
2
  import * as Platform from '../Platform/Platform.js'
3
3
 
4
- export const create = () => {
4
+ export const create = async () => {
5
5
  const extensionHostHelperProcessPath =
6
- Platform.getExtensionHostHelperProcessPath()
6
+ await Platform.getExtensionHostHelperProcessPath()
7
7
  const childProcess = ChildProcess.fork(
8
8
  extensionHostHelperProcessPath,
9
9
  ['--ipc-type=websocket', '--max-old-space-size=60', '--enable-source-maps'],
@@ -1,6 +1,8 @@
1
1
  import * as ExensionInstall from './ExtensionInstall.js'
2
2
 
3
+ export const name = 'ExtensionInstall'
4
+
3
5
  // prettier-ignore
4
6
  export const Commands = {
5
- 'ExtensionInstall.install': ExensionInstall.install,
7
+ install: ExensionInstall.install,
6
8
  }
@@ -0,0 +1,60 @@
1
+ import * as Command from '../Command/Command.js'
2
+ import * as ErrorCodes from '../ErrorCodes/ErrorCodes.js'
3
+ import * as JsonRpc from '../JsonRpc/JsonRpc.js'
4
+ import * as PrettyError from '../PrettyError/PrettyError.js'
5
+ import { requiresSocket } from '../RequiresSocket/RequiresSocket.js'
6
+
7
+ export const getResponse = async (message, handle) => {
8
+ try {
9
+ const result = requiresSocket(message.method)
10
+ ? await Command.invoke(message.method, handle, ...message.params)
11
+ : await Command.invoke(message.method, ...message.params)
12
+
13
+ return {
14
+ jsonrpc: JsonRpc.Version,
15
+ id: message.id,
16
+ result: result ?? null,
17
+ }
18
+ } catch (error) {
19
+ if (
20
+ error &&
21
+ error instanceof Error &&
22
+ error.message &&
23
+ error.message.startsWith('method not found')
24
+ ) {
25
+ return {
26
+ jsonrpc: JsonRpc.Version,
27
+ id: message.id,
28
+ error: {
29
+ code: JsonRpc.ErrorMethodNotFound,
30
+ message: error.message,
31
+ data: error.stack,
32
+ },
33
+ }
34
+ }
35
+ if (error && error instanceof Error && error.code === ErrorCodes.ENOENT) {
36
+ return {
37
+ jsonrpc: JsonRpc.Version,
38
+ id: message.id,
39
+ error: {
40
+ code: -32001,
41
+ message: `${error}`,
42
+ },
43
+ }
44
+ }
45
+ const prettyError = PrettyError.prepare(error)
46
+ PrettyError.print(prettyError)
47
+ return {
48
+ jsonrpc: JsonRpc.Version,
49
+ id: message.id,
50
+ error: {
51
+ code: -32001,
52
+ message: prettyError.message,
53
+ data: {
54
+ stack: prettyError.stack,
55
+ codeFrame: prettyError.codeFrame,
56
+ },
57
+ },
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,7 @@
1
+ import * as GitLsFiles from './GitLsFiles.js'
2
+
3
+ export const name = 'GitLsFiles'
4
+
5
+ export const Commands = {
6
+ gitLsFiles: GitLsFiles.gitLsFiles,
7
+ }
@@ -0,0 +1,9 @@
1
+ import * as Exec from '../Exec/Exec.js'
2
+
3
+ export const gitLsFiles = async (cwd, limit) => {
4
+ const { stdout, stderr } = await Exec.exec('git', ['ls-files'], {
5
+ cwd,
6
+ })
7
+ // TODO limit stdout lines to given limit
8
+ return stdout
9
+ }
@@ -0,0 +1,3 @@
1
+ export const joinLines = (lines) => {
2
+ return lines.join('\n')
3
+ }
@@ -1,5 +1,9 @@
1
1
  import * as Callback from '../Callback/Callback.js'
2
2
 
3
+ export const Version = '2.0'
4
+
5
+ export const ErrorMethodNotFound = -32601
6
+
3
7
  export const send = (transport, method, ...params) => {
4
8
  transport.send({
5
9
  jsonrpc: '2.0',
@@ -0,0 +1,15 @@
1
+ export const limitString = (string, limit) => {
2
+ let lines = 0
3
+ let i = 0
4
+ while (i !== -1 && lines < limit) {
5
+ i = string.indexOf('\n', i + 1)
6
+ if (i === -1) {
7
+ break
8
+ }
9
+ lines++
10
+ }
11
+ if (i === -1) {
12
+ return string
13
+ }
14
+ return string.slice(0, i)
15
+ }
@@ -16,6 +16,8 @@ export const load = (moduleId) => {
16
16
  return import('../ExtensionManagement/ExtensionManagement.ipc.js')
17
17
  case ModuleId.FileSystem:
18
18
  return import('../FileSystem/FileSystem.ipc.js')
19
+ case ModuleId.GitLsFiles:
20
+ return import('../GitLsFiles/GitLsFiles.ipc.js')
19
21
  case ModuleId.Native:
20
22
  return import('../Native/Native.ipc.js')
21
23
  case ModuleId.OutputChannel:
@@ -16,3 +16,4 @@ export const WebSocketServer = 15
16
16
  export const Workspace = 16
17
17
  export const ChromeExtension = 17
18
18
  export const Download = 18
19
+ export const GitLsFiles = 19
@@ -92,6 +92,8 @@ export const getModuleId = (commandId) => {
92
92
  case 'FileSystem.rename':
93
93
  case 'FileSystem.writeFile':
94
94
  return ModuleId.FileSystem
95
+ case 'GitLsFiles.gitLsFiles':
96
+ return ModuleId.GitLsFiles
95
97
  case 'Native.openFolder':
96
98
  return ModuleId.Native
97
99
  case 'OutputChannel.close':
@@ -129,7 +131,7 @@ export const getModuleId = (commandId) => {
129
131
  return ModuleId.Terminal
130
132
  case 4820:
131
133
  return ModuleId.TextDocument
132
- case 5621:
134
+ case 'WebSocketServer.handleUpgrade':
133
135
  return ModuleId.WebSocketServer
134
136
  case 'Workspace.getHomeDir':
135
137
  case 'Workspace.resolveRoot':
@@ -3,12 +3,11 @@ import VError from 'verror'
3
3
  import * as Callback from '../Callback/Callback.js'
4
4
  import * as Command from '../Command/Command.js'
5
5
  import * as Debug from '../Debug/Debug.js'
6
- import * as Error from '../Error/Error.js'
7
- import { requiresSocket } from '../RequiresSocket/RequiresSocket.js'
8
- import * as Platform from '../Platform/Platform.js'
6
+ import * as ExtensionHostHelperProcessIpc from '../ExtensionHostHelperProcessIpc/ExtensionHostHelperProcessIpc.js'
9
7
  import * as ExtensionHostIpc from '../ExtensionHostIpc/ExtensionHostIpc.js'
10
8
  import * as ExtensionHostRpc from '../ExtensionHostRpc/ExtensionHostRpc.js'
11
- import * as ExtensionHostHelperProcessIpc from '../ExtensionHostHelperProcessIpc/ExtensionHostHelperProcessIpc.js'
9
+ import * as GetResponse from '../GetResponse/GetResponse.js'
10
+
12
11
  // TODO add tests for this
13
12
 
14
13
  // TODO handle structure: one shared process multiple extension hosts
@@ -43,7 +42,7 @@ const handleWebSocketSharedProcess = (message, handle) => {
43
42
  console.info('[info shared process: handle error]', error)
44
43
  })
45
44
  Command.execute(
46
- /* WebSocketServer.handleUpgrade */ 5621,
45
+ /* WebSocketServer.handleUpgrade */ 'WebSocketServer.handleUpgrade',
47
46
  /* message */ message,
48
47
  /* handle */ handle
49
48
  )
@@ -62,8 +61,8 @@ const handleWebSocketExtensionHost = async (message, handle) => {
62
61
  // console.log(rpc)
63
62
  }
64
63
 
65
- const handleWebSocketExtensionHostHelperProcess = (message, handle) => {
66
- const ipc = ExtensionHostHelperProcessIpc.create()
64
+ const handleWebSocketExtensionHostHelperProcess = async (message, handle) => {
65
+ const ipc = await ExtensionHostHelperProcessIpc.create()
67
66
  ipc._process.send(message, handle)
68
67
  }
69
68
 
@@ -84,7 +83,7 @@ const handleWebSocket = (message, handle) => {
84
83
  case 'lvce.extension-host-helper-process':
85
84
  return handleWebSocketExtensionHostHelperProcess(message, handle)
86
85
  default:
87
- throw new VError(`unsupported sec-websocket-procotol ${protocol}`)
86
+ console.warn(`unsupported sec-websocket-procotol ${protocol}`)
88
87
  }
89
88
  }
90
89
 
@@ -94,27 +93,8 @@ const handleJsonRpcResult = (message) => {
94
93
 
95
94
  const handleJsonRpcMessage = async (message, handle) => {
96
95
  if (message.id) {
97
- try {
98
- const result = requiresSocket(message.method)
99
- ? await Command.invoke(message.method, handle, ...message.params)
100
- : await Command.invoke(message.method, ...message.params)
101
- electronSend({
102
- jsonrpc: '2.0',
103
- id: message.id,
104
- result: result ?? null,
105
- })
106
- } catch (error) {
107
- console.error('[shared process] command failed to execute')
108
- console.error(error)
109
- electronSend({
110
- jsonrpc: '2.0',
111
- code: /* ExpectedError */ -32000,
112
- id: message.id,
113
- error: 'ExpectedError',
114
- // @ts-ignore
115
- data: error.toString(),
116
- })
117
- }
96
+ const response = await GetResponse.getResponse(message, handle)
97
+ electronSend(response)
118
98
  } else {
119
99
  // TODO handle error
120
100
  Command.execute(message.method, null, ...message.params)
@@ -163,61 +143,8 @@ const electronInitialize = (initializeMessage) => {
163
143
  Callback.resolve(message.id, message.result)
164
144
  } else if (message.method) {
165
145
  if (message.id) {
166
- try {
167
- const result = requiresSocket(message.method)
168
- ? await Command.invoke(
169
- message.method,
170
- fakeSocket,
171
- ...message.params
172
- )
173
- : await Command.invoke(message.method, ...message.params)
174
-
175
- port.postMessage({
176
- jsonrpc: '2.0',
177
- id: message.id,
178
- result: result ?? null,
179
- })
180
- } catch (error) {
181
- // TODO duplicate code with Socket.js, clean this up
182
- if (error instanceof Error.OperationalError) {
183
- // console.log({ error })
184
- const rawCause = error.cause()
185
- const errorCause = rawCause ? rawCause.message : ''
186
- const errorMessage = rawCause
187
- ? error.message.slice(0, error.message.indexOf(errorCause))
188
- : ''
189
-
190
- // console.info('expected error', error)
191
- port.postMessage({
192
- jsonrpc: '2.0',
193
- id: message.id,
194
- error: {
195
- code: /* ExpectedError */ -32000,
196
- message: error.message,
197
- data: {
198
- stack: error.originalStack,
199
- codeFrame: error.originalCodeFrame,
200
- category: error.category,
201
- // @ts-ignore
202
- stderr: error.stderr,
203
- },
204
- },
205
- })
206
- } else {
207
- console.error('[shared process] command failed to execute')
208
- console.error(error)
209
- // TODO check if socket is active
210
- port.postMessage({
211
- jsonrpc: '2.0',
212
- id: message.id,
213
- error: {
214
- code: /* UnexpectedError */ -32001,
215
- // @ts-ignore
216
- message: error.toString(),
217
- },
218
- })
219
- }
220
- }
146
+ const response = await GetResponse.getResponse(message, fakeSocket)
147
+ port.postMessage(response)
221
148
  } else {
222
149
  Command.execute(message.method, fakeSocket, ...message.params)
223
150
  }
@@ -1,7 +1,7 @@
1
1
  import { extensionHostPath } from '@lvce-editor/extension-host'
2
2
  import { homedir, tmpdir } from 'node:os'
3
- import { join, resolve, sep } from 'node:path'
4
- import { pathToFileURL } from 'node:url'
3
+ import { dirname, join, resolve, sep } from 'node:path'
4
+ import { fileURLToPath, pathToFileURL } from 'node:url'
5
5
  import { xdgCache, xdgConfig, xdgData, xdgState } from 'xdg-basedir'
6
6
  import * as Path from '../Path/Path.js'
7
7
  import * as Root from '../Root/Root.js'
@@ -24,6 +24,8 @@ export const homeDir = isWindows ? '' : homedir()
24
24
 
25
25
  export const appDir = Root.root
26
26
 
27
+ const __dirname = dirname(fileURLToPath(import.meta.url))
28
+
27
29
  export const getExtensionsPath = () => {
28
30
  return Path.join(dataDir, 'extensions')
29
31
  }
@@ -101,14 +103,11 @@ export const getExtensionHostPath = () => {
101
103
  return extensionHostPath
102
104
  }
103
105
 
104
- export const getExtensionHostHelperProcessPath = () => {
105
- return Path.join(
106
- Root.root,
107
- 'packages',
108
- 'extension-host-helper-process',
109
- 'src',
110
- 'extensionHostHelperProcessMain.js'
106
+ export const getExtensionHostHelperProcessPath = async () => {
107
+ const { extensionHostHelperProcessPath } = await import(
108
+ '@lvce-editor/extension-host-helper-process'
111
109
  )
110
+ return extensionHostHelperProcessPath
112
111
  }
113
112
 
114
113
  export const getRecentlyOpenedPath = () => {
@@ -1,6 +1,8 @@
1
1
  import * as Process from './Process.js'
2
2
 
3
+ export const name = 'Process'
4
+
3
5
  export const Commands = {
4
- 555: Process.crash,
5
- 556: Process.crashAsync,
6
+ crash: Process.crash,
7
+ crashAsync: Process.crashAsync,
6
8
  }
@@ -1,10 +1,13 @@
1
- import * as RgPath from '../RgPath/RgPath.js'
1
+ import * as Assert from '../Assert/Assert.js'
2
+ import * as ErrorCodes from '../ErrorCodes/ErrorCodes.js'
2
3
  import * as Exec from '../Exec/Exec.js'
4
+ import * as LimitString from '../LimitString/LimitString.js'
5
+ import * as RgPath from '../RgPath/RgPath.js'
3
6
 
4
7
  const ripGrepPath = process.env.RIP_GREP_PATH || RgPath.rgPath
5
8
 
6
9
  const isEnoentErrorLinux = (error) => {
7
- return error.code === 'ENOENT'
10
+ return error.code === ErrorCodes.ENOENT
8
11
  }
9
12
 
10
13
  const isEnoentErrorWindows = (error) => {
@@ -24,8 +27,11 @@ const isEnoentError = (error) => {
24
27
  // do a delta comparison, so the first time it would send 100kB
25
28
  // but the second time only a few hundred bytes of changes
26
29
 
27
- export const searchFile = async (path, searchTerm) => {
30
+ export const searchFile = async (path, searchTerm, limit) => {
28
31
  try {
32
+ Assert.string(path)
33
+ Assert.string(searchTerm)
34
+ Assert.number(limit)
29
35
  const { stdout, stderr } = await Exec.exec(
30
36
  ripGrepPath,
31
37
  ['--files', '--sort-files'],
@@ -33,8 +39,7 @@ export const searchFile = async (path, searchTerm) => {
33
39
  cwd: path,
34
40
  }
35
41
  )
36
- const lines = stdout.split('\n')
37
- return lines
42
+ return LimitString.limitString(stdout, limit)
38
43
  } catch (error) {
39
44
  // @ts-ignore
40
45
  if (isEnoentError(error)) {
@@ -1,7 +1,6 @@
1
1
  import VError from 'verror'
2
2
  import * as Command from '../Command/Command.js'
3
- import * as Error from '../Error/Error.js'
4
- import { requiresSocket } from '../RequiresSocket/RequiresSocket.js'
3
+ import * as GetResponse from '../GetResponse/GetResponse.js'
5
4
 
6
5
  export const state = {
7
6
  /**
@@ -30,59 +29,8 @@ const handleMessage = async (event) => {
30
29
  )
31
30
  return
32
31
  }
33
- let result
34
- try {
35
- result = requiresSocket(object.method)
36
- ? await Command.invoke(object.method, state.socket, ...object.params)
37
- : await Command.invoke(object.method, ...object.params)
38
- } catch (error) {
39
- if (error instanceof Error.OperationalError) {
40
- // console.log({ error })
41
- const rawCause = error.cause()
42
- const errorCause = rawCause ? rawCause.message : ''
43
- const errorMessage = rawCause
44
- ? error.message.slice(0, error.message.indexOf(errorCause))
45
- : ''
46
-
47
- // console.info('expected error', error)
48
- send({
49
- jsonrpc: '2.0',
50
- id: object.id,
51
- error: {
52
- code: /* ExpectedError */ -32000,
53
- message: error.message,
54
- data: {
55
- stack: error.originalStack,
56
- codeFrame: error.originalCodeFrame,
57
- category: error.category,
58
- // @ts-ignore
59
- stderr: error.stderr,
60
- },
61
- },
62
- })
63
- } else {
64
- console.error(error)
65
- // TODO check if socket is active
66
- send({
67
- jsonrpc: '2.0',
68
- id: object.id,
69
- error: {
70
- code: /* UnexpectedError */ -32001,
71
- // @ts-ignore
72
- message: error.toString(),
73
- data: {
74
- code: error.code,
75
- },
76
- },
77
- })
78
- }
79
- return
80
- }
81
- send({
82
- jsonrpc: '2.0',
83
- result,
84
- id: object.id,
85
- })
32
+ const response = await GetResponse.getResponse(object, state.socket)
33
+ send(response)
86
34
  } else {
87
35
  if (!object.params) {
88
36
  console.warn('invalid message', typeof object, object.params, object)
@@ -76,7 +76,7 @@ export const create = async (socket, id, cwd) => {
76
76
  const data = message.params[1]
77
77
  socket.send({
78
78
  jsonrpc: '2.0',
79
- method: 2133,
79
+ method: 'Viewlet.send',
80
80
  params: ['Terminal', 'handleData', data],
81
81
  })
82
82
  }
@@ -1,5 +1,7 @@
1
1
  import * as WebSocketServer from './WebSocketServer.js'
2
2
 
3
+ export const name = 'WebSocketServer'
4
+
3
5
  export const Commands = {
4
- 5621: WebSocketServer.handleUpgrade,
6
+ handleUpgrade: WebSocketServer.handleUpgrade,
5
7
  }
@@ -1,6 +1,8 @@
1
1
  import * as Workspace from './Workspace.js'
2
2
 
3
+ export const name = 'Workspace'
4
+
3
5
  export const Commands = {
4
- 'Workspace.getHomeDir': Workspace.getHomeDir,
5
- 'Workspace.resolveRoot': Workspace.resolveRoot,
6
+ getHomeDir: Workspace.getHomeDir,
7
+ resolveRoot: Workspace.resolveRoot,
6
8
  }
@@ -1,3 +1,5 @@
1
+ import * as Command from './parts/Command/Command.js'
2
+ import * as Module from './parts/Module/Module.js'
1
3
  import * as ParentIpc from './parts/ParentIpc/ParentIpc.js'
2
4
  import * as PrettyError from './parts/PrettyError/PrettyError.js'
3
5
 
@@ -48,6 +50,7 @@ const handleSigTerm = () => {
48
50
  const knownCliArgs = ['install', 'list', 'link', 'unlink']
49
51
 
50
52
  const main = async () => {
53
+ Command.setLoad(Module.load)
51
54
  const argv = process.argv.slice(2)
52
55
  const argv0 = argv[0]
53
56
  if (knownCliArgs.includes(argv0)) {